Browse Source

Incluyo código fuente de repostajes

main
Celestino Rey 1 year ago
parent
commit
12def7fae1
47 changed files with 1313 additions and 0 deletions
  1. +39
    -0
      Repostajes/common.php
  2. +15
    -0
      Repostajes/config.php
  3. BIN
      Repostajes/data/.DS_Store
  4. +36
    -0
      Repostajes/data/automoviles.sql
  5. +13
    -0
      Repostajes/data/init.sql
  6. BIN
      Repostajes/images/icons8-car-100.png
  7. BIN
      Repostajes/images/icons8-gas-pump-100.png
  8. BIN
      Repostajes/images/logo-coche.jpg
  9. BIN
      Repostajes/images/logo-gas-station.png
  10. +16
    -0
      Repostajes/index-old.php
  11. +96
    -0
      Repostajes/index.php
  12. +38
    -0
      Repostajes/install.php
  13. +9
    -0
      Repostajes/log/log_2023-Aug-08.log
  14. +1
    -0
      Repostajes/log/log_2023-Aug-10.log
  15. +1
    -0
      Repostajes/log/log_2023-Aug-25.log
  16. +1
    -0
      Repostajes/log/log_2023-Aug-27.log
  17. +1
    -0
      Repostajes/log/log_2023-Dec-05.log
  18. +1
    -0
      Repostajes/log/log_2023-Dec-17.log
  19. +1
    -0
      Repostajes/log/log_2023-Nov-04.log
  20. +1
    -0
      Repostajes/log/log_2023-Nov-12.log
  21. +1
    -0
      Repostajes/log/log_2023-Nov-21.log
  22. +1
    -0
      Repostajes/log/log_2023-Nov-24.log
  23. +1
    -0
      Repostajes/log/log_2023-Oct-10.log
  24. +8
    -0
      Repostajes/log/log_2023-Oct-11.log
  25. +1
    -0
      Repostajes/log/log_2023-Oct-15.log
  26. +1
    -0
      Repostajes/log/log_2023-Oct-28.log
  27. +1
    -0
      Repostajes/log/log_2023-Sep-14.log
  28. +1
    -0
      Repostajes/log/log_2023-Sep-19.log
  29. +1
    -0
      Repostajes/log/log_2023-Sep-27.log
  30. +1
    -0
      Repostajes/log/log_2024-Jan-06.log
  31. +1
    -0
      Repostajes/log/log_2024-Jan-07.log
  32. +2
    -0
      Repostajes/log/log_2024-Jan-08.log
  33. +1
    -0
      Repostajes/log/log_2024-Jan-22.log
  34. +165
    -0
      Repostajes/repostajes/create.php
  35. +98
    -0
      Repostajes/repostajes/delete.php
  36. +23
    -0
      Repostajes/repostajes/menu.php
  37. +118
    -0
      Repostajes/repostajes/read.php
  38. +90
    -0
      Repostajes/repostajes/update-single.php
  39. +66
    -0
      Repostajes/repostajes/update.php
  40. +5
    -0
      Repostajes/templates/footer.php
  41. +60
    -0
      Repostajes/templates/header.php
  42. +63
    -0
      Repostajes/vehiculos/create.php
  43. +84
    -0
      Repostajes/vehiculos/delete.php
  44. +22
    -0
      Repostajes/vehiculos/menu.php
  45. +88
    -0
      Repostajes/vehiculos/read.php
  46. +84
    -0
      Repostajes/vehiculos/update-single.php
  47. +57
    -0
      Repostajes/vehiculos/update.php

+ 39
- 0
Repostajes/common.php View File

