public function dashboard()
 {
     $user = Auth::user();
     $recent = Change::where('user_id', $user->id)->get();
     $tasks = $user->goats()->orderBy('due_date')->get();
     $dept = $user->departments()->get();
     $recentEmpty = true;
     $tasksEmpty = true;
     foreach ($tasks as $task) {
         if (!$task->complete) {
             $tasksEmpty = false;
         }
         //     if (Carbon\Carbon::parse($task->due_date)->diff(Carbon\Carbon::now())){
         //         $task->soon = 'red';
         //     }
         //     else{
         //         $task->soon = '';
         //     }
     }
     //redo controller
     $inProgress = $user->goats()->where('complete', '0')->count();
     $complete = $user->goats()->where('complete', '1')->count();
     $overdue = 0;
     foreach ($tasks as $task) {
         if (Carbon\Carbon::parse($task->due_date)->lt(Carbon\Carbon::now())) {
             $overdue++;
         }
     }
     $inProgress -= $overdue;
     foreach ($recent as $task) {
         $recentEmpty = false;
         $task->task = Goat::where('id', $task->goat_id)->value('description');
     }
     return view('dashboard', compact('user', 'tasks', 'dept', 'recent', 'recentEmpty', 'tasksEmpty', 'complete', 'inProgress', 'overdue'));
 }
 public function store(BookingRequest $request)
 {
     $booking = array('car_type_id' => $request->car_type_id, 'number_of_passengers' => $request->number_of_passengers, 'pickup_time' => $request->pickup_date_part . ' ' . $request->pickup_time_part, 'ip_info' => $request->ip_info);
     $newBooking = Booking::create($booking);
     flash()->success('Your booking has been created!')->important();
     if (!empty($request->comment1)) {
         //children comment
         $comment1 = array('booking_id' => $newBooking->id, 'comment_type_id' => '1', 'role_id' => '1', 'comment' => $request->comment1);
         Comment::create($comment1);
     }
     if (!empty($request->comment2)) {
         //general comment
         $comment2 = array('booking_id' => $newBooking->id, 'comment_type_id' => '2', 'role_id' => '1', 'comment' => $request->comment2);
         Comment::create($comment2);
     }
     $change = array('booking_id' => $newBooking->id, 'change_type_id' => '4', 'user_id' => Auth::user()->id, 'from' => null, 'to' => null);
     Change::create($change);
     $passenger = User::firstOrNew(['email' => $request->email]);
     $passenger->name = $request->name;
     $passenger->phone = $request->phone;
     $passenger->save();
     $role = array('booking_id' => $newBooking->id, 'role_type_id' => '2', 'user_id' => $passenger->id);
     Role::create($role);
     $price = array('booking_id' => $newBooking->id, 'income_type_id' => '1', 'amount_eur' => $request->price);
     Income::create($price);
     $locationArray = $request->location;
     foreach ($request->address as $order => $address_id) {
         $route_point = null;
         $route_point = array('booking_id' => $newBooking->id, 'location_id' => $locationArray[$order], 'address_id' => $address_id, 'order' => $order);
         Route_point::create($route_point);
     }
     return redirect('bookings');
 }
 public function index(Request $request)
 {
     $query = $request->input();
     $changes = Change::select('*');
     if ($request->input('user')) {
         $changes = $changes->where('user_id', $request->input('user'));
     }
     if ($request->input('start')) {
         $changes = $changes->where('changes.created_at', '>=', $request->input('start'));
     }
     if ($request->input('end')) {
         $changes = $changes->where('changes.created_at', '<=', $request->input('end'));
     }
     if ($request->input('goat')) {
         $changes = $changes->where('goat_id', $request->input('goat'));
     }
     if ($request->input('type')) {
         $changes = $changes->where('change_type', $request->input('type'));
     }
     $changes = $changes->join('goats', 'goats.id', '=', 'changes.goat_id')->select('changes.description as description', 'changes.created_at as created_at', 'changes.change_type as change_type', 'changes.user_id as user_id', 'changes.goat_id as goat_id');
     if ($request->input('dept')) {
         $changes = $changes->where('department_id', $request->input('dept'));
     }
     return view('changelog')->with(['changes' => $changes->orderBy('created_at', 'desc')->paginate(20), 'users' => \App\User::all(), 'depts' => \App\Department::all(), 'query' => $query]);
 }
 public function forms()
 {
     $exitPass = ExitPass::where('status', '!=', 3)->get();
     $leaveForm = Leaves::where('status', '!=', 3)->get();
     $changeSchedule = Change::where('status', '!=', 3)->get();
     $oas = Overtime::where('status', '!=', 3)->get();
     return count($exitPass) + count($leaveForm) + count($changeSchedule) + count($oas);
 }
예제 #5
0
 public function create(Request $req)
 {
     $user = Auth::user();
     $change = new Change();
     if ($req->option === 'Status') {
         $changeType = 'S';
     } else {
         $changeType = 'N';
     }
     if ($req->complete) {
         Goat::where('id', $req->id)->update(['complete' => '1']);
     } else {
         Goat::where('id', $req->id)->update(['complete' => false]);
     }
     if ($req->statusUpdate === '' && $req->complete) {
         $req->statusUpdate = 'Complete';
     }
     $change = Change::create(['change_type' => $changeType, 'description' => $req->statusUpdate, 'goat_id' => $req->id, 'user_id' => $user->id]);
     return back();
 }
