This commit was generated by cvs2svn to compensate for changes in r11022,
[freeside.git] / httemplate / misc / did_order_confirmed.html
1 <% include('/elements/header-popup.html', $success_msg ) %>
2   <SCRIPT TYPE="text/javascript">
3     <% $js %>
4   </SCRIPT>
5   </BODY>
6 </HTML>
7 <%init>
8 die "access denied"
9   unless $FS::CurrentUser::CurrentUser->access_right('Import');
10
11 $cgi->param('action') =~ /^(confirm|cancel|provision)$/ or die 'illegal action';
12 my $action = $1;
13 my $success_msg = '';
14 my $error = '';
15 my $js = 'window.top.location.reload();';
16
17 $cgi->param('ordernum') =~ /^(\d+)$/ or die 'illegal ordernum';
18 my $ordernum = $1;
19 my $did_order = qsearchs( {
20   'table'     => 'did_order',
21   'hashref'   => { 'ordernum' => $ordernum },
22 } );
23 die "No order $ordernum" unless $did_order;
24
25 if ( $action eq 'confirm' ) {
26     my $confirmed = '';
27     my $sucess_msg = 'DID order confirmed';
28     $confirmed = parse_datetime($cgi->param('confirmed'))
29         if $cgi->param('confirmed') && $cgi->param('confirmed') !~ /^\d+$/;
30     $confirmed = $1
31         if $cgi->param('confirmed') && $cgi->param('confirmed') =~ /^(\d+)$/;
32
33     die "invalid confirmation date" unless $confirmed;
34
35     $did_order->confirmed($confirmed);
36     $did_order->vendor_order_id($cgi->param('vendor_order_id'));
37     $error = $did_order->replace;
38     if ( $error ) {
39         $cgi->param('error', $error);
40         print $cgi->redirect(popurl(1). "did_order_confirm.html?". $cgi->query_string );
41     }
42 }
43 elsif ( $action eq 'cancel' ) {
44     my $sucess_msg = 'DID order cancelled';
45     $error = $did_order->delete;
46     $js = "window.location.href = '${p}browse/did_order.html'";
47 }
48 elsif ( $action eq 'provision' ) {
49     my $sucess_msg = 'DID order provisioned';
50     $cgi->param('pkgnum_svcpart') =~ /^(\d+)_(\d+)$/ or die 'illegal pkgnum_svcpart';
51     my $pkgnum = $1;
52     my $svcpart = $2;
53     my @dids = qsearch( 'phone_avail', { ordernum => $ordernum } );
54     die "no DIDs on order" unless scalar(@dids);
55     foreach my $did ( @dids ) {
56         my $svc_phone = new FS::svc_phone({
57             pkgnum  => $pkgnum,
58             svcpart => $svcpart,
59             countrycode => 1,
60             phonenum    => $did->npa.$did->nxx.$did->station,
61         });
62         $error = $svc_phone->insert;
63         last if $error;
64     }
65 }
66
67 </%init>