X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fcust_svc.pm;h=118ab79d20d419be6979de3cef99be98571372e9;hb=101cc49024f693a837e2ff74a89a300b7ecb8976;hp=384b23addbb701f3ff022af86cab89b157a53c59;hpb=66b8da15a118480aef1330c2b336705d45f2d7cb;p=freeside.git diff --git a/FS/FS/cust_svc.pm b/FS/FS/cust_svc.pm index 384b23add..118ab79d2 100644 --- a/FS/FS/cust_svc.pm +++ b/FS/FS/cust_svc.pm @@ -11,7 +11,7 @@ use FS::pkg_svc; use FS::svc_acct; use FS::svc_domain; use FS::svc_forward; -use FS::svc_broadband +use FS::svc_broadband; use FS::svc_external; use FS::domain_record; use FS::part_export; @@ -172,15 +172,9 @@ sub replace { local $FS::UID::AutoCommit = 0; my $dbh = dbh; - my $error = $new->SUPER::replace($old); - if ( $error ) { - $dbh->rollback if $oldAutoCommit; - return $error if $error; - } - if ( $new->svcpart != $old->svcpart ) { my $svc_x = $new->svc_x; - my $new_svc_x = ref($svc_x)->new({$svc_x->hash}); + my $new_svc_x = ref($svc_x)->new({$svc_x->hash, svcpart=>$new->svcpart }); my $error = $new_svc_x->replace($svc_x); if ( $error ) { $dbh->rollback if $oldAutoCommit; @@ -188,6 +182,12 @@ sub replace { } } + my $error = $new->SUPER::replace($old); + if ( $error ) { + $dbh->rollback if $oldAutoCommit; + return $error if $error; + } + $dbh->commit or die $dbh->errstr if $oldAutoCommit; ''; #no error