with(['asset' => function ($query) { $query->selectRaw('id, barang as name, harga'); }, 'purchaseRequestMachineDetails' => function ($query) { $query->selectRaw('id, purchase_request_machine_id, unit_price_id, qty, used_qty'); $query->with(['unitPrice' => function ($query){ $query->selectRaw('id, name, unit, prices'); }]); }]) ->where('purchase_request_id', $purchaseRequestId) ->get(); } public function updateUsedQtyMachineDetail($createMachine, $machineDetail, $isUpdated = false){ $updt = PurchaseRequestMachineDetail::whereHas('purchaseRequestMachine', function ($q) use ($createMachine){ $q->where([ ['purchase_request_id', '=' , $createMachine->ref_pr], ['asset_id', '=', $createMachine->asset_id] ]); })->where('unit_price_id', $machineDetail->unit_price_id)->first(); $qty = $isUpdated ? (float)$machineDetail->qty : (float)$updt->used_qty + (float)$machineDetail->qty; $updt->update([ "used_qty" => $qty ]); return $updt; } }