summaryrefslogtreecommitdiff
path: root/FS/FS
diff options
context:
space:
mode:
authorivan <ivan>2005-03-02 00:47:22 +0000
committerivan <ivan>2005-03-02 00:47:22 +0000
commit64072a17bb590c8e79d5eff409357a04a57a7d3b (patch)
treeb1d2d3ae0ae99419da99d602faf6fcdbfbb93be5 /FS/FS
parentc2829eb15ff44d34ce82ae02c88810a321614ce9 (diff)
set setup date on package changes
Diffstat (limited to 'FS/FS')
-rw-r--r--FS/FS/cust_pkg.pm18
1 files changed, 14 insertions, 4 deletions
diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm
index cd808d4..e3724a3 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);