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 @@
= $data['latest_record']['total_price'] ?>,- = $data['latest_record']['mileage'] ?> km = $data['latest_record']['note'] ?>Welcome, = htmlspecialchars($_SESSION['user']['username']) ?>!
+
+
+
+
+
@@ -25,6 +32,10 @@
Default vehicle = $data['default_car']['name'] ?> doesn't have any refuel record yet.
+Select another vehicle or create first refuel record.
+