diff --git a/app/controllers/DashboardController.php b/app/controllers/DashboardController.php index 9a097ad..f171446 100644 --- a/app/controllers/DashboardController.php +++ b/app/controllers/DashboardController.php @@ -10,21 +10,17 @@ class DashboardController extends Controller { $data = [ "date" => [], "price" => [], + "mileage" => [], + "liters" => [] ]; $raw_data = $refuel->latest_data($default_car['id'], 5); foreach($raw_data as $one) { array_push($data['date'], date('d. m.', strtotime($one['created_at']))); array_push($data['price'], $one['price_per_liter']); + array_push($data['mileage'], $one['mileage']); + array_push($data['liters'], $one['liters']); } - $latest_record = [ - 'name', - 'liters', - 'price_per_liter', - 'total_price', - 'created_at' - ]; - $latest_record = $refuel->latest_one($_SESSION['user']['id'])[0]; $this->view('dashboard/index', [ diff --git a/app/controllers/RefuelController.php b/app/controllers/RefuelController.php index 59bd00d..5b2e439 100644 --- a/app/controllers/RefuelController.php +++ b/app/controllers/RefuelController.php @@ -18,6 +18,7 @@ class RefuelController extends Controller { $liters = $_POST['liters'] ?? ''; $price_per_liter = $_POST['price_per_liter'] ?? ''; $total_price = $_POST['total_price'] ?? ''; + $mileage = $_POST['mileage'] ?? ''; $note = $_POST['note'] ?? ''; $validator = new Validator(); @@ -29,6 +30,7 @@ class RefuelController extends Controller { $validator->number('liters', $liters); $validator->number('price_per_liter', $price_per_liter); $validator->number('total_price', $total_price); + $validator->number('mileage', $mileage); if (round($liters * $price_per_liter, 2) != $total_price) { $validator->setErrors(["total_price" => "Price calculation is wrong"]); @@ -57,6 +59,7 @@ class RefuelController extends Controller { 'liters' => $liters, 'price_per_liter' => $price_per_liter, 'total_price' => $total_price, + 'mileage' => $mileage, ]); if ($result === true) { diff --git a/app/models/Refuel.php b/app/models/Refuel.php index 5029936..1aaf853 100644 --- a/app/models/Refuel.php +++ b/app/models/Refuel.php @@ -10,12 +10,12 @@ class Refuel { public function create($data) { try{ $stmt = $this->db->prepare(" - INSERT INTO refueling_records (user_id, vehicle_id, fuel_type, note, liters, price_per_liter, total_price, created_at) - VALUES (?, ?, ?, ?, ?, ?, ?, NOW()) + INSERT INTO refueling_records (user_id, vehicle_id, fuel_type, note, liters, price_per_liter, total_price, mileage, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW()) "); $stmt->bind_param( - "iissddd", + "iissdddi", $data['user_id'], $data['vehicle_id'], $data['fuel_type'], @@ -23,6 +23,7 @@ class Refuel { $data['liters'], $data['price_per_liter'], $data['total_price'], + $data['mileage'], ); if ($stmt->execute()) { @@ -38,7 +39,7 @@ class Refuel { public function latest_data($vehicle_id, $record_count) { try { $stmt = $this->db->prepare(" - SELECT `liters`, `price_per_liter`, `total_price`, `created_at` + SELECT `liters`, `price_per_liter`, `total_price`, `mileage`, `created_at` FROM `refueling_records` WHERE `vehicle_id` = ? ORDER BY created_at DESC @@ -68,6 +69,7 @@ class Refuel { `r`.`liters`, `r`.`price_per_liter`, `r`.`total_price`, + `r`.`mileage`, `r`.`created_at` FROM `refueling_records` AS `r` JOIN `vehicles` AS `v` ON `r`.`vehicle_id` = `v`.`id` diff --git a/app/views/dashboard/index.php b/app/views/dashboard/index.php index cd2231e..a51db3b 100644 --- a/app/views/dashboard/index.php +++ b/app/views/dashboard/index.php @@ -23,6 +23,8 @@

,-/liter

Total price:

,-

+ Mileage: +

km

@@ -45,6 +47,13 @@

+ +
+

Average fuel consumption

+
+

+ +
@@ -64,4 +73,28 @@ }, }); + + + + diff --git a/app/views/refuel/create.php b/app/views/refuel/create.php index 699a4ac..4847cd8 100644 --- a/app/views/refuel/create.php +++ b/app/views/refuel/create.php @@ -52,6 +52,12 @@ get('validationErrors')['total_price'] ?> + + + get('validationErrors')['mileage'])): ?> + get('validationErrors')['mileage'] ?> + + get('validationErrors')['note'])): ?> diff --git a/core/Database.php b/core/Database.php index 277b140..a52b516 100644 --- a/core/Database.php +++ b/core/Database.php @@ -63,7 +63,6 @@ class Database { username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, - points INT DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB;"; @@ -99,6 +98,7 @@ class Database { liters DOUBLE(10, 2) NOT NULL, price_per_liter DOUBLE(10, 2) NOT NULL, total_price DOUBLE(10, 2) NOT NULL, + mileage INT UNSIGNED NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (vehicle_id) REFERENCES vehicles(id) ON DELETE CASCADE, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE diff --git a/public/js/offline-records.js b/public/js/offline-records.js index ec4628d..fbadaa1 100644 --- a/public/js/offline-records.js +++ b/public/js/offline-records.js @@ -204,6 +204,12 @@ btnOffline.addEventListener("click", async (e) => { + + + + + + @@ -229,6 +235,7 @@ btnOffline.addEventListener("click", async (e) => { total_price: document.querySelector( "form#offline_refuel_add #total_price", ).value, + mileage: document.querySelector("form#offline_refuel_add #mileage").value, note: document.querySelector("form#offline_refuel_add #note").value, };