Filip Rojek
21c2f4598b
All checks were successful
Build and Deploy Zola Website / build_and_deploy (push) Successful in 13s
86 lines
3.1 KiB
PHP
86 lines
3.1 KiB
PHP
<?php
|
|
|
|
class RefuelController extends Controller {
|
|
public function create() {
|
|
if($_SERVER['REQUEST_METHOD'] === 'GET'){
|
|
$vehicle = new Vehicle();
|
|
$vehicles = $vehicle->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)
|
|
}
|
|
}
|