refactor payment history slightly, add refund receipts, have "unapplied" refunds...
[freeside.git] / httemplate / view / cust_refund.html
diff --git a/httemplate/view/cust_refund.html b/httemplate/view/cust_refund.html
new file mode 100644 (file)
index 0000000..40f6ab6
--- /dev/null
@@ -0,0 +1,141 @@
+% if ( $link eq 'popup' ) { 
+
+  <% include('/elements/header-popup.html', "Refund Receipt" ) %>
+
+  <CENTER><A HREF="javascript:self.parent.location = '<% $pr_link %>'">Print</A></CENTER><BR>
+
+% } elsif ( $link eq 'print' ) { 
+
+  <% include('/elements/header-popup.html', "Refund Receipt" ) %>
+  
+% #it would be nice if the menubar could be hidden for print, but better to
+% # have it available than not, otherwise the user winds up at a dead end
+  <% menubar(
+       "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+     )
+  %>
+  <BR><BR>
+
+% } else { 
+
+  <% include('/elements/header.html', "Refund Receipt", menubar(
+       "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
+       'Print receipt' => $pr_link,
+     ))
+  %>
+
+% }
+
+% unless ($link eq 'popup' ) {
+  <% include('/elements/small_custview.html',
+               $custnum,
+               scalar($conf->config('countrydefault')),
+               1, #no balance
+            )
+  %>
+  <BR><BR>
+% } 
+
+<% ntable("#cccccc", 2) %>
+
+<TR>
+  <TD ALIGN="right">Refund#</TD>
+  <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->refundnum %></B></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">Date</TD>
+  <TD BGCOLOR="#FFFFFF"><B><% time2str"%a&nbsp;%b&nbsp;%o,&nbsp;%Y&nbsp;%r", $cust_refund->_date %></B></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">Amount</TD>
+  <TD BGCOLOR="#FFFFFF"><B><% $money_char. $cust_refund->refund %></B></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">Reason</TD>
+  <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->reason %></B></TD>
+</TR>
+
+<TR>
+  <TD ALIGN="right">Refund method</TD>
+  <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->payby_name %> #<% $cust_refund->paymask %></B></TD>
+</TR>
+
+% if ( $cust_refund->payby =~ /^(CARD|CHEK|LECB)$/ && $cust_refund->paybatch ) { 
+
+    <TR>
+      <TD ALIGN="right">Processor</TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->processor %></B></TD>
+    </TR>
+
+    <TR>
+      <TD ALIGN="right">Authorization#</TD>
+      <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->authorization %></B></TD>
+    </TR>
+
+%   if ( $cust_refund->order_number ) {
+      <TR>
+        <TD ALIGN="right">Order#</TD>
+        <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->order_number %></B></TD>
+      </TR>
+%   }
+
+% }
+
+</TABLE>
+
+% if ( $link eq 'print' ) {
+
+  <SCRIPT TYPE="text/javascript">
+    window.print();
+  </SCRIPT>
+
+% }
+
+% if ( $link =~ /^(popup|print)$/ ) { 
+    </BODY>
+  </HTML>
+% } else {
+  <% include('/elements/footer.html') %>
+% }
+
+<%init>
+
+my $curuser = $FS::CurrentUser::CurrentUser;
+
+die "access denied"
+  unless $curuser->access_right('View invoices') #remove this in 1.9 EVENTUALLY
+      || $curuser->access_right('View customer payments');
+      #'View customer refunds' ???
+
+
+$cgi->param('refundnum') =~ /^(\d+)$/ or die "no refundnum";
+my $refundnum = $1;
+
+my $link = '';
+if ( $cgi->param('link') =~ /^(\w+)$/ ) {
+  $link = $1;
+}
+
+my $cust_refund = qsearchs({
+  'select'    => 'cust_refund.*',
+  'table'     => 'cust_refund',
+  'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
+  'hashref'   => { 'refundnum' => $refundnum },
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+});
+die "Refund #$refundnum not found!" unless $cust_refund;
+
+my $pr_link = "${p}view/cust_refund.html?link=print;refundnum=$refundnum";
+
+my $custnum = $cust_refund->custnum;
+
+my $conf = new FS::Conf;
+
+my $money_char = $conf->config('money_char') || '$';
+
+tie my %payby, 'Tie::IxHash', FS::payby->payby2longname;
+
+</%init>