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'; }
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; }
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('============================================='); }