예제 #6
0
 public function __construct()
 {
     /*Licznik zmian, który zmienia się po 24h od dodania zmiany*/
     $date = Carbon::now();
     $date->modify('-24 hours');
     $formatted_date = $date->format('Y-m-d H:i:s');
     $countchange = Change::where('created_at', '>', $formatted_date)->count();
     /*Licznik graczy Online na serwerze*/
     $countonline = Player::where('online', '=', 1)->count();
     /*Licznik niedoczytanych wiadomości prywatnych*/
     $notread1 = Message::where('to_user_id', \Auth::id())->where('read', 0)->count();
     if (\Auth::check()) {
         Cache::remember('users', 5, function () {
             return User::where('id', \Auth::id())->update(['last_activity' => Carbon::now()]);
         });
     }
     /*Licznik i skrypt usuwający i nadający banicję za 4 ostrzeżenia na stronie*/
     $countcautions = Caution::where('user_id', \Auth::id())->count();
     if (!\Auth::guest() && $countcautions == 4) {
         $user = User::where('id', \Auth::id())->first();
         $g = array(4);
         $user->update(['banned' => 'Zbanowany za 4 ostrzeżenia na stronie']);
         $user->group()->sync($g);
     }
     $deleteCaution = Caution::where('user_id', \Auth::id())->where('created_at', '<=', Carbon::now()->subDays(14));
     $deleteCaution->delete();
     $section = Section::lists('name', 'id');
     $lives = Live::latest('created_at')->take(5)->get();
     if (!\Auth::guest()) {
         $notifications = \Auth::user()->notification()->latest('created_at')->take(10)->get();
         View::share('notifications', $notifications);
     }
     View::share('countchange', $countchange);
     View::share('countonline', $countonline);
     View::share('notread1', $notread1);
     View::share('section', $section);
     View::share('lives', $lives);
     $this->middleware('banned', ['except' => ['auth']]);
 }
 public function store(ReservationRequest $request)
 {
     //booking
     $booking = array('car_type_id' => $request->car_type_id, 'number_of_passengers' => $request->number_of_passengers, 'pickup_time' => $request->pickup_date_part . ' ' . $request->pickup_time_part);
     $newBooking = Booking::create($booking);
     // main passenger
     //user (main passenger)
     $mainpassenger = new User();
     $mainpassenger->name = $request->name;
     $mainpassenger->phone = $request->phone;
     $mainpassenger->save();
     //role (main passenger)
     $role = array('booking_id' => $newBooking->id, 'role_type_id' => '2', 'user_id' => $mainpassenger->id);
     Role::create($role);
     //email receiver
     //user (email receiver)
     $emailreceiver = User::firstOrCreate(['email' => $request->email]);
     //role (email receiver)
     $role = array('booking_id' => $newBooking->id, 'role_type_id' => '5', 'user_id' => $emailreceiver->id);
     Role::create($role);
     //route points
     //start
     $route_point = array('booking_id' => $newBooking->id, 'location_id' => $request->start_location_id, 'sub_location_id' => $request->start_sub_location_id, 'description' => $request->start_description, 'order' => 1);
     Route_point::create($route_point);
     //via points
     $descriptionArray = $request->description;
     //if via array is not empty
     if (!empty($request->location_id)) {
         foreach ($request->location_id as $order => $location_id) {
             $route_point = null;
             $route_point = array('booking_id' => $newBooking->id, 'location_id' => $location_id, 'description' => $descriptionArray[$order], 'order' => $order);
             Route_point::create($route_point);
         }
     }
     //end
     $route_point = null;
     $route_point = array('booking_id' => $newBooking->id, 'location_id' => $request->end_location_id, 'description' => $request->end_description, 'order' => 99);
     Route_point::create($route_point);
     //general comment
     if (!empty($request->comment)) {
         $comment = array('booking_id' => $newBooking->id, 'comment_type_id' => '2', 'role_id' => '1', 'comment' => $request->comment);
         Comment::create($comment);
     }
     //price
     $price = Income_list::where('car_type_id', $request->car_type_id)->where('direction_id', $request->direction_id)->where('income_type_id', 1)->whereNull('user_id')->first();
     $income = array('booking_id' => $newBooking->id, 'income_type_id' => '1', 'amount_eur' => $price->amount_eur);
     Income::create($income);
     //cashflow
     if ($request->payment_type_id == 3) {
         $receiver_id = 1;
         //receiver is driver
         $due_date = $newBooking->pickup_time;
         //on the day of travel
     } else {
         $receiver_id = 4;
         //receiver is us (admin)
         $pickup_time = new Carbon($newBooking->pickup_time);
         $due_date = $pickup_time->subHours(48);
         //48 hours before trip
     }
     $cashflow = array('booking_id' => $newBooking->id, 'payer_id' => 2, 'receiver_id' => $receiver_id, 'payment_type_id' => $request->payment_type_id, 'payment_status_id' => 1, 'amount_eur' => $price->amount_eur, 'due_date' => $due_date);
     Cashflow::create($cashflow);
     //log reservation creation
     $change = array('booking_id' => $newBooking->id, 'change_type_id' => '4', 'user_id' => 1, 'from' => null, 'to' => null);
     Change::create($change);
     //send email
     Mail::queue('emails.reservation', ['passenger' => $mainpassenger], function ($message) use($emailreceiver) {
         $message->from('*****@*****.**', 'Transfer Praha')->to($emailreceiver->email, null)->subject('Booking confirmation');
     });
     flash()->success('Your booking has been created!')->important();
     return redirect('reservation/confirmation');
 }
 public function editChange(array $data, $id)
 {
     $dateFromShift = strtotime($data['dateFromShift']);
     $dateToShift = strtotime($data['dateToShift']);
     $dateToday = strtotime(date("Y-m-d"));
     if ($dateFromShift > $dateToday) {
         if ($dateToShift < $dateFromShift) {
             return false;
         } else {
             return Change::where('id', $id)->update(array('shift_id' => $data['shiftSchedule'], 'dateFromShift' => $data['dateFromShift'], 'dateToShift' => $data['dateToShift'], 'permission_id1' => $data['supervisor'], 'permission_id2' => $data['projectManager'], 'permission_id3' => $data['permissioner'], 'permission_id4' => $data['HR'], 'purpose' => $data['reasonforChangeSchedule']));
         }
     } else {
         return false;
     }
 }
