fix payment and refund searches by otaker (now usernum), RT#9555
authorivan <ivan>
Sun, 15 Aug 2010 06:21:06 +0000 (06:21 +0000)
committerivan <ivan>
Sun, 15 Aug 2010 06:21:06 +0000 (06:21 +0000)
httemplate/elements/select-user.html
httemplate/graph/money_time.cgi
httemplate/misc/process/batch-cust_pay.cgi
httemplate/misc/process/cust_pay-import.cgi
httemplate/search/cust_pay.cgi [deleted file]
httemplate/search/cust_pay.html [new file with mode: 0755]
httemplate/search/elements/cust_pay_or_refund.html
httemplate/search/elements/report_cust_pay_or_refund.html [new file with mode: 0644]
httemplate/search/report_cust_pay.html
httemplate/search/report_cust_refund.html

index bdb92e7..6264398 100644 (file)
@@ -4,8 +4,8 @@
   <OPTION VALUE="">all</OPTION>
 % }
 
-% foreach my $otaker ( @{ $opt{'otakers'} } ) { 
-    <OPTION VALUE="<% shift(@{$opt{'usernums'}}) %>"><% $otaker %></OPTION>
+% foreach my $usernum ( keys %{ $opt{'access_user'} } ) { 
+    <OPTION VALUE="<%$usernum%>"><% $opt{'access_user'}->{$usernum} %></OPTION>
 % } 
 
 </SELECT>
 
 my %opt = @_;
 
-unless ( $opt{'otakers'} ) {
+unless ( $opt{'access_user'} ) {
 
-  my $sth = dbh->prepare("SELECT username,usernum FROM access_user".
-                       " WHERE disabled = '' or disabled IS NULL")
-    or die dbh->errstr;
+  tie %{ $opt{'access_user'} }, 'Tie::IxHash';
+
+  my $sth = dbh->prepare("
+    SELECT usernum, username FROM access_user
+      WHERE disabled = '' or disabled IS NULL
+        ORDER BY username
+  ") or die dbh->errstr;
   $sth->execute or die $sth->errstr;
-  for($sth->fetchall_arrayref) {
-    $opt{'otakers'} = [ map { $_->[0] } @$_ ];
-    $opt{'usernums'} = [ map { $_->[1] } @$_ ];
+  while ( my $row = $sth->fetchrow_arrayref ) {
+    $opt{'access_user'}->{$row->[0]} = $row->[1];
   }
 
 }
index 4e4157e..cde71be 100644 (file)
@@ -88,7 +88,7 @@ my %link = (
   'netsales'   => "${p}search/cust_bill.html?agentnum=$agentnum;net=1;",
   'credits'    => "${p}search/cust_credit.html?agentnum=$agentnum;",
   'netcredits' => "${p}search/cust_credit_bill.html?agentnum=$agentnum;",
-  'payments'   => "${p}search/cust_pay.cgi?magic=_date;agentnum=$agentnum;",
+  'payments'   => "${p}search/cust_pay.html?magic=_date;agentnum=$agentnum;",
   'receipts'   => "${p}search/cust_bill_pay.html?agentnum=$agentnum;",
   'refunds'    => "${p}search/cust_refund.html?magic=_date;agentnum=$agentnum;",
   'netrefunds' => "${p}search/cust_credit_refund.html?agentnum=$agentnum;",
index 058a225..4da00c6 100644 (file)
@@ -42,6 +42,6 @@
 % } else {
 %
 %    
-<% $cgi->redirect(popurl(3). "search/cust_pay.cgi?magic=paybatch;paybatch=$paybatch") %>
+<% $cgi->redirect(popurl(3). "search/cust_pay.html?magic=paybatch;paybatch=$paybatch") %>
 % } 
 
index d4ff226..92b6e5a 100644 (file)
@@ -1,4 +1,4 @@
-<% $cgi->redirect(popurl(3). "search/cust_pay.cgi?magic=paybatch;paybatch=$paybatch") %> 
+<% $cgi->redirect(popurl(3). "search/cust_pay.html?magic=paybatch;paybatch=$paybatch") %> 
 <%init>
 
 my $fh = $cgi->upload('csvfile');
diff --git a/httemplate/search/cust_pay.cgi b/httemplate/search/cust_pay.cgi
deleted file mode 100755 (executable)
index 65bd39e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<% include( 'elements/cust_pay_or_refund.html',
-                'thing'         => 'pay',
-                'amount_field'  => 'paid',
-                'name_singular' => 'payment',
-                'name_verb'     => 'paid',
-          )
-%>
diff --git a/httemplate/search/cust_pay.html b/httemplate/search/cust_pay.html
new file mode 100755 (executable)
index 0000000..65bd39e
--- /dev/null
@@ -0,0 +1,7 @@
+<% include( 'elements/cust_pay_or_refund.html',
+                'thing'         => 'pay',
+                'amount_field'  => 'paid',
+                'name_singular' => 'payment',
+                'name_verb'     => 'paid',
+          )
+%>
index 4f83d0a..114f245 100755 (executable)
@@ -245,8 +245,8 @@ if ( $cgi->param('magic') ) {
       push @search, "$table.payinfo = '$1'";
     }
 
-    if ( $cgi->param('otaker') =~ /^(\w+)$/ ) {
-      push @search, "$table.otaker = '$1'";
+    if ( $cgi->param('usernum') =~ /^(\d+)$/ ) {
+      push @search, "$table.usernum = $1";
     }
 
     #for cust_pay_pending...  statusNOT=done
diff --git a/httemplate/search/elements/report_cust_pay_or_refund.html b/httemplate/search/elements/report_cust_pay_or_refund.html
new file mode 100644 (file)
index 0000000..dff831e
--- /dev/null
@@ -0,0 +1,136 @@
+<%doc>
+
+Examples:
+
+  include( 'elements/report_cust_pay_or_refund.html',
+               'thing'          => 'pay',
+               'name_singular'  => 'payment',
+         )
+
+  include( 'elements/report_cust_pay_or_refund.html',
+               'thing'          => 'refund',
+               'name_singular'  => 'refund',
+         )
+
+</%doc>
+<% include('/elements/header.html', $title ) %>
+
+<FORM ACTION="<% $table %>.html" METHOD="GET">
+<INPUT TYPE="hidden" NAME="magic" VALUE="_date">
+
+<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
+
+  <TR>
+    <TH CLASS="background" COLSPAN=2 ALIGN="left">
+      <FONT SIZE="+1">Search options</FONT>
+    </TH>
+  </TR>
+
+  <TR>
+    <TD ALIGN="right"><% ucfirst(PL($name_singular)) %> of type: </TD>
+    <TD>
+      <SELECT NAME="payby" onChange="payby_changed(this)">
+        <OPTION VALUE="">all</OPTION>
+        <OPTION VALUE="CARD">credit card (all)</OPTION>
+        <OPTION VALUE="CARD-VisaMC">credit card (Visa/MasterCard)</OPTION>
+        <OPTION VALUE="CARD-Amex">credit card (American Express)</OPTION>
+        <OPTION VALUE="CARD-Discover">credit card (Discover)</OPTION>
+        <OPTION VALUE="CARD-Maestro">credit card (Maestro/Switch/Solo)</OPTION>
+        <OPTION VALUE="CHEK">electronic check / ACH</OPTION>
+        <OPTION VALUE="BILL">check</OPTION>
+        <OPTION VALUE="PREP">prepaid card</OPTION>
+        <OPTION VALUE="CASH">cash</OPTION>
+        <OPTION VALUE="WEST">Western Union</OPTION>
+        <OPTION VALUE="MCRD">manual credit card</OPTION>
+      </SELECT>
+    </TD>
+  </TR>
+
+  <SCRIPT TYPE="text/javascript">
+  
+    function payby_changed(what) {
+      if ( what.options[what.selectedIndex].value == 'BILL' ) {
+       document.getElementById('checkno_caption').style.color = '#000000';
+        what.form.payinfo.disabled = false;
+       what.form.payinfo.style.backgroundColor = '#ffffff';
+      } else {
+       document.getElementById('checkno_caption').style.color = '#bbbbbb';
+        what.form.payinfo.disabled = true;
+       what.form.payinfo.style.backgroundColor = '#dddddd';
+      }
+    }
+
+  </SCRIPT>
+
+  <TR>
+    <TD ALIGN="right"><FONT ID="checkno_caption" COLOR="#bbbbbb">Check #: </FONT></TD>
+    <TD>
+      <INPUT TYPE="text" NAME="payinfo" DISABLED STYLE="background-color: #dddddd">
+    </TD>
+  </TR>
+
+  <% include( '/elements/tr-select-agent.html',
+                 'curr_value'    => scalar($cgi->param('agentnum')),
+                 'label'         => 'for agent: ',
+                 'disable_empty' => 0,
+             )
+  %>
+
+  <% include( '/elements/tr-select-user.html' ) %>
+
+  <TR>
+    <TD ALIGN="right" VALIGN="center">Payment</TD>
+    <TD>
+      <TABLE>
+        <% include( '/elements/tr-input-beginning_ending.html',
+                      layout   => 'horiz',
+                  )
+        %>
+      </TABLE>
+    </TD>
+  </TR>
+
+% if ( $void ) {
+    <TR>
+      <TD ALIGN="right" VALIGN="center">Voided</TD>
+      <TD>
+        <TABLE>
+          <% include( '/elements/tr-input-beginning_ending.html',
+                        prefix => 'void',
+                        layout => 'horiz',
+                    )
+          %>
+        </TABLE>
+      </TD>
+    </TR>
+% }
+
+  <% include( '/elements/tr-input-lessthan_greaterthan.html',
+                'label' => 'Amount',
+               'field' => 'paid',
+            )
+  %>
+
+</TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Get Report">
+
+</FORM>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+my %opt = @_;
+my $table = 'cust_'.$opt{'thing'};
+my $name_singular = $opt{'name_singular'};
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
+
+my $void = $cgi->param('void') ? 1 : 0;
+
+my $title = $void ? "Voided $name_singular report" : "\u$name_singular report";
+$table .= '_void' if $void;
+
+</%init>
index 6c10a2e..ea7a215 100644 (file)
@@ -1,116 +1,5 @@
-<% include('/elements/header.html', $title ) %>
-
-<FORM ACTION="<% $void ? 'cust_pay_void.html' : 'cust_pay.cgi' %>" METHOD="GET">
-<INPUT TYPE="hidden" NAME="magic" VALUE="_date">
-
-<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
-
-  <TR>
-    <TH CLASS="background" COLSPAN=2 ALIGN="left">
-      <FONT SIZE="+1">Search options</FONT>
-    </TH>
-  </TR>
-
-  <TR>
-    <TD ALIGN="right">Payments of type: </TD>
-    <TD>
-      <SELECT NAME="payby" onChange="payby_changed(this)">
-        <OPTION VALUE="">all</OPTION>
-        <OPTION VALUE="CARD">credit card (all)</OPTION>
-        <OPTION VALUE="CARD-VisaMC">credit card (Visa/MasterCard)</OPTION>
-        <OPTION VALUE="CARD-Amex">credit card (American Express)</OPTION>
-        <OPTION VALUE="CARD-Discover">credit card (Discover)</OPTION>
-        <OPTION VALUE="CARD-Maestro">credit card (Maestro/Switch/Solo)</OPTION>
-        <OPTION VALUE="CHEK">electronic check / ACH</OPTION>
-        <OPTION VALUE="BILL">check</OPTION>
-        <OPTION VALUE="PREP">prepaid card</OPTION>
-        <OPTION VALUE="CASH">cash</OPTION>
-        <OPTION VALUE="WEST">Western Union</OPTION>
-        <OPTION VALUE="MCRD">manual credit card</OPTION>
-      </SELECT>
-    </TD>
-  </TR>
-
-  <SCRIPT TYPE="text/javascript">
-  
-    function payby_changed(what) {
-      if ( what.options[what.selectedIndex].value == 'BILL' ) {
-       document.getElementById('checkno_caption').style.color = '#000000';
-        what.form.payinfo.disabled = false;
-       what.form.payinfo.style.backgroundColor = '#ffffff';
-      } else {
-       document.getElementById('checkno_caption').style.color = '#bbbbbb';
-        what.form.payinfo.disabled = true;
-       what.form.payinfo.style.backgroundColor = '#dddddd';
-      }
-    }
-
-  </SCRIPT>
-
-  <TR>
-    <TD ALIGN="right"><FONT ID="checkno_caption" COLOR="#bbbbbb">Check #: </FONT></TD>
-    <TD>
-      <INPUT TYPE="text" NAME="payinfo" DISABLED STYLE="background-color: #dddddd">
-    </TD>
-  </TR>
-
-  <% include( '/elements/tr-select-agent.html',
-                 'curr_value'    => scalar($cgi->param('agentnum')),
-                 'label'         => 'for agent: ',
-                 'disable_empty' => 0,
-             )
-  %>
-
-  <% include( '/elements/tr-select-otaker.html' ) %>
-
-  <TR>
-    <TD ALIGN="right" VALIGN="center">Payment</TD>
-    <TD>
-      <TABLE>
-        <% include( '/elements/tr-input-beginning_ending.html',
-                      layout   => 'horiz',
-                  )
-        %>
-      </TABLE>
-    </TD>
-  </TR>
-
-% if ( $void ) {
-    <TR>
-      <TD ALIGN="right" VALIGN="center">Voided</TD>
-      <TD>
-        <TABLE>
-          <% include( '/elements/tr-input-beginning_ending.html',
-                        prefix => 'void',
-                        layout => 'horiz',
-                    )
-          %>
-        </TABLE>
-      </TD>
-    </TR>
-% }
-
-  <% include( '/elements/tr-input-lessthan_greaterthan.html',
-                'label' => 'Amount',
-               'field' => 'paid',
-            )
-  %>
-
-</TABLE>
-
-<BR>
-<INPUT TYPE="submit" VALUE="Get Report">
-
-</FORM>
-
-<% include('/elements/footer.html') %>
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
-
-my $void = $cgi->param('void') ? 1 : 0;
-
-my $title = $void ? 'Voided payment report' : 'Payment report';
-
-</%init>
+<% include( 'elements/report_cust_pay_or_refund.html',
+              'thing'          => 'pay',
+              'name_singular'  => 'payment',
+          )
+%>
index 4d31100..b886f2e 100644 (file)
@@ -1,116 +1,5 @@
-<% include('/elements/header.html', $title ) %>
-
-<FORM ACTION="<% $void ? 'cust_refund_void.html' : 'cust_refund.html' %>" METHOD="GET">
-<INPUT TYPE="hidden" NAME="magic" VALUE="_date">
-
-<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
-
-  <TR>
-    <TH CLASS="background" COLSPAN=2 ALIGN="left">
-      <FONT SIZE="+1">Search options</FONT>
-    </TH>
-  </TR>
-
-  <TR>
-    <TD ALIGN="right">Refunds of type: </TD>
-    <TD>
-      <SELECT NAME="payby" onChange="payby_changed(this)">
-        <OPTION VALUE="">all</OPTION>
-        <OPTION VALUE="CARD">credit card (all)</OPTION>
-        <OPTION VALUE="CARD-VisaMC">credit card (Visa/MasterCard)</OPTION>
-        <OPTION VALUE="CARD-Amex">credit card (American Express)</OPTION>
-        <OPTION VALUE="CARD-Discover">credit card (Discover)</OPTION>
-        <OPTION VALUE="CARD-Maestro">credit card (Maestro/Switch/Solo)</OPTION>
-        <OPTION VALUE="CHEK">electronic check / ACH</OPTION>
-        <OPTION VALUE="BILL">check</OPTION>
-        <OPTION VALUE="PREP">prepaid card</OPTION>
-        <OPTION VALUE="CASH">cash</OPTION>
-        <OPTION VALUE="WEST">Western Union</OPTION>
-        <OPTION VALUE="MCRD">manual credit card</OPTION>
-      </SELECT>
-    </TD>
-  </TR>
-
-  <SCRIPT TYPE="text/javascript">
-  
-    function payby_changed(what) {
-      if ( what.options[what.selectedIndex].value == 'BILL' ) {
-       document.getElementById('checkno_caption').style.color = '#000000';
-        what.form.payinfo.disabled = false;
-       what.form.payinfo.style.backgroundColor = '#ffffff';
-      } else {
-       document.getElementById('checkno_caption').style.color = '#bbbbbb';
-        what.form.payinfo.disabled = true;
-       what.form.payinfo.style.backgroundColor = '#dddddd';
-      }
-    }
-
-  </SCRIPT>
-
-  <TR>
-    <TD ALIGN="right"><FONT ID="checkno_caption" COLOR="#bbbbbb">Check #: </FONT></TD>
-    <TD>
-      <INPUT TYPE="text" NAME="payinfo" DISABLED STYLE="background-color: #dddddd">
-    </TD>
-  </TR>
-
-  <% include( '/elements/tr-select-agent.html',
-                 'curr_value'    => scalar($cgi->param('agentnum')),
-                 'label'         => 'for agent: ',
-                 'disable_empty' => 0,
-             )
-  %>
-
-  <% include( '/elements/tr-select-otaker.html' ) %>
-
-  <TR>
-    <TD ALIGN="right" VALIGN="center">Refund</TD>
-    <TD>
-      <TABLE>
-        <% include( '/elements/tr-input-beginning_ending.html',
-                      layout   => 'horiz',
-                  )
-        %>
-      </TABLE>
-    </TD>
-  </TR>
-
-% if ( $void ) {
-    <TR>
-      <TD ALIGN="right" VALIGN="center">Voided</TD>
-      <TD>
-        <TABLE>
-          <% include( '/elements/tr-input-beginning_ending.html',
-                        prefix => 'void',
-                        layout => 'horiz',
-                    )
-          %>
-        </TABLE>
-      </TD>
-    </TR>
-% }
-
-  <% include( '/elements/tr-input-lessthan_greaterthan.html',
-                'label' => 'Amount',
-               'field' => 'paid',
-            )
-  %>
-
-</TABLE>
-
-<BR>
-<INPUT TYPE="submit" VALUE="Get Report">
-
-</FORM>
-
-<% include('/elements/footer.html') %>
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
-
-my $void = $cgi->param('void') ? 1 : 0;
-
-my $title = $void ? 'Voided refund report' : 'Refund report';
-
-</%init>
+<% include( 'elements/report_cust_pay_or_refund.html',
+              'thing'          => 'refund',
+              'name_singular'  => 'refund',
+          )
+%>