From: ivan Date: Wed, 2 Mar 2005 00:47:22 +0000 (+0000) Subject: set setup date on package changes X-Git-Tag: BEFORE_FINAL_MASONIZE~689 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=64072a17bb590c8e79d5eff409357a04a57a7d3b set setup date on package changes --- diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index cd808d4fa..e3724a3ef 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -1106,12 +1106,23 @@ sub order { my $cust_main = qsearchs('cust_main', { custnum => $custnum }); return "Customer not found: $custnum" unless $cust_main; - my $change = scalar(@$remove_pkgnum) != 0; + my @old_cust_pkg = map { qsearchs('cust_pkg', { pkgnum => $_ }) } + @$remove_pkgnum; + + my $change = scalar(@old_cust_pkg) != 0; + + my %hash = (); + if ( scalar(@old_cust_pkg) == 1 ) { + #$hash{$_} = $old_cust_pkg[0]->$_() foreach qw( last_bill bill ); + $hash{'setup'} = time; + } # Create the new packages. foreach my $pkgpart (@$pkgparts) { my $cust_pkg = new FS::cust_pkg { custnum => $custnum, - pkgpart => $pkgpart }; + pkgpart => $pkgpart, + %hash, + }; $error = $cust_pkg->insert( 'change' => $change ); if ($error) { $dbh->rollback if $oldAutoCommit; @@ -1123,8 +1134,7 @@ sub order { # created packages. # Transfer services and cancel old packages. - foreach my $old_pkgnum (@$remove_pkgnum) { - my $old_pkg = qsearchs ('cust_pkg', { pkgnum => $old_pkgnum }); + foreach my $old_pkg (@old_cust_pkg) { foreach my $new_pkg (@$return_cust_pkg) { $error = $old_pkg->transfer($new_pkg);