Я хочу проверить, меньше ли запрошенное количество, поэтому Как я могу взять переменную closed_balance
в функции карты и использовать условие if в соответствии с приведенным ниже кодом,
я пытался используется как if($item->closing_balance < $qty)
при получении ошибки
Неопределенная переменная: closed_balance
Код контроллера
$data=$request->all();
if(count($request->pid) > 0)
{
foreach($request->pid as $key=>$v){
$data2=([
'order_no'=>$fk,
'pid'=>$request->pid [$key],
'sid'=>$request->sid,
'qty'=>$request->qty [$key],
]);
$pid= $request->pid [$key];
$qty=$request->qty [$key];
$check_balance=DB::table('products')
->selectRaw('sum(stocks.qty) as totalstock')
->selectRaw('sum(loadings.qty) as totalloading')
->join('stocks','stocks.pid','=','products.id')
->join('loadings','loadings.pid','=','products.id')
->where('stocks.pid','=',$pid)
->where('loadings.pid','=',$pid)
->get() ->map(function ($item) {
$item->totalstock = $item->totalstock ?? 0;
$item->totalloading = $item->totalloading ?? 0;
$item->closing_balance = abs($item->totalstock - $item->totalloading);
return $item;
});
//check if quatity is less than requested
if($closing_balance < $qty){
return redirect()->back()
->withErrors(['The stock quantity is less, Please check your stock quantity! ']);
}
else{
Loading::create($data2);
}