fix real customer numbers showing on view pages, RT#4099/4379
[freeside.git] / httemplate / view / svc_forward.cgi
1 <% include('/elements/header.html', 'Mail Forward View', menubar(
2   ( ( $pkgnum || $custnum )
3     ? ( "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
4       )
5     : ( "Cancel this (unaudited) mail forward" =>
6           "${p}misc/cancel-unaudited.cgi?$svcnum" )
7   )
8 ))
9 %>
10
11 <A HREF="<% $p %>edit/svc_forward.cgi?<% $svcnum %>">Edit this information</A>
12
13 <% ntable("#cccccc",2) %>
14
15   <TR>
16     <TD ALIGN="right">Service number</TD>
17     <TD BGCOLOR="#ffffff"><% $svcnum %></TD>
18   </TR>
19   <TR>
20     <TD ALIGN="right">Service</TD>
21     <TD BGCOLOR="#ffffff"><% $svc %></TD>
22   </TR>
23   <TR>
24     <TD ALIGN="right">Email to</TD>
25     <TD BGCOLOR="#ffffff"><% $source %></TD>
26   </TR>
27   <TR>
28     <TD ALIGN="right">Forwards to </TD>
29     <TD BGCOLOR="#ffffff"><% $destination %></TD>
30   </TR>
31
32 % foreach (sort { $a cmp $b } $svc_forward->virtual_fields) {
33     <% $svc_forward->pvf($_)->widget('HTML', 'view', $svc_forward->getfield($_)) %>
34 % }
35
36 </TABLE>
37
38 <BR>
39 <% joblisting({'svcnum'=>$svcnum}, 1) %>
40
41 <% include('/elements/footer.html') %>
42 <%init>
43
44 die "access denied"
45   unless $FS::CurrentUser::CurrentUser->access_right('View customer services');
46
47 my $conf = new FS::Conf;
48
49 my($query) = $cgi->keywords;
50 $query =~ /^(\d+)$/;
51 my $svcnum = $1;
52 my $svc_forward = qsearchs({
53   'select'    => 'svc_forward.*',
54   'table'     => 'svc_forward',
55   'addl_from' => ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
56                  ' LEFT JOIN cust_pkg  USING ( pkgnum  ) '.
57                  ' LEFT JOIN cust_main USING ( custnum ) ',
58   'hashref'   => {'svcnum'=>$svcnum},
59   'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
60 });
61 die "Unknown svcnum" unless $svc_forward;
62
63 my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
64 my $pkgnum = $cust_svc->getfield('pkgnum');
65 my($cust_pkg, $custnum, $display_custnum);
66 if ($pkgnum) {
67   $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
68   $custnum=$cust_pkg->getfield('custnum');
69   $display_custnum = $cust_pkg->cust_main->display_custnum;
70 } else {
71   $cust_pkg = '';
72   $custnum = '';
73 }
74
75 my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } )
76   or die "Unknown svcpart";
77
78 my($srcsvc,$dstsvc,$dst) = (
79   $svc_forward->srcsvc,
80   $svc_forward->dstsvc,
81   $svc_forward->dst,
82 );
83 my $src = $svc_forward->dbdef_table->column('src') ? $svc_forward->src : '';
84
85 my $svc = $part_svc->svc;
86
87 my $source;
88 if ($srcsvc) {
89   my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$srcsvc})
90     or die "Corrupted database: no svc_acct.svcnum matching srcsvc $srcsvc";
91   $source = $svc_acct->email;
92 } else {
93   $source = $src;
94 }
95
96 my $destination;
97 if ($dstsvc) {
98   my $svc_acct = qsearchs('svc_acct',{'svcnum'=>$dstsvc})
99     or die "Corrupted database: no svc_acct.svcnum matching dstsvc $dstsvc";
100   $destination = $svc_acct->email;
101 } else {
102   $destination = $dst;
103 }
104
105 </%init>