summaryrefslogtreecommitdiff
path: root/FS/FS/Report
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-05-08 02:02:47 -0700
committerIvan Kohler <ivan@freeside.biz>2014-05-08 02:02:47 -0700
commitaf263d381228524dedebcaa19c7440e3acad4e3c (patch)
tree7ceb368badeb71a1f9c9851caf9f2ce9346fcb52 /FS/FS/Report
parent3c05bfbef7c1913ff2d66bf889e12640ac3ddd95 (diff)
fix daily sales/credits/receipts summary vs DST boundaries, RT#26199
Diffstat (limited to 'FS/FS/Report')
-rw-r--r--FS/FS/Report/Table/Daily.pm9
1 files changed, 6 insertions, 3 deletions
diff --git a/FS/FS/Report/Table/Daily.pm b/FS/FS/Report/Table/Daily.pm
index 570fefe..c181064 100644
--- a/FS/FS/Report/Table/Daily.pm
+++ b/FS/FS/Report/Table/Daily.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw( @ISA );
use FS::Report::Table;
use FS::Conf;
-use Time::Local qw( timelocal );
+use Time::Local qw( timelocal timelocal_nocheck ); # eventually replace with DateTime
use Date::Format qw( time2str );
@ISA = qw( FS::Report::Table );
@@ -69,12 +69,15 @@ sub data {
#warn "daily range $sdate $edate\n";
# XXX: use date_format config for the labels since we have day in the labels now?
- # XXX: leap seconds / DST
while ( $sdate < $edate ) {
push @{$data{label}}, time2str($date_format, $sdate);
my $speriod = $sdate;
- $sdate += 86400;
+
+ #ala part_pkg->add_freq, to deal with local DST. DateTime also a good idea
+ my ($mday,$mon,$year) = (localtime($sdate) )[3,4,5];
+ $sdate = timelocal_nocheck(0,0,0,$mday+1,$mon,$year);
+
my $eperiod = $sdate;
push @{$data{speriod}}, $speriod;