svc_hardware and svc_dish, #11454
[freeside.git] / httemplate / view / svc_acct.cgi
1 % if ( $custnum ) { 
2
3   <% include("/elements/header.html","View $svc account") %>
4   <% include( '/elements/small_custview.html', $custnum, '', 1,
5      "${p}view/cust_main.cgi") %>
6   <BR>
7
8 % } else { 
9
10   <SCRIPT>
11   function areyousure(href) {
12       if (confirm("Permanently delete this account?") == true)
13           window.location.href = href;
14   }
15   </SCRIPT>
16   
17   <% include("/elements/header.html",'View account', menubar(
18     "Cancel this (unaudited) account" =>
19             "javascript:areyousure(\'${p}misc/cancel-unaudited.cgi?$svcnum\')",
20   )) %>
21
22 % } 
23
24 <% include( 'svc_acct/radius_usage.html',
25               'svc_acct' => $svc_acct,
26               'part_svc' => $part_svc,
27               'cust_pkg' => $cust_pkg,
28               %gopt,
29           )
30 %>
31
32 <% include( 'svc_acct/change_svc_form.html',
33               'part_svc' => \@part_svc,
34               'svcnum'   => $svcnum,
35               'pkgnum'   => $pkgnum,
36               %gopt,
37           )
38 %>
39
40 Service #<B><% $svcnum %></B>
41 |
42 <% include('/view/elements/svc_edit_link.html', 'svc' => $svc_acct) %>
43 <% include( 'svc_acct/change_svc.html',
44               'part_svc' => \@part_svc,
45               %gopt,
46           )
47 %>
48
49 <% include( 'svc_acct/basics.html',
50               'svc_acct' => $svc_acct,
51               'part_svc' => $part_svc,
52               %gopt,
53           )
54 %>
55
56 </FORM>
57 <BR>
58
59 <% include( 'svc_acct/cardfortress.html',
60               'svc_acct' => $svc_acct,
61               %gopt,
62           )
63 %>
64
65 <% include( 'svc_acct/hosting.html',
66               %gopt,
67           )
68 %>
69
70 %#remove this?  does anybody even use it?  it was a misunderstood customer
71 %#request IIRC?
72 % my $conf = new FS::Conf;
73 % if ( $conf->exists('svc_acct-notes') ) {
74 %   warn 'WARNING: svc_acct-notes deprecated\n';
75 <% join("<BR>", $conf->config('svc_acct-notes') ) %>
76 <BR><BR>
77 % }
78
79 <% include('elements/svc_export_settings.html', $svc_acct) %>
80
81 <% joblisting({'svcnum'=>$svcnum}, 1) %>
82
83 <% include('/elements/footer.html') %>
84 <%init>
85
86 die "access denied"
87   unless $FS::CurrentUser::CurrentUser->access_right('View customer services');
88
89 my $addl_from = ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
90                 ' LEFT JOIN cust_pkg  USING ( pkgnum  ) '.
91                 ' LEFT JOIN cust_main USING ( custnum ) ';
92
93 my($query) = $cgi->keywords;
94 $query =~ /^(\d+)$/;
95 my $svcnum = $1;
96 my $svc_acct = qsearchs({
97   'select'    => 'svc_acct.*',
98   'table'     => 'svc_acct',
99   'addl_from' => $addl_from,
100   'hashref'   => { 'svcnum' => $svcnum },
101   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql(
102                             'null_right' => 'View/link unlinked services'
103                           ),
104 });
105 die "Unknown svcnum" unless $svc_acct;
106
107 #false laziness w/all svc_*.cgi
108 my $cust_svc = $svc_acct->cust_svc;
109 my $pkgnum = $cust_svc->getfield('pkgnum');
110 my($cust_pkg, $custnum);
111 if ($pkgnum) {
112   $cust_pkg = qsearchs( 'cust_pkg', { 'pkgnum' => $pkgnum } );
113   $custnum = $cust_pkg->custnum;
114 } else {
115   $cust_pkg = '';
116   $custnum = '';
117 }
118 #eofalse
119
120 my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
121 die "Unknown svcpart" unless $part_svc;
122 my $svc = $part_svc->svc;
123
124 my @part_svc = ();
125 if ($FS::CurrentUser::CurrentUser->access_right('Change customer service')) {
126
127   if ( $pkgnum ) { 
128     @part_svc = grep {    $_->svcdb   eq 'svc_acct'
129                        && $_->svcpart != $part_svc->svcpart }
130                 $cust_pkg->available_part_svc;
131   } else {
132     @part_svc = qsearch('part_svc', {
133       svcdb    => 'svc_acct',
134       disabled => '',
135       svcpart  => { op=>'!=', value=>$part_svc->svcpart },
136     } );
137   }
138
139 }
140
141 my $communigate = scalar($part_svc->part_export('communigate_pro'));
142                 # || scalar($part_svc->part_export('communigate_pro_singledomain'));
143
144 my %gopt = ( 'communigate' => $communigate,
145            );
146
147 </%init>