Example #1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(PaymentRequest $request, $poheadId)
 {
     //
     $purchaseorder = Purchaseorder::findOrFail($poheadId);
     $poitems = $purchaseorder->poitems;
     $priceTotal = 0.0;
     foreach ($poitems as $poitem) {
         $priceTotal += $poitem->unitprice * $poitem->qty_ordered;
     }
     $pricePaied = Payment::where('pohead_id', $poheadId)->sum('amount');
     if ($priceTotal <= $pricePaied) {
         return '已完成付款';
     }
     $input = Request::all();
     Payment::create($input);
     return redirect('purchase/purchaseorders/' . $poheadId . '/payments');
 }
 public function receiving($id)
 {
     $poitems = Purchaseorder::find($id)->poitems;
     foreach ($poitems as $poitem) {
         $forQtyReceive = $poitem->qty_ordered - $poitem->qty_received;
         if ($forQtyReceive > 0.0) {
             $itemsite = $poitem->itemsite;
             if ($itemsite == null) {
                 return $poitem->item->item_number . '无库存记录';
             }
             //                 if ($itemsite->qtyonhand < $forQtyReceive)
             //                     return $soitem->item->item_number . ', 库存已不够,无法发货。';
             // create receive record
             $data = ['orderitem_id' => $poitem->id, 'quantity' => $forQtyReceive, 'recvdate' => Carbon::now()];
             Recvitem::create($data);
             // update soitem qtyshipped
             $poitem->qty_received = $poitem->qty_received + $forQtyReceive;
             $poitem->save();
             // update itemsite qtyonhand
             $itemsite->qtyonhand = $itemsite->qtyonhand + $forQtyReceive;
             $itemsite->save();
         }
     }
     return redirect('purchase/purchaseorders');
 }