Merge branch 'master' of git.freeside.biz:/home/git/freeside
authorIvan Kohler <ivan@freeside.biz>
Mon, 27 Apr 2015 09:59:21 +0000 (02:59 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 27 Apr 2015 09:59:21 +0000 (02:59 -0700)
FS/FS/cust_main.pm
fs_selfservice/FS-SelfService/SelfService.pm
httemplate/view/cust_main/packages/section.html
httemplate/view/cust_main/packages/status.html

index a9d7ac7..f102d97 100644 (file)
@@ -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>
index a9da564..765d611 100644 (file)
@@ -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
 
index e888c94..e38c34f 100755 (executable)
@@ -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
index 2bb4bef..3515b38 100644 (file)
@@ -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 {