/**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $purchaseOrder = PurchaseOrder::find($id);
     if (isset($purchaseOrder)) {
         try {
             \DB::beginTransaction();
             $purchaseOrder->customer_id = $request->input('customer_id');
             $purchaseOrder->fulfilled = (int) $request->input('fulfilled');
             $purchaseOrder->paid = $request->input('paid') ? 1 : 0;
             $purchaseOrder->payment_type_id = $request->input('payment_type_id');
             $purchaseOrder->amount_paid = $request->input('amount_paid');
             $purchaseOrder->discount = $request->input('discount');
             $purchaseOrder->total = $request->input('total');
             $purchaseOrder->pickup_date = $request->input('pickup_date');
             $purchaseOrder->notes = $request->input('notes');
             $purchaseOrder->sales_channel_id = $request->input('sales_channel_id');
             /*
             // Sync purchase order products now
             PurchaseOrderProduct::where('purchase_order_id', $purchaseOrder->id)->delete();
             if($request->input('purchase_order_products') && is_array($request->input('purchase_order_products')))
             {
                 foreach($request->input('purchase_order_products') as $pop)
                 {
                     $purchaseOrder->purchaseOrderProducts()->create(['purchase_order_id' => $purchaseOrder->id,
                         'product_id' => $pop['product_id'],
                         'quantity' => $pop['quantity']
                     ]);
                 }
             }
             */
             $purchaseOrder->save();
             if ($purchaseOrder->fulfilled == 1) {
                 // PO is marked as fulfilled (completed), initiate finalization tasks
                 $orderLogicService = new OrderLogicService();
                 $orderLogicService->finalizePurchaseOrder($purchaseOrder->id);
             }
             \DB::commit();
         } catch (\Exception $ex) {
             \DB::rollBack();
             throw $ex;
         }
     }
 }