Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

SHAIK's avatar
Level 1

Add qty on Order menu

on clicking item it adds one qty by default and when i click on same item its adding another line instead of increasing qty below is my code can any one help me in this. ( add ordered menu to the sale_details table ) $saleDetail = new SaleDetail(); $saleDetail->sale_id = $sale_id; $saleDetail->menu_id = $menu->id; $saleDetail->menu_name = $menu->name; $saleDetail->menu_price = $menu->price; $saleDetail->quantity = ($request->quantity); $saleDetail->save();

0 likes
2 replies
SilenceBringer's avatar

Hi @shaik

here

$saleDetail = new SaleDetail();

you create new item every time. So, of course, you'll have new line every time. You need to check firstOrNew method

like so:

$saleDetail = SaleDetail::firstOrNew(
    ['sale_id' => $sale_id, 'menu_id' => $menu->id],
    ['quantity' => 0]
);

$saleDetail->menu_name = $menu->name;
$saleDetail->menu_price = $menu->price;
$saleDetail->quantity += $request->quantity;

$saleDetail->save();

SHAIK's avatar
Level 1

Thank a lot for having look into this but after completing first bill for next bill it not adding.

        $user = Auth::user();
        $sale = new Sale();
        $sale->table_id = $table_id;
        $sale->table_name = $table_name;
        $sale->user_id = $user->id;
        $sale->user_name = $user->name;
        $sale->save();
        $sale_id = $sale->id;
        // update table status
        $table = Table::find($table_id);
        $table->status = "unavailable";
        $table->save();
    }else{ // if there is a sale on the selected table
        $sale_id = $sale->id;
    }

    // add ordered menu to the sale_details table
    $saleDetail = SaleDetail::firstOrNew(
        ['sale_id' => $sale_id, 'menu_id' => $menu->id],
        ['quantity' => 0]
    );
    
    $saleDetail->sale_id = $sale_id;
    $saleDetail->menu_id = $menu->id;
    $saleDetail->menu_name = $menu->name;
    $saleDetail->menu_price = $menu->price;
    $saleDetail->quantity += ($request->quantity);
    $saleDetail->save();

Please or to participate in this conversation.