From e8b4f6fa186b817359d469d54052c712af6b4004 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 14 Feb 2011 21:43:03 +0000 Subject: [PATCH] finish fixing declined signup of prepaid package provisioning to RADIUS anyway, RT#10122 --- FS/FS/cust_main/Billing_Realtime.pm | 2 +- FS/FS/svc_Common.pm | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index a4da8edee..dee740cb9 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -889,7 +889,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 e0f1e3338..55ef387fd 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -376,6 +376,15 @@ sub delete { 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 { @@ -390,6 +399,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'; @@ -435,6 +451,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 @@ -483,6 +502,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; -- 2.11.0