Optimize "Customer has a referring customer" condition, RT#74452
[freeside.git] / httemplate / view / cust_refund.html
1 % if ( $link eq 'popup' ) { 
2
3   <& /elements/header-popup.html, mt('Refund Receipt') &>
4
5   <DIV ALIGN="center">
6     <A HREF="javascript:self.parent.location = '<% $pr_link %>'"><% mt('Print') |h %></A>
7 %   if ( $cust_main->invoicing_list_emailonly ) {
8     | <A HREF="javascript:self.location = '<% $email_link %>'"><% mt('Email') |h %></A>
9 %   }
10   </DIV>
11
12 % } elsif ( $link eq 'print' ) { 
13
14   <& /elements/header-popup.html, mt('Refund Receipt') &>
15   
16 % #it would be nice if the menubar could be hidden for print, but better to
17 % # have it available than not, otherwise the user winds up at a dead end
18   <% menubar(
19        emt("View this customer (#[_1])",$display_custnum) => "${p}view/cust_main.cgi?$custnum",
20      )
21   %>
22   <BR><BR>
23
24 % } elsif ( $link eq 'email' ) {
25 %  if ( $email_error ) {
26       <& /elements/header-popup.html, mt("Error re-emailing receipt: [_1]", $email_error) &>
27 %  } else {
28       <& /elements/header-popup.html, mt("Re-emailed receipt") &>
29 %  }
30 % } else { 
31
32   <& /elements/header.html, mt('Refund Receipt'), menubar(
33        emt("View this customer (#[_1])",$display_custnum) => "${p}view/cust_main.cgi?$custnum",
34        emt('Print receipt') => $pr_link,
35      )
36   &>
37
38 % }
39
40 % unless ($link =~ /^(popup|email)$/ ) {
41   <& /elements/small_custview.html,
42                $custnum,
43                scalar($conf->config('countrydefault')),
44                1, #no balance
45   &>
46   <BR><BR>
47 % } 
48
49 <% ntable("#cccccc", 2) %>
50
51 <TR>
52   <TD ALIGN="right"><% mt('Refund #') |h %></TD>
53   <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->refundnum %></B></TD>
54 </TR>
55
56 <TR>
57   <TD ALIGN="right"><% mt('Date') |h %></TD>
58   <TD BGCOLOR="#FFFFFF"><B><% time2str"%a&nbsp;%b&nbsp;%o,&nbsp;%Y&nbsp;%r", $cust_refund->_date %></B></TD>
59 </TR>
60
61 <TR>
62   <TD ALIGN="right"><% mt('Amount') |h %></TD>
63   <TD BGCOLOR="#FFFFFF"><B><% $money_char. $cust_refund->refund %></B></TD>
64 </TR>
65
66 <TR>
67   <TD ALIGN="right"><% mt('Reason') |h %></TD>
68   <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->reason %></B></TD>
69 </TR>
70
71 <TR>
72   <TD ALIGN="right"><% mt('Refund method') |h %></TD>
73   <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->payby_name %><% $cust_refund->paymask ? ' #'.$cust_refund->paymask : '' %></B></TD>
74 </TR>
75
76 % if ( $cust_refund->payby =~ /^(CARD|CHEK|LECB)$/ && $cust_refund->processor ) { 
77
78     <TR>
79       <TD ALIGN="right"><% mt('Processor') |h %></TD>
80       <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->processor %></B></TD>
81     </TR>
82
83     <TR>
84       <TD ALIGN="right"><% mt('Authorization #') |h %></TD>
85       <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->auth %></B></TD>
86     </TR>
87
88 %   if ( $cust_refund->order_number ) {
89       <TR>
90         <TD ALIGN="right"><% mt('Order #') |h %></TD>
91         <TD BGCOLOR="#FFFFFF"><B><% $cust_refund->order_number %></B></TD>
92       </TR>
93 %   }
94
95 % }
96
97 </TABLE>
98
99 % if ( $link eq 'print' ) {
100
101   <SCRIPT TYPE="text/javascript">
102     window.print();
103   </SCRIPT>
104
105 % } elsif ( $link eq 'email' ) {
106
107     <SCRIPT TYPE="text/javascript">
108       window.top.location.reload();
109     </SCRIPT>
110
111 % }
112 % if ( $link =~ /^(popup|print|email)$/ ) { 
113     </BODY>
114   </HTML>
115 % } else {
116   <& /elements/footer.html &>
117 % }
118
119 <%init>
120
121 my $curuser = $FS::CurrentUser::CurrentUser;
122
123 die "access denied"
124   unless $curuser->access_right('View invoices') #remove this in 2.5 (2.7?)
125       || $curuser->access_right('View refunds');
126
127 $cgi->param('refundnum') =~ /^(\d+)$/ or die "no refundnum";
128 my $refundnum = $1;
129
130 my $link = '';
131 if ( $cgi->param('link') =~ /^(\w+)$/ ) {
132   $link = $1;
133 }
134
135 my $cust_refund = qsearchs({
136   'select'    => 'cust_refund.*',
137   'table'     => 'cust_refund',
138   'addl_from' => 'LEFT JOIN cust_main USING ( custnum )',
139   'hashref'   => { 'refundnum' => $refundnum },
140   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
141 });
142 die "Refund #$refundnum not found!" unless $cust_refund;
143
144 my $cust_main = $cust_refund->cust_main;
145
146 my $pr_link = "${p}view/cust_refund.html?link=print;refundnum=$refundnum";
147 my $email_link = "${p}view/cust_refund.html?link=email;refundnum=$refundnum";
148
149 my $custnum = $cust_refund->custnum;
150 my $display_custnum = $cust_main->display_custnum;
151
152 my $conf = new FS::Conf;
153
154 my $money_char = $conf->config('money_char') || '$';
155
156 tie my %payby, 'Tie::IxHash', FS::payby->payby2longname;
157
158 my $email_error;
159
160 if ( $link eq 'email' ) {
161     $email_error = $cust_refund->send_receipt( 'cust_main' => $cust_main );
162     warn "can't send refund receipt: $email_error" if $email_error;
163 }
164
165 </%init>