X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_Common.pm;h=db2fbbe863a73691910ca128078ebe9c598dbc34;hb=d33015393db77e9bc8e0deeb1a39500b3b5a49eb;hp=10ff3f916314111eda14b784c25f7f6b01fbbe0e;hpb=5fc8c5edf574ab024d4646914b6432d458e2ffbd;p=freeside.git diff --git a/FS/FS/svc_Common.pm b/FS/FS/svc_Common.pm index 10ff3f916..db2fbbe86 100644 --- a/FS/FS/svc_Common.pm +++ b/FS/FS/svc_Common.pm @@ -100,8 +100,11 @@ If I is set to an array reference, the jobnums of any export jobs will be added to the referenced array. If I is set to an array reference of FS::tablename objects (for -example, FS::acct_snarf objects), they will have their svcnum fieldsset and -will be inserted after this record, but before any exports are run. +example, FS::acct_snarf objects), they will have their svcnum field set and +will be inserted after this record, but before any exports are run. Each +element of the array can also optionally be a two-element array reference +containing the child object and the name of an alternate field to be filled in +with the newly-inserted svcnum, for example C<[ $svc_forward, 'srcsvc' ]> If I is set (to a scalar jobnum or an array reference of jobnums), all provisioning jobs will have a dependancy on the supplied @@ -172,8 +175,15 @@ sub insert { } foreach my $object ( @$objects ) { - $object->svcnum($self->svcnum); - $error = $object->insert; + my($field, $obj); + if ( ref($object) eq 'ARRAY' ) { + ($obj, $field) = @$object; + } else { + $obj = $object; + $field = 'svcnum'; + } + $obj->$field($self->svcnum); + $error = $obj->insert; if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error;