次の問題があります - 私はテーブルinvoices
とテーブルreceipts
を持っています。請求書はエージェントによって作成され、エージェントごとに販売されたいが、番号は間違っている。ここで合計請求書 - 合計でない領収書
は、私が試したものです:
$agents = Agent::get();
$invoices_receipts_agent = array();
foreach ($agents as $agent) {
$payment_invoice = 0;
$payment_recepit = 0;
$id_agent = $agent->id_agent;
$invoices = Invoice::whereAgent_id($id_agent)->get();
foreach ($invoices as $invoice) {
$payment_invoice = $payment_invoice + $invoice->total_pay;
$recepits = Recepit::whereInvoice_id($invoice->id_invoice)->get();
if (count($recepits) > 0) {
foreach ($recepits as $recepit) {
$payment_recepit = $payment_recepit + $recepit->amount_payd;
}
}
}
$total = $payment_invoice - $payment_recepit;
$total_agents = ['name' => $agent->name, 'total' => $total];
array_push($invoices_receipts_agent, $total_agents);
}
私がテストを行い、ID 5
First invoice: 10
Second invoice : 20
Total invoices: 30
とエージェントのための2つの請求書を作成した後、私は第二請求書のrecepitを行なったし、予想合計が見つかりました:
Total: 10 + 20 - 20 = 10 (correct total)
そして、それは素晴らしいことだが、私は3600枚の請求書やソムとエージェントを持っています何かが合計で間違っています。合計(合計=請求書 - レセピット)は大きすぎますが、理由を把握することはできません。
詳細:数字のフィールドはfloat
です。
1つの請求書に複数の領収書を入れることはできますか? –
@AaronDietz yesは複数の領収書になる可能性があります – Theack44
このロジックの大半はPHPではなくデータベースで処理できるため、特にどの出力を必要としますか。 – fubar