common element for cust_pkg search form fields
[freeside.git] / httemplate / misc / cust_main-unsuspend.cgi
1 <& /elements/popup-topreload.html, mt("Customer unsuspended") &>
2 <%init>
3
4 #false laziness w/cust_main-cancel.cgi
5
6 die "access denied"
7   unless $FS::CurrentUser::CurrentUser->access_right('Unsuspend customer');
8
9 my $custnum;
10 my $resume = '';
11 if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
12   $custnum = $1;
13   $resume = $cgi->param('resume');
14 } else {
15   my($query) = $cgi->keywords;
16   $query =~ /^(\d+)$/ || die "Illegal custnum";
17   $custnum = $1;
18 }
19
20 my $cust_main = qsearchs( {
21   'table'     => 'cust_main',
22   'hashref'   => { 'custnum' => $custnum },
23   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
24 } );
25
26 my @errors;
27 if($cgi->param('now_or_later')) {
28   $resume = parse_datetime($resume);
29   if($resume) {
30     #warn "setting resume dates on custnum#$custnum\n";
31     my @pkgs = $cust_main->suspended_pkgs;
32     if (!$cgi->param('release_hold')) {
33       # then avoid packages that are on hold
34       @pkgs = grep { $_->get('setup') } @pkgs;
35     }
36     @errors = grep {$_} map { $_->unsuspend(
37       'date'    => $resume,
38     ) } @pkgs;
39   }
40   else {
41     @errors = ("error parsing adjourn date: ".$cgi->param('adjourn'));
42   }
43 }
44 else { # unsuspending now
45   warn "unsuspending $cust_main";
46   @errors = $cust_main->unsuspend;
47
48   if ( $cgi->param('release_hold') ) {
49     push @errors, $cust_main->release_hold;
50   }
51 }
52 my $error = join(' / ', @errors) if scalar(@errors);
53
54 if ( $error ) {
55   $cgi->param('error', $error);
56   print $cgi->redirect(popurl(1). "unsuspend_cust.html?". $cgi->query_string );
57 }
58
59 </%init>