/** * Show the form for creating a new resource. * * @return Response */ public function create(Request $request) { //return $request['branchId']; $login = Login::where('remember_token', '=', $request->header('token'))->where('login_from', '=', $request->ip())->join('members', 'members.id', '=', 'logins.member_id')->where('logins.status', '=', '1')->first(); $stock = Stock::where('stockTypeId', $request['stockTypeId'])->where('branchId', $request['branchId'])->where('productTypeId', $request['productTypeId'])->first(); if (count($stock)) { $stockProduct = new AddProduct(); $stockProduct->stockId = $stock->id; $stockProduct->quantity = $request['onlineQuantity']; $stockProduct->addedBy = $login->member_id; $stockProduct->added = 1; $stockProduct->save(); $returnData = array('status' => 'added', 'stock' => $stock, 'stockProduct' => $stockProduct, 'code' => 200); return Response::json($returnData, 200); } else { try { $stock = new Stock(); $stock->fill(Input::all()); $stock->addedBy = $login->member_id; $stock->save(); $stockProduct = new AddProduct(); $stockProduct->stockId = $stock->id; $stockProduct->quantity = $request['onlineQuantity']; $stockProduct->addedBy = $login->member_id; $stockProduct->added = 1; $stockProduct->save(); $stock->quantity = $request['onlineQuantity']; $returnData = array('status' => 'created', 'stockProduct' => $stockProduct, 'stock' => $stock, 'code' => 200); return Response::json($returnData, 200); } catch (\Exception $e) { return $e->getMessage(); } } }
public static function addNew($data) { $stock_item = new Stock(); $stock_item->name = $data['name']; $stock_item->ean = $data['ean']; $stock_item->low_stock_notification_level = $data['low_stock_notification_level']; $stock_item->save(); return $stock_item; }
/** * Update the specified resource in storage. * * @param UpdateStockEntryRequest|Request $request * @param Product $product * @param Stock $stock * @return \Illuminate\Http\Response */ public function update(UpdateStockEntryRequest $request, Product $product, Stock $stock) { $product = DB::transaction(function () use($request, $product, $stock) { $stock->cost = $request->cost; $stock->amount = $request->amount; $stock->in_stock = $request->amount; $stock->save(); $product->updateStock(); return $product; }); return redirect()->route('product.show', $product); }
public function getSale($invoice_id) { $saleDetails = SAleDetail::where('invoice_id', '=', $invoice_id)->get(); $sale = Sale::where('invoice_id', '=', $invoice_id)->get(); foreach ($saleDetails as $saleDetail) { $stock = new Stock(); $stock->branch_id = $saleDetail->branch_id; $stock->product_id = $saleDetail->product_id; $stock->product_type = $saleDetail->product_type; $stock->product_quantity = $saleDetail->quantity; $stock->entry_type = "StockOut"; $stock->remarks = $saleDetail->remarks; $stock->user_id = Session::get('user_id'); $stock->stock_info_id = $saleDetail->stock_info_id; $stock->status = "Activate"; $stockCount = StockCount::where('product_id', '=', $saleDetail->product_id)->where('stock_info_id', '=', $saleDetail->stock_info_id)->get(); if (!empty($stockCount[0])) { if ($stockCount[0]->product_quantity >= $saleDetail->quantity) { $stockCount[0]->product_quantity = $stockCount[0]->product_quantity - $saleDetail->quantity; $stock->save(); $stockCount[0]->save(); $sale[0]->is_sale = 1; $sale[0]->save(); Session::flash('message', 'Stock has been Successfully Balanced.'); } else { Session::flash('message', 'You Dont have enough products in Stock'); } } else { Session::flash('message', 'You Dont have This products in This Stock'); } } return Redirect::to('sales/index'); }
/** * Function to receive item in national level & lower levels * * @param Request $request * @return Response */ public function pre_receive(Request $request) { $recipient = Recipient::find(Auth::user()->recipient_id); $arrival = new Arrival(); $nextNumber = $this->getNextArrivalNumber(); $str = ""; for ($sj = 6; $sj > strlen($nextNumber); $sj--) { $str .= "0"; } $arrival->reference = date('Y') . "1" . $str + "" . $nextNumber; $arrival->recipient_source_id = $recipient->parent_id; $arrival->recipient_destination_id = $recipient->id; $arrival->source_id = $request->has('source_id') ? $request->input('source_id') : ''; $arrival->arrival_report_number = $request->has('arrival_report_no') ? $request->input('arrival_report_no') : ''; $arrival->package_volume = $request->has('packed_volume') ? $request->input('packed_volume') : ''; $arrival->total_weight = $request->has('total_weight') ? $request->input('total_weight') : ''; $arrival->arrival_date = $request->input('arrival_date'); $arrival->freight_cost = $request->has('freight_cost') ? $request->input('freight_cost') : ''; $arrival->receiving_user = Auth::user()->id; $arrival->order_no = $nextNumber; $arrival->year = date('Y'); $arrival->notes = $request->has('notes') ? $request->input('notes') : ''; $arrival->main_currency = $request->has('main_currency') ? $request->input('main_currency') : ''; $arrival->used_currency = $request->has('currency_of_bill') ? $request->input('currency_of_bill') : ''; $arrival->exchange_rate = $request->has('exchange_rate') ? $request->input('exchange_rate') : ''; $arrival->save(); foreach ($request->input('items') as $item) { if (isset($item['number_received'])) { if (isset($item['damaged_amount'])) { $amount = $item['number_received'] - $item['damaged_amount']; $amount = $amount <= 0 ? 0 : $amount; } else { $amount = $item['number_received']; } } else { if (isset($item['damaged_amount'])) { $amount = $item['doses'] - $item['damaged_amount']; $amount = $amount <= 0 ? 0 : $amount; } else { $amount = $item['doses']; } } $ArrivalItem = new ArrivalItem(); $ArrivalItem->recipient_source_id = $recipient->parent_id; $ArrivalItem->recipient_destination_id = $recipient->id; $ArrivalItem->vaccine_id = isset($item['item_id']) ? $item['item_id'] : ""; $ArrivalItem->packaging_id = isset($item['packaging_id']) ? $item['packaging_id'] : ""; $ArrivalItem->activity_id = isset($item['activity']) ? $item['activity'] : ""; $ArrivalItem->store_id = isset($item['store_id']) ? $item['store_id'] : ""; $ArrivalItem->vvm_status = isset($item['vvm_stage']) ? $item['u_price'] : ''; $ArrivalItem->arrival_id = $arrival->id; $ArrivalItem->package_number = $request->has('arrival_report_no') ? $request->input('arrival_report_no') : ''; $ArrivalItem->lot_number = isset($item['lot_number']) ? $item['lot_number'] : ""; $ArrivalItem->number_expected = isset($item['doses']) ? $item['doses'] : ""; $ArrivalItem->number_received = $amount; $ArrivalItem->physical_damage = isset($item['physical_damage']) ? $item['physical_damage'] : ""; $ArrivalItem->number_as_expected = isset($item['number_as_expected']) ? $item['number_as_expected'] : ""; $ArrivalItem->damaged_amount = isset($item['damaged_amount']) ? $item['damaged_amount'] : 0; $ArrivalItem->receiving_user = Auth::user()->id; $ArrivalItem->unit_price = isset($item['u_price']) ? $item['u_price'] : ''; $ArrivalItem->total_price = isset($item['t_price']) ? $item['t_price'] : ''; $ArrivalItem->volume = isset($item['total_volume']) ? $item['total_volume'] : ''; $ArrivalItem->manufacture_id = isset($item['manufacture_id']) ? $item['manufacture_id'] : 0; $ArrivalItem->prduction_date = isset($item['prod_date']) ? $item['prod_date'] : ''; $ArrivalItem->expiry_date = isset($item['expired_date']) ? $item['expired_date'] : ''; $ArrivalItem->voucher_number = $arrival->reference; $ArrivalItem->arrival_date = $request->input('arrival_date'); $ArrivalItem->save(); $store = Store::find($item['store_id']); $store->used_volume = $store->used_volume + $amount * $item['cm_per_dose'] * 0.001; $store->save(); //adding the item to stock if (count(Stock::where('recipient_id', $recipient->id)->where('vaccine_id', $item['item_id'])->where('lot_number', $item['lot_number'])->get()) != 0) { $stock = Stock::where('recipient_id', $recipient->id)->where('vaccine_id', $item['item_id'])->where('lot_number', $item['lot_number'])->first(); $stock->vaccine_id = isset($item['item_id']) ? $item['item_id'] : ""; $stock->recipient_id = $recipient->id; $stock->source_id = $request->has('source_id') ? $request->input('source_id') : ''; $stock->amount = $amount + $stock->amount; $stock->lot_number = isset($item['lot_number']) ? $item['lot_number'] : ""; $stock->packaging_id = isset($item['packaging_id']) ? $item['packaging_id'] : ""; $stock->expiry_date = isset($item['expired_date']) ? $item['expired_date'] : ""; $stock->store_id = isset($item['store_id']) ? $item['store_id'] : ""; $stock->unit_price = isset($item['u_price']) ? $item['u_price'] : ""; $stock->activity_id = isset($item['activity']) ? $item['activity'] : ""; $stock->save(); } else { $stock = new Stock(); $stock->vaccine_id = isset($item['item_id']) ? $item['item_id'] : ""; $stock->recipient_id = $recipient->id; $stock->amount = $amount; $stock->source_id = $request->has('source_id') ? $request->input('source_id') : ''; $stock->lot_number = isset($item['lot_number']) ? $item['lot_number'] : ""; $stock->packaging_id = isset($item['packaging_id']) ? $item['packaging_id'] : ""; $stock->expiry_date = isset($item['expired_date']) ? $item['expired_date'] : ""; $stock->store_id = isset($item['store_id']) ? $item['store_id'] : ""; $stock->unit_price = isset($item['u_price']) ? $item['u_price'] : ""; $stock->activity_id = isset($item['activity']) ? $item['activity'] : ""; $stock->save(); } //adding the item to store if (count(StoreStock::where('store_id', $item['store_id'])->where('vaccine_id', $item['item_id'])->where('lot_number', $item['lot_number'])->get()) != 0) { $storeStock = StoreStock::where('store_id', $item['store_id'])->where('vaccine_id', $item['item_id'])->where('lot_number', $item['lot_number'])->first(); $storeStock->vaccine_id = isset($item['item_id']) ? $item['item_id'] : ""; $storeStock->store_id = isset($item['store_id']) ? $item['store_id'] : ""; $storeStock->amount = $amount + $storeStock->amount; $storeStock->lot_number = isset($item['lot_number']) ? $item['lot_number'] : ""; $storeStock->packaging_id = isset($item['packaging_id']) ? $item['packaging_id'] : ""; $storeStock->expiry_date = isset($item['expired_date']) ? $item['expired_date'] : ""; $storeStock->unit_price = isset($item['u_price']) ? $item['u_price'] : ""; $storeStock->source_id = $request->has('source_id') ? $request->input('source_id') : ''; $storeStock->activity_id = isset($item['activity']) ? $item['activity'] : ""; $storeStock->save(); } else { $storeStock = new StoreStock(); $storeStock->vaccine_id = isset($item['item_id']) ? $item['item_id'] : ""; $storeStock->store_id = isset($item['store_id']) ? $item['store_id'] : ""; $storeStock->amount = $amount; $storeStock->lot_number = isset($item['lot_number']) ? $item['lot_number'] : ""; $storeStock->packaging_id = isset($item['packaging_id']) ? $item['packaging_id'] : ""; $storeStock->expiry_date = isset($item['expired_date']) ? $item['expired_date'] : ""; $storeStock->unit_price = isset($item['u_price']) ? $item['u_price'] : ""; $storeStock->source_id = $request->has('source_id') ? $request->input('source_id') : ''; $storeStock->activity_id = isset($item['activity']) ? $item['activity'] : ""; $storeStock->save(); } if ($request->input('from_type') == 'pre_advice') { foreach (PreShipment::where('package_id', $request->input('arrival_report_no'))->get() as $pre_shipment) { $pre_shipment->status = 'received'; $pre_shipment->save(); } } if (isset($item['number_received'])) { if (isset($item['damaged_amount'])) { $amountss = $item['number_received'] - $item['damaged_amount']; $amountss = $amountss <= 0 ? 0 : $amountss; $this->adjustDuringArrival($stock->id, $amountss, $item['item_id'], $item['lot_number'], $item['doses']); } else { $amountss = $item['number_received']; $this->adjustDuringArrival($stock->id, $amountss, $item['item_id'], $item['lot_number'], $item['doses']); } } else { if (isset($item['damaged_amount'])) { $amountss = $item['doses'] - $item['damaged_amount']; $amountss = $amountss <= 0 ? 0 : $amountss; $this->adjustDuringArrival($stock->id, $amountss, $item['item_id'], $item['lot_number'], $item['doses']); } else { $amountss = $item['doses']; } } } if ($request->input('from_type') == 'other') { foreach (RecipientPackage::where('voucher_number', $request->input('arrival_report_no'))->get() as $pre_shipment) { $pre_shipment->receiving_user = Auth::user()->id; $pre_shipment->receiving_status = 'received'; $pre_shipment->save(); } } Log::create(array("user_id" => Auth::user()->id, "action" => "Receive Products, Reference Number " . $arrival->reference)); return $arrival->reference; }