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