Прежде чем мы перейдем к действию, я надеюсь, вы должны понять, как использовать фреймворк laravel.
Я сделаю простой, как уменьшить запас продукта при совершении сделки.
Здесь я создал пример миграции или нормализации базы данных :
Отказ от ответственности:
Это только пример, вы можете изменить в соответствии с вашим случаем
Products - id - code - name - price - stock transactions - id - transaction_no - date transaction_details - id - transactions_id - products_id - qty - amount - total
Мы ориентируемся только на товарный запас и количество деталей транзакции.
public function transactionAdd(Request $request){ // database transaction to handle error query database DB::beginTransaction(); try{ // save transaction $transaction = new Transaction; $transaction->transaction_no = $request->transaction_no; $transaction->date = $request->date; $transaction->save(); //save multiple transaction details for($i=0; $i= sizeof($request->products_id); $i++){ $transaction_detail = new TransactionDetail; $transaction_detail->transactions_id = $transaction->id; $transaction_detail->products_id = $request->products_id[$i]; $transaction_detail->qty = $request->qty[$i]; $transaction_detail->amount = $request->amount[$i]; $transaction_detail->total = $request->total[$i]; $transaction_detail->save(); //update and reduce stock $product = Product::find($request->products_id[$i]; $product->stock = $product->stock - $request->qty[$i]; $product->save(); // save to database if nothing error DB::commit(); //redirect to your page successfull return redirect(<URL_REDIRECT>); } }catch(Exception $e){ //rollback database if error function DB::rolback(); // redirect to your page error exception return redirect(); } }
Это пример функции сокращения запасов товара, если у вас есть проблема или другая идея, пожалуйста, оставьте комментарий.
Спасибо за ваше время, чтобы прочитать мой пост.
Увидимся в следующий раз…