From 8b4fe72cbd3b29445e336cc3e8cc5dbf5ff02185 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Mon, 25 Apr 2016 11:53:38 -0700 Subject: [PATCH] run_bill_events option for order_pkg, RT#42053 --- FS/FS/ClientAPI/MyAccount.pm | 8 +++++++- fs_selfservice/FS-SelfService/SelfService.pm | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index ed7e35317..8b0443648 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -2410,7 +2410,7 @@ sub order_pkg { my $conf = new FS::Conf; if ( $conf->exists('signup_server-realtime') ) { - my $bill_error = _do_bop_realtime( $cust_main, $status ); + my $bill_error = _do_bop_realtime( $cust_main, $status, 'collect'=>$p->{run_bill_events} ); if ($bill_error) { $cust_pkg->cancel('quiet'=>1); @@ -2565,6 +2565,12 @@ sub _do_bop_realtime { return { 'error' => '_decline', 'bill_error' => $bill_error }; } + if ( $opt{'collect'} ) { + my $collect_error = $cust_main->collect(); + return { 'error' => '_decline', 'bill_error' => $collect_error } + if $collect_error; #? + } + ''; } diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 49d6f3109..bc54b1ef3 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -1072,6 +1072,10 @@ Number of total bytes gained by recharge Orders a package for this customer. +If signup_server-realtime is set, bills the new package, attemps to collect +payment and (for auto-payment customers) cancels the package if the payment is +declined. + Takes a hash reference as parameter with the following keys: =over 4 @@ -1088,6 +1092,11 @@ Package to order (see L). Quantity for this package order (default 1). +=item run_bill_events + +If true, runs billing events for the customer after ordering and billing the +package (signup_server-realtime must be set). + =item locationnum Optional locationnum for this package order, for existing locations. -- 2.11.0