X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fpart_svc.pm;h=959a3f887c73daa3bda68c49815d11818b72b7b2;hb=5086b5ee6ace8f535a1adb9a97cce4da87450cb1;hp=41ee21d31505526726f3b4342ad8956281165bab;hpb=1aa750eba2b9b73b4f09f28b9acd748ee3669bd4;p=freeside.git diff --git a/FS/FS/part_svc.pm b/FS/FS/part_svc.pm index 41ee21d31..959a3f887 100644 --- a/FS/FS/part_svc.pm +++ b/FS/FS/part_svc.pm @@ -4,6 +4,8 @@ use strict; use vars qw( @ISA ); 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); @@ -57,19 +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'; @@ -96,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', { @@ -141,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 { @@ -172,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', { @@ -295,11 +311,21 @@ sub all_part_svc_column { 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.9 2002-01-28 06:57:23 ivan Exp $ +$Id: part_svc.pm,v 1.13 2002-04-11 22:05:31 ivan Exp $ =head1 BUGS @@ -308,6 +334,8 @@ 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,