item_ids); $items_subtotal_array = explode(',', $bill->item_subtotals); $bill_balance = $bill->balance; $bill_total = $bill->total_amount; $bill_amount_paid = (is_null($bill_balance) ? 0 : (int)$bill_total - (int)$bill_balance); for($x = 0; $x < count($items_array); $x++){ $new_amount = $bill_amount_paid - array_sum($deductions); $payable_account = get_name($items_array[$x], 'id', 'payable_account','payment_items'); $payable_account_array[] = ($bill->bill_type == 'GEN') ? $payable_account : 14; if(is_null($bill_balance)){ $item_amount_paid[] = 0; $item_balance_remaining[] = $items_subtotal_array[$x]; }else if($bill_balance == 0){ $item_amount_paid[] = $items_subtotal_array[$x]; $item_balance_remaining[] = 0; } else{ if($items_subtotal_array[$x] <= $new_amount){ $item_amount_paid[] = $items_subtotal_array[$x]; $item_balance_remaining[] = 0; $deductions[] = $items_subtotal_array[$x]; }else{ $item_amount_paid[] = $new_amount; $item_balance_remaining[] = (int)$items_subtotal_array[$x] - (int)$new_amount; $deductions[] = $new_amount; } } } \Streamline\Models\HospitalBill::where('id', $bill->id)->update([ 'payable_account' => implode(',', $payable_account_array), 'item_amount_paid' => implode(',', $item_amount_paid), 'item_balance_remaining' => implode(',', $item_balance_remaining) ]); } } }