4 %my $conf = new FS::Conf;
6 %my($svcnum, $pkgnum, $svcpart, $part_svc, $svc_forward);
7 %if ( $cgi->param('error') ) {
8 % $svc_forward = new FS::svc_forward ( {
9 % map { $_, scalar($cgi->param($_)) } fields('svc_forward')
11 % $svcnum = $svc_forward->svcnum;
12 % $pkgnum = $cgi->param('pkgnum');
13 % $svcpart = $cgi->param('svcpart');
14 % $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
15 % die "No part_svc entry!" unless $part_svc;
18 % my($query) = $cgi->keywords;
20 % if ( $query =~ /^(\d+)$/ ) { #editing
22 % $svc_forward=qsearchs('svc_forward',{'svcnum'=>$svcnum})
23 % or die "Unknown (svc_forward) svcnum!";
25 % my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
26 % or die "Unknown (cust_svc) svcnum!";
28 % $pkgnum=$cust_svc->pkgnum;
29 % $svcpart=$cust_svc->svcpart;
31 % $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
32 % die "No part_svc entry!" unless $part_svc;
36 % $svc_forward = new FS::svc_forward({});
38 % foreach $_ (split(/-/,$query)) { #get & untaint pkgnum & svcpart
39 % $pkgnum=$1 if /^pkgnum(\d+)$/;
40 % $svcpart=$1 if /^svcpart(\d+)$/;
42 % $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
43 % die "No part_svc entry!" unless $part_svc;
47 % $svc_forward->set_default_and_fixed;
51 %my $action = $svc_forward->svcnum ? 'Edit' : 'Add';
55 %#starting with those currently attached
56 %foreach my $method (qw( srcsvc_acct dstsvc_acct )) {
57 % my $svc_acct = $svc_forward->$method();
58 % $email{$svc_acct->svcnum} = $svc_acct->email if $svc_acct;
63 % #find all possible user svcnums (and emails)
65 % #and including the rest for this customer
66 % my($u_part_svc,@u_acct_svcparts);
67 % foreach $u_part_svc ( qsearch('part_svc',{'svcdb'=>'svc_acct'}) ) {
68 % push @u_acct_svcparts,$u_part_svc->getfield('svcpart');
71 % my($cust_pkg)=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
72 % my($custnum)=$cust_pkg->getfield('custnum');
74 % foreach $i_cust_pkg ( qsearch('cust_pkg',{'custnum'=>$custnum}) ) {
75 % my($cust_pkgnum)=$i_cust_pkg->getfield('pkgnum');
77 % foreach $acct_svcpart (@u_acct_svcparts) { #now find the corresponding
78 % #record(s) in cust_svc ( for this
80 % foreach my $i_cust_svc (
81 % qsearch( 'cust_svc', { 'pkgnum' => $cust_pkgnum,
82 % 'svcpart' => $acct_svcpart } )
85 % qsearchs( 'svc_acct', { 'svcnum' => $i_cust_svc->svcnum } );
86 % $email{$svc_acct->svcnum} = $svc_acct->email;
91 %} elsif ( $action eq 'Add' ) {
92 % die "\$action eq Add, but \$pkgnum is null!\n";
95 %my($srcsvc,$dstsvc,$dst)=(
96 % $svc_forward->srcsvc,
97 % $svc_forward->dstsvc,
100 %my $src = $svc_forward->dbdef_table->column('src') ? $svc_forward->src : '';
107 <% include("/elements/header.html","Mail Forward $action") %>
108 % if ( $cgi->param('error') ) {
110 <FONT SIZE="+1" COLOR="#ff0000">Error: <% $cgi->param('error') %></FONT>
115 Service #<% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
116 Service: <B><% $part_svc->svc %></B><BR><BR>
118 <FORM ACTION="process/svc_forward.cgi" METHOD="POST">
119 <INPUT TYPE="hidden" NAME="svcnum" VALUE="<% $svcnum %>">
120 <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
121 <INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
123 <SCRIPT TYPE="text/javascript">
124 function srcchanged(what) {
125 if ( what.options[what.selectedIndex].value == 0 ) {
126 what.form.src.disabled = false;
127 what.form.src.style.backgroundColor = "white";
129 what.form.src.disabled = true;
130 what.form.src.style.backgroundColor = "lightgrey";
133 function dstchanged(what) {
134 if ( what.options[what.selectedIndex].value == 0 ) {
135 what.form.dst.disabled = false;
136 what.form.dst.style.backgroundColor = "white";
138 what.form.dst.disabled = true;
139 what.form.dst.style.backgroundColor = "lightgrey";
144 <% ntable("#cccccc",2) %>
145 <TR><TD ALIGN="right">Email to</TD>
146 <TD><SELECT NAME="srcsvc" SIZE=1 onChange="srcchanged(this)">
147 % foreach $_ (keys %email) {
149 <OPTION<% $_ eq $srcsvc ? " SELECTED" : "" %> VALUE="<% $_ %>"><% $email{$_} %></OPTION>
151 % if ( $svc_forward->dbdef_table->column('src') ) {
153 <OPTION <% $src ? 'SELECTED' : '' %> VALUE="0">(other email address)</OPTION>
157 % if ( $svc_forward->dbdef_table->column('src') ) {
159 <INPUT TYPE="text" NAME="src" VALUE="<% $src %>" <% ( $src || !scalar(%email) ) ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>>
164 <TR><TD ALIGN="right">Forwards to</TD>
165 <TD><SELECT NAME="dstsvc" SIZE=1 onChange="dstchanged(this)">
166 % foreach $_ (keys %email) {
168 <OPTION<% $_ eq $dstsvc ? " SELECTED" : "" %> VALUE="<% $_ %>"><% $email{$_} %></OPTION>
171 <OPTION <% $dst ? 'SELECTED' : '' %> VALUE="0">(other email address)</OPTION>
173 <INPUT TYPE="text" NAME="dst" VALUE="<% $dst %>" <% ( $dst || !scalar(%email) ) ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>>
176 <BR><INPUT TYPE="submit" VALUE="Submit">