diff options
author | ivan <ivan> | 2005-03-27 23:21:11 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-03-27 23:21:11 +0000 |
commit | be09b88e4a5e717dae89ba84eb3b4ff66573cb1c (patch) | |
tree | 161a1b66ce29a0d696037628cbde1f0260232783 | |
parent | 9e44ae834a17333acc035243b83437dd0dd36a32 (diff) |
svc_Common / svc_acct child_objects can now set an alternate field for the svcnum, for things like forwards
-rw-r--r-- | FS/FS/svc_Common.pm | 18 | ||||
-rw-r--r-- | FS/FS/svc_acct.pm | 5 |
2 files changed, 18 insertions, 5 deletions
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<jobnum> is set to an array reference, the jobnums of any export jobs will be added to the referenced array. If I<child_objects> 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<depend_jobnum> 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; diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 109ea1d45..89c9ffe77 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -197,7 +197,10 @@ contain an arrayref of group names. See L<FS::radius_usergroup>. The additional field I<child_objects> can optionally be defined; if so it should contain an arrayref of FS::tablename objects. They will have their svcnum fields set and will be inserted after this record, but before any -exports are run. +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' ]> Currently available options are: I<depend_jobnum> |