[freeside-commits] freeside/httemplate/misc timeworked.html, NONE, 1.1 batch-cust_pay.html, 1.7, 1.8

Jeff Finucane,420,, jeff at wavetail.420.am
Thu Aug 16 06:40:47 PDT 2007


Update of /home/cvs/cvsroot/freeside/httemplate/misc
In directory wavetail:/tmp/cvs-serv28263/httemplate/misc

Modified Files:
	batch-cust_pay.html 
Added Files:
	timeworked.html 
Log Message:
support hours 'usage' tracking for our own internal use (#1733)

--- NEW FILE: timeworked.html ---
<% include('/elements/header.html', $title, '' ) %>

% if ( $cgi->param('error') ) { 
  <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
  <BR><BR>
% } 

<FORM NAME="timeworked_form" ACTION="<% popurl(1) %>process/timeworked.html" METHOD=POST>

<BR><BR>
<% include("elements/customer-table.html", header => [ 'Multiplier' ],
                                           fields => [ 'multiplier' ],
                                           param  => { %param },
          ) %>

<BR>
<INPUT TYPE="submit" NAME="submit" VALUE="<% $title %>">
<BR>
<BR>

for transactions/tickets:
<TABLE>

%  foreach ( sort { $a <=> $b } keys %ticket ) {

  <TR><TD><% $_ %></TD><TD><% $ticket{$_} %></TD></TR>
  <INPUT TYPE="hidden" NAME="transactionid<% $_ %>" VALUE="1" >
  <INPUT TYPE="hidden" NAME="seconds<% $_ %>" VALUE="<% $cgi->param("seconds$_") %>" >

%  }

</TABLE>
</FORM>
</BODY>
</HTML>

<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Time queue');

my($svcnum, %ticket, %customers, %param); 
my $title = 'Assign Time Worked';

RT::Init();

my $CurrentUser = RT::CurrentUser->new();
$CurrentUser->LoadByName($FS::CurrentUser::CurrentUser->username);

foreach my $id ( map { /^transactionid(\d+)$/; $1; }
                     grep /^transactionid\d+$/, $cgi->param) {
  my $transaction = new RT::Transaction($CurrentUser); 
  $transaction->Load($id);
  my $ticket = new RT::Ticket($CurrentUser);
  $ticket->Load($transaction->ObjectId);
  $ticket{$id} = $ticket->Subject;
  foreach my $customerURI (
                       grep { $_->Resolver->{'fstable'} eq 'cust_main' } 
                       grep { $_->Scheme eq 'freeside' } 
                        map { $_->TargetURI } 
                            @{ $ticket->_Links('Base')->ItemsArrayRef } 
                          ) {
    $customers{$customerURI->Resolver->AsString} = 1;
  }
}

my $row = 0;
foreach ( keys %customers ) {
  my ($number, $name) = split(':', $_, 2);
  $param{"custnum$row"} = $number;
  $param{"customer$row"} = $name;
  $param{"multiplier$row"} = sprintf("%.2f", 1/scalar(keys(%customers)));
  $row++;
}

</%init>


Index: batch-cust_pay.html
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/misc/batch-cust_pay.html,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- batch-cust_pay.html	23 Aug 2006 22:25:38 -0000	1.7
+++ batch-cust_pay.html	16 Aug 2007 13:40:44 -0000	1.8
@@ -1,8 +1,5 @@
 <% include("/elements/header.html", 'Quick payment entry',
-            menubar(
-                     'Main Menu' => $p, #popurl(1),
-                   ),
-            ( $cgi->param('error') ? '' : 'onload="addRow()"' ),
+            menubar( 'Main Menu' => $p ),
           )
 %>
 % if ( $cgi->param('error') ) { 
@@ -16,284 +13,13 @@
 
 <!-- <B>Batch</B> <INPUT TYPE="text" NAME="paybatch"><BR><BR> -->
 
-<SCRIPT TYPE="text/javascript">
-
-  function clearhint_custnum() {
-
-    //this.style.color = '#000000';
-
-    if ( this.value == 'Not found' || this.value == 'Multiple' ) {
-      this.value = '';
-      this.style.color = '#000000';
-    }
-
-  }
-
-  function clearhint_customer() {
-
-    this.style.color = '#000000';
-
-    if ( this.value == '(last name or company)' || this.value == 'Not found' )
-      this.value = '';
-
-  }
-
-  function search_custnum() {
-
-    this.style.color = '#000000'
-
-    var custnum_obj = this;
-    var searchrow = this.getAttribute('rownum');
-    var custnum = this.value;
-
-    if ( custnum == 'searching...' || custnum == 'Not found' || custnum == '' )
-      return;
-
-    if ( this.getAttribute('magic') == 'nosearch' ) {
-      this.setAttribute('magic', '');
-      return;
-    }
-
-    if ( ( rownum - searchrow ) == 1 ) {
-      addRow();
-    }
-    var customer = document.getElementById('customer'+searchrow);
-    customer.value = 'searching...';
-    customer.disabled = true;
-    customer.style.color = '#000000';
-    customer.style.backgroundColor = '#dddddd';
-
-    var customer_select = document.getElementById('cust_select'+searchrow);
-
-    //alert('search for custnum ' + custnum + ', row#' + searchrow );
-
-    customer.style.display = '';
-    customer_select.style.display = 'none';
-
-    function search_custnum_update(name) {
-
-      var name = eval('(' + name + ')' );
-
-      customer.disabled = false;
-      customer.style.backgroundColor = '#ffffff';
-
-      if ( name.length > 0 ) {
-        //alert('custnum found: ' + name);
-        customer.value = name;
-        customer.setAttribute('magic', 'nosearch');
-      } else {
-        customer.value = 'Not found';
-        customer.style.color = '#ff0000';
-        custnum_obj.style.color = '#ff0000';
-
-      }
-
-    }
-
-    custnum_search( custnum, search_custnum_update );
-
-  }
-
-  function search_customer() {
-
-    var customer_obj = this;
-    var searchrow = this.getAttribute('rownum');
-    var customer = this.value;
-
-    if ( customer == 'searching...' || customer == 'Not found' || customer == '' )
-      return;
-
-    if ( this.getAttribute('magic') == 'nosearch' ) {
-      this.setAttribute('magic', '');
-      return;
-    }
-
-    if ( ( rownum - searchrow ) == 1 ) {
-      addRow();
-    }
-
-    var custnum_obj = document.getElementById('custnum'+searchrow);
-    custnum_obj.value = 'searching...';
-    custnum_obj.disabled = true;
-    custnum_obj.style.color = '#000000';
-    custnum_obj.style.backgroundColor = '#dddddd';
-
-    var customer_select = document.getElementById('cust_select'+searchrow);
-
-    //alert('search for customer ' + customer + ', row#' + searchrow );
-
-    function search_customer_update(customers) {
-
-      //alert('customers returned: ' + customers);
-
-      var customerArray = eval('(' + customers + ')');
-
-      custnum_obj.disabled = false;
-      custnum_obj.style.backgroundColor = '#ffffff';
-
-      if ( customerArray.length == 0 ) {
-
-        custnum_obj.value = 'Not found';
-        custnum_obj.style.color = '#ff0000';
-        customer_obj.style.color = '#ff0000';
-
-        customer_obj.style.display = '';
-        customer_select.style.display = 'none';
-
-
-      } else if ( customerArray.length == 1 ) {
-
-        //alert('one customer found: ' + customerArray[0]);
-
-        custnum_obj.value = customerArray[0][0];
-        customer_obj.value = customerArray[0][1];
-
-        customer_obj.style.display = '';
-        customer_select.style.display = 'none';
-
-
-      } else {
-
-        custnum_obj.value = 'Multiple'; // or something
-        custnum_obj.style.color = '#ff0000';
-
-        //alert('multiple customers found, have to create select dropdown');
-
-        //blank the current list
-        for ( var i = customer_select.length; i >= 0; i-- )
-          customer_select.options[i] = null;
-
-        opt(customer_select, '', 'Multiple customers match "' + customer + '" - select one', '#ff0000');
-
-        //add the multiple customers
-        for ( var s = 0; s < customerArray.length; s++ )
-          opt(customer_select, customerArray[s][0], customerArray[s][1], '#000000');
-
-        opt(customer_select, 'cancel', '(Edit search string)', '#000000');
-
-        customer_obj.style.display = 'none';
-
-        customer_select.style.display = '';
-
-      }
-
-    }
-
-    smart_search( customer, search_customer_update );
-
-  }
-
-  function select_customer() {
-
-    var custnum = this.options[this.selectedIndex].value;
-    var customer = this.options[this.selectedIndex].text;
-
-    var searchrow = this.getAttribute('rownum');
-    var custnum_obj = document.getElementById('custnum'+searchrow);
-    var customer_obj = document.getElementById('customer'+searchrow);
-
-    if ( custnum == '' ) {
-      //this.style.color = '#ff0000';
-
-    } else if ( custnum == 'cancel' ) {
-
-      custnum_obj.value = '';
-      custnum_obj.style.color = '#000000';
-
-      this.style.display = 'none';
-      customer_obj.style.display = '';
-      customer_obj.focus();
-
-    } else {
-
-
-      custnum_obj.value = custnum;
-      custnum_obj.style.color = '#000000';
-
-      customer_obj.value = customer;
-      customer_obj.style.color = '#000000';
-
-      this.style.display = 'none';
-      customer_obj.style.display = '';
-
-    }
-
-  }
-
-  function opt(what,value,text,color) {
-    var optionName = new Option(text, value, false, false);
-    optionName.style.color = color;
-    var length = what.length;
-    what.options[length] = optionName;
-  }
-
-</SCRIPT>
-
-<TABLE ID="OneTrueTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0>
-
-<TR>
-  <TH>Cust #</TH>
-  <TH>Customer</TH>
-  <TH>Amount</TH>
-  <TH>Check #</TH>
-  <TH BGCOLOR="#e8e8e8"></TH>
-</TR>
-% my $row = 0;
-%   if ( $cgi->param('error') ) {
-%     my $param = $cgi->Vars;
-%
-% for ( $row = 0; exists($param->{"custnum$row"}); $row++ ) { 
-
-
-    <TR>
-
-      <TD>
-        <INPUT TYPE="text" NAME="custnum<% $row %>" ID="custnum<% $row %>" SIZE=8 MAXLENGTH=12 VALUE="<% $param->{"custnum$row"} %>" rownum="<% $row %>">
-          <SCRIPT TYPE="text/javascript">
-            var custnum_input<% $row %> = document.getElementById("custnum<% $row %>");
-            custnum_input<% $row %>.onfocus = clearhint_custnum;
-            custnum_input<% $row %>.onchange = search_custnum;
-          </SCRIPT>
-      </TD>
-
-      <TD>
-        <INPUT TYPE="text" NAME="customer<% $row %>" ID="customer<% $row %>" SIZE=64 VALUE="<% $param->{"customer$row"} %>" rownum="<% $row %>">
-          <SCRIPT TYPE="text/javascript">
-            var customer_input<% $row %> = document.getElementById("customer<% $row %>");
-            customer_input<% $row %>.onfocus = clearhint_customer;
-            customer_input<% $row %>.onclick = clearhint_customer;
-            customer_input<% $row %>.onchange = search_customer;
-          </SCRIPT>
-        <SELECT NAME="cust_select<% $row %>" ID="cust_select<% $row %>" rownum="<% $row %>" STYLE="color:#ff0000; display:none">
-        </SELECT>
-          <SCRIPT TYPE="text/javascript">
-            var customer_select<% $row %> = document.getElementById("cust_select<% $row %>");
-            customer_select<% $row %>.onchange = select_customer;
-          </SCRIPT>
-      </TD>
-
-      <TD>
-        $<INPUT TYPE="text" NAME="paid<% $row %>" SIZE=8 MAXLENGTH=8 VALUE="<% $param->{"paid$row"} %>" >
-      </TD>
-
-      <TD>
-        <INPUT TYPE="text" NAME="payinfo<% $row %>" SIZE=10 VALUE="<% $param->{"payinfo$row"} %>" >
-      </TD>
-
-      <TD BGCOLOR="#e8e8e8">
-% if ( $param->{"error$row"} ) { 
-
-        <FONT SIZE="-1" COLOR="#ff0000">Error: <% $param->{"error$row"} %></FONT>
-% } 
-
-      </TD>
-
-    </TR>
-% } 
-% } 
-
-
-</TABLE>
+<% include( "elements/customer-table.html",
+            header => [ '', 'Amount', 'Check #', '' ],
+            fields => [ sub {'$'}, 'paid', 'payinfo', 'error', ],
+            types  => [ 'immutable', '', '', 'immutable', ],
+            sizes  => [ 0, 8, 10, 0, ],
+            param  => { () },
+          ) %>
 
 <!-- <BR>
 <INPUT TYPE="button" VALUE="TEST addrow" onclick="addRow()"> -->
@@ -302,94 +28,5 @@
 <INPUT TYPE="submit" NAME="submit" VALUE="Post payment batch">
 
 </FORM>
-
-
-<% include('/elements/xmlhttp.html',
-              'url'  => $p. 'misc/xmlhttp-cust_main-search.cgi',
-              'subs' => [qw( custnum_search smart_search )],
-           )
-%>
-
-<SCRIPT TYPE="text/javascript">
-
-  var rownum = <% $row %>;
-
-  function addRow() {
-
-    var table = document.getElementById('OneTrueTable');
-    var tablebody = table.getElementsByTagName('tbody').item(0);
-
-    var row = document.createElement('TR');
-
-    var custnum_cell = document.createElement('TD');
-
-      var custnum_input = document.createElement('INPUT');
-      custnum_input.setAttribute('name', 'custnum'+rownum);
-      custnum_input.setAttribute('id',   'custnum'+rownum);
-      custnum_input.setAttribute('size', 8);
-      custnum_input.setAttribute('maxlength', 12);
-      custnum_input.setAttribute('rownum', rownum);
-      custnum_input.onfocus = clearhint_custnum;
-      custnum_input.onchange = search_custnum;
-      custnum_cell.appendChild(custnum_input);
-
-    row.appendChild(custnum_cell);
-
-    var customer_cell = document.createElement('TD');
-
-      var customer_input = document.createElement('INPUT');
-      customer_input.setAttribute('name', 'customer'+rownum);
-      customer_input.setAttribute('id',   'customer'+rownum);
-      customer_input.setAttribute('size', 64);
-      customer_input.setAttribute('value', '(last name or company)' );
-      customer_input.setAttribute('rownum', rownum);
-      customer_input.onfocus = clearhint_customer;
-      customer_input.onclick = clearhint_customer;
-      customer_input.onchange = search_customer;
-      customer_cell.appendChild(customer_input);
-
-      var customer_select = document.createElement('SELECT');
-      customer_select.setAttribute('name', 'cust_select'+rownum);
-      customer_select.setAttribute('id',   'cust_select'+rownum);
-      customer_select.setAttribute('rownum', rownum);
-      customer_select.style.color = '#ff0000';
-      customer_select.style.display = 'none';
-      customer_select.onchange = select_customer;
-      customer_cell.appendChild(customer_select);
-
-    row.appendChild(customer_cell);
-
-    var paid_cell = document.createElement('TD');
-
-      var paid_text = document.createTextNode('$');
-      paid_cell.appendChild(paid_text);
-
-      var paid_input = document.createElement('INPUT');
-      paid_input.setAttribute('name', 'paid'+rownum);
-      paid_input.setAttribute('size', 8);
-      paid_input.setAttribute('maxlength', 8);
-      paid_cell.appendChild(paid_input);
-
-    row.appendChild(paid_cell);
-
-    var payinfo_cell = document.createElement('TD');
-      var payinfo_input = document.createElement('INPUT');
-      payinfo_input.setAttribute('name', 'payinfo'+rownum);
-      payinfo_input.setAttribute('size', 10);
-      payinfo_cell.appendChild(payinfo_input);
-    row.appendChild(payinfo_cell);
-
-    var error_cell = document.createElement('TD');
-    error_cell.style.backgroundColor = '#e8e8e8';
-    row.appendChild(error_cell);
-
-    tablebody.appendChild(row);
-
-    rownum++;
-
-  }
-
-</SCRIPT>
-
 </BODY>
 </HTML>



More information about the freeside-commits mailing list