summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorivan <ivan>2001-09-06 20:42:00 +0000
committerivan <ivan>2001-09-06 20:42:00 +0000
commit57d69d5c1f98f778a0df82795ce21ee7bd21042a (patch)
tree63f890cf25311b66c712933c84f64e43718039cd /httemplate
parentdb1b6ebfe35aba1f4d2580b13a0a74ac317784ba (diff)
finally fix part_svc!!!
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/browse/part_svc.cgi22
-rw-r--r--httemplate/docs/schema.html11
-rw-r--r--httemplate/docs/upgrade8.html20
-rwxr-xr-xhttemplate/edit/part_svc.cgi37
-rwxr-xr-xhttemplate/edit/process/part_svc.cgi6
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;