@ -0,0 +1,39 @@
<?php
session_start();
if (empty($_SESSION['csrf'])) {
if (function_exists('random_bytes')) {
$_SESSION['csrf'] = bin2hex(random_bytes(32));
} else if (function_exists('mcrypt_create_iv')) {
$_SESSION['csrf'] = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
} else {
$_SESSION['csrf'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
/**
* Escapes HTML for output
*
*/
function escape($html) {
return htmlspecialchars($html, ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
}
/**
* Función para escribir logs
*/
function escribe_log($log_msg)
{
$log_dir = $_SERVER['DOCUMENT_ROOT'] ."/gestionrepostajes/log";
if (!file_exists($log_dir))
{
// create directory/folder uploads.
mkdir($log_dir, 0777, true);
}
$log_file_data = $log_dir.'/log_' . date('Y-M-d') . '.log';
// if you don't add `FILE_APPEND`, the file will be erased each time you add a log
file_put_contents($log_file_data, $log_msg . "\n", FILE_APPEND);
}

+ 15
- 0
Repostajes/config.php View File

@ -0,0 +1,15 @@
<?php
/**
* Configuration for database connection
*
*/
$host = "repostajes-mysql";
$username = "root";
$password = "Dsa-0213";
$dbname = "automoviles";
$dsn = "mysql:host=$host;dbname=$dbname";
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);

BIN
Repostajes/data/.DS_Store View File


+ 36
- 0
Repostajes/data/automoviles.sql View File

@ -0,0 +1,36 @@
CREATE DATABASE automoviles;
USE automoviles;
DROP TABLE IF EXISTS carburante;
CREATE TABLE carburante (
fecha date DEFAULT NULL,
vehiculo int(11) DEFAULT NULL,
kms int(11) DEFAULT NULL,
litros decimal(10,3) DEFAULT NULL,
descuento decimal(10,2) DEFAULT NULL,
precioxlitro decimal(10,3) DEFAULT NULL,
importe decimal(10,2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_spanish_ci;
DROP TABLE IF EXISTS vehiculos;
CREATE TABLE vehiculos (
identificador int(11) NOT NULL,
marca text NOT NULL,
modelo text NOT NULL,
matricula text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
ALTER TABLE vehiculos
ADD PRIMARY KEY (identificador);
ALTER TABLE vehiculos
MODIFY identificador int(11) NOT NULL AUTO_INCREMENT;
COMMIT;

+ 13
- 0
Repostajes/data/init.sql View File

@ -0,0 +1,13 @@
CREATE DATABASE test;
use test;
CREATE TABLE users (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
age INT(3),
location VARCHAR(50),
date TIMESTAMP
);

BIN
Repostajes/images/icons8-car-100.png View File

Before After
Width: 100  |  Height: 100  |  Size: 1.5 KiB

BIN
Repostajes/images/icons8-gas-pump-100.png View File

Before After
Width: 100  |  Height: 100  |  Size: 1.4 KiB

BIN
Repostajes/images/logo-coche.jpg View File

Before After
Width: 241  |  Height: 207  |  Size: 18 KiB

BIN
Repostajes/images/logo-gas-station.png View File

Before After
Width: 920  |  Height: 512  |  Size: 3.8 KiB

+ 16
- 0
Repostajes/index-old.php View File

@ -0,0 +1,16 @@
<?php include "templates/header.php"; ?>
<section id="one" class="main style1">
<div class="inner">
<ul class="actions special">
<li><a href="vehiculos/menu.php"><strong>Gestión de vehículos</strong></a></li>
<li><a href="repostajes/menu.php"><strong>Control de respostajes</strong></a></li>
</ul>
</div>
</section>
<br>
<!-- <a href="../install.php"><strong>Crear base de datos</strong></a> -->
<?php include "templates/footer.php"; ?>

+ 96
- 0
Repostajes/index.php View File

@ -0,0 +1,96 @@
<?php
/**
* Use an HTML form to create a new entry in the
* users table.
*
*/
require './config.php';
require './common.php';
/**
* Esto es para comprobar si existe la BD
*/
try {
$conexion = new PDO( $dsn, $username, $password, $options );
include './templates/header.php';
$sql = "SELECT *
FROM carburante
ORDER BY fecha DESC LIMIT 10" ;
$statement = $conexion->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
?>
<section class="principal">
<div class="container">
<section>
<h2>Últimos repostajes</h2>
<table>
<thead>
<tr>
<th>#</th>
<th>Fecha</th>
<th>Vehículo</th>
<th>Kilómetros</th>
<th>Litros</th>
<th>Descuento</th>
<th>Precio/litro</th>
<th>Importe</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["fecha"]); ?></td>
<td><?php echo escape($row["vehiculo"]); ?></td>
<td><?php echo escape($row["kms"]); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["litros"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["descuento"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["precioxlitro"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["importe"])); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</section>
<!-- <a href = '../install.php'><strong>Crear base de datos</strong></a> -->
<?php include './templates/footer.php';
} catch( PDOException $error ) {
require './templates/header.php';
?>
<section id='four' class='main style2 special'>
<div class='container'>
<header class='major'>
<h2>Base de datos inexistente</h2>
</header>
<section>
<p>La base de datos no existe. ¿quieres inicializarla?</p>
<ul class='actions special'>
<li><a href='/install.php'><strong>Crear base de datos</strong></a></li>
</ul>
</section>
</div>
</section>
<?php require './templates/footer.php';
}
?>

+ 38
- 0
Repostajes/install.php View File

@ -0,0 +1,38 @@
<?php
/**
* Open a connection via PDO to create a
* new database and table with structure.
*
*/
require "config.php";
try {
$connection = new PDO("mysql:host=$host", $username, $password, $options);
$sql = file_get_contents("data/automoviles.sql");
$connection->exec($sql);
require "./gestionrepostajes/templates/header.php"; ?>
<section id="four" class="main style2 special">
<div class="container">
<header class="major">
<h2>Base de datos creada</h2>
</header>
<section>
<p>La base de datos ha sido creada con éxito</p>
<ul class="actions special">
<li><a href="./gestionrepostajes/vehiculos/create.php"><strong>Crear vehículos</strong></a></li>
</ul>
</section>
</div>
</section>
<?php require "./gestionrepostajes/templates/footer.php";
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}

+ 9
- 0
Repostajes/log/log_2023-Aug-08.log View File

@ -0,0 +1,9 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 63.88. Total introducido: 63,88
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 63.88. Total introducido: 63,88
BORRA REPOSTAJE-> ID: 194
BORRA REPOSTAJE-> ID: 195
BORRA REPOSTAJE-> ID: 196
BORRA REPOSTAJE-> ID: 197
BORRA REPOSTAJE-> ID: 198
BORRA REPOSTAJE-> ID: 199
BORRA REPOSTAJE-> ID: 200

+ 1
- 0
Repostajes/log/log_2023-Aug-10.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.3899. Total con descuento: 44.9401. Total introducido: 46,33

+ 1
- 0
Repostajes/log/log_2023-Aug-25.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.2186. Total con descuento: 39.4014. Total introducido: 40,62

+ 1
- 0
Repostajes/log/log_2023-Aug-27.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 77.06. Total introducido: 77,06

+ 1
- 0
Repostajes/log/log_2023-Dec-05.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 57.62. Total introducido: 57,62. Kilometros anteriores: 87503. Kilometros recorridos: 753

+ 1
- 0
Repostajes/log/log_2023-Dec-17.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.6632. Total con descuento: 53.7768. Total introducido: 55,44. Kilometros anteriores: 88256. Kilometros recorridos: 708

+ 1
- 0
Repostajes/log/log_2023-Nov-04.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.1685. Total con descuento: 37.7815. Total introducido: 38,95. Kilometros anteriores: 12006. Kilometros recorridos: 421

+ 1
- 0
Repostajes/log/log_2023-Nov-12.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.7112. Total con descuento: 55.3288. Total introducido: 57,04. Kilometros anteriores: 86021. Kilometros recorridos: 736

+ 1
- 0
Repostajes/log/log_2023-Nov-21.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 40. Total introducido: 40. Kilometros anteriores: 12427. Kilometros recorridos: 506

+ 1
- 0
Repostajes/log/log_2023-Nov-24.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.746. Total con descuento: 56.454. Total introducido: 58,2. Kilometros anteriores: 86757. Kilometros recorridos: 746

+ 1
- 0
Repostajes/log/log_2023-Oct-10.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 72.43. Total introducido: 72,43

+ 8
- 0
Repostajes/log/log_2023-Oct-11.log View File

@ -0,0 +1,8 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 89. Total introducido: 89. Kilometros anteriores: Array
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 78. Total introducido: 78. Kilometros anteriores: 90000
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 78. Total introducido: 78. Kilometros anteriores: 91000. Kilometros recorridos: 1000
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 66. Total introducido: 66. Kilometros anteriores: 11508. Kilometros recorridos: 8492
BORRA REPOSTAJE-> ID: 210
BORRA REPOSTAJE-> ID: 209
BORRA REPOSTAJE-> ID: 211
BORRA REPOSTAJE-> ID: 208

+ 1
- 0
Repostajes/log/log_2023-Oct-15.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.2486. Total con descuento: 40.3714. Total introducido: 41,62. Kilometros anteriores: 11508. Kilometros recorridos: 498

+ 1
- 0
Repostajes/log/log_2023-Oct-28.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 70.11. Total introducido: 70,11. Kilometros anteriores: 85104. Kilometros recorridos: 917

+ 1
- 0
Repostajes/log/log_2023-Sep-14.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.1442. Total con descuento: 36.9958. Total introducido: 38,14

+ 1
- 0
Repostajes/log/log_2023-Sep-19.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 77.26. Total introducido: 77,26

+ 1
- 0
Repostajes/log/log_2023-Sep-27.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 35.85. Total introducido: 35,85

+ 1
- 0
Repostajes/log/log_2024-Jan-06.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.341. Total con descuento: 43.359. Total introducido: 44,7. Kilometros anteriores: 12933. Kilometros recorridos: 481

+ 1
- 0
Repostajes/log/log_2024-Jan-07.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 1.6098. Total con descuento: 52.0502. Total introducido: 53,66. Kilometros anteriores: 88964. Kilometros recorridos: 838

+ 2
- 0
Repostajes/log/log_2024-Jan-08.log View File

@ -0,0 +1,2 @@
BORRA REPOSTAJE-> ID: 221
CREA REPOSTAJE-> Descuento: 1.9098. Total con descuento: 61.7502. Total introducido: 63,66. Kilometros anteriores: 88964. Kilometros recorridos: 838

+ 1
- 0
Repostajes/log/log_2024-Jan-22.log View File

@ -0,0 +1 @@
CREA REPOSTAJE-> Descuento: 0. Total con descuento: 37.09. Total introducido: 37,09. Kilometros anteriores: 13414. Kilometros recorridos: 489

+ 165
- 0
Repostajes/repostajes/create.php View File

@ -0,0 +1,165 @@
<?php
/**
* Use an HTML form to create a new entry in the
* users table.
*
*/
require "../config.php";
require "../common.php";
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
if (empty($_POST['fecha']) or
empty($_POST['kms']) or
empty($_POST['litros']) or
empty($_POST['importe'])) {
?>
<?php require "../templates/header.php"; ?>
<section id="four" class="main style2 special">
<div class="container">
<header class="major">
<h2>Introducción de repostajes</h2>
</header>
<section>
<p>Por favor, rellena todos los campos.</p>
<ul class="actions special">
<li><a href="create.php" class="button wide primary">Volver</a></li>
</ul>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>
<?php
die();
} else {
try {
$connection = new PDO($dsn, $username, $password, $options);
// Calcula el precio por litro
//$total = floatval($_POST['importe']);
$total=floatval(str_replace(',', '.', str_replace('.', '', $_POST['importe'])));
$cantidad = floatval(str_replace(',', '.', str_replace('.', '', $_POST['litros'])));
if(empty($_POST['dtoing'])) {
$dto = 0;
} else {
$dto = ($total*0.03);
}
//$dto = intval($_POST['descuento']);
$totalcondto = $total-$dto;
$ellitro = ($totalcondto / $cantidad);
// Estas líneas son para conocer los kms del último repostaje
$sql = sprintf('SELECT kms FROM carburante WHERE vehiculo = ? order by identificador DESC LIMIT 1');
$smt = $connection->prepare($sql);
$smt->execute([$_POST['vehiculo']]);
$filas = $smt->fetchAll();
foreach ($filas as $row) {
$kmsanteriores=$row["kms"];
}
$kmsrecorridos=$_POST['kms']-$kmsanteriores;
//
// Hasta aquí lo de conocer los kms del último repostaje
$nuevo_repostaje = array(
"fecha" => $_POST['fecha'],
"vehiculo" => $_POST['vehiculo'],
"kms" => $_POST['kms'],
"litros" => str_replace(',', '.',$_POST['litros']),
"descuento" => $dto,
"precioxlitro" => str_replace(',', '.',strval($ellitro)),
"importe" => $totalcondto,
);
$sql = sprintf(
"INSERT INTO %s (%s) values (%s)",
"carburante",
implode(", ", array_keys($nuevo_repostaje)),
":" . implode(", :", array_keys($nuevo_repostaje))
);
/*
* Logs
*/
$log_msg='CREA REPOSTAJE-> Descuento: '.$dto.'. Total con descuento: '.$totalcondto.'. Total introducido: '.$_POST['importe'].'. Kilometros anteriores: '.$kmsanteriores.'. Kilometros recorridos: '.$kmsrecorridos;
escribe_log($log_msg);
$statement = $connection->prepare($sql);
$statement->execute($nuevo_repostaje);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
}
?>
<?php require "../templates/header.php"; ?>
<?php if (isset($_POST['submit']) && $statement) : ?>
<blockquote><?php echo escape($_POST['fecha']); ?> successfully added.</blockquote>
<?php endif; ?>
<section class="principal">
<div class="container">
<section>
<h2>Añadir repostaje</h2>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<p><label for="fecha">Fecha</label>
<p><input type="date" name="fecha" id="fecha" required>
<p><label for="vehiculo">Vehículo</label>
<p><select name="vehiculo" id="vehiculo" required>
<option value="" disabled selected>Selecciona un vehículo</option>
<?php
try {
$conexion = new PDO($dsn, $username, $password, $options);
$smt = $conexion->prepare('SELECT matricula FROM vehiculos');
$smt->execute();
$vehiculos = $smt->fetchAll();
foreach ($vehiculos as $row) {
echo "<option value='".$row["matricula"]."'>" . $row["matricula"]."</option>";
}
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
?>
</select>
<p><label for="kms">Kilómetros</label></p>
<p><input type="number" name="kms" id="kms" required></p>
<p><label for="litros">Litros</label></p>
<p><input type="number" name="litros" id="litros" required></p>
<p><label for="importe">Importe</label></p>
<p><input type="number" name="importe" id="importe" required></p>
<p><input type="checkbox" id="dtoing" name="dtoing">
<label for="dtoing">Descuento ING</label>
</p>
<br>
<p><input type="submit" name="submit" value="Crear" class="primary"></p>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 98
- 0
Repostajes/repostajes/delete.php View File

@ -0,0 +1,98 @@
<?php
/**
* Delete a user
*/
require "../config.php";
require "../common.php";
$success = null;
if (isset($_POST["submit"])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$identificador = $_POST["submit"];
$sql = "DELETE FROM carburante WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->bindValue(':identificador', $identificador);
$statement->execute();
$success = "Repostaje borrado con éxito";
$log_msg='BORRA REPOSTAJE-> ID: '.$identificador;
escribe_log($log_msg);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM carburante ORDER BY fecha DESC";
$statement = $connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php require "../templates/header.php"; ?>
<section class="principal">
<div class="container">
<section>
<h2>Borrar repostajes</h2>
<?php if ($success) echo $success; ?>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<table>
<thead>
<tr>
<th>#</th>
<th>Fecha</th>
<th>Vehículo</th>
<th>Kilómetros</th>
<th>Litros</th>
<th>Descuento</th>
<th>Precio/litro</th>
<th>Importe</th>
<th>Borrar</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["fecha"]); ?></td>
<td><?php echo escape($row["vehiculo"]); ?></td>
<td><?php echo escape($row["kms"]); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["litros"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["descuento"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["precioxlitro"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["importe"])); ?></td>
<td><button type="submit" name="submit"
value="<?php echo escape($row["identificador"]); ?>">Borrar</button></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 23
- 0
Repostajes/repostajes/menu.php View File

@ -0,0 +1,23 @@
<?php include "../templates/header.php"; ?>
<section id="three" class="main style1 special">
<div class="container">
<header class="inner">
<h2>Menú repostajes</h2>
<!-- <span class="icon solid major fa-gas-pump"></span> -->
</header>
<ul class="actions special">
<li><a href="create.php"><strong>Crear un repostaje</strong></a> </li>
<li><a href="read.php"><strong>Mostrar repostajes</strong></a> </li>
<li><a href="update.php"><strong>Actualizar repostajes</strong></a> </li>
<li><a href="delete.php"><strong>Borrar repostajes</strong></a></li>
</ul>
</div>
<div class="container">
<a href="../index.php" class="button small">Volver</a>
</div>
</section>
<br>
<?php include "../templates/footer.php"; ?>

+ 118
- 0
Repostajes/repostajes/read.php View File

@ -0,0 +1,118 @@
<?php
/**
* Function to query information based on
* a parameter: in this case, marca.
*
*/
require "../config.php";
require "../common.php";
/**
* Esto es para obtener los vehículos dados de alta
*/
$conexion = new PDO($dsn, $username, $password, $options);
$smt = $conexion->prepare('SELECT matricula FROM vehiculos');
$smt->execute();
$vehiculos = $smt->fetchAll();
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT *
FROM carburante
WHERE vehiculo = :vehiculo ORDER BY fecha ASC" ;
$marca = $_POST['vehiculo'];
$statement = $connection->prepare($sql);
$statement->bindParam(':vehiculo', $marca, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
?>
<?php require "../templates/header.php"; ?>
<section class="principal">
<div class="container">
<section>
<h2>Busca repostajes por vehículo</h2>
<form method="post">
<div class="row gtr-uniform gtr-50">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<div class="col-12">
<label for="vehiculo">Vehículo</label>
<select name="vehiculo" id="vehiculo">
<?php foreach ($vehiculos as $row) { ?>
<option><?=$row["matricula"]?></option>
<?php } ?>
</select>
</div>
<br>
<div class="col-12">
<input type="submit" name="submit" value="Ver resultados" class="primary">
</div>
</div>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>
<?php
if (isset($_POST['submit'])) {
if ($result && $statement->rowCount() > 0) { ?>
<section class="principal">
<div class="container">
<section>
<h2>Resultados para vehículo <?php echo escape($_POST['vehiculo']); ?></h2>
<table>
<thead>
<tr>
<th>#</th>
<th>Fecha</th>
<th>Vehículo</th>
<th>Kilómetros</th>
<th>Litros</th>
<th>Descuento</th>
<th>Precio/litro</th>
<th>Importe</th>
<th>Recorridos</th>
</tr>
</thead>
<tbody>
<?php $kmsanterior=0;
foreach ($result as $row) :
$kmsrecorridos=$row["kms"]-$kmsanterior;
if($kmsrecorridos==$row["kms"]) {$kmsrecorridos=0;}
$kmsanterior = $row["kms"];?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["fecha"]); ?></td>
<td><?php echo escape($row["vehiculo"]); ?></td>
<td><?php echo escape($row["kms"]); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["litros"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["descuento"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["precioxlitro"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["importe"])); ?></td>
<td><?php echo escape($kmsrecorridos); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</section>
<?php } else { ?>
<blockquote>No results found for <?php echo escape($_POST['vehiculo']); ?>.</blockquote>
<?php }
} ?>

+ 90
- 0
Repostajes/repostajes/update-single.php View File

@ -0,0 +1,90 @@
<?php
/**
* Use an HTML form to edit an entry in the
* kmss table.
*
*/
require "../config.php";
require "../common.php";
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$kms =[
"identificador" => $_POST['identificador'],
"fecha" => $_POST['fecha'],
"kms" => $_POST['kms'],
"litros" => str_replace(',', '.',$_POST['litros']),
"descuento" => str_replace(',', '.',$_POST['descuento']),
"precioxlitro" => str_replace(',', '.',$_POST['precioxlitro']),
"importe" => str_replace(',', '.',$_POST['importe'])
];
$sql = "UPDATE carburante
SET identificador = :identificador,
fecha = :fecha,
kms = :kms,
litros = :litros,
descuento = :descuento,
precioxlitro = :precioxlitro,
importe = :importe
WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->execute($kms);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
if (isset($_GET['identificador'])) {
try {
$connection = new PDO($dsn, $username, $password, $options);
$identificador = $_GET['identificador'];
$sql = "SELECT * FROM carburante WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->bindValue(':identificador', $identificador);
$statement->execute();
$kms = $statement->fetch(PDO::FETCH_ASSOC);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
} else {
echo "¡Algo ha salido mal!";
exit;
}
?>
<?php require "../templates/header.php"; ?>
<?php if (isset($_POST['submit']) && $statement) : ?>
<blockquote><?php echo escape($_POST['fecha']); ?> successfully updated.</blockquote>
<?php endif; ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Edita un repostaje</h2>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<?php foreach ($kms as $key => $value) : ?>
<label for="<?php echo $key; ?>"><?php echo ucfirst($key); ?></label>
<input type="text" name="<?php echo $key; ?>" identificador="<?php echo $key; ?>"
value="<?php echo escape($value); ?>" <?php echo ($key === 'identificador' ? 'readonly' : null); ?>>
<?php endforeach; ?>
<input type="submit" name="submit" value="Submit">
</form>
</section>
<a href="menu.php" class="button small">Volver</a>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 66
- 0
Repostajes/repostajes/update.php View File

@ -0,0 +1,66 @@
<?php
/**
* List all vehiculos with a link to edit
*/
require "../config.php";
require "../common.php";
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM carburante ORDER BY fecha DESC";
$statement = $connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php require "../templates/header.php"; ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Actualizar repostajes</h2>
<table>
<thead>
<tr>
<th>#</th>
<th>Fecha</th>
<th>Vehículo</th>
<th>Kilómetros</th>
<th>Litros</th>
<th>Descuento</th>
<th>Precio/litro</th>
<th>Importe</th>
<th>Editar</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["fecha"]); ?></td>
<td><?php echo escape($row["vehiculo"]); ?></td>
<td><?php echo escape($row["kms"]); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["litros"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["descuento"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["precioxlitro"])); ?></td>
<td><?php echo escape(str_replace('.', ',',$row["importe"])); ?></td>
<td><a
href="update-single.php?identificador=<?php echo escape($row["identificador"]); ?>">Edit</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 5
- 0
Repostajes/templates/footer.php View File

@ -0,0 +1,5 @@
</body>
<footer>
<p>Gestión de vehículos, Copyright &copy; C.Rey 2023</p>
</footer>
</html>

+ 60
- 0
Repostajes/templates/header.php View File

@ -0,0 +1,60 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>App de Gestión de Vehículos</title>
<link rel="stylesheet" href="/css/style.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<header>
<div class="container">
<div class="branding">
<h1>Gestión de <span class="highlight">Vehículos</span></h1>
</div>
<!--
<nav>
<ul>
<li><a href="/gestionrepostajes/index.php">Inicio</a></li>
<li><a href="/gestionrepostajes/vehiculos/menu.php">Vehículos</a></li>
<li><a href="/gestionrepostajes/repostajes/menu.php">Repostajes</a></li>
</ul>
</nav>
-->
<div class="navbar">
<a href="/gestionrepostajes/index.php">Inicio</a>
<!-- Menú de vehículos -->
<div class="subnav">
<button class="subnavbtn">Vehículos<i class="fa fa-caret-down"></i></button>
<div class="subnav-content">
<a href="/gestionrepostajes/vehiculos/create.php"><strong>Añadir un vehículo</strong></a>
<a href="/gestionrepostajes/vehiculos/read.php"><strong>Listar vehículos</strong></a>
<a href="/gestionrepostajes/vehiculos/update.php"><strong>Actualizar vehículos</strong></a>
<a href="/gestionrepostajes/vehiculos/delete.php"><strong>Borrar vehículos</strong></a>
</div>
</div>
<!-- Menú de repostajes -->
<div class="subnav">
<button class="subnavbtn">Repostajes<i class="fa fa-caret-down"></i></button>
<div class="subnav-content">
<a href="/gestionrepostajes/repostajes/create.php"><strong>Crear un repostaje</strong></a>
<a href="/gestionrepostajes/repostajes/read.php"><strong>Mostrar repostajes</strong></a>
<a href="/gestionrepostajes/repostajes/update.php"><strong>Actualizar repostajes</strong></a>
<a href="/gestionrepostajes/repostajes/delete.php"><strong>Borrar repostajes</strong></a>
</div>
</div>
</div>
</div>
</header>

+ 63
- 0
Repostajes/vehiculos/create.php View File

@ -0,0 +1,63 @@
<?php
/**
* Use an HTML form to create a new entry in the
* users table.
*
*/
require "../config.php";
require "../common.php";
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$nuevo_coche = array(
"marca" => $_POST['marca'],
"modelo" => $_POST['modelo'],
"matricula" => $_POST['matricula']
);
$sql = sprintf(
"INSERT INTO %s (%s) values (%s)",
"vehiculos",
implode(", ", array_keys($nuevo_coche)),
":" . implode(", :", array_keys($nuevo_coche))
);
$statement = $connection->prepare($sql);
$statement->execute($nuevo_coche);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
?>
<?php require "../templates/header.php"; ?>
<?php if (isset($_POST['submit']) && $statement) : ?>
<blockquote><?php echo escape($_POST['marca']); ?> successfully added.</blockquote>
<?php endif; ?>
<section class="principal">
<div class="container">
<section>
<h2>Añadir vehículo</h2>
<form method="post" class="formulario">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<p><label for="marca">Marca</label></p>
<p><input type="text" name="marca" id="marca" required></p>
<p><label for="modelo">Modelo</label></p>
<p><input type="text" name="modelo" id="modelo" required></p>
<p><label for="matricula">Matricula</label></p>
<p><input type="text" name="matricula" id="matricula" required></p>
<br>
<p><input type="submit" name="submit" value="Crear" class="primary"></p>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 84
- 0
Repostajes/vehiculos/delete.php View File

@ -0,0 +1,84 @@
<?php
/**
* Delete a user
*/
require "../config.php";
require "../common.php";
$success = null;
if (isset($_POST["submit"])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$identificador = $_POST["submit"];
$sql = "DELETE FROM vehiculos WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->bindValue(':identificador', $identificador);
$statement->execute();
$success = "User successfully deleted";
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM vehiculos";
$statement = $connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php require "../templates/header.php"; ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Borrar vehículos</h2>
<?php if ($success) echo $success; ?>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<table>
<thead>
<tr>
<th>#</th>
<th>Marca</th>
<th>Modelo</th>
<th>Matrícula</th>
<th>Borrar</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["marca"]); ?></td>
<td><?php echo escape($row["modelo"]); ?></td>
<td><?php echo escape($row["matricula"]); ?></td>
<td><button type="submit" name="submit"
value="<?php echo escape($row["identificador"]); ?>">Borrar</button></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 22
- 0
Repostajes/vehiculos/menu.php View File

@ -0,0 +1,22 @@
<?php include "../templates/header.php"; ?>
<section id="boxes">
<div class="container">
<div class="box">
<a href="create.php"><strong>Añadir un vehículo</strong></a>
</div>
<div class="box">
<a href="read.php"><strong>Listar vehículos</strong></a>
</div>
<div class="box">
<a href="update.php"><strong>Actualizar vehículos</strong></a>
</div>
<div class="box">
<a href="delete.php"><strong>Borrar vehículos</strong></a>
</div>
</div>
</section>
<br>
<?php include "../templates/footer.php"; ?>

+ 88
- 0
Repostajes/vehiculos/read.php View File

@ -0,0 +1,88 @@
<?php
/**
* Function to query information based on
* a parameter: in this case, marca.
*
*/
require "../config.php";
require "../common.php";
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT *
FROM vehiculos
WHERE marca = :marca";
$marca = $_POST['marca'];
$statement = $connection->prepare($sql);
$statement->bindParam(':marca', $marca, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
?>
<?php require "../templates/header.php"; ?>
<?php
if (isset($_POST['submit'])) {
if ($result && $statement->rowCount() > 0) { ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Resultados</h2>
<table>
<thead>
<tr>
<th>#</th>
<th>Marca</th>
<th>Modelo</th>
<th>Matrícula</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["marca"]); ?></td>
<td><?php echo escape($row["modelo"]); ?></td>
<td><?php echo escape($row["matricula"]); ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</section>
<?php } else { ?>
<blockquote>No results found for <?php echo escape($_POST['marca']); ?>.</blockquote>
<?php }
} ?>
<section class="principal">
<div class="container">
<section>
<h2>Busca vehículo por marca</h2>
<form method="post">
<div class="row gtr-uniform gtr-50">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<p><label for="marca">Marca</label></p>
<p><input type="text" id="marca" name="marca"></p>
<input type="submit" name="submit" value="Ver resultados" class="primary">
</div>
</form>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 84
- 0
Repostajes/vehiculos/update-single.php View File

@ -0,0 +1,84 @@
<?php
/**
* Use an HTML form to edit an entry in the
* vehiculos table.
*
*/
require "../config.php";
require "../common.php";
if (isset($_POST['submit'])) {
if (!hash_equals($_SESSION['csrf'], $_POST['csrf'])) die();
try {
$connection = new PDO($dsn, $username, $password, $options);
$vehiculo =[
"identificador" => $_POST['identificador'],
"marca" => $_POST['marca'],
"modelo" => $_POST['modelo'],
"matricula" => $_POST['matricula']
];
$sql = "UPDATE vehiculos
SET identificador = :identificador,
marca = :marca,
modelo = :modelo,
matricula = :matricula
WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->execute($vehiculo);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
}
if (isset($_GET['identificador'])) {
try {
$connection = new PDO($dsn, $username, $password, $options);
$identificador = $_GET['identificador'];
$sql = "SELECT * FROM vehiculos WHERE identificador = :identificador";
$statement = $connection->prepare($sql);
$statement->bindValue(':identificador', $identificador);
$statement->execute();
$vehiculo = $statement->fetch(PDO::FETCH_ASSOC);
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
} else {
echo "¡Algo ha salido mal!";
exit;
}
?>
<?php require "../templates/header.php"; ?>
<?php if (isset($_POST['submit']) && $statement) : ?>
<blockquote><?php echo escape($_POST['marca']); ?> successfully updated.</blockquote>
<?php endif; ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Edita un vehículo</h2>
<form method="post">
<input name="csrf" type="hidden" value="<?php echo escape($_SESSION['csrf']); ?>">
<?php foreach ($vehiculo as $key => $value) : ?>
<label for="<?php echo $key; ?>"><?php echo ucfirst($key); ?></label>
<input type="text" name="<?php echo $key; ?>" identificador="<?php echo $key; ?>"
value="<?php echo escape($value); ?>" <?php echo ($key === 'identificador' ? 'readonly' : null); ?>>
<?php endforeach; ?>
<br>
<input type="submit" name="submit" class="primary" value="Submit">
</form>
<a href="menu.php" class="button small" >Volver</a>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

+ 57
- 0
Repostajes/vehiculos/update.php View File

@ -0,0 +1,57 @@
<?php
/**
* List all vehiculos with a link to edit
*/
require "../config.php";
require "../common.php";
try {
$connection = new PDO($dsn, $username, $password, $options);
$sql = "SELECT * FROM vehiculos";
$statement = $connection->prepare($sql);
$statement->execute();
$result = $statement->fetchAll();
} catch(PDOException $error) {
echo $sql . "<br>" . $error->getMessage();
}
?>
<?php require "../templates/header.php"; ?>
<section id="five" class="main style1">
<div class="container">
<section>
<h2>Actualizar vehículos</h2>
<table>
<thead>
<tr>
<th>#</th>
<th>Marca</th>
<th>Modelo</th>
<th>Matrícula</th>
<th>Editar</th>
</tr>
</thead>
<tbody>
<?php foreach ($result as $row) : ?>
<tr>
<td><?php echo escape($row["identificador"]); ?></td>
<td><?php echo escape($row["marca"]); ?></td>
<td><?php echo escape($row["modelo"]); ?></td>
<td><?php echo escape($row["matricula"]); ?></td>
<td><a
href="update-single.php?identificador=<?php echo escape($row["identificador"]); ?>">Edit</a>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</section>
</div>
</section>
<?php require "../templates/footer.php"; ?>

Loading…
Cancel
Save