public function insert_discard(Request $request) { $discardMain = new discardMain(); $discardMain->reverse_grn = $request->input('grncode'); $discardMain->discard_date = $request->input('ddate'); $discardMain->remarks = $request->input('remarks'); $discardMain->save(); $id = $discardMain->id; $items = $request->input('data'); foreach ($items as $i) { $extra = 10; $iteration = 0; while ($extra != 0) { $stocks = stock::where('status', 'ACTIVE')->where('sub_product_id', $i['product_id'])->where('available', '>', '0')->orderBy('expiry_date', 'ASC')->first(); if ($iteration == 0) { $discardItem = new discardItem(); $discardItem->product_id = $i['product_id']; $discardItem->quantity = $i['quantity']; $discardItem->discard_main_id = $id; $discardItem->stock_id = $stocks->id; $discardItem->save(); $iteration++; } $stockUpdate = stock::find($stocks->id); if ($stocks->available - $i['quantity'] > 0) { $stockUpdate->available = $stocks->available - $i['quantity']; $extra = 0; } else { $i['quantity'] = $i['quantity'] - $stockUpdate->available; $stockUpdate->available = '0'; $stockUpdate->status = 'OVER'; } $stockUpdate->save(); } } }
public function insert_reload(Request $request) { $id = $request->input('load_id'); $newItems = $request->input('data'); $updates = $request->input('updates'); //var_dump($newItems); foreach ($newItems as $d) { $extra = 10; $iteration = 0; while ($extra != 0) { $stocks = stock::where('status', 'ACTIVE')->where('sub_product_id', $d['product_id'])->where('available', '>', '0')->orderBy('expiry_date', 'ASC')->first(); if ($iteration == 0) { $item = new loadItem(); $item->load_main_id = $id; $item->sub_product_id = $d['product_id']; $item->number = $d['quantity']; $item->available_qty = $d['quantity']; $item->stock_id = $stocks->id; $item->save(); $iteration++; } $stockUpdate = stock::find($stocks->id); if ($stocks->available - $d['quantity'] > 0) { $stockUpdate->available = $stocks->available - $d['quantity']; $extra = 0; } else { $d['quantity'] = $d['quantity'] - $stockUpdate->available; $stockUpdate->available = '0'; $stockUpdate->status = 'OVER'; } $stockUpdate->save(); } } foreach ($updates as $u) { $itemNew = loadItem::find($u['loadItemId']); $itemNew->number = $itemNew->number + $u['qty']; $itemNew->available_qty = $itemNew->available_qty + $u['qty']; $pid = $itemNew->sub_product_id; $itemNew->save(); $extra1 = 1; while ($extra1 != 0) { $stocksNew = stock::where('status', 'ACTIVE')->where('sub_product_id', $pid)->where('available', '>', '0')->orderBy('expiry_date', 'ASC')->first(); $stockUpdateNew = stock::find($stocksNew->id); if ($stocksNew->available - $u['qty'] > 0) { $stockUpdateNew->available = $stocksNew->available - $u['qty']; $extra1 = 0; } else { $u['qty'] = $u['qty'] - $stockUpdateNew->available; $stockUpdateNew->available = '0'; $stockUpdateNew->status = 'OVER'; } $stockUpdateNew->save(); } } }