LP#1251774 exit and alert on multiple payments per xact
authorBill Erickson <berick@esilibrary.com>
Fri, 15 Nov 2013 22:06:53 +0000 (17:06 -0500)
committerMike Rylander <mrylander@gmail.com>
Wed, 20 Nov 2013 15:55:20 +0000 (10:55 -0500)
If more than one payment for a transaction is received, exit the API
call early and return a MULTIPLE_PAYMENTS_FOR_XACT event.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Money.pm

index c127d75..a6220ed 100644 (file)
@@ -170,7 +170,10 @@ sub make_payments {
     my @unique_xact_payments;
     for my $pay (@{$payments->{payments}}) {
         my $xact_id = $pay->[0];
-        next if (exists($xacts{$xact_id}));
+        if (exists($xacts{$xact_id})) {
+            $e->rollback;
+            return OpenILS::Event->new('MULTIPLE_PAYMENTS_FOR_XACT');
+        }
 
         my $xact = $e->retrieve_money_billable_transaction_summary($xact_id)
             or return $e->die_event;