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