diff options
author | ivan <ivan> | 2001-09-06 20:42:00 +0000 |
---|---|---|
committer | ivan <ivan> | 2001-09-06 20:42:00 +0000 |
commit | 57d69d5c1f98f778a0df82795ce21ee7bd21042a (patch) | |
tree | 63f890cf25311b66c712933c84f64e43718039cd /httemplate | |
parent | db1b6ebfe35aba1f4d2580b13a0a74ac317784ba (diff) |
finally fix part_svc!!!
Diffstat (limited to 'httemplate')
-rwxr-xr-x | httemplate/browse/part_svc.cgi | 22 | ||||
-rw-r--r-- | httemplate/docs/schema.html | 11 | ||||
-rw-r--r-- | httemplate/docs/upgrade8.html | 20 | ||||
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 37 | ||||
-rwxr-xr-x | httemplate/edit/process/part_svc.cgi | 6 |
5 files changed, 54 insertions, 42 deletions
diff --git a/httemplate/browse/part_svc.cgi b/httemplate/browse/part_svc.cgi index 1306ac057..cfb1ad82b 100755 --- a/httemplate/browse/part_svc.cgi +++ b/httemplate/browse/part_svc.cgi @@ -1,4 +1,4 @@ -<!-- $Id: part_svc.cgi,v 1.3 2001-09-04 14:44:06 ivan Exp $ --> +<!-- $Id: part_svc.cgi,v 1.4 2001-09-06 20:41:59 ivan Exp $ --> <%= header('Service Definition Listing', menubar( 'Main Menu' => $p) ) %> Services are items you offer to your customers.<BR><BR> @@ -15,14 +15,11 @@ } qsearch('part_svc',{}) ) { my($hashref)=$part_svc->hashref; my($svcdb)=$hashref->{svcdb}; - my(@rows)= - grep $hashref->{${svcdb}.'__'.$_.'_flag'}, - map { /^${svcdb}__(.*)$/; $1 } - grep ! /_flag$/, - grep /^${svcdb}__/, - fields('part_svc') - ; - my($rowspan)=scalar(@rows) || 1; + my @fields = + grep { $_ ne 'svcnum' && $part_svc->part_svc_column($_)->columnflag } + fields($svcdb); + + my($rowspan)=scalar(@fields) || 1; my $url = "${p}edit/part_svc.cgi?$hashref->{svcpart}"; %> @@ -35,9 +32,8 @@ <%= $hashref->{svcdb} %></TD> <% my($n1)=''; - my($row); - foreach $row ( @rows ) { - my($flag)=$part_svc->getfield($svcdb.'__'.$row.'_flag'); + foreach my $field ( @fields ) { + my $flag = $part_svc->part_svc_column($field)->columnflag; %> <%= $n1 %><TD><%= $row %></TD><TD> @@ -45,7 +41,7 @@ elsif ( $flag eq "F" ) { print "Fixed"; } else { print "(Unknown!)"; } %> - </TD><TD><%= $part_svc->getfield($svcdb."__".$row) %></TD> + </TD><TD><%= $part_svc->part_svc_column($field)->columnvalue%></TD> <% $n1="</TR><TR>"; } %> diff --git a/httemplate/docs/schema.html b/httemplate/docs/schema.html index c90f47641..59d68b718 100644 --- a/httemplate/docs/schema.html +++ b/httemplate/docs/schema.html @@ -196,8 +196,17 @@ <li>svcpart - primary key <li>svc - name of this service <li>svcdb - table used for this service: svc_acct, svc_acct_sm, svc_forward, svc_domain, svc_charge or svc_wo - <li><i>table</i>__<i>field</i> - Default or fixed value for <i>field</i> in <i>table</i> +<!-- <li><i>table</i>__<i>field</i> - Default or fixed value for <i>field</i> in <i>table</i> <li><i>table</i>__<i>field</i>_flag - null, D or F +--> + </ul> + <li><a name="part_svc_column" href="man/FS/part_svc_column.html">part_svc_column</a> + <ul> + <li>columnnum - primary key + <li>svcpart - <a href="#part_svc">Service definition</a> + <li>columnname - column name in part_svc.svcdb table + <li>columnvalue - default or fixed value for the column + <li>columnflag - null, D or F </ul> <li><a name="pkg_svc" href="man/FS/pkg_svc.html">pkg_svc</a> <ul> diff --git a/httemplate/docs/upgrade8.html b/httemplate/docs/upgrade8.html index 518d76168..67b0e5fe1 100644 --- a/httemplate/docs/upgrade8.html +++ b/httemplate/docs/upgrade8.html @@ -95,19 +95,17 @@ CREATE TABLE cust_credit_refund ( amount decimal(10,2) not null ); +CREATE TABLE part_svc_column ( + columnnum int primary key, + svcpart int not null, + columnname varchar(64) not null, + columnvalue varchar(80) null, + columnflag char(1) null +); + ALTER TABLE svc_acct ADD domsvc integer NOT NULL; ALTER TABLE svc_domain ADD catchall integer NULL; -ALTER TABLE part_svc ADD svc_acct__domsvc integer NULL; -ALTER TABLE part_svc ADD svc_acct__domsvc_flag char(1) NULL; -ALTER TABLE part_svc ADD svc_domain__catchall integer NULL; -ALTER TABLE part_svc ADD svc_domain__catchall_flag char(1) NULL; -ALTER TABLE part_svc ADD svc_forward__srcsvc integer NULL; -ALTER TABLE part_svc ADD svc_forward__srcsvc_flag char(1) NULL; -ALTER TABLE part_svc ADD svc_forward__dstsvc integer NULL; -ALTER TABLE part_svc ADD svc_forward__dstsvc_flag char(1) NULL; -ALTER TABLE part_svc ADD svc_forward__dst integer NULL; -ALTER TABLE part_svc ADD svc_forward__dst_flag char(1) NULL; ALTER TABLE cust_main ADD referral_custnum integer NULL; ALTER TABLE cust_pay ADD custnum integer; ALTER TABLE cust_refund ADD custnum integer; @@ -118,6 +116,7 @@ CREATE INDEX cust_bill_pay1 ON cust_bill_pay ( invnum ); CREATE INDEX cust_bill_pay2 ON cust_bill_pay ( paynum ); CREATE INDEX cust_credit_refund1 ON cust_credit_refund ( crednum ); CREATE INDEX cust_credit_refund2 ON cust_credit_refund ( refundnum ); +CREATE UNIQUE INDEX part_svc_column1 ON part_svc_column ( svcpart, columnname ); </pre> <li>If you are using PostgreSQL, apply the following changes to your database: @@ -177,6 +176,7 @@ ALTER TABLE cust_main ADD COLUMN comments varchar NULL; <li>create a service based on svc_forward <li>Run bin/fs-migrate-svc_acct_sm <li>Run bin/fs-migrate-payref + <li>Run bin/fs-migrate-part_svc <li><b>After running bin/fs-migrate-payref</b>, apply the following changes to your database: <table border><tr><th>PostgreSQL</th><th>MySQL, others</th></tr> <tr><td> diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index 01574e992..c0d632fa5 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -1,4 +1,4 @@ -<!-- $Id: part_svc.cgi,v 1.6 2001-09-04 14:44:06 ivan Exp $ --> +<!-- $Id: part_svc.cgi,v 1.7 2001-09-06 20:42:00 ivan Exp $ --> <% my $part_svc; if ( $cgi->param('error') ) { #error @@ -145,10 +145,9 @@ foreach my $svcdb ( qw( konq_kludge svc_acct svc_domain svc_acct_sm svc_forward svc_www ) ) { - my(@rows)=map { /^${svcdb}__(.*)$/; $1 } - grep ! /_flag$/, - grep /^${svcdb}__/, - fields('part_svc'); + my(@fields) = $svcdb eq 'konq_kludge' + ? () + : grep { $_ ne 'svcnum' } fields($svcdb) ); #my($rowspan)=scalar(@rows); #my($ptmp)="<TD ROWSPAN=$rowspan>$svcdb</TD>"; @@ -177,22 +176,26 @@ function fixup(what) { print "$svcdb" unless $svcdb eq 'konq_kludge'; print "<BR><TABLE BORDER=1><TH>Field</TH><TH COLSPAN=2>Modifier</TH>" unless $svcdb eq 'konq_kludge'; - my($row); - foreach $row (@rows) { - my $value = $part_svc->getfield($svcdb. '__'. $row); - my $flag = $part_svc->getfield($svcdb. '__'. $row. '_flag'); - #print "<TR>$ptmp<TD>$row"; - print "<TR><TD>$row"; - print "- <FONT SIZE=-1>$defs{$svcdb}{$row}</FONT>" - if defined $defs{$svcdb}{$row}; + foreach my $field (@fields) { + my $part_svc_column = $part_svc->part_svc_column($field); + my $value = $cgi->param('error') + ? $cgi->param("${svcdb}__${field}") + : $$part_svc_column->columnvalue; + my $flag = $cgi->param('error') + ? $cgi->param("${svcdb}__${field}_flag") + : $part_svc_column->columnflag; + #print "<TR>$ptmp<TD>$field"; + print "<TR><TD>$field"; + print "- <FONT SIZE=-1>$defs{$svcdb}{$field}</FONT>" + if defined $defs{$svcdb}{$field}; print "</TD>"; - print qq!<TD><INPUT TYPE="radio" NAME="${svcdb}__${row}_flag" VALUE=""!. + print qq!<TD><INPUT TYPE="radio" NAME="${svcdb}__${field}_flag" VALUE=""!. ' CHECKED'x($flag eq ''). ">Off</TD>"; - print qq!<TD><INPUT TYPE="radio" NAME="${svcdb}__${row}_flag" VALUE="D"!. + print qq!<TD><INPUT TYPE="radio" NAME="${svcdb}__${field}_flag" VALUE="D"!. ' CHECKED'x($flag eq 'D'). ">Default "; - print qq!<INPUT TYPE="radio" NAME="${svcdb}__${row}_flag" VALUE="F"!. + print qq!<INPUT TYPE="radio" NAME="${svcdb}__${field}_flag" VALUE="F"!. ' CHECKED'x($flag eq 'F'). ">Fixed "; - print qq!<INPUT TYPE="text" NAME="${svcdb}__${row}" VALUE="$value">!, + print qq!<INPUT TYPE="text" NAME="${svcdb}__${field}" VALUE="$value">!, "</TD></TR>\n"; #$ptmp=''; } diff --git a/httemplate/edit/process/part_svc.cgi b/httemplate/edit/process/part_svc.cgi index 093d86a75..5652c5805 100755 --- a/httemplate/edit/process/part_svc.cgi +++ b/httemplate/edit/process/part_svc.cgi @@ -8,7 +8,11 @@ my $new = new FS::part_svc ( { map { $_, scalar($cgi->param($_)); # } qw(svcpart svc svcdb) - } fields('part_svc') + } ( fields('part_svc'), + map { my $svcdb = $_; + map { ( $svcdb.'__'.$_, $svcdb.'__'.$_.'_flag' ) } + fields($svcdb) + } qw( svc_acct svc_domain svc_acct_sm svc_forward svc_www ) ) } ); my $error; |