Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Commit

Permalink
add fixes and add vehicles form
Browse files Browse the repository at this point in the history
  • Loading branch information
FemiNoviaLina committed May 23, 2022
1 parent 0fe8498 commit 06eaea8
Show file tree
Hide file tree
Showing 14 changed files with 321 additions and 140 deletions.
48 changes: 47 additions & 1 deletion app/Http/Controllers/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public function getVehiclesDashboardMotor()
$vehicles = Vehicle::where('type', '=', 'motor')
->take(10)
->get();
return view('dashboard.vehicles', ['type' => 'Motorcycles', 'vehicles' => $vehicles]);
return view('dashboard.vehicles', ['type' => 'Motor', 'vehicles' => $vehicles]);
}

public function getOrdersDashboard()
Expand All @@ -41,6 +41,7 @@ public function getOrdersDashboard()
'orders.dropoff_date', 'orders.dropoff_time', 'orders.order_status', 'orders.total_price',
'users.id as user_id', 'users.name as user_name', 'users.email',
'vehicles.name as vehicle_name', 'vehicles.id as vehicle_id')
->orderBy('orders.id', 'desc')
->take($take)
->get();

Expand All @@ -62,4 +63,49 @@ public function rejectOrder($id) {

return redirect()->route('orders-dashboard');
}

public function doneVehicle() {
$id = request()->input('order_id');
$order = Order::find($id);
$order->order_status = 'COMPLETED';
$order->save();

return redirect()->route('orders-dashboard');
}

public function getNewCarForm() {
$type = 'Car';

return view('dashboard.add-vehicle-form', ['type' => $type]);
}

public function getNewMotorForm() {
$type = 'Motor';

return view('dashboard.add-vehicle-form', ['type' => $type]);
}

