[open-ils-commits] r19135 - branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Acq (senator)
svn at svn.open-ils.org
svn at svn.open-ils.org
Fri Jan 7 15:06:22 EST 2011
Author: senator
Date: 2011-01-07 15:06:18 -0500 (Fri, 07 Jan 2011)
New Revision: 19135
Modified:
branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Acq/Invoice.pm
Log:
Backport r19134 from trunk
Acq: fix prorating bug
When prorating, the system decides what funds to target by looking at what
funds have already been spent against. Previously, the system only looked at
acqie objects, but an invoice can also be composed of acqii objects.
Modified: branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Acq/Invoice.pm
===================================================================
--- branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Acq/Invoice.pm 2011-01-07 20:04:34 UTC (rev 19134)
+++ branches/rel_2_0/Open-ILS/src/perlmods/OpenILS/Application/Acq/Invoice.pm 2011-01-07 20:06:18 UTC (rev 19135)
@@ -392,9 +392,16 @@
my @lid_debits;
push(@lid_debits, @{find_entry_debits($e, $_, 'f', entry_amount_per_item($_))}) for @{$invoice->entries};
+ my $inv_items = $e->search_acq_invoice_item([
+ {"invoice" => $invoice_id, "fund_debit" => {"!=" => undef}},
+ {"flesh" => 1, "flesh_fields" => {"acqii" => ["fund_debit"]}}
+ ]) or return $e->die_event;
+
+ my @item_debits = map { $_->fund_debit } @$inv_items;
+
my %fund_totals;
my $total_entry_paid = 0;
- for my $debit (@lid_debits) {
+ for my $debit (@lid_debits, @item_debits) {
$fund_totals{$debit->fund} = 0 unless $fund_totals{$debit->fund};
$fund_totals{$debit->fund} += $debit->amount;
$total_entry_paid += $debit->amount;
More information about the open-ils-commits
mailing list