summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2005-03-27 23:21:11 +0000
committerivan <ivan>2005-03-27 23:21:11 +0000
commitbe09b88e4a5e717dae89ba84eb3b4ff66573cb1c (patch)
tree161a1b66ce29a0d696037628cbde1f0260232783
parent9e44ae834a17333acc035243b83437dd0dd36a32 (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.pm18
-rw-r--r--FS/FS/svc_acct.pm5
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>