freeside/FS/FS svc_acct.pm,1.171,1.172 svc_Common.pm,1.23,1.24

ivan ivan at pouncequick.420.am
Sun Mar 27 15:21:15 PST 2005


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory pouncequick:/tmp/cvs-serv20715

Modified Files:
	svc_acct.pm svc_Common.pm 
Log Message:
svc_Common / svc_acct child_objects can now set an alternate field for the svcnum, for things like forwards

Index: svc_acct.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/svc_acct.pm,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -d -r1.171 -r1.172
--- svc_acct.pm	21 Mar 2005 22:13:36 -0000	1.171
+++ svc_acct.pm	27 Mar 2005 23:21:11 -0000	1.172
@@ -197,7 +197,10 @@
 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>
 

Index: svc_Common.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/svc_Common.pm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- svc_Common.pm	30 Jul 2004 07:12:07 -0000	1.23
+++ svc_Common.pm	27 Mar 2005 23:21:11 -0000	1.24
@@ -100,8 +100,11 @@
 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 @@
   }
 
   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;




More information about the freeside-commits mailing list