Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#1
Browse files Browse the repository at this point in the history
vehical bookings  changed, tracking of approver user, approval time finished, update of bookings fulfilled,  assigned roles for users,  register new user as signed in user, update of users,  approving pending user and something else fulfilled.
div100 committed Mar 4, 2019
1 parent dd597bc commit 7572721
Showing 35 changed files with 2,098 additions and 598 deletions.
10 changes: 7 additions & 3 deletions app/Http/Controllers/Auth/RegisterController.php
Original file line number Diff line number Diff line change
@@ -48,14 +48,18 @@ public function __construct()
*/
protected function validator(array $data)
{
$passRegexMessage = [
'password.regex'=>' Password must has 8 letters, at least one letter, one number and one special charecter ',
'phone.regex'=>'phone number must start with 07 and not be greater than 10 numbers'];
return Validator::make($data, [
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:6', 'confirmed'],
'password' => ['required', 'string', 'min:6', 'confirmed','regex:/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/'],
'position' =>['required','string','min:4'],
'directorate'=>['required','string','min:4'],
'phone' =>['required','regex:/^07[0-9]{8}/'], //
]);
'phone' =>['required','regex:/^07[0-9]{8}/'],

],$passRegexMessage);
}

/**
53 changes: 49 additions & 4 deletions app/Http/Controllers/HomeController.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
<?php

namespace App\Http\Controllers;

use DB;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use Illuminate\Http\Request;


use app\User;
use Spatie\Permission\Traits\HasRoles;
class HomeController extends Controller
{
use HasRoles;
/**
* Create a new controller instance.
*
@@ -24,6 +27,48 @@ public function __construct()
*/
public function index()
{
return view('home');

Role::firstOrCreate(['name' => 'writer']);
Role::firstOrCreate(['name' => 'normal user']);
Role::firstOrCreate(['name' => 'approver']);
Role::firstOrCreate(['name' => 'editor']);
Role::firstOrCreate(['name' => 'remover']);
Role::firstOrCreate(['name' => 'admin']);

Permission::firstOrCreate(['name'=>'edit']);
Permission::firstOrCreate(['name'=>'insert']);
Permission::firstOrCreate(['name'=>'delete']);
Permission::firstOrCreate(['name'=>'approve']);
Permission::firstOrCreate(['name'=>'book vehical']);

$writerRole = Role::findByName('writer');
$approveRole = Role::findByName('approver');
$editorRole = Role::findByName('editor');
$removerRole = Role::findByName('remover');
$nomal_user_role = Role::findByName('normal user');

$insertPermission = Permission::findByName('insert');
$editPermission = Permission::findByName('edit');
$approvePermission = Permission::findByName('approve');
$removePermission = Permission::findByName('delete');
$book_vehicalPermission = Permission::findByName('book vehical');

$adminRole = Role::findByName('admin');
$adminRole->syncPermissions($insertPermission,$editPermission,$approvePermission,$removePermission,$book_vehicalPermission);

$writerRole->givePermissionTo($insertPermission);
$editorRole->givePermissionTo($editPermission);
$nomal_user_role->givePermissionTo($book_vehicalPermission);
// $user = User::find(1);
// $user->assignRole('admin');
// auth()->user()->assignRole('writer');
// $user->givePermissionTo('delete');
// $permissions = $user->getDirectPermissions();
// $permissions;
// $users = User::role('writer')->get(); // Returns only users with the role 'writer'
// return $users;
// $user->givePermissionTo('insert');

return view('home');
}
}
42 changes: 0 additions & 42 deletions app/Http/Controllers/bookVehicalController.php

This file was deleted.

