add date to quick payment entry, RT#73382
authorIvan Kohler <ivan@freeside.biz>
Thu, 17 Nov 2016 05:02:41 +0000 (21:02 -0800)
committerIvan Kohler <ivan@freeside.biz>
Thu, 17 Nov 2016 05:02:41 +0000 (21:02 -0800)
httemplate/elements/customer-table.html
httemplate/misc/batch-cust_pay.html
httemplate/misc/process/batch-cust_pay.cgi

index 0aa792d..25c26b5 100644 (file)
@@ -25,7 +25,7 @@ Example:
              'custnum_update_callback' => 'name_of_js_callback' #passed a rownum
 
              #listrefs
-             'types'         => ['immutable', ''], # immutable or ''/text
+             'type'          => ['immutable', ''], # immutable, checkbox, date or ''/text
              'align'         => [ 'c', 'l', 'r', '' ],
              'size'          => [],                # sizes ignored for immutable
              'color'         => [],
@@ -66,7 +66,10 @@ This mason element is currently only used by misc/batch-cust_pay.html,
 and probably should be cleaned up more before being used by anything else.
 
 </%doc>
-
+<LINK REL="stylesheet" TYPE="text/css" HREF="<%$fsurl%>elements/calendar-win2k-2.css" TITLE="win2k-2">
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar_stripped.js"></SCRIPT>
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-en.js"></SCRIPT>
+<SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-setup.js"></SCRIPT>
 <SCRIPT TYPE="text/javascript">
 
   var num_open_invoices = new Array;
@@ -652,6 +655,12 @@ and probably should be cleaned up more before being used by anything else.
 %     } elsif ( $types->[$col] eq 'checkbox' ) {
       my_input.setAttribute('type', 'checkbox');
       my_input.checked = (values && values.<% $field %>) ? true : false;
+%     } elsif ( $types->[$col] eq 'date' ) {
+      my_input_button = document.createElement('IMG');
+      my_input_button.setAttribute('src', '<% $fsurl %>images/calendar.png');
+      my_input_button.setAttribute('title', <% mt('Select date') |js_string %>);
+      my_input_button.setAttribute('name', '<% $name %>'+thisrownum+'button');
+      my_input_button.setAttribute('id',   '<% $name %>'+thisrownum+'button');
 %     }
       my_input.value = (values && values.<% $field %>) || '';
 %     if ( $opt{onchange}->[$col] ) {
@@ -662,9 +671,21 @@ and probably should be cleaned up more before being used by anything else.
         my_input.onkeyup    = calc_total<%$col%>;
 %     }
       my_cell.appendChild(my_input);
+%     if ( $types->[$col] eq 'date' ) {
+      my_cell.appendChild(my_input_button);
+%     }
 
     row.appendChild(my_cell);
 
+%     if ( $types->[$col] eq 'date' ) {
+      Calendar.setup({
+        inputField: '<% $name %>'+thisrownum,
+        ifFormat:   "<% $date_format %>",
+        button:     '<% $name %>'+thisrownum+'button',
+        align:      "BR"
+      });
+%     }
+
 %     $col++;
 %   }
 
@@ -805,6 +826,7 @@ addRow();
 
 my(%opt) = @_;
 my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
 
 my $types = $opt{'type'} ? [ @{$opt{'type'}} ] : [];
 my $sizes = $opt{'size'} ? [ @{$opt{'size'}} ] : [];
index d4d4afa..e20e4a4 100644 (file)
@@ -469,16 +469,16 @@ die "access denied"
 my $conf = new FS::Conf;
 my $money_char = $conf->config('money_char') || '$';
 
-my @header  = ( 'Amount', 'Check #' );
-my @fields  = ( 'paid', 'payinfo' );
-my @types   = ( '', '' );
-my @align   = ( 'r', 'r' );
-my @sizes   = ( 8, 10 );
-my @colors  = ( '', '' );
+my @header  = ( 'Amount', 'Check #', 'Date override' );
+my @fields  = ( 'paid', 'payinfo', '_date' );
+my @types   = ( '', '', 'date', );
+my @align   = ( 'r', 'r', 'r' );
+my @sizes   = ( 8, 10, 8 );
+my @colors  = ( '', '', '' );
 my %param   = ();
-my @footer  = ( '_TOTAL', '' );
-my @footer_align = ( 'r', 'r' );
-my @onchange = ( '', '' );;
+my @footer  = ( '_TOTAL', '', '' );
+my @footer_align = ( 'r', 'r', '' );
+my @onchange = ( '', '', '' );
 my $use_discounts = '';
 
 # Not entirely sure this works anymore...
index ff78862..b4580bb 100644 (file)
@@ -38,6 +38,7 @@ foreach my $row ( map /^custnum(\d+)$/, keys %$param ) {
                     'paid'           => $param->{"paid$row"},
                     'payby'          => 'BILL',
                     'payinfo'        => $param->{"payinfo$row"},
+                    '_date'          => $param->{"_date$row"},
                     'discount_term'  => $param->{"discount_term$row"},
                     'paybatch'       => $paybatch,
                     'no_auto_apply'  => exists($param->{"no_auto_apply$row"}) ? 'Y' : '',