4.x style
[freeside.git] / httemplate / edit / elements / ApplicationCommon.html
index 08e1d46..a531eaa 100644 (file)
@@ -3,46 +3,45 @@
 Examples:
 
   #cust_bill_pay
-  include('elements/ApplicationCommon.html',
-    'form_action' => 'process/cust_bill_pay.cgi'
+  <& elements/ApplicationCommon.html,
+    'form_action' => 'process/cust_bill_pay.cgi, 
     'src_table'   => 'cust_pay',
     'src_thing'   => 'payment',
     'dst_table'   => 'cust_bill',
     'dst_thing'   => 'invoice',
-  )
+  &>
 
   #cust_credit_bill
-  include('elements/ApplicationCommon.html',
-    'form_action' => 'process/cust_credit_bill.cgi',
+  <& elements/ApplicationCommon.html',
+    'form_action' => 'process/cust_credit_bill.cgi,
     'src_table'   => 'cust_credit',
     'src_thing'   => 'credit',
     'dst_table'   => 'cust_bill',
     'dst_thing'   => 'invoice',
-  )
+  &>
 
   #cust_pay_refund
-  include('elements/ApplicationCommon.html',
-    'form_action' => 'process/cust_pay_refund.cgi',
+  <& elements/ApplicationCommon.html',
+    'form_action' => 'process/cust_pay_refund.cgi,
     'src_table'   => 'cust_pay',
     'src_thing'   => 'payment',
     'dst_table'   => 'cust_refund',
     'dst_thing'   => 'refund',
-  )
+  &>
 
   #cust_credit_refund
-  include('elements/ApplicationCommon.html',
+  <& elements/ApplicationCommon.html,
     'form_action' => 'process/cust_credit_refund.cgi',
     'src_table'   => 'cust_credit',
     'src_thing'   => 'credit',
     'dst_table'   => 'cust_refund',
     'dst_thing'   => 'refund',
-  )
+  &>
 
 </%doc>
+<& /elements/header-popup.html, "Apply $src_thing$to", '', 'onLoad="myOnLoadFunction();"' &>
 
-<% include('/elements/header-popup.html', "Apply $src_thing$to", '', 'onLoad="myOnLoadFunction();"') %>
-
-<% include('/elements/error.html') %>
+<& /elements/error.html &>
 
 <P ID="ErrorMessage"></P>
 <FORM ACTION="<% $p1. $opt{'form_action'} %>" NAME="ApplicationForm" ID="ApplicationForm" METHOD=POST>
@@ -54,7 +53,7 @@ Examples:
 
 <TR>
   <TD ALIGN="right">Date: </TD>
-  <TD><B><% time2str("%D", $src->_date) %></B></TD>
+  <TD><B><% time2str($date_format, $src->_date) %></B></TD>
 </TR>
 
 <TR>
@@ -86,20 +85,36 @@ Examples:
 <BR>
 
 <SCRIPT TYPE="text/javascript">