208 changes: 166 additions & 42 deletions app/Http/Controllers/bookingController.php
Original file line number Diff line number Diff line change
@@ -3,9 +3,12 @@
namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\booking;
use DB;
use Response;
use illuminate\Http\QueryException;
use Validator;
class bookingController extends Controller
{

@@ -16,18 +19,33 @@ class bookingController extends Controller
*/
public function index()
{
$rows = DB::table('bookVehicals')->get();
$countOfRows = DB::table('bookVehicals')->count();
// return view('bookings/index')->with('rows',$rows);

$bookingsData = Booking::all();
return view('/bookings/index')->with(['bookingsData'=>$bookingsData,'rows'=>$rows,'countOfRows'=>$countOfRows]);
$approvedCount = DB::table('bookings')->where('approval',true)->count();
$rejectedCount = DB::table('bookings')->where('approval',false)->wherenotnull('approver_description')->count();
$pendingsCount = DB::table('bookings')->wherenull('approval')->wherenull('approver_description')->count();
$bookingsData = Booking::orderByDesc('approval')->get();
return view('/bookings/index')->with(['bookingsData'=>$bookingsData,'approvedCount'=>$approvedCount
,'rejectedCount'=>$rejectedCount,'pendingsCount'=>$pendingsCount]);

}
public function pendings(){
$freeCars = DB::select(DB::raw("SELECT distinct bookings.plate_no,cars.type,cars.plate_no,cars.driver_id FROM
cars LEFT JOIN bookings ON bookings.plate_no = cars.plate_no WHERE bookings.plate_no IS NULL and cars.status=true
OR approval_return_time < now()"));

$freeDrivers = DB::select(DB::raw("SELECT distinct bookings.driver_id,drivers.phone_no,drivers.driver_id,
drivers.name FROM drivers LEFT JOIN bookings ON bookings.driver_id = drivers.driver_id WHERE
bookings.driver_id IS NULL and drivers.status = TRUE OR approval_return_time < now()"));

$countPendings = DB::table('bookings')->where("approval",null)->count();
$pendings = DB::table('bookings')->where('approval',null)->get();

return view('/bookings/pendings')->with(['pendings'=>$pendings,"countPendings"=>$countPendings,
'freeDrivers'=>$freeDrivers,'freeCars'=>$freeCars]);
}
public function reject(Request $request){
$insertQuery = DB::table('bookings')->insert(['pickup_time'=>$request->input('pickup_time'),
'return_time'=>$request->input('return_time'),'count'=>$request->input('count'),
'description'=>$request->input('description'),'destination'=>$request->input('destination'),'approval'=>false,'driver_id'=>null,'car_id'=>null,
'description'=>$request->input('description'),'destination'=>$request->input('destination'),'approval'=>false,'driver_id'=>null,'plate_no'=>null,
'user_id'=>$request->input('user_id')]);

}
@@ -49,48 +67,43 @@ public function create()
*/
public function store(Request $request)
{
$bookRows = DB::table('bookVehicals')->get();

$pickupt_time = $request->input('pickup_time');
$user_id =$request->input('user_id');
$pickup_time = $request->input('pickup_time');
$return_time = $request->input('return_time');
$count = $request->input('count');
$description = $request->input('description');
$destination = $request->input('destination');
$approval = $request->input('approval');
$driver_id = $request->input('driver_id');
$car_id = $request->input('car_id');
$user_id = $request->input('user_id');

// return $pickupt_time . " " .$return_time . " " .$count . " " .$description . " " .$destination . " " .$driver_id . " " .
// $car_id . " " .$user_id;

try{

// $insertQuery = Booking::create($request->all());
if($request->input('approval')=='false' OR $request->input('approval') === false){
$insertQuery = DB::table('bookings')->insert(['pickup_time'=>$pickupt_time,'return_time'=>$return_time,'count'=>$count,
'description'=>$description,'destination'=>$destination,'approval'=>$approval,'driver_id'=>null,'car_id'=>null,
'user_id'=>$user_id]);
return "Please select true for approval field";
}
else{
if(!($car_id)||!($driver_id) || $car_id ==null ||$driver_id ==null){return "driver ID and car ID is required";}
$insertQuery = DB::table('bookings')->insert(['pickup_time'=>$pickupt_time,'return_time'=>$return_time,'count'=>$count,
'description'=>$description,'destination'=>$destination,'approval'=>$approval,'driver_id'=>$driver_id,'car_id'=>$car_id,
'user_id'=>$user_id]);
$del = DB::table('bookVehicals')->where('pickup_time',$pickupt_time)->where('return_time',$return_time)->where('count',$count)->
where('destination',$destination)->where('description',$description)->delete();

return "Approved!" . " driver ID ".$driver_id . " and Car ID: " .$car_id;
$destination = $request->input('destination');
$rules = array('pickup_time'=>'date|required',
'return_time'=>'after:pickup_time|date|required',
'count:numeric|min:1',
'description:string|min:10',
'destination:string|min:5');
$validator = Validator::make($request->all(),$rules);
if($validator->fails()){
return $validator->errors()->toArray();
}
else{
try{

DB::statement(DB::raw("INSERT INTO bookings (booking_id,pickup_time,return_time,count,description,destination
,user_id,book_created_time,book_updated_time)
values (
DEFAULT,'$pickup_time','$return_time',$count,'$description','$destination',$user_id,now(),now()
)
"));

return "YOU HAVE SUCSSESSFULLY BOOKED VEHICAL";
}catch(QueryException $e){
return $e->getMessage();
}

}
catch(QueryException $ex){
print_r($ex->getMessage());

}



}


/**
* Display the specified resource.
@@ -111,7 +124,22 @@ public function show($id)
*/
public function edit($id)
{
//
$bookings = Booking::find($id);
$freeCars = DB::select(DB::raw("SELECT distinct bookings.plate_no,cars.type,cars.plate_no,cars.driver_id FROM
cars LEFT JOIN bookings ON bookings.plate_no = cars.plate_no WHERE bookings.plate_no IS NULL and cars.status=true
OR approval_return_time < now()"));

$freeDrivers = DB::select(DB::raw("SELECT distinct bookings.driver_id,drivers.phone_no,drivers.driver_id,
drivers.name FROM drivers LEFT JOIN bookings ON bookings.driver_id = drivers.driver_id WHERE
bookings.driver_id IS NULL and drivers.status = TRUE OR approval_return_time < now()"));

$countPendings = DB::table('bookings')->where("approval",null)->count();
$pendings = DB::table('bookings')->where('approval',null)->get();


if (\Illuminate\Support\Facades\Request::ajax()) {

return Response::json(array('bookings'=>$bookings,'freeDrivers'=>$freeDrivers,'freeCars'=>$freeCars));}
}

/**
@@ -124,6 +152,76 @@ public function edit($id)
public function update(Request $request, $id)
{
//

$user_id =$request->input('user_id');

$booking_id = $id;
$approval = $request->input('approval');
$approval_pickup_time = $request->input('approval_pickup_time');
$approval_return_time = $request->input('approval_return_time');
$driver_id = $request->input('driver_id');
$plate_no = $request->input('plate_no');
$approver_description = $request->input('approver_description');


if($approval===false||$approval==false||$approval=="false"){
try{
DB::statement(DB::raw("update bookings set approval = $approval, approver_description =
'$approver_description',approver_user_id=$user_id where booking_id = $id"));
return "you have rejected";

} catch(QueryException $e){
return $e->getMessage();
}

}else{

if($approval == true || $approval =="true"|| $approval ===true){
$rules = array(
'approval_pickup_time' => 'required|date',
'approval_return_time' => 'required|date|after:approval_pickup_time',
'driver_id' => 'required',
'plate_no' => 'required',
);
$validator = Validator::make($request->all(),$rules);
if($validator->fails()){
return $validator->errors()->toArray();
}
else{
}

try{
DB::statement(DB::raw("update bookings set plate_no=$plate_no, approval =$approval,approval_pickup_time='$approval_pickup_time'
,approval_return_time='$approval_return_time',driver_id=$driver_id,approver_description = '$approver_description',approver_user_id=$user_id,
created_at=now(),updated_at=now() where
booking_id=$id"));
return "successfully approved";
}
catch(QueryException $e){
return $ex->getMessage();
}
}
}
// if($approval){
// return "Null Value";
// }
// if(empty($request->input('approval')) || $request->input('approval')==null || $request->input('approval')==""
// || $request->input('approval')=="null"){
// $approval_pickup_time = null; $approval_return_time = null; $driver_id = null; $car_id =null;$approver_description =null;
// $rules = array("approval_pickup_time"=>"required|date_format:Y-m-d H:i:s",
// "approval_return_time"=>"date_format:Y-m-d H:i:s");
// return $request->all();
// die();
// }
// return $approval;
// $validator = Validator::make($request->all(), $rules);
// if($validator->fails()){
// return $validator->errors()->toArray();
// }
// else{
// return "There is no Error";
// }

}

/**
@@ -136,4 +234,30 @@ public function destroy($id)
{
//
}
public function freeCar(Request $request){
$pickup_time = $request->input('pickup_time');

$pick_time_plate= DB::select(DB::raw("SELECT plate_no FROM bookings where
approval_return_time < '$pickup_time'"));
$x=0;
foreach ($pick_time_plate as $value) {
$freeCar[$x] = $value->plate_no;
$x++;
}
return $pick_time_plate;

}
public function freeDriver(Request $request){
$pickup_time = $request->input('pickup_time');


$pick_time_driver= DB::select(DB::raw("SELECT driver_id FROM bookings where
approval_return_time < '$pickup_time'"));
$x=0;
foreach ($pick_time_driver as $value) {
$freeDriver[$x] = $value->driver_id;
$x++;
}
return $pick_time_driver;
}
}
Loading

0 comments on commit 7572721

Please sign in to comment.