From: erickson Date: Wed, 25 Jul 2007 16:24:17 +0000 (+0000) Subject: offsetting the re-open transaction logic to the end of the set-lost logic. fixed... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=2c887a22ada6d65bb47aad498b6752517790be6c;p=Evergreen.git offsetting the re-open transaction logic to the end of the set-lost logic. fixed bug where cleared xact_finish could be overwritten by previously loaded object git-svn-id: svn://svn.open-ils.org/ILS/trunk@7582 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm index c57f9a6ff6..3bb45be0e2 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ.pm @@ -311,15 +311,15 @@ sub new_set_circ_lost { return $evt if $evt; } + my $evt = reopen_xact($e, $circ->id); + return $evt if $evt; + $e->commit; return 1; } - -sub create_bill { - my( $e, $amount, $type, $xactid ) = @_; - - $logger->info("The system is charging $amount [$type] on xact $xactid"); +sub reopen_xact { + my($e, $xactid) = @_; # ----------------------------------------------------------------- # make sure the transaction is not closed @@ -328,13 +328,20 @@ sub create_bill { if( $xact->xact_finish ) { my ($mbts) = $U->fetch_mbts($xactid, $e); - if( ($mbts->balance_owed + $amount) != 0 ) { - $logger->info("* re-opening xact $xactid"); + if( $mbts->balance_owed != 0 ) { + $logger->info("* re-opening xact $xactid, orig xact_finish is ".$xact->xact_finish); $xact->clear_xact_finish; $e->update_money_billable_transaction($xact) or return $e->die_event; } } +} + + +sub create_bill { + my( $e, $amount, $type, $xactid ) = @_; + + $logger->info("The system is charging $amount [$type] on xact $xactid"); # ----------------------------------------------------------------- # now create the billing