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);
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
-# ) ) {
-# my @rows = map { /^${svcdb}__(.*)$/; $1 }
-# grep ! /_flag$/,
-# grep /^${svcdb}__/,
-# fields('part_svc');
-# foreach my $row (@rows) {
-# unless ( $svcdb eq $recref->{svcdb} ) {
-# $recref->{$svcdb.'__'.$row}='';
-# $recref->{$svcdb.'__'.$row.'_flag'}='';
-# next;
-# }
-# $recref->{$svcdb.'__'.$row.'_flag'} =~ /^([DF]?)$/
-# or return "Illegal flag for $svcdb $row";
-# $recref->{$svcdb.'__'.$row.'_flag'} = $1;
-#
-# my $error = $self->ut_anything($svcdb.'__'.$row);
-# return $error if $error;
-#
-# }
-# }
-
''; #no error
}
=cut
sub part_svc_column {
- my $self = shift;
- my $columnname = shift;
- qsearchs('part_svc_column', {
- 'svcpart' => $self->svcpart,
- 'columnname' => $columnname,
- }
+ my( $self, $columnname) = @_;
+ $self->svcpart &&
+ qsearchs('part_svc_column', {
+ 'svcpart' => $self->svcpart,
+ 'columnname' => $columnname,
+ }
) or new FS::part_svc_column {
'svcpart' => $self->svcpart,
'columnname' => $columnname,
qsearch('part_svc_column', { 'svcpart' => $self->svcpart } );
}
-=item part_export
+=item part_export [ EXPORTTYPE ]
+
+Returns all exports (see L<FS::part_export>) for this service, or, if an
+export type is specified, only returns exports of the given type.
=cut
sub part_export {
my $self = shift;
- my %search = ( 'svcpart' => $self->svcpart );
- qsearch('part_export', \%search);
+ my %search;
+ $search{'exporttype'} = shift if @_;
+ map { qsearchs('part_export', { 'exportnum' => $_->exportnum, %search } ) }
+ qsearch('export_svc', { 'svcpart' => $self->svcpart } );
}
=back
-=head1 VERSION
-
-$Id: part_svc.pm,v 1.11 2002-03-23 17:49:01 ivan Exp $
-
=head1 BUGS
Delete is unimplemented.
The list of svc_* tables is hardcoded. When svc_acct_pop is renamed, this
should be fixed.
+all_part_svc_column method should be documented
+
=head1 SEE ALSO
L<FS::Record>, L<FS::part_svc_column>, L<FS::part_pkg>, L<FS::pkg_svc>,