[freeside-commits] freeside/httemplate/misc xmlhttp-cust_main-discount_terms.cgi, NONE, 1.1 batch-cust_pay.html, 1.13, 1.14 payment.cgi, 1.26, 1.27

Jeff Finucane,420,, jeff at wavetail.420.am
Wed Sep 22 12:16:21 PDT 2010


Update of /home/cvs/cvsroot/freeside/httemplate/misc
In directory wavetail.420.am:/tmp/cvs-serv19099/httemplate/misc

Modified Files:
	batch-cust_pay.html payment.cgi 
Added Files:
	xmlhttp-cust_main-discount_terms.cgi 
Log Message:
prepayment discounts rt#5318

Index: payment.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/misc/payment.cgi,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -w -d -r1.26 -r1.27
--- payment.cgi	5 Oct 2009 18:17:55 -0000	1.26
+++ payment.cgi	22 Sep 2010 19:16:19 -0000	1.27
@@ -67,6 +67,11 @@
 
 % }
 
+<% include('/elements/tr-select-discount_term.html',
+             'custnum' => $custnum,
+             'cgi'     => $cgi
+          )
+%>
 
 % if ( $payby eq 'CARD' ) {
 %

--- NEW FILE: xmlhttp-cust_main-discount_terms.cgi ---
% if ( $sub eq 'discount_terms' ) {
% 
%   my $return = [];
%   my $custnum = $cgi->param('arg');
%   my $cust_main = '';
%   $cust_main = qsearchs({
%     'table'   => 'cust_main',
%     'hashref' => { 'custnum' => $custnum },
%     'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
%   });
%     
%   if ($cust_main) {
%     $return = [ map [ $_, "$_ months" ], $cust_main->discount_terms ];
%   }
%
<% objToJson($return) %>
% } 
<%init>

my $conf = new FS::Conf;

my $sub = $cgi->param('sub');

</%init>

Index: batch-cust_pay.html
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/misc/batch-cust_pay.html,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -w -d -r1.13 -r1.14
--- batch-cust_pay.html	19 Mar 2010 08:20:35 -0000	1.13
+++ batch-cust_pay.html	22 Sep 2010 19:16:19 -0000	1.14
@@ -13,23 +13,63 @@
   }
 }
 window.onbeforeunload = warnUnload;
+
+function select_discount_term(row, prefix) {
+  var custnum_obj = document.getElementById('custnum'+prefix+row);
+  var select_obj = document.getElementById('discount_term'+prefix+row);
+
+  var value = '';
+  if (select_obj.type == 'hidden') {
+    value = select_obj.value;
+  }
+
+  var term_select = document.createElement('SELECT');
+  term_select.setAttribute('name', 'discount_term'+row);
+  term_select.setAttribute('id',   'discount_term'+row);
+  term_select.setAttribute('rownum', row);
+  term_select.style.display = '';
+  select_obj.parentNode.replaceChild(term_select, select_obj);
+  opt(term_select, '', '1 month');
+  
+  function select_discount_term_update(discount_terms) {
+
+    var termArray = eval('(' + discount_terms + ')');
+    for ( var t = 0; t < termArray.length; t++ ) {
+      opt(term_select, termArray[t][0], termArray[t][1]);
+      if (termArray[t][0] == value) {
+        term_select.selectedIndex = t+1;
+      }
+    }
+
+  }
+
+  discount_terms(custnum_obj.value, select_discount_term_update);
+
+}
 </SCRIPT>
 
+<% include('/elements/xmlhttp.html',
+              'url'  => $p. 'misc/xmlhttp-cust_main-discount_terms.cgi',
+              'subs' => [qw( discount_terms )],
+           )
+%>
+
 <FORM ACTION="process/batch-cust_pay.cgi" NAME="OneTrueForm" METHOD="POST" onsubmit="document.OneTrueForm.submit.disabled=true;window.onbeforeunload = null;">
 
 <!-- <B>Batch</B> <INPUT TYPE="text" NAME="paybatch"><BR><BR> -->
 
 <% include( "/elements/customer-table.html",
               name_singular => 'payment',
-              header  => [ '', 'Amount', 'Check #', '' ],
-              fields  => [ sub {'$'}, 'paid', 'payinfo', 'error', ],
-              types   => [ 'immutable', '', '', 'immutable', ],
-              align   => [ 'c', 'r', 'r', 'l' ],
-              sizes   => [ 0, 8, 10, 0, ],
-              colors  => [ '', '', '', '#ff0000' ],
-              param   => { () },
-              footer  => [ '$', '_TOTAL', '', '' ],
-              footer_align => [ 'c', 'r', 'r', '' ],
+              header  => \@header,
+              fields  => \@fields,
+              types   => \@types,
+              align   => \@align,
+              sizes   => \@sizes,
+              colors  => \@colors,
+              param   => \%param,
+              footer  => \@footer,
+              footer_align => \@footer_align,
+              custnum_update_callback => $custnum_update_callback,
           )
 %>
 
@@ -41,6 +81,14 @@
 
 </FORM>
 
+%if ( $cgi->param('error') ) {
+<SCRIPT TYPE="text/javascript">
+%  for ( my $row = 0; defined($cgi->param("custnum$row")); $row++ ) {
+     select_discount_term(<% $row %>, '');
+%  }
+</SCRIPT>
+%}
+
 <% include('/elements/footer.html') %>
 
 <%init>
@@ -48,4 +96,36 @@
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Post payment batch');
 
+my @header  = ( '', 'Amount', 'Check #' );
+my @fields  = ( sub {'$'}, 'paid', 'payinfo' );
+my @types   = ( 'immutable', '', '' );
+my @align   = ( 'c', 'r', 'r' );
+my @sizes   = ( 0, 8, 10 );
+my @colors  = ( '', '', '' );
+my %param   = ();
+my @footer  = ( '$', '_TOTAL', '' );
+my @footer_align = ( 'c', 'r', 'r' );
+my $custnum_update_callback = '';
+
+if ( FS::Record->scalar_sql('SELECT count(*) FROM part_pkg_discount') ) {
+  push @header, '';
+  push @fields, 'discount_term';
+  push @types, 'immutable';
+  push @align, 'r';
+  push @sizes, '0';
+  push @colors, '';
+  push @footer, '';
+  push @footer_align, '';
+  $custnum_update_callback = 'select_discount_term';
+}
+
+push @header, '';
+push @fields, 'error';
+push @types, 'immutable';
+push @align, 'l';
+push @sizes, '0';
+push @colors, '#ff0000';
+push @footer, '';
+push @footer_align, '';
+
 </%init>



More information about the freeside-commits mailing list