=item svcdb - table used for this service. See L<FS::svc_acct>,
L<FS::svc_domain>, and L<FS::svc_forward>, among others.
-=item I<svcdb>__I<field> - Default or fixed value for I<field> in I<svcdb>.
-
-=item I<svcdb>__I<field>_flag - defines I<svcdb>__I<field> action: null, `D' for default, or `F' for fixed
-
=back
=head1 METHODS
Adds this service definition to the database. If there is an error, returns
the error, otherwise returns false.
+
=item I<svcdb>__I<field> - Default or fixed value for I<field> in I<svcdb>.
=item I<svcdb>__I<field>_flag - defines I<svcdb>__I<field> action: null, `D' for default, or `F' for fixed
};
}
+=item all_part_svc_column
+
+=cut
+
+sub all_part_svc_column {
+ my $self = shift;
+ qsearch('part_svc_column', { 'svcpart' => $self->svcpart } );
+}
+
=back
=head1 VERSION
-$Id: part_svc.pm,v 1.4 2001-09-11 00:08:18 ivan Exp $
+$Id: part_svc.pm,v 1.5 2001-09-11 23:44:01 ivan Exp $
=head1 BUGS
<%
-#<!-- $Id: svc_acct.cgi,v 1.6 2001-09-04 14:44:06 ivan Exp $ -->
+#<!-- $Id: svc_acct.cgi,v 1.7 2001-09-11 23:44:01 ivan Exp $ -->
use strict;
use vars qw( $conf $cgi @shells $action $svcnum $svc_acct $pkgnum $svcpart
use FS::Record qw(qsearch qsearchs fields);
use FS::svc_acct;
use FS::Conf;
+use FS::raddb;
$cgi = new CGI;
&cgisuidsetup($cgi);
}
#set fixed and default fields from part_svc
- my($field);
- foreach $field ( fields('svc_acct') ) {
- if ( $part_svc->getfield('svc_acct__'. $field. '_flag') ne '' ) {
- $svc_acct->setfield($field,$part_svc->getfield('svc_acct__'. $field) );
- }
+ foreach my $part_svc_column (
+ grep { $_->columnflag } $part_svc->all_part_svc_column
+ ) {
+ $svc_acct->setfield( $part_svc_column->columnname,
+ $part_svc_column->columnvalue,
+ );
}
}
#domain
$domsvc = $svc_acct->domsvc || 0;
-if ( $part_svc->svc_acct__domsvc_flag eq 'F' ) {
+if ( $part_svc->part_svc_column('domsvc')->columnflag eq 'F' ) {
print qq!<INPUT TYPE="hidden" NAME="domsvc" VALUE="$domsvc">!;
} else {
my @svc_domain = ();
- if ( $part_svc->svc_acct__domsvc_flag eq 'D' ) {
- my $svc_domain =
- qsearchs('svc_domain', { 'svcnum' => $part_svc->svc_acct__domsvc } );
+ if ( $part_svc->part_svc_column('domsvc')->columnflag eq 'D' ) {
+ my $svc_domain = qsearchs('svc_domain', {
+ 'svcnum' => $part_svc->part_svc_column('domsvc')->columnvalue,
+ } );
if ( $svc_domain ) {
push @svc_domain, $svc_domain;
} else {
- warn "unknown svc_domain.svcnum for part_svc.svc_acct__domsvc: ".
- $part_svc->svc_acct__domsvc;
+ warn "unknown svc_domain.svcnum for part_svc_column domsvc: ".
+ $part_svc->part_svc_column('domsvc')->columnvalue;
}
}
my $cust_pkg = qsearchs('cust_pkg', { 'pkgnum' => $pkgnum } );
#pop
$popnum = $svc_acct->popnum || 0;
-if ( $part_svc->svc_acct__popnum_flag eq "F" ) {
+if ( $part_svc->part_svc_column('popnum')->columnflag eq "F" ) {
print qq!<INPUT TYPE="hidden" NAME="popnum" VALUE="$popnum">!;
} else {
print qq!<BR>POP: <SELECT NAME="popnum" SIZE=1><OPTION>\n!;
END
$shell = $svc_acct->shell;
-if ( $part_svc->svc_acct__shell_flag eq "F" ) {
+if ( $part_svc->part_svc_column('shell')->columnflag eq "F" ) {
print qq!<INPUT TYPE="hidden" NAME="shell" VALUE="$shell">!;
} else {
print qq!<BR>Shell: <SELECT NAME="shell" SIZE=1>!;
print qq!<INPUT TYPE="hidden" NAME="quota" VALUE="$quota">!;
-if ( $part_svc->svc_acct__slipip_flag eq "F" ) {
+if ( $part_svc->part_svc_column('slipip')->columnflag eq "F" ) {
print qq!<INPUT TYPE="hidden" NAME="slipip" VALUE="$slipip">!;
} else {
print qq!<BR>IP: <INPUT TYPE="text" NAME="slipip" VALUE="$slipip">!;
}
+foreach my $r ( grep { /^r(adius|[cr])_/ } fields('svc_acct') ) {
+ $r =~ /^^r(adius|[cr])_(.+)$/ or next; #?
+ my $a = $2;
+ if ( $part_svc->part_svc_column($r)->columnflag eq 'F' ) {
+ print qq!<INPUT TYPE="hidden" NAME="$r" VALUE="!.
+ $svc_acct->getfield($r). '">';
+ } else {
+ print qq!<BR>$FS::raddb::attrib{$a}: <INPUT TYPE="text" NAME="$r" VALUE="!.
+ $svc_acct->getfield($r). '">';
+ }
+}
+
#submit
print qq!<P><INPUT TYPE="submit" VALUE="Submit">!;
<%
-#<!-- $Id: svc_acct_sm.cgi,v 1.3 2001-09-11 20:59:32 ivan Exp $ -->
+#<!-- $Id: svc_acct_sm.cgi,v 1.4 2001-09-11 23:44:01 ivan Exp $ -->
use strict;
use vars qw( $conf $cgi $mydomain $action $svcnum $svc_acct_sm $pkgnum $svcpart
$svcnum='';
#set fixed and default fields from part_svc
- my($field);
- foreach $field ( fields('svc_acct_sm') ) {
- if ( $part_svc->getfield('svc_acct_sm__'. $field. '_flag') ne '' ) {
- $svc_acct_sm->setfield($field,$part_svc->getfield('svc_acct_sm__'. $field) );
- }
+ foreach my $part_svc_column (
+ grep { $_->columnflag } $part_svc->all_part_svc_column
+ ) {
+ $svc_acct_sm->setfield( $part_svc_column->columnname,
+ $part_svc_column->columnvalue,
+ );
}
}
<%
-#<!-- $Id: svc_domain.cgi,v 1.2 2001-08-21 02:31:56 ivan Exp $ -->
+#<!-- $Id: svc_domain.cgi,v 1.3 2001-09-11 23:44:01 ivan Exp $ -->
use strict;
use vars qw( $cgi $action $svcnum $svc_domain $pkgnum $svcpart $part_svc
$svcnum='';
#set fixed and default fields from part_svc
- my($field);
- foreach $field ( fields('svc_domain') ) {
- if ( $part_svc->getfield('svc_domain__'. $field. '_flag') ne '' ) {
- $svc_domain->setfield($field,$part_svc->getfield('svc_domain__'. $field) );
- }
+ foreach my $part_svc_column (
+ grep { $_->columnflag } $part_svc->all_part_svc_column
+ ) {
+ $svc_domain->setfield( $part_svc_column->columnname,
+ $part_svc_column->columnvalue,
+ );
}
+
}
}
$action = $svcnum ? 'Edit' : 'Add';
<%
-# <!-- $Id: svc_forward.cgi,v 1.3 2001-08-21 10:27:11 ivan Exp $ -->
+# <!-- $Id: svc_forward.cgi,v 1.4 2001-09-11 23:44:01 ivan Exp $ -->
use strict;
use vars qw( $conf $cgi $mydomain $action $svcnum $svc_forward $pkgnum $svcpart
$svcnum='';
#set fixed and default fields from part_svc
- my($field);
- foreach $field ( fields('svc_forward') ) {
- if ( $part_svc->getfield('svc_forward__'. $field. '_flag') ne '' ) {
- $svc_forward->setfield($field,$part_svc->getfield('svc_forward__'. $field) );
- }
+ foreach my $part_svc_column (
+ grep { $_->columnflag } $part_svc->all_part_svc_column
+ ) {
+ $svc_forward->setfield( $part_svc_column->columnname,
+ $part_svc_column->columnvalue,
+ );
}
+
}
}
$action = $svc_forward->svcnum ? 'Edit' : 'Add';
<%
-# <!-- $Id: svc_acct.cgi,v 1.3 2001-08-21 02:31:57 ivan Exp $ -->
+# <!-- $Id: svc_acct.cgi,v 1.4 2001-09-11 23:44:01 ivan Exp $ -->
use strict;
use vars qw( $conf $cgi $svc_domain $query $svcnum $svc_acct $cust_svc $pkgnum
use FS::cust_pkg;
use FS::part_svc;
use FS::svc_acct_pop;
+use FS::raddb;
$cgi = new CGI;
&cgisuidsetup($cgi);
foreach $attribute ( grep /^radius_/, fields('svc_acct') ) {
#warn $attribute;
$attribute =~ /^radius_(.*)$/;
- my($pattribute) = ($1);
- $pattribute =~ s/_/-/g;
- print "<BR>Radius $pattribute: <B>". $svc_acct->getfield($attribute), "</B>";
+ my $pattribute = $FS::raddb::attrib{$1};
+ print "<BR>Radius (reply) $pattribute: <B>". $svc_acct->getfield($attribute), "</B>";
+ }
+ foreach $attribute ( grep /^rc_/, fields('svc_acct') ) {
+ #warn $attribute;
+ $attribute =~ /^rc_(.*)$/;
+ my $pattribute = $FS::raddb::attrib{$1};
+ print "<BR>Radius (check) $pattribute: <B>". $svc_acct->getfield($attribute), "</B>";
}
} else {
print "<BR><BR>(No SLIP/PPP account)";