summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/cust_main.pm11
-rw-r--r--fs_selfservice/FS-SelfService/SelfService.pm25
-rwxr-xr-xhttemplate/view/cust_main/packages/section.html2
-rw-r--r--httemplate/view/cust_main/packages/status.html11
4 files changed, 40 insertions, 9 deletions
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index a9d7ac7bd..f102d97ee 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -2015,6 +2015,17 @@ sub cust_payby {
});
}
+sub has_cust_payby_auto {
+ my $self = shift;
+ scalar( qsearch({
+ 'table' => 'cust_payby',
+ 'hashref' => { 'custnum' => $self->custnum, },
+ 'extra_sql' => " AND payby IN ( 'CARD', 'CHEK' ) ",
+ 'order_by' => 'LIMIT 1',
+ }) );
+
+}
+
=item unsuspend
Unsuspends all unflagged suspended packages (see L</unflagged_suspended_pkgs>
diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm
index a9da5643b..765d6111b 100644
--- a/fs_selfservice/FS-SelfService/SelfService.pm
+++ b/fs_selfservice/FS-SelfService/SelfService.pm
@@ -258,7 +258,30 @@ FS::SelfService - Freeside self-service API
#!!! list_pkgs example
- #!!! order_pkg example
+ #ordering a package with an svc_acct service
+ my $rv = order_pkg( { 'session_id' => $session_id,
+ 'pkgpart' => $pkgpart,
+ 'svcpart' => $svcpart,
+ 'username' => $username,
+ 'domsvc' => $domsvc, #svcnum of svc_domain
+ '_password' => $password,
+ }
+ );
+
+ #!!! ordering a package with an svc_domain service example
+
+ #!!! ordering a package with an svc_phone service example
+
+ #!!! ordering a package with an svc_external service example
+
+ #!!! ordering a package with an svc_pbx service
+
+ #ordering a package with no service
+ my $rv = order_pkg( { 'session_id' => $session_id,
+ 'pkgpart' => $pkgpart,
+ 'svcpart' => 'none',
+ }
+ );
#!!! cancel_pkg example
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index e888c94ac..e38c34fe8 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -20,6 +20,8 @@
cust_pkg-group_by_location
no_services
)),
+ #for status.html
+ 'has_cust_payby_auto' => $cust_main->has_cust_payby_auto,
&>
% }
% } else { # there are no packages
diff --git a/httemplate/view/cust_main/packages/status.html b/httemplate/view/cust_main/packages/status.html
index 2bb4befb8..3515b38e1 100644
--- a/httemplate/view/cust_main/packages/status.html
+++ b/httemplate/view/cust_main/packages/status.html
@@ -494,16 +494,11 @@ sub pkg_status_row_detached {
sub pkg_status_row_noauto {
my( $cust_pkg, %opt ) = @_;
- my $part_pkg = $opt{'part_pkg'};
- return '' unless $cust_pkg->no_auto || $part_pkg->no_auto;
- #inefficient, should be passed in
- my $cust_main = $cust_pkg->cust_main;
+ return '' unless ( $cust_pkg->no_auto || $opt{'part_pkg'}->no_auto );
+ && $opt{'has_cust_payby_auto'};
- return '' unless $cust_main->payby =~ /^(CARD|CHEK)$/;
- my $what = lc(FS::payby->shortname($cust_main->payby));
-
- pkg_status_row_colspan( $cust_pkg, emt("No automatic $what charge"), '');
+ pkg_status_row_colspan( $cust_pkg, emt("No automatic charge"), '');
}
sub pkg_status_row_separate_bill {