68a17e7dc15314c95e9cce4c4bd03144faa3b568
[freeside.git] / httemplate / search / cust_pay.cgi
1 <%
2 #<!-- $Id: cust_pay.cgi,v 1.1 2001-12-26 09:18:18 ivan Exp $ -->
3
4 use strict;
5 use vars qw( $cgi $sortby @cust_pay );
6 use CGI;
7 use CGI::Carp qw(fatalsToBrowser);
8 use Date::Format;
9 use FS::UID qw(cgisuidsetup);
10 use FS::CGI qw(popurl header menubar idiot table );
11 use FS::Record qw(qsearch );
12 use FS::cust_pay;
13 use FS::cust_main;
14
15 $cgi = new CGI;
16 cgisuidsetup($cgi);
17
18 $cgi->param('payinfo') =~ /^\s*(\d+)\s*$/ or die "illegal payinfo";
19 my $payinfo = $1;
20 $cgi->param('payby') =~ /^(\w+)$/ or die "illegal payby";
21 my $payby = $1;
22 @cust_pay = qsearch('cust_pay', { 'payinfo' => $payinfo,
23                                   'payby'   => $payby    } );
24 $sortby = \*date_sort;
25
26 if (0) {
27 #if ( scalar(@cust_pay) == 1 ) {
28 #  my $invnum = $cust_bill[0]->invnum;
29 #  print $cgi->redirect(popurl(2). "view/cust_bill.cgi?$invnum");  #redirect
30 } elsif ( scalar(@cust_pay) == 0 ) {
31   idiot("Check # not found.");
32   #exit;
33 } else {
34   my $total = scalar(@cust_pay);
35   my $s = $total > 1 ? 's' : '';
36   print header("Check # Search Results", menubar(
37           'Main Menu', popurl(2)
38         )), "$total matching check$s found<BR>", &table(), <<END;
39       <TR>
40         <TH></TH>
41         <TH>Amount</TH>
42         <TH>Date</TH>
43         <TH>Contact name</TH>
44         <TH>Company</TH>
45       </TR>
46 END
47
48   my(%saw, $cust_pay);
49   foreach my $cust_pay (
50     sort $sortby grep(!$saw{$_->paynum}++, @cust_pay)
51   ) {
52     my($paynum, $custnum, $payinfo, $amount, $date ) = (
53       $cust_pay->paynum,
54       $cust_pay->custnum,
55       $cust_pay->payinfo,
56       sprintf("%.2f", $cust_pay->paid),
57       $cust_pay->_date,
58     );
59     my $pdate = time2str("%b %d %Y", $date);
60
61     my $rowspan = 1;
62
63     my $view = popurl(2). "view/cust_main.cgi?". $custnum. 
64                "#". $payby. $payinfo;
65
66     print <<END;
67       <TR>
68         <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$payinfo</FONT></A></TD>
69         <TD ROWSPAN=$rowspan ALIGN="right"><A HREF="$view"><FONT SIZE=-1>\$$amount</FONT></A></TD>
70         <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$pdate</FONT></A></TD>
71 END
72     my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } );
73     if ( $cust_main ) {
74       #my $cview = popurl(2). "view/cust_main.cgi?". $cust_main->custnum;
75       my ( $name, $company ) = (
76         $cust_main->last. ', '. $cust_main->first,
77         $cust_main->company,
78       );
79       print <<END;
80         <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$name</FONT></A></TD>
81         <TD ROWSPAN=$rowspan><A HREF="$view"><FONT SIZE=-1>$company</FONT></A></TD>
82 END
83     } else {
84       print <<END
85         <TD ROWSPAN=$rowspan COLSPAN=2>WARNING: couldn't find cust_main.custnum $custnum (cust_pay.paynum $paynum)</TD>
86 END
87     }
88
89     print "</TR>";
90   }
91   print <<END;
92     </TABLE>
93   </BODY>
94 </HTML>
95 END
96
97 }
98
99 #
100
101 #sub invnum_sort {
102 #  $a->invnum <=> $b->invnum;
103 #}
104 #
105 #sub custnum_sort {
106 #  $a->custnum <=> $b->custnum || $a->invnum <=> $b->invnum;
107 #}
108
109 sub date_sort {
110   $a->_date <=> $b->_date || $a->invnum <=> $b->invnum;
111 }
112 %>