summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg.pm
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2013-09-19 13:34:02 -0700
committerMark Wells <mark@freeside.biz>2013-09-19 13:34:02 -0700
commitb5d22578f60ba105934c92c031799671bf6c0f29 (patch)
tree8dd41f31214274b242d9b109114d5981b2e27cdb /FS/FS/part_pkg.pm
parent0e7d79b663203cf83f2b14ade82b8fd0e6b389aa (diff)
more accurate calculation of package start delays, #20686
Diffstat (limited to 'FS/FS/part_pkg.pm')
-rw-r--r--FS/FS/part_pkg.pm10
1 files changed, 6 insertions, 4 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index e187425..9e3b67e 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -5,7 +5,8 @@ use strict;
use vars qw( %plans $DEBUG $setup_hack $skip_pkg_svc_hack );
use Carp qw(carp cluck confess);
use Scalar::Util qw( blessed );
-use Time::Local qw( timelocal timelocal_nocheck );
+use DateTime;
+use Time::Local qw( timelocal timelocal_nocheck ); # eventually replace with DateTime
use Tie::IxHash;
use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh dbdef );
@@ -1094,10 +1095,11 @@ sub delay_start_date {
my $self = shift;
my $delay = $self->delay_start or return '';
-
- my ($mday,$mon,$year) = (localtime(time))[3,4,5];
- timelocal(0,0,0,$mday,$mon,$year) + 86400 * $delay;
+ # avoid timelocal silliness
+ my $dt = DateTime->today(time_zone => 'local');
+ $dt->add(days => $delay);
+ $dt->epoch;
}
sub can_currency_exchange { 0; }