RT# 73422 Fix report Customer Contacts
[freeside.git] / httemplate / misc / void-cust_credit.html
1 %if ( $success ) {
2 <& /elements/header-popup.html, mt("Credit voided") &>
3   <SCRIPT TYPE="text/javascript">
4     topreload();
5   </SCRIPT>
6   </BODY>
7 </HTML>
8 %} else {
9 <& /elements/header-popup.html, mt('Void credit')  &>
10
11 <& /elements/error.html &>
12
13 <P ALIGN="center"><B><% mt('Void this credit?') |h %></B>
14
15 <FORM action="<% ${p} %>misc/void-cust_credit.html">
16 <INPUT TYPE="hidden" NAME="crednum" VALUE="<% $crednum %>">
17
18 <TABLE BGCOLOR="#cccccc" BORDER="0" CELLSPACING="2" STYLE="margin-left:auto; margin-right:auto">
19 <& /elements/tr-select-reason.html,
20              'field'          => 'reasonnum',
21              'reason_class'   => 'X',
22              'cgi'            => $cgi
23 &>
24 </TABLE>
25
26 <BR>
27 <P ALIGN="CENTER">
28 <INPUT TYPE="submit" NAME="confirm_void_credit" VALUE="<% mt('Void credit') |h %>"> 
29 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
30 <INPUT TYPE="BUTTON" VALUE="<% mt("Don't void credit") |h %>" onClick="parent.cClick();"> 
31
32 </FORM>
33 </BODY>
34 </HTML>
35
36 %}
37 <%init>
38
39 die "access denied"
40   unless $FS::CurrentUser::CurrentUser->access_right('Void credit');
41
42 #untaint crednum
43 my $crednum = $cgi->param('crednum');
44 if ($crednum) {
45   $crednum =~ /^(\d+)$/ || die "Illegal crednum";
46 } else {
47   my($query) = $cgi->keywords;
48   $query =~ /^(\d+)/ || die "Illegal crednum";
49   $crednum = $1;
50 }
51
52 my $cust_credit = qsearchs('cust_credit',{'crednum'=>$crednum}) || die "Credit not found";
53
54 my $success = 0;
55 if ($cgi->param('confirm_void_credit')) {
56
57   #untaint reasonnum / create new reason
58   my ($reasonnum, $error) = $m->comp('process/elements/reason');
59   if (!$reasonnum) {
60     $error = 'Reason required';
61   } else {
62     my $reason = qsearchs('reason', { 'reasonnum' => $reasonnum })
63       || die "Reason num $reasonnum not found in database";
64         $error = $cust_credit->void($reason) unless $error;
65   }
66
67   if ($error) {
68     $cgi->param('error',$error);
69   } else {
70     $success = 1;
71   }
72 }
73
74 </%init>