public function addVehicle($type) {
$request = request()->input();

$photo_filename = $request['name']. '.' . request()->file('photo')->extension();
$photo = request()->file('photo')->storeAs('images', $photo_filename, 'local');

$data = [
'name' => $request['name'],
'brand' => $request['brand'],
'type' => $type,
'price' => $request['price'],
'available_unit' => $request['available_unit'],
'photo' => $photo_filename,
'fuel' => $request['fuel'],
'transmission' => $request['transmission'],
'cc' => $request['cc'],
'year' => $request['year'],
];

$vehicle = Vehicle::create($data);

return redirect()->route('vehicles-dashboard-'.$type);
}
}
36 changes: 18 additions & 18 deletions app/Http/Controllers/RentController.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,23 +31,18 @@ public function findVehicles() {

$vehicles = Vehicle::leftJoin('orders', 'vehicles.id', '=', 'orders.vehicle_id')
->select("vehicles.id", "vehicles.name", "vehicles.brand", "vehicles.transmission", "vehicles.cc", "vehicles.fuel", "vehicles.price", "vehicles.type", "vehicles.photo", "vehicles.year")
->where("type", "=", $type)
->whereNull("orders.pickup_date")
->when($pickup_date && $dropoff_date, function($query) use ($pickup_date, $dropoff_date) {
$query->orWhere("orders.dropoff_date", "<", $pickup_date)
->orWhere("orders.pickup_date", ">", $dropoff_date);
})
->when($brand != 'All', function($query, $brand) {
$query->where('vehicles.brand', $brand);
})
->when($transmission != 'All', function($query, $transmission) {
$query->where('vehicles.transmission', $transmission);
->where("vehicles.type", '=' , strtolower($type))
->when($brand != 'All', function($query) use ($brand) {
$query->Where('vehicles.brand', '=', $brand);
})
->when($transmission != 'All', function($query) use ($transmission) {
$query->Where('vehicles.transmission', '=', $transmission);
})
->groupBy("vehicles.id")
->having('vehicles.available_unit', '>', DB::raw('count(orders.id)'))
->having('vehicles.available_unit', '>', DB::raw("count(orders.id) FILTER(WHERE ORDERS.DROPOFF_DATE >= '$dropoff_date' AND ORDERS.PICKUP_DATE >= '$pickup_date' AND ORDERS.ORDER_STATUS NOT IN ('DONE', 'CANCELLED'))"))
->get();

return redirect()->route('rent-'. strtolower($type). 's')->with(['vehicles' => $vehicles, 'pickup_date' => $pickup_date, 'dropoff_date' => $dropoff_date]);
return redirect()->route('rent-'. strtolower($type). 's')->with(['vehicles' => $vehicles, 'pickup_date' => $pickup_date, 'dropoff_date' => $dropoff_date, 'transmission' => $transmission, 'brand' => $brand]);
}

public function getFindMotor()
Expand All @@ -66,14 +61,14 @@ public function getRentCars()
{
if(!session('vehicles')) return redirect()->route(('find-car'));

return view('vehicles-list', ['vehicles' => session('vehicles'), 'pickup_date' => session('pickup_date'), 'dropoff_date' => session('dropoff_date'), 'type' => 'Car']);
return view('vehicles-list', ['vehicles' => session('vehicles'), 'pickup_date' => session('pickup_date'), 'dropoff_date' => session('dropoff_date'), 'type' => 'Car', 'transmission' => session('transmission'), 'brand' => session('brand')]);
}

public function getRentMotors()
{
if(session('vehicles') == null) return redirect()->route(('find-motor'));

return view('vehicles-list', ['vehicles' => session('vehicles'), 'pickup_date' => session('pickup_date'), 'dropoff_date' => session('dropoff_date'), 'type' => 'Motor']);
return view('vehicles-list', ['vehicles' => session('vehicles'), 'pickup_date' => session('pickup_date'), 'dropoff_date' => session('dropoff_date'), 'type' => 'Motor', 'transmission' => session('transmission'), 'brand' => session('brand')]);
}

public function rentVehicle($type, $id)
Expand All @@ -94,7 +89,7 @@ public function rentVehicle($type, $id)
$pickup_day = new DateTime($request['dropoff_date']);
$dropoff_day = new DateTime($request['pickup_date']);
$rent_days = $pickup_day->diff($dropoff_day)->days;
$rent_price = $rent_days * $vehicle->price;
$rent_price = ($rent_days * $vehicle->price) + 4500;

$data = [
'vehicle_id' => $id,
Expand Down Expand Up @@ -126,15 +121,20 @@ public function getUserOrders()
{
$orders = Order::join('vehicles', 'orders.vehicle_id', '=', 'vehicles.id')
->select("orders.id", "orders.order_status", "orders.created_at", "vehicles.name")
->where('user_id', '=', auth()->user()->id)->get();
->where('user_id', '=', auth()->user()->id)
->orderBy('orders.created_at', 'desc')
->get();

return view('order-history', ['orders' => $orders]);
}

public function getPaymentDetails($id)
{
$method = request()->input('method') ? request()->input('method') : 'BCA Transfer';
$order = Order::find($id);
$order = Order::join('vehicles', 'orders.vehicle_id', '=', 'vehicles.id')
->select("orders.id", "orders.order_status", "orders.created_at", "vehicles.name", "orders.total_price", "orders.transaction_id")
->where('orders.id', '=', $id)
->first();

if($order->transaction_id) {
return redirect()->route('confirm-payment', [$order->id])->with('order', $order);
Expand Down
11 changes: 0 additions & 11 deletions app/Models/Brand.php

This file was deleted.

4 changes: 4 additions & 0 deletions app/Models/Vehicle.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,8 @@
class Vehicle extends Model
{
use HasFactory;

protected $fillable = [
'name', 'type', 'brand', 'price', 'photo', 'available_unit', 'cc', 'fuel', 'year', 'transmission'
];
}
Loading

0 comments on commit 06eaea8

Please sign in to comment.