event refactor, landing on HEAD!
[freeside.git] / httemplate / misc / cust_main-cancel.cgi
1 <% header("Customer cancelled") %>
2   <SCRIPT TYPE="text/javascript">
3     window.top.location.reload();
4   </SCRIPT>
5   </BODY>
6 </HTML>
7 <%init>
8
9 my $custnum;
10 my $ban = '';
11 if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
12   $custnum = $1;
13   $ban = $cgi->param('ban');
14 } else {
15   my($query) = $cgi->keywords;
16   $query =~ /^(\d+)$/ || die "Illegal custnum";
17   $custnum = $1;
18 }
19
20 #false laziness w/process/cancel_pkg.html
21
22 #untaint reasonnum
23 my $reasonnum = $cgi->param('reasonnum');
24 $reasonnum =~ /^(-?\d+)$/ || die "Illegal reasonnum";
25 $reasonnum = $1;
26
27 if ($reasonnum == -1) {
28   $reasonnum = {
29     'typenum' => scalar( $cgi->param('newreasonnumT') ),
30     'reason'  => scalar( $cgi->param('newreasonnum' ) ),
31   };
32 }
33
34 #eslaf
35
36 my $cust_main = qsearchs( {
37   'table'     => 'cust_main',
38   'hashref'   => { 'custnum' => $custnum },
39   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
40 } );
41
42 warn "cancelling $cust_main";
43 my @errors = $cust_main->cancel(
44   'ban'    => $ban,
45   'reason' => $reasonnum,
46 );
47 my $error = join(' / ', @errors) if scalar(@errors);
48
49 if ( $error ) {
50   $cgi->param('error', $error);
51   print $cgi->redirect(popurl(2). "cancel_pkg.html?". $cgi->query_string );
52 }
53
54 </%init>