예제 #9
0
 public function update_driver(Request $request)
 {
     /*
     Delete existing driver (role_type_id 1)
     */
     Role::where('booking_id', $request->booking_id)->where('role_type_id', 1)->delete();
     /*
     Add new role/user
     */
     $role = new Role();
     $role->booking_id = $request->booking_id;
     $role->role_type_id = 1;
     $role->user_id = $request->user_id;
     $role->save();
     /*
     write to changes
     */
     $user_name = User::where('id', $request->user_id)->first()->name;
     $change = array('booking_id' => $request->booking_id, 'change_type_id' => 1, 'user_id' => Auth::user()->id, 'from' => null, 'to' => $user_name);
     Change::create($change);
     return $change;
 }
예제 #10
0
 public function index()
 {
     $showchange = Change::latest('id')->paginate(20);
     return view('changes.index', compact('showchange'));
 }
 public function editChange(array $data, $id)
 {
     $dateUpdate = date("Y-m-d H:i:s");
     $change = Change::where('id', $id)->update(array('permission_id1' => $data['supervisor'], 'permission_id2' => $data['projectManager'], 'permission_id3' => $data['permissioner'], 'permission_id4' => $data['HR'], 'purpose' => $data['reasonforChangeSchedule'], 'updated_at' => $dateUpdate));
     if ($change) {
         return DateTimeChange::where('change_id', $id)->update(array('dateFromEffectivity' => $data['dateFromEffectivity'], 'timeFromEffectivity' => $data['timeFromEffectivity'], 'dateToEffectivity' => $data['dateToEffectivity'], 'timeToEffectivity' => $data['timeToEffectivity'], 'dateFromShift' => $data['dateFromShift'], 'timeFromShift' => $data['timeFromShift'], 'dateToShift' => $data['dateToShift'], 'timeToShift' => $data['timeToShift'], 'updated_at' => $dateUpdate));
     } else {
         return false;
     }
 }
 public function postchangeSchedule(Request $request)
 {
     $rules = array('dateFromShift' => 'required', 'dateToShift' => 'required', 'shiftSchedule' => 'required', 'reasonforChangeSchedule' => 'required', 'supervisor' => 'required', 'projectManager' => 'required', 'HR' => 'required');
     $validator = Validator::make($request->all(), $rules);
     if ($validator->fails()) {
         $this->throwValidationException($request, $validator);
     }
     $department = Positions::find(Auth::user()->position_id)->departments;
     $dateFromShift = strtotime($request->input('dateFromShift'));
     $dateToShift = strtotime($request->input('dateToShift'));
     $dateToday = strtotime(date("Y-m-d"));
     if ($dateFromShift > $dateToday) {
         if ($dateToShift < $dateFromShift) {
             $status = "Please Double Check The Dates";
         } else {
             $change = new Change(array('user_id' => Auth::user()->id, 'shift_id' => $request->input('shiftSchedule'), 'dateFromShift' => $request->input('dateFromShift'), 'dateToShift' => $request->input('dateToShift'), 'department_id' => $department->id, 'permission_id1' => $request->input('supervisor'), 'permission_id2' => $request->input('projectManager'), 'permission_id3' => $request->input('permissioner'), 'permission_id4' => $request->input('HR'), 'purpose' => $request->input('reasonforChangeSchedule')));
             $result = $change->save();
             if ($result) {
                 $status = "Success!";
             } else {
                 $status = "Failed!";
             }
         }
     } else {
         $status = "Please Double Check the Dates";
     }
     return redirect('inbox')->with('status', $status);
 }