+function clear_amounts() {
+  var rownum=0
+  var table = document.getElementById('ApplicationTable');
+  for (var row = 2; table.rows[row]; row++)
+  {
+    var inputs = table.rows[row].getElementsByTagName('input');
+    if ( !inputs.length ) {
+      break;
+    }
+    inputs.item(0).value = ''; // amount
+  }
+
+}
+
 function changed(what) {
   dst = what.options[what.selectedIndex].value;
 
   if ( dst == '' ) {
     what.form.submit.disabled=true;
-%if ($src_pkey eq 'crednum') {
+%if ($use_sub_dst_thing && $src_pkey eq 'crednum') {
     what.form.tax_button.disabled=true;
+    what.form.clear_button.disabled=true;
 %}
     return true;
   }
 
   what.form.submit.disabled=false;
-%if ($src_pkey eq 'crednum') {
+%if ($use_sub_dst_thing && $src_pkey eq 'crednum') {
   what.form.tax_button.disabled=false;
+  what.form.clear_button.disabled=false;
 %}
 
 % foreach my $dst ( @dst ) {
@@ -142,6 +157,7 @@ function changed(what) {
 %           }
 %           $desc .= ' (default)';
 %         }
+%         $total_owed = sprintf('%.2f', $total_owed + 0.00000001 ); #so 1.005 rounds to 1.01
 %         if ( $total_owed > 0 ) {
             <% &{$row_generator}($key, $cbp, $desc, $total_owed, $amount, '') %>
 %         }
@@ -184,12 +200,22 @@ function set_amount_color(what) {
 Apply to:
 
 % if ($use_sub_dst_thing && $src_pkey eq 'crednum') {
-<CENTER><BUTTON TYPE="button" NAME="tax_button" ID="tax_button" onClick="do_calculate_tax(this);" DISABLED>Calculate Tax</BUTTON></CENTER>
-<% include( '/elements/xmlhttp.html',
+<CENTER>
+  <TABLE>
+    <TR>
+      <TD>
+        <BUTTON TYPE="button" NAME="tax_button" ID="tax_button" onClick="do_calculate_tax(this);" DISABLED>Calculate Tax</BUTTON>
+      </TD>
+      <TD>
+        <BUTTON TYPE="button" NAME="clear_button" ID="clear_button" onClick="clear_amounts(this);" DISABLED>Clear Amounts</BUTTON>
+      </TD>
+    </TR>
+  </TABLE>
+</CENTER>
+<& /elements/xmlhttp.html,
             'url' =>  $p.'misc/xmlhttp-calculate_taxes.html',
             'subs' => [ 'calculate_taxes' ],
-          )
- %>
+&>
 <SCRIPT TYPE="text/javascript">
 
 function show_taxes(arg) {
@@ -198,6 +224,8 @@ function show_taxes(arg) {
   var button = document.getElementById('tax_button');
   button.disabled = false;
   button.innerHTML = 'Calculate Tax';
+  button = document.getElementById('clear_button');
+  button.disabled = false;
 
   var error = argsHash['error'];
 
@@ -256,6 +284,8 @@ function show_taxes(arg) {
 function do_calculate_tax (what) {
   what.innerHTML = 'Calculating....';
   what.disabled = true;
+  var button = document.getElementById('clear_button');
+  button.disabled = true;
   var taxed_items = new Array();
   var table = document.getElementById('ApplicationTable');
   for (var row = 2; table.rows[row]; row++)
@@ -267,7 +297,7 @@ function do_calculate_tax (what) {
     var taxed_item = new Array(
       inputs.item(1).value, // billpkgnum
       inputs.item(3).value, // s_or_r
-      inputs.item(0).value  // amount
+      inputs.item(0).value || 0  // amount
     );
     taxed_items.push(taxed_item);
   }
@@ -323,7 +353,7 @@ function src_amount_changed () {
 <OPTION VALUE="">Select <% $dst_thing %>
 
 % foreach my $dst ( @dst ) { 
-  <OPTION<% $dst->$dst_pkey eq $dst_pkeyvalue ? ' SELECTED' : '' %> VALUE="<% $dst->$dst_pkey %>">#<% $dst->$dst_pkey %> - <% time2str("%D", $dst->_date) %> - $<% $dst->$dst_unapplied %>
+  <OPTION<% $dst->$dst_pkey eq $dst_pkeyvalue ? ' SELECTED' : '' %> VALUE="<% $dst->$dst_pkey %>">#<% $dst->$dst_pkey %> - <% time2str($date_format, $dst->_date) %> - $<% $dst->$dst_unapplied %>
 % } 
 
 </SELECT>
@@ -361,14 +391,14 @@ function myOnLoadFunction () {
 
 </SCRIPT>
 
-<% include('/elements/footer.html') %>
-
+<& /elements/footer-popup.html &>
 <%init>
 
 my %opt = @_;
 
 my $conf = new FS::Conf;
-my $money_char = $conf->config('money_char') || '$';
+my $money_char  = $conf->config('money_char')  || '$';
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
 
 my $src_thing = ucfirst($opt{'src_thing'});
 my $src_table = $opt{'src_table'};
@@ -395,6 +425,8 @@ $can_change_credit = 1
 
 my $to = $dst_table eq 'cust_refund' ? ' to Refund' : '';
 
+$m->comp('/elements/handle_uri_query');
+
 my($src_pkeyvalue, $amount, $dst_pkeyvalue, $src_amount);
 if ( $cgi->param('error') ) {
   $src_pkeyvalue = $cgi->param($src_pkey);
@@ -409,8 +441,6 @@ if ( $cgi->param('error') ) {
   $dst_pkeyvalue = '';
 }
 
-my $otaker = getotaker;
-
 my $p1 = popurl(1);
 
 my $src = qsearchs($src_table, { $src_pkey => $src_pkeyvalue } );