multiple payment options (package display: make "No automatic charge" label work...
authorIvan Kohler <ivan@freeside.biz>
Mon, 27 Apr 2015 09:56:41 +0000 (02:56 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 27 Apr 2015 09:56:41 +0000 (02:56 -0700)
FS/FS/cust_main.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 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 {