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; } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $workOrder = WorkOrder::find($id); if (isset($workOrder)) { try { \DB::beginTransaction(); $workOrder->customer_id = $request->input('customer_id'); $workOrder->product_id = $request->input('product_id'); $workOrder->quantity = $request->input('quantity'); if ($request->input('start_date')) { $strStartDate = substr($request->input('start_date'), 0, strpos($request->input('start_date'), 'T')); $startDate = Carbon::createFromFormat('Y-m-d', $strStartDate); $workOrder->start_date = $startDate; } if ($request->input('end_date')) { $strEndDate = substr($request->input('end_date'), 0, strpos($request->input('end_date'), 'T')); $endDate = Carbon::createFromFormat('Y-m-d', $strEndDate); $workOrder->end_date = $endDate; } //$workOrder->completed = $request->input('completed') ? 1 : 0; $workOrder->completed = (int) $request->input('completed'); $workOrder->notes = $request->input('notes'); $workOrder->image_filename = $request->input('image_filename'); $workOrder->save(); // Sync WorkOrderProgress WorkOrderProgress::where('work_order_id', $id)->delete(); if ($request->input('work_order_progress') && is_array($request->input('work_order_progress'))) { foreach ($request->input('work_order_progress') as $wop) { $workOrder->workOrderProgress()->create(['work_order_id' => $id, 'work_order_task_id' => $wop['work_order_task_id']]); } } \DB::commit(); } catch (\Exception $ex) { \DB::rollBack(); throw $ex; } } }