projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f3e7167
)
don't leave quotation side effects around, eek, RT#79310, RT#32489
author
Ivan Kohler
<ivan@freeside.biz>
Wed, 24 Jan 2018 20:28:57 +0000
(12:28 -0800)
committer
Ivan Kohler
<ivan@freeside.biz>
Wed, 24 Jan 2018 20:28:57 +0000
(12:28 -0800)
FS/FS/quotation.pm
patch
|
blob
|
history
diff --git
a/FS/FS/quotation.pm
b/FS/FS/quotation.pm
index
6b0c914
..
a3f0612
100644
(file)
--- a/
FS/FS/quotation.pm
+++ b/
FS/FS/quotation.pm
@@
-716,7
+716,10
@@
sub estimate {
my $cust_main;
if ( $cust_or_prospect->isa('FS::prospect_main') ) {
$cust_main = $cust_or_prospect->convert_cust_main;
my $cust_main;
if ( $cust_or_prospect->isa('FS::prospect_main') ) {
$cust_main = $cust_or_prospect->convert_cust_main;
- die "$cust_main (simulating customer signup)\n" unless ref $cust_main;
+ unless ( ref($cust_main) ) {
+ $temp_dbh->rollback;
+ die "$cust_main (simulating customer signup)\n";
+ }
$fake_self->set('prospectnum', '');
$fake_self->set('custnum', $cust_main->custnum);
} else {
$fake_self->set('prospectnum', '');
$fake_self->set('custnum', $cust_main->custnum);
} else {
@@
-726,7
+729,10
@@
sub estimate {
# order packages
local($FS::cust_pkg::disable_start_on_hold) = 1;
$error = $fake_self->order(\%pkgnum_of);
# order packages
local($FS::cust_pkg::disable_start_on_hold) = 1;
$error = $fake_self->order(\%pkgnum_of);
- die "$error (simulating package order)\n" if $error;
+ if ( $error ) {
+ $temp_dbh->rollback;
+ die "$error (simulating package order)\n";
+ }
my @new_pkgs = map { FS::cust_pkg->by_key($_) } values(%pkgnum_of);
my @new_pkgs = map { FS::cust_pkg->by_key($_) } values(%pkgnum_of);
@@
-739,7
+745,10
@@
sub estimate {
'no_usage_reset' => 1,
);
$error = $cust_main->bill(%bill_opt);
'no_usage_reset' => 1,
);
$error = $cust_main->bill(%bill_opt);
- die "$error (simulating initial billing)\n" if $error;
+ if ( $error ) {
+ $temp_dbh->rollback;
+ die "$error (simulating initial billing)\n" if $error;
+ }
# pick dates for future bills
my %next_bill_pkgs;
# pick dates for future bills
my %next_bill_pkgs;
@@
-755,7
+764,10
@@
sub estimate {
$bill_opt{'return_bill'} = $return_bill[$i] = [];
$bill_opt{'pkg_list'} = $next_bill_pkgs{$next_bill};
$error = $cust_main->bill(%bill_opt);
$bill_opt{'return_bill'} = $return_bill[$i] = [];
$bill_opt{'pkg_list'} = $next_bill_pkgs{$next_bill};
$error = $cust_main->bill(%bill_opt);
- die "$error (simulating recurring billing cycle $i)\n" if $error;
+ if ( $error ) {
+ $temp_dbh->rollback;
+ die "$error (simulating recurring billing cycle $i)\n";
+ }
$i++;
}
$i++;
}