From: ivan Date: Mon, 14 Feb 2011 21:43:01 +0000 (+0000) Subject: finish fixing declined signup of prepaid package provisioning to RADIUS anyway, RT... X-Git-Tag: freeside_2_3_0~620 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=7d1cf3b75da3ba9aab3667cdc0125e25bbc76438 finish fixing declined signup of prepaid package provisioning to RADIUS anyway, RT#10122 --- diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index c8d328fcf..1006b9520 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -986,7 +986,7 @@ sub _realtime_bop_result { my $error = $placeholder->depended_delete; $error ||= $placeholder->delete; warn "error removing provisioning jobs after declined paypendingnum ". - $cust_pay_pending->paypendingnum. "\n"; + $cust_pay_pending->paypendingnum. ": $error\n"; } else { my $e = "error finding job $jobnum for declined paypendingnum ". $cust_pay_pending->paypendingnum. "\n"; diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 3d8fe16a5..5c6e16b82 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -414,6 +414,15 @@ sub expire { Replaces OLD_RECORD with this one. If there is an error, returns the error, otherwise returns false. +Currently available options are: I and I. + +If I is set (to a scalar jobnum or an array reference of +jobnums), all provisioning jobs will have a dependancy on the supplied +jobnum(s) (they will not run until the specific job(s) complete(s)). + +If I is set to an array reference, the referenced list will be +passed to export commands. + =cut sub replace { @@ -428,6 +437,13 @@ sub replace { ? shift : { @_ }; + my @jobnums = (); + local $FS::queue::jobnums = \@jobnums; + warn "[$me] replace: set \$FS::queue::jobnums to $FS::queue::jobnums\n" + if $DEBUG; + my $depend_jobnums = $options->{'depend_jobnum'} || []; + $depend_jobnums = [ $depend_jobnums ] unless ref($depend_jobnums); + local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; @@ -473,6 +489,9 @@ sub replace { #new-style exports! unless ( $noexport_hack ) { + warn "[$me] replace: \$FS::queue::jobnums is $FS::queue::jobnums\n" + if $DEBUG; + my $export_args = $options->{'export_args'} || []; #not quite false laziness, but same pattern as FS::svc_acct::replace and @@ -521,6 +540,21 @@ sub replace { } } + foreach my $depend_jobnum ( @$depend_jobnums ) { + warn "[$me] inserting dependancies on supplied job $depend_jobnum\n" + if $DEBUG; + foreach my $jobnum ( @jobnums ) { + my $queue = qsearchs('queue', { 'jobnum' => $jobnum } ); + warn "[$me] inserting dependancy for job $jobnum on $depend_jobnum\n" + if $DEBUG; + my $error = $queue->depend_insert($depend_jobnum); + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return "error queuing job dependancy: $error"; + } + } + } + } $dbh->commit or die $dbh->errstr if $oldAutoCommit;