X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;h=959a3f887c73daa3bda68c49815d11818b72b7b2;hp=f1e71ada8b2a425ee70e1fcc66f8ae6dffa00cfd;hb=3ef62a0570055da710328937e7f65dbb2c027c62;hpb=f5266a4d07d116efd732f433d0f4f3a47b143a7d diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index f1e71ada8..959a3f887 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -2,8 +2,10 @@ package FS::part_svc; use strict; use vars qw( @ISA ); -use FS::Record qw( qsearchs fields dbh ); +use FS::Record qw( qsearch qsearchs fields dbh ); use FS::part_svc_column; +use FS::part_export; +use FS::export_svc; @ISA = qw(FS::Record); @@ -40,9 +42,7 @@ FS::Record. The following fields are currently supported: =item svcdb - table used for this service. See L, L, and L, among others. -=item I__I - Default or fixed value for I in I. - -=item I__I_flag - defines I__I action: null, `D' for default, or `F' for fixed +=item disabled - Disabled flag, empty or `Y' =back @@ -59,18 +59,25 @@ database, see L<"insert">. sub table { 'part_svc'; } -=item insert +=item insert EXTRA_FIELDS_ARRAYREF Adds this service definition to the database. If there is an error, returns the error, otherwise returns false. + +TODOC: + =item I__I - Default or fixed value for I in I. =item I__I_flag - defines I__I action: null, `D' for default, or `F' for fixed +TODOC: EXTRA_FIELDS_ARRAYREF + =cut sub insert { my $self = shift; + my @fields = (); + @fields = @{shift(@_)} if @_; local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; @@ -97,7 +104,7 @@ sub insert { foreach my $field ( grep { $_ ne 'svcnum' && defined( $self->getfield($svcdb.'__'.$_.'_flag') ) - } fields($svcdb) + } (fields($svcdb), @fields) ) { my $part_svc_column = $self->part_svc_column($field); my $previous = qsearchs('part_svc_column', { @@ -142,11 +149,15 @@ sub delete { # check & make sure the svcpart isn't in cust_svc or pkg_svc (in any packages)? } -=item replace OLD_RECORD +=item replace OLD_RECORD [ '1.3-COMPAT' [ , EXTRA_FIELDS_ARRAYREF ] ] Replaces OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false. +TODOC: 1.3-COMPAT + +TODOC: EXTRA_FIELDS_ARRAYREF + =cut sub replace { @@ -173,11 +184,15 @@ sub replace { } if ( @_ && $_[0] eq '1.3-COMPAT' ) { + shift; + my @fields = (); + @fields = @{shift(@_)} if @_; + my $svcdb = $new->svcdb; foreach my $field ( grep { $_ ne 'svcnum' && defined( $new->getfield($svcdb.'__'.$_.'_flag') ) - } fields($svcdb) + } (fields($svcdb),@fields) ) { my $part_svc_column = $new->part_svc_column($field); my $previous = qsearchs('part_svc_column', { @@ -232,12 +247,14 @@ sub check { $self->ut_numbern('svcpart') || $self->ut_text('svc') || $self->ut_alpha('svcdb') + || $self->ut_enum('disabled', [ '', 'Y' ] ) ; return $error if $error; my @fields = eval { fields( $recref->{svcdb} ) }; #might die return "Unknown svcdb!" unless @fields; +##REPLACED BY part_svc_column # my $svcdb; # foreach $svcdb ( qw( # svc_acct svc_acct_sm svc_domain @@ -285,11 +302,30 @@ sub part_svc_column { }; } +=item all_part_svc_column + +=cut + +sub all_part_svc_column { + my $self = shift; + qsearch('part_svc_column', { 'svcpart' => $self->svcpart } ); +} + +=item part_export + +=cut + +sub part_export { + my $self = shift; + map { qsearchs('part_export', { 'exportnum' => $_->exportnum } ) } + qsearch('export_svc', { '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.13 2002-04-11 22:05:31 ivan Exp $ =head1 BUGS @@ -298,11 +334,13 @@ Delete is unimplemented. The list of svc_* tables is hardcoded. When svc_acct_pop is renamed, this should be fixed. +all_part_svc_column and part_export methods should be documented + =head1 SEE ALSO -L, L, L, L, -L, L, L, schema.html from the -base documentation. +L, L, L, L, +L, L, L, L, +schema.html from the base documentation. =cut