diff options
author | ivan <ivan> | 2002-03-22 12:49:43 +0000 |
---|---|---|
committer | ivan <ivan> | 2002-03-22 12:49:43 +0000 |
commit | b159f42fa3f48cc2ca3b43773e7661e17d2fb072 (patch) | |
tree | a824f6d34a643fad9f381f010637d9dbfd8b01c6 /FS | |
parent | 415150fe1997eb2688dfd492710f644574e29daf (diff) |
more new export...
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/Record.pm | 2 | ||||
-rw-r--r-- | FS/FS/part_export.pm | 43 | ||||
-rw-r--r-- | FS/MANIFEST | 2 | ||||
-rw-r--r-- | FS/t/part_export.t | 5 | ||||
-rw-r--r-- | FS/t/part_export_option.t | 5 |
5 files changed, 43 insertions, 14 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 0bd7aeda4..ff967817a 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -947,7 +947,7 @@ Check/untaint host and domain names. sub ut_domain { my( $self, $field ) = @_; #$self->getfield($field) =~/^(\w+\.)*\w+$/ - $self->getfield($field) =~/^(\w+\.)*\w+$/ + $self->getfield($field) =~/^([\w\-]+\.)*\w+$/ or return "Illegal (domain) $field: ". $self->getfield($field); $self->setfield($field,$1); ''; diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm index 59024f651..3f184be07 100644 --- a/FS/FS/part_export.pm +++ b/FS/FS/part_export.pm @@ -102,6 +102,7 @@ created (see L<FS::part_export_option>). #false laziness w/queue.pm sub insert { my $self = shift; + my $options = shift; local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; @@ -119,7 +120,6 @@ sub insert { return $error; } - my $options = shift; foreach my $optionname ( keys %{$options} ) { my $part_export_option = new FS::part_export_option ( { 'exportnum' => $self->exportnum, @@ -191,6 +191,8 @@ created or modified (see L<FS::part_export_option>). sub replace { my $self = shift; + my $old = shift; + my $options = shift; local $SIG{HUP} = 'IGNORE'; local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; @@ -202,13 +204,12 @@ sub replace { local $FS::UID::AutoCommit = 0; my $dbh = dbh; - my $error = $self->SUPER::replace; + my $error = $self->SUPER::replace($old); if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error; } - my $options = shift; foreach my $optionname ( keys %{$options} ) { my $old = qsearchs( 'part_export_option', { 'exportnum' => $self->exportnum, @@ -219,6 +220,7 @@ sub replace { 'optionname' => $optionname, 'optionvalue' => $options->{$optionname}, } ); + $new->optionnum($old->optionnum) if $old; my $error = $old ? $new->replace($old) : $new->insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; @@ -226,14 +228,16 @@ sub replace { } } - #remove extraneous old options? not necessary now, but... - #foreach my $opt ( grep { !exist $options->{$_->optionname} } $old->part_export_option ) { - # my $error = $opt->delete; - # if ( $error ) { - # $dbh->rollback if $oldAutoCommit; - # return $error; - # } - #} + #remove extraneous old options + foreach my $opt ( + grep { !exists $options->{$_->optionname} } $old->part_export_option + ) { + my $error = $opt->delete; + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error; + } + } $dbh->commit or die $dbh->errstr if $oldAutoCommit; @@ -253,6 +257,7 @@ sub check { my $self = shift; my $error = $self->ut_numbern('exportnum') + || $self->ut_domain('machine') || $self->ut_number('svcpart') || $self->ut_alpha('exporttype') ; @@ -286,6 +291,9 @@ sub part_svc { =item part_export_option +Returns all options as FS::part_export_option objects (see +L<FS::part_export_option>). + =cut sub part_export_option { @@ -295,6 +303,8 @@ sub part_export_option { =item options +Returns a list of option names and values suitable for assigning to a hash. + =cut sub options { @@ -302,7 +312,9 @@ sub options { map { $_->optionname => $_->optionvalue } $self->part_export_option; } -=item option +=item option OPTIONNAME + +Returns the option value for the given name, or the empty string. =cut @@ -318,6 +330,11 @@ sub option { =item rebless +Reblesses the object into the FS::part_export::EXPORTTYPE class, where +EXPORTTYPE is the object's I<exporttype> field. There should be better docs +on how to create new exports (and they should live in their own files and be +autoloaded-on-demand), but until then, see L</NEW EXPORT CLASSES>. + =cut sub rebless { @@ -346,7 +363,7 @@ sub export_insert { # $self->$method(@_); #} -=item export_replace +=item export_replace NEW OLD =cut diff --git a/FS/MANIFEST b/FS/MANIFEST index c1aa5ef1a..19915cdc9 100644 --- a/FS/MANIFEST +++ b/FS/MANIFEST @@ -90,6 +90,8 @@ t/cust_svc.t t/domain_record.t t/nas.t t/part_bill_event.t +t/part_export.t +t/part_export_option.t t/part_pkg.t t/part_pop_local.t t/part_referral.t diff --git a/FS/t/part_export.t b/FS/t/part_export.t new file mode 100644 index 000000000..26b398791 --- /dev/null +++ b/FS/t/part_export.t @@ -0,0 +1,5 @@ +BEGIN { $| = 1; print "1..1\n" } +END {print "not ok 1\n" unless $loaded;} +use FS::part_export; +$loaded=1; +print "ok 1\n"; diff --git a/FS/t/part_export_option.t b/FS/t/part_export_option.t new file mode 100644 index 000000000..13200c213 --- /dev/null +++ b/FS/t/part_export_option.t @@ -0,0 +1,5 @@ +BEGIN { $| = 1; print "1..1\n" } +END {print "not ok 1\n" unless $loaded;} +use FS::part_export_option; +$loaded=1; +print "ok 1\n"; |