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;
         }
     }
 }