Exemplo n.º 1
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $item = PreShipment::find($id);
     $item->status = 'deleted';
     $item->save();
 }
Exemplo n.º 2
0
 /**
  * Dealing with item adjustment item info
  * @param Request $request
  * @return Response
  */
 public function arrival_adjust(Request $request)
 {
     $arrival = Arrival::find($request->input('id'));
     $recipient = Recipient::find(Auth::user()->recipient_id);
     foreach ($arrival->arrivalItems as $items) {
         $volume = $items->number_received * PackagingInformation::find($items->packaging_id)->cm_per_dose * 0.001;
         $stock = Stock::where('recipient_id', $recipient->id)->where('vaccine_id', $items->vaccine_id)->where('lot_number', $items->lot_number)->first();
         $storeStock = StoreStock::where('store_id', $items->store_id)->where('vaccine_id', $items->vaccine_id)->where('lot_number', $items->lot_number)->first();
         $stock->amount = $stock->amount - $items->number_received;
         $storeStock->amount = $storeStock->amount - $items->number_received;
         $stock->save();
         $storeStock->save();
         //reduce volume in store
         $store = Store::find($items->store_id);
         $store->used_volume = $store->used_volume - $volume;
         $store->save();
         //update line item status
         $items->status = 'canceled';
         $items->save();
         //delete stock item if amount has turned to zero
         if ($stock->amount == 0) {
             $stock->delete();
         }
         if ($storeStock->amount == 0) {
             $storeStock->delete();
         }
     }
     //update arrival status
     $arrival->status = 'canceled';
     $arrival->notes = $request->has('notes') ? $request->input('notes') : "";
     if ($recipient->level == 1) {
         foreach (PreShipment::where('package_id', $arrival->arrival_report_number)->get() as $package) {
             $package->status = 'pending';
             $package->save();
         }
     } else {
         foreach (RecipientPackage::where('voucher_number', $arrival->arrival_report_number)->get() as $package) {
             $package->receiving_status = 'pending';
             $package->save();
         }
     }
     $arrival->save();
     Log::create(array("user_id" => Auth::user()->id, "action" => "Cancel Arrival with reference Number " . $arrival->reference));
 }