package FS::export_svc;
+use base qw(FS::Record);
use strict;
-use vars qw( @ISA );
-use FS::Record qw( qsearch qsearchs dbh );
-use FS::part_export;
-use FS::part_svc;
+use FS::Record qw( dbh qsearch ); #qsearchs );
use FS::svc_export_machine;
-@ISA = qw(FS::Record);
-
=head1 NAME
FS::export_svc - Object methods for export_svc records
=item svcpart - service definition (see L<FS::part_svc>)
+=item role - export role (see export parameters)
+
=back
=head1 METHODS
|| $self->ut_foreign_key('exportnum', 'part_export', 'exportnum')
|| $self->ut_number('svcpart')
|| $self->ut_foreign_key('svcpart', 'part_svc', 'svcpart')
+ || $self->ut_alphan('role')
|| $self->SUPER::check
;
+
+ my $part_export = $self->part_export;
+ if ( exists $part_export->info->{roles} ) {
+ my $role = $self->get('role');
+ if ( ! $role ) {
+ return 'must select an export role'
+ }
+ if ( ! exists($part_export->info->{roles}->{$role}) ) {
+ return "invalid role for export '".$part_export->exporttype."'";
+ }
+ } else {
+ $self->set('role', '');
+ }
+
+ '';
}
=item part_export
Returns the FS::part_export object (see L<FS::part_export>).
-=cut
-
-sub part_export {
- my $self = shift;
- qsearchs( 'part_export', { 'exportnum' => $self->exportnum } );
-}
-
=item part_svc
Returns the FS::part_svc object (see L<FS::part_svc>).
-=cut
-
-sub part_svc {
- my $self = shift;
- qsearchs( 'part_svc', { 'svcpart' => $self->svcpart } );
-}
-
=item svc_export_machine
Returns all export hostname records (L<FS::svc_export_machine>) for this