diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-09-17 16:24:13 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-09-17 16:24:13 +0000 |
commit | 2bb509376b95084eca458df2dd8de907f94694c5 (patch) | |
tree | 808a30c3dd2505d7e1a545d221debee2f618fed4 | |
parent | c22beebb571b727fcc80ee9c4e4741ab6ca10010 (diff) |
Performance tuning for multiple payents screen
git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2325 4979c152-3d1c-0410-bac9-87ea11338e46
-rw-r--r-- | UI/payments/payments_detail.html | 12 | ||||
-rw-r--r-- | scripts/payment.pl | 18 |
2 files changed, 20 insertions, 10 deletions
diff --git a/UI/payments/payments_detail.html b/UI/payments/payments_detail.html index b63b696a..86fc47f7 100644 --- a/UI/payments/payments_detail.html +++ b/UI/payments/payments_detail.html @@ -168,9 +168,8 @@ <th class="payment"><?lsmb text('Payment') ?></th> <th class="payment"><?lsmb text('Details') ?></th> </tr> - <?lsmb rc = 1 ?><?lsmb count = 0 ?><?lsmb grand_total = 0 ?> + <?lsmb rc = 1 ?><?lsmb count = 0 ?> <?lsmb FOREACH r = contact_invoices ?> - <?lsmb contact_total = 0 ?> <?lsmb rc = (rc + 1) % 2; count = count + 1 ?> <tr class="listrow<?lsmb rc ?>"> <td class="account_number" rowspan="2" > @@ -294,19 +293,12 @@ name = "invoice_count_${r.contact_id}" value = icount } ?> - <?lsmb IF !r.unselected; - IF (${"paid_$r.contact_id"} == 'some'); - grand_total = grand_total + contact_total; - ELSE; - grand_total = grand_total + r.total_due; - END; # IF (paid...) - END # IF !r.unselected) ?> <tr class="subtotal"> <td colspan="5" class="total_label"> <?lsmb text('Contact Total (if paying "some")') ?> </td> <td><span id='<?lsmb ${"contact_total_$r.id"} ?>'> - <?lsmb INCLUDE format_money number= contact_total ?> + <?lsmb INCLUDE format_money number= r.contact_total ?> </span><span class="currency"> <?lsmb currency ?></span> </td> diff --git a/scripts/payment.pl b/scripts/payment.pl index 9037aca8..6da1d5b6 100644 --- a/scripts/payment.pl +++ b/scripts/payment.pl @@ -360,9 +360,27 @@ sub display_payments { my ($request) = @_; my $payment = LedgerSMB::DBObject::Payment->new({'base' => $request}); $payment->get_payment_detail_data(); + $payment->{grand_total} = 0; for (@{$payment->{contact_invoices}}){ + my $contact_total = 0; $_->{total_due} = $payment->format_amount(amount => $_->{total_due}); + + if (($payment->{action} ne 'update_payments') + or (defined $payment->{"id_$_->{contact_id}"})){ + if ($payment->{"paid_$_->{contact_id}"} eq 'some'){ + for my $invoice (@{$_->{invoices}}){ + my $i_id = $invoice->[0]; + $contact_total + += $payment->{"paid_$_->{contact_id}_$i_id"}; + } + } else { + $contact_total = $_->{total_due}; + } + $payment->{grand_total} += $contact_total; + } + $_->{contact_total} = $contact_total; } + $payment->debug({file => '/tmp/payment'}); @{$payment->{media_options}} = ( {text => $request->{_locale}->text('Screen'), |