don't reenable postal billing for existing customers just cause its blank...
[freeside.git] / httemplate / edit / cust_main / billing.html
index 65cca0a..96f777b 100644 (file)
@@ -1,9 +1,15 @@
 <%
 
-my( $cust_main ) = @_;
+my( $cust_main, %options ) = @_;
+my @invoicing_list = @{ $options{'invoicing_list'} };
 my $conf = new FS::Conf;
 my $payby_default = $conf->config('payby-default');
 
+my @payby = grep /\w/, $conf->config('payby');
+#@payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH WEST COMP ))
+@payby = (qw( CARD DCRD CHEK DCHK LECB BILL CASH COMP ))
+  unless @payby;
+
 if ( $payby_default eq 'HIDE' ) {
 
   $cust_main->payby('BILL') unless $cust_main->payby;
@@ -44,14 +50,12 @@ if ( $payby_default eq 'HIDE' ) {
 
   <INPUT TYPE="hidden" NAME="tax" VALUE="<%= $cust_main->tax %>">
 
-  <INPUT TYPE="hidden" NAME="invoicing_list" VALUE="<%= join(', ', $cust_main->invoicing_list) %>">
+  <INPUT TYPE="hidden" NAME="invoicing_list" VALUE="<%= join(', ', @invoicing_list) %>">
 
   </FORM>
 
 <% } else {
 
-  my @invoicing_list = $cust_main->invoicing_list;
-
   my $r = qq!<font color="#ff0000">*</font>&nbsp;!;
 
 %>
@@ -168,7 +172,7 @@ if ( $payby_default eq 'HIDE' ) {
 
         qq!<TR><TD ALIGN="right" WIDTH="200">CVV2&nbsp;!.
 
-          qq!(<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('../docs/cvv2.html', 472, 308, 'cvv2_popup' ), CAPTION, 'CVV2 Help', STICKY, AUTOSTATUSCAP, CLOSECLICK, DRAGGABLE ); return false;">help</A>)!.
+          qq!(<A HREF="javascript:void(0);" onClick="overlib( OLiframeContent('../docs/cvv2.html', 480, 352, 'cvv2_popup' ), CAPTION, 'CVV2 Help', STICKY, AUTOSTATUSCAP, CLOSECLICK, DRAGGABLE ); return false;">help</A>)!.
           qq!</TD>!.
           '<TD WIDTH="408"><INPUT TYPE="text" NAME="paycvv" VALUE="'. ( $payby =~ /^(CARD|DCRD)$/ ? $cust_main->paycvv : '' ). '" SIZE=4 MAXLENGTH=4>'.
 
@@ -294,15 +298,77 @@ if ( $payby_default eq 'HIDE' ) {
 
       '</TABLE>',
 
+    'CASH' =>
+
+      '<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 HEIGHT=192>'.
+
+        qq!<TR><TD ALIGN="right" WIDTH="200">${r}Amount </TD>!.
+          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="paid" VALUE="!. ( $payby eq 'CASH' ? $cust_main->paid : '' ). qq!"></TD></TR>!.
+
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+
+      '</TABLE>',
+
+    'WEST' =>
+
+      '<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 HEIGHT=192>'.
+
+        qq!<TR><TD ALIGN="right" WIDTH="200">${r}Amount </TD>!.
+          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="paid" VALUE="!. ( $payby eq 'WEST' ? $cust_main->paid : '' ). qq!"></TD></TR>!.
+
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+
+      '</TABLE>',
+
+    'MCRD' =>
+
+      '<TABLE BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 HEIGHT=192>'.
+
+        qq!<TR><TD ALIGN="right" WIDTH="200">${r}Amount </TD>!.
+          qq!<TD WIDTH="408"><INPUT TYPE="text" NAME="paid" VALUE="!. ( $payby eq 'MCRD' ? $cust_main->paid : '' ). qq!"></TD></TR>!.
+
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+        '<TR><TD>&nbsp;</TD></TR>'.
+
+      '</TABLE>',
+
   );
 
-  tie my %options, 'Tie::IxHash',
+
+  my %allopt = (
     'CARD' => 'Credit card',
     'CHEK' => 'Electronic check',
     'LECB' => 'Phone bill billing',
     'BILL' => 'Billing',
+    'CASH' => 'Cash', # initial payment, then billing',
+    'WEST' => 'Western Union', # initial payment, then billing',
+    'MCRD' => 'Manual credit card', # initial payment, then billing',
     'COMP' => 'Complimentary',
-  ;
+  );
+  if ( $cust_main->custnum ) { #don't offer CASH/WEST/MCRD initial payment types
+                               # when editing customer
+    delete $allopt{$_} for qw(CASH WEST MCRD);
+  }
+  
+  tie my %options, 'Tie::IxHash',
+    map  { $_ => $allopt{$_} }
+    grep { exists $allopt{$_} }
+         @payby;
+
   my %payby2option = (
     ( map { $_ => $_ } keys %options ),
     'DCRD' => 'CARD',
@@ -315,7 +381,7 @@ if ( $payby_default eq 'HIDE' ) {
     #'form_action'    => 'nothingyet',
     #chops bottom of page in IE# 'under_position' => 'absolute',
     'html_between'   => '</TD></TR></TABLE>',
-    'selected_layer' => $payby2option{$payby} || 'CARD',
+    'selected_layer' => $payby2option{$payby || $payby_default || $payby[0] },
     'layer_callback' => sub { my $layer = shift; $payby{$layer}; },
   );
 
@@ -336,7 +402,10 @@ if ( $payby_default eq 'HIDE' ) {
     <TR>
       <TD WIDTH="608" COLSPAN="2"><INPUT TYPE="checkbox" NAME="invoicing_list_POST" VALUE="POST" <%=
 
-        ( ( ! @invoicing_list && ! $conf->exists('disablepostalinvoicedefault') )
+        ( (    ! @invoicing_list
+            && ! $conf->exists('disablepostalinvoicedefault')
+            && ! $cust_main->custnum
+          )
           || grep { $_ eq 'POST' } @invoicing_list                     )
 
           ? 'CHECKED'