Example #1
0
 public function testMethod()
 {
     $pickupDateReminder = config('app.pickup_reminder_days_to_remind');
     $today = Carbon::today('America/Halifax');
     $twoDaysFromNow = Carbon::today('America/Halifax')->addDay($pickupDateReminder);
     $startWorkOrders = WorkOrder::whereDate('start_date', '=', $today)->get();
     $startCount = $startWorkOrders->count();
     $endWorkOrders = WorkOrder::whereDate('end_date', '=', $twoDaysFromNow)->with('product', 'customer')->get();
     $endCount = $endWorkOrders->count();
     $endDueDate = $twoDaysFromNow->toFormattedDateString();
     $viewData = ['todaysDate' => $today->toFormattedDateString(), 'startCount' => $startCount, 'endCount' => $endCount, 'startWorkOrders' => $startWorkOrders, 'endWorkOrders' => $endWorkOrders, 'endDueDate' => $endDueDate, 'pickupDateReminder' => $pickupDateReminder];
     $to = config('app.pickup_reminder_email_to');
     $from = config('app.pickup_reminder_email_from');
     $subject = config('app.pickup_reminder_email_subject');
     $view = config('app.pickup_reminder_email_view');
     Mail::send($view, ['viewdata' => $viewData], function ($message) use($viewData, $to, $from, $subject) {
         $message->from($from);
         $message->to($to);
         $message->subject($subject);
     });
     /*
     return view(config('app.pickup_reminder_email_view'))->with(['todaysDate' => $today->toFormattedDateString(),
                                         'startCount' => $startCount,
                                         'endCount' => $endCount,
                                         'startWorkOrders' => $startWorkOrders,
                                         'endWorkOrders' => $endWorkOrders,
                                         'endDueDate' => $endDueDate,
                                         'pickupDateReminder' => $pickupDateReminder
     
     ]);
     */
     echo 'Done';
 }
Example #2
0
 public function getWeekWorkOrderReport()
 {
     $startOfWeek = Carbon::today('America/Halifax')->startOfWeek();
     $endOfWeek = Carbon::today('America/Halifax')->endOfWeek();
     /*
     $results = WorkOrder::whereDate('start_date', '>=', $startOfWeek)
                             ->whereDate('start_date', '<=', $endOfWeek)
                             ->where('completed', 0)
                             ->with(['product', 'customer', 'purchaseOrder'])
                             ->orderBy('start_date', 'asc')
                             ->get();
     */
     $results = WorkOrder::whereDate('start_date', '<=', $endOfWeek)->where('completed', 0)->with(['product', 'customer', 'purchaseOrder', 'workOrderProgress'])->orderBy('end_date', 'asc')->get();
     return $results;
 }
