getVehiclesByUser($_SESSION['user']['id']); $this->view('refuel/create', [ 'title' => "New refuel record", 'vehicles' => $vehicles, ]); return; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $vehicle_id = $_POST['vehicle'] ?? ''; $fuel_type = $_POST['fuel_type'] ?? ''; $liters = $_POST['liters'] ?? ''; $price_per_liter = $_POST['price_per_liter'] ?? ''; $total_price = $_POST['total_price'] ?? ''; $note = $_POST['note'] ?? ''; $validator = new Validator(); $validator->required('vehicle', $vehicle_id); $validator->required('fuel_type', $fuel_type); $validator->required('liters', $liters); $validator->required('price_per_liter', $price_per_liter); $validator->required('total_price', $total_price); $validator->number('liters', $liters); $validator->number('price_per_liter', $price_per_liter); $validator->number('total_price', $total_price); if (round($liters * $price_per_liter, 2) != $total_price) { $validator->setErrors(["total_price" => "Price calculation is wrong"]); } if($note == "") $note = NULL; if (!$validator->passes()) { $vehicle = new Vehicle(); $vehicles = $vehicle->getVehiclesByUser($_SESSION['user']['id']); $this->view('refuel/create', [ 'error' => 'Please correct the errors below.', 'validationErrors' => $validator->errors() ?: [], 'vehicles' => $vehicles, 'title' => 'New refuel record', ]); return; } $record = new Refuel(); $result = $record->create([ 'user_id' => $_SESSION['user']['id'], 'vehicle_id' => $vehicle_id, 'fuel_type' => $fuel_type, 'note' => $note, 'liters' => $liters, 'price_per_liter' => $price_per_liter, 'total_price' => $total_price, ]); if ($result === true) { $this->redirect('/'); } else { $vehicle = new Vehicle(); $vehicles = $vehicle->getVehiclesByUser($_SESSION['user']['id']); $this->view('refuel/create', [ 'title' => 'New refuel record', 'error' => $result, 'validationErrors' => [], 'vehicles' => $vehicles, ]); } return; } } public function edit() { // Edit refuel record (to be implemented later) } public function delete() { // Delete refuel record (to be implemented later) } }