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