Example #3
0
 public function finalizePurchaseOrder($poId)
 {
     $returnData = [];
     try {
         \DB::beginTransaction();
         // Mark completed field for all work orders for this PO
         WorkOrder::where('purchase_order_id', $poId)->update(['completed' => 1]);
         // Get all work orders for this PO
         $workOrderIds = WorkOrder::where('purchase_order_id', $poId)->select(['id'])->get();
         // Get all WorkOrderTask statuses
         $workOrderTaskIds = WorkOrderTask::select(['id'])->where('active', 1)->get();
         foreach ($workOrderIds as $woId) {
             // Delete all existing progress rows first
             WorkOrderProgress::where('work_order_id', $woId)->delete();
         }
         /*
         foreach($workOrderIds as $woId)
         {
             // Create full set of statuses for this work order
             foreach($workOrderTaskIds as $woTaskId)
             {
                 WorkOrderProgress::create([
                     'work_order_id' => $woId,
                     'work_order_task_id' => $woTaskId
                 ]);
             }
         }
         */
         // Future PO finalization stuff goes here.
         \DB::commit();
         //return $returnData;
     } catch (\Exception $ex) {
         \DB::rollBack();
         throw $ex;
     }
 }
 /**
  * Bootstrap the application services.
  *
  * @return void
  */
 public function boot()
 {
     view()->composer('dashboard.sidebar', function ($view) {
         $view->with('total_work_orders', WorkOrder::all()->count())->with('todo_work_orders', WorkOrder::where('completed', 0)->count())->with('completed_work_orders', WorkOrder::where('completed', 1)->count());
     });
 }
 public function sendWorkOrderReport()
 {
     Log::info('=============================================');
     Log::info('Starting work order reminder service');
     // Setup the dates
     $pickupDateReminder = config('app.pickup_reminder_days_to_remind');
     $today = Carbon::today('America/Halifax');
     $twoDaysFromNow = Carbon::today('America/Halifax')->addDay($pickupDateReminder);
     Log::info('The date is: ' . $today->toFormattedDateString() . ' (America/Halifax)');
     // Get work orders to start today
     $startWorkOrders = WorkOrder::whereDate('start_date', '=', $today)->get();
     $startCount = $startWorkOrders->count();
     Log::info('Start Work Orders found: ' . $startCount);
     // Get work orders due for pick up in [$pickupDateReminder] days
     $endWorkOrders = WorkOrder::whereDate('end_date', '>=', $today)->whereDate('end_date', '<=', $twoDaysFromNow)->with('product', 'customer')->get();
     $endCount = $endWorkOrders->count();
     $endDueDate = $twoDaysFromNow->toFormattedDateString();
     Log::info('Sending end reminders for work orders due in [' . $pickupDateReminder . '] day(s) - [' . $endDueDate . ']');
     Log::info('End Work Orders found: ' . $endCount);
     $viewData = ['todaysDate' => $today->toFormattedDateString(), 'startCount' => $startCount, 'endCount' => $endCount, 'startWorkOrders' => $startWorkOrders, 'endWorkOrders' => $endWorkOrders, 'endDueDate' => $endDueDate, 'pickupDateReminder' => $pickupDateReminder];
     $to = config('app.pickup_reminder_email_to');
     $from = config('app.pickup_reminder_email_from');
     $subject = config('app.pickup_reminder_email_subject') . $today->toFormattedDateString();
     $view = config('app.pickup_reminder_email_view');
     Log::info('Sending work order reminder email to: ' . $to);
     Mail::send($view, ['viewdata' => $viewData], function ($message) use($viewData, $to, $from, $subject) {
         $message->from($from);
         $message->to($to);
         $message->subject($subject);
     });
     Log::info('Ending work order reminder service');
     Log::info('=============================================');
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return Response
  */
 public function show($id)
 {
     $work_order = WorkOrder::find($id);
     return view('dashboard.single', compact('work_order'));
 }
Example #7
0
 public function getMaterialChecklist(Request $request)
 {
     $checklist = [];
     $reportParams = $request->input('reportParams');
     $mode = $reportParams['mode'];
     if ($mode === 'thisweek' || $mode === 'date') {
         if ($mode === 'thisweek') {
             $startOfWeek = Carbon::today('America/Halifax')->startOfWeek();
             $endOfWeek = Carbon::today('America/Halifax')->endOfWeek();
         } else {
             $startOfWeek = $reportParams['start_date'];
             $endOfWeek = $reportParams['end_date'];
         }
         $workOrders = WorkOrder::select('product_materials.material_id', 'materials.name', DB::raw('sum(product_materials.quantity * work_orders.quantity) as material_quantity'), 'units.name as unit_name')->join('product_materials', 'work_orders.product_id', '=', 'product_materials.product_id')->join('materials', 'product_materials.material_id', '=', 'materials.id')->join('units', 'materials.unit_id', '=', 'units.id')->whereDate('work_orders.start_date', '>=', $startOfWeek)->whereDate('work_orders.start_date', '<=', $endOfWeek)->where('work_orders.completed', 0)->groupBy('product_materials.material_id')->orderBy('materials.name', 'asc')->get();
     } else {
         if ($mode === 'products') {
         }
     }
     return response()->json($workOrders);
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $workOrder = WorkOrder::find($id);
     if (isset($workOrder)) {
         // Delete image (if any)
         $this->uploadHandler->removeFile(public_path(config('app.upload_path')), $workOrder->image_filename);
         $workOrder->delete();
     }
 }