diff --git a/app/controllers/DashboardController.php b/app/controllers/DashboardController.php index f171446..c3cde6a 100644 --- a/app/controllers/DashboardController.php +++ b/app/controllers/DashboardController.php @@ -3,8 +3,7 @@ class DashboardController extends Controller { public function index() { $vehicle = new Vehicle(); $vehicles = $vehicle->getVehiclesByUser($_SESSION['user']['id']); - - $default_car = $vehicle->getDefaultVehicle($_SESSION['user']['id']); + $default_car = $vehicle->getDefaultVehicle($_SESSION['user']['id']) ?? null; $refuel = new Refuel(); $data = [ @@ -13,7 +12,7 @@ class DashboardController extends Controller { "mileage" => [], "liters" => [] ]; - $raw_data = $refuel->latest_data($default_car['id'], 5); + $raw_data = $default_car ? $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']); @@ -21,7 +20,8 @@ class DashboardController extends Controller { array_push($data['liters'], $one['liters']); } - $latest_record = $refuel->latest_one($_SESSION['user']['id'])[0]; + $latest_data = $default_car ? $refuel->latest_one($default_car['id']) : []; + $latest_record = !empty($latest_data) ? $latest_data[0] : null; $this->view('dashboard/index', [ 'title' => 'Dashboard', diff --git a/app/controllers/VehicleController.php b/app/controllers/VehicleController.php index f5f7ede..c218c9e 100644 --- a/app/controllers/VehicleController.php +++ b/app/controllers/VehicleController.php @@ -30,17 +30,21 @@ class VehicleController extends Controller { } $vehicle = new Vehicle(); + $default_vehicle = $vehicle->getDefaultVehicle($_SESSION['user']['id']); + $is_default = $default_vehicle ? 0 : 1; + $result = $vehicle->create([ 'name' => $name, 'registration_plate' => strtoupper($registration_plate), 'fuel_type' => $fuel_type, 'note' => $note, 'user_id' => $_SESSION['user']['id'], + 'is_default' => $is_default ]); if ($result === true) { - $this->redirect('/vehicles'); + $this->redirect('/'); } else { $this->view('vehicles/create', ['title' => 'Create vehicle', 'error' => $result, 'validationErrors' => []] ); } @@ -72,7 +76,7 @@ class VehicleController extends Controller { return; } - $this->view('vehicles/index', ['title' => 'Vehicles', 'vehicles' => $vehicles]); + header("Location: /vehicles"); } public function setDefault() { @@ -84,7 +88,7 @@ class VehicleController extends Controller { return; } - $this->view('vehicles/index', ['title' => 'Vehicles', 'vehicles' => $vehicles]); + header("Location: /"); } public function api_get() { diff --git a/app/models/Refuel.php b/app/models/Refuel.php index 1aaf853..b01ffc8 100644 --- a/app/models/Refuel.php +++ b/app/models/Refuel.php @@ -60,7 +60,7 @@ class Refuel { } } - public function latest_one($user_id, $record_count = 1) { + public function latest_one($vehicle_id, $record_count = 1) { try { $stmt = $this->db->prepare(" SELECT @@ -70,15 +70,16 @@ class Refuel { `r`.`price_per_liter`, `r`.`total_price`, `r`.`mileage`, + `r`.`note`, `r`.`created_at` FROM `refueling_records` AS `r` JOIN `vehicles` AS `v` ON `r`.`vehicle_id` = `v`.`id` - WHERE `r`.`user_id` = ? + WHERE `r`.`vehicle_id` = ? ORDER BY `r`.`created_at` DESC LIMIT ?; "); - $stmt->bind_param("ii", $user_id, $record_count); + $stmt->bind_param("ii", $vehicle_id, $record_count); if ($stmt->execute()) { $result = $stmt->get_result(); $data = $result->fetch_all(MYSQLI_ASSOC); diff --git a/app/models/Vehicle.php b/app/models/Vehicle.php index c22349b..13f214f 100644 --- a/app/models/Vehicle.php +++ b/app/models/Vehicle.php @@ -10,17 +10,18 @@ class Vehicle { public function create($data) { try{ $stmt = $this->db->prepare(" - INSERT INTO vehicles (user_id, name, registration_plate, fuel_type, note, created_at) - VALUES (?, ?, ?, ?, ?, NOW()) + INSERT INTO vehicles (user_id, name, registration_plate, fuel_type, note, is_default, created_at) + VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $stmt->bind_param( - "issss", + "issssi", $data['user_id'], $data['name'], $data['registration_plate'], $data['fuel_type'], $data['note'], + $data['is_default'], ); if ($stmt->execute()) { diff --git a/app/views/dashboard/index.php b/app/views/dashboard/index.php index a51db3b..2998736 100644 --- a/app/views/dashboard/index.php +++ b/app/views/dashboard/index.php @@ -5,8 +5,15 @@

Welcome, !

+ + +
+ Create your first vehicle +
+ +
- Add new refuel record! + Add new refuel record List all vehicles Add new offline refuel record
@@ -25,6 +32,10 @@

,-

Mileage:

km

+ + Note: +

+
@@ -55,6 +66,17 @@ + +
+ Add new refuel record + List all vehicles + Add new offline refuel record +
+
+

Default vehicle doesn't have any refuel record yet.

+

Select another vehicle or create first refuel record.

+
+