summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2016-04-25 16:19:25 -0500
committerJonathan Prykop <jonathan@freeside.biz>2016-04-25 16:19:25 -0500
commit7bdfc3beaa2c62b4df7e17effb791d75d6bcb9e4 (patch)
treeaf02b1118a88e6a437460a99642c5c1ed5a61646
parentc894ab1b3132128b297d7fb556882c1753ef80ec (diff)
parent09aa2b55432181f5ddc6bac532b17809c530f3a9 (diff)
Merge branch 'master' of git.freeside.biz:/home/git/freeside
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm8
-rw-r--r--fs_selfservice/FS-SelfService/SelfService.pm9
2 files changed, 16 insertions, 1 deletions
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<FS::part_pkg>).
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.