Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_DATABASE=db_rentcar
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
Expand Down
22 changes: 22 additions & 0 deletions app/Booking.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Booking extends Model
{
//
protected $fillable = [
'booking_code',
'order_date',
'rental_date',
'return_date',
'price',
'status',
'fine',
'car_id',
'employee_id',
'client_id',
];
}
22 changes: 22 additions & 0 deletions app/Car.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Car extends Model
{
//
protected $fillable = [
'name',
'year',
'license_plate',
'price',
'type',
'brand_id'
];

public function brand(){
return $this->belongsTo('App\CarBrand','brand_id');
}
}
17 changes: 17 additions & 0 deletions app/CarBrand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class CarBrand extends Model
{
//
protected $fillable = [
'name'
];

public function car(){
return $this->hasMany('App\Car','brand_id');
}
}
19 changes: 19 additions & 0 deletions app/Client.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Client extends Model
{
//
protected $fillable =[
'nik',
'name',
'dob',
'phone',
'address',
'gender'
];

}
2 changes: 2 additions & 0 deletions app/Http/Controllers/Auth/RegisterController.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ protected function validator(array $data)
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'address' => 'required|string|max:255',
]);
}

Expand All @@ -66,6 +67,7 @@ protected function create(array $data)
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'address' => $data['address'],
'password' => Hash::make($data['password']),
]);
}
Expand Down
144 changes: 144 additions & 0 deletions app/Http/Controllers/BookingController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Booking;
use App\Car;
use App\Client;
use App\User;

class BookingController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$booking = new Booking;
$datas = $booking->all();
return view('pages.booking.index')->with('datas', $datas);
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data['datas'] = Car::get();
$data['datas'] = Client::get();
return view('pages.booking.create');
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'booking_code' => 'required',
'order_date' => 'required',
'rental_date' => 'required',
'return_date' => 'required',
'price' => 'required',
'status' => 'required',
'fine' => 'required',
'car_id' => 'required',
'client_id' => 'required'
]);

$insert = [
'booking_code'=> $request->booking_code,
'order_date'=> $request->order_date,
'rental_date'=> $request->rental_date,
'return_date'=> $request->return_date,
'price'=> $request->price,
'status'=> $request->status,
'fine'=> $request->fine,
'car_id'=> $request->car_id,
'client_id'=> $request->client_id
];

$datas = Booking::create($insert);
return redirect()->route('booking.index');
}

/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$booking = new Booking;
$oldBooking = $booking->where('id', $id)->first();
return view('pages.booking.edit')->with('booking', $oldBooking);
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$this->validate($request, [
'booking_code' => 'required',
'order_date' => 'required',
'rental_date' => 'required',
'return_date' => 'required',
'price' => 'required',
'status' => 'required',
'fine' => 'required',
'car_id' => 'required',
'client_id' => 'required'
]);

$insert = [
'booking_code'=> $request->booking_code,
'order_date'=> $request->order_date,
'rental_date'=> $request->rental_date,
'return_date'=> $request->return_date,
'price'=> $request->price,
'status'=> $request->status,
'fine'=> $request->fine,
'car_id'=> $request->car_id,
'client_id'=> $request->client_id
];

$datas = Booking::where('id', $id)->update($insert);
return redirect()->route('booking.index');
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
115 changes: 115 additions & 0 deletions app/Http/Controllers/CarBrandController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\CarBrand;

class CarBrandController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data['datas'] = CarBrand::get();
return view('pages.brand.index',$data);
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('pages.brand.create');
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//

$this->validate($request,[
'name' => 'required|min:3'
]);

$req = [
'name' => $request->name,
];

$data = CarBrand::create($req);

return redirect()->route('brand.index');
}

/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
$data['brand'] = CarBrand::find($id);
return view('pages.brand.edit',$data);
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
$this->validate($request,[
'name' => 'required|min:3'
]);

$req = [
'name' => $request->name,
];

$data = CarBrand::where('id',$id)->update($req);

return redirect()->route('brand.index');
}

/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
CarBrand::where('id',$id)->delete();
return response()->json($id);
}
}
Loading