[freeside-commits] branch master updated. 8dfb2c715ff2de2553bcf3744a2b4d742314a2cb
Mark Wells
mark at 420.am
Wed Mar 4 16:23:34 PST 2015
The branch, master has been updated
via 8dfb2c715ff2de2553bcf3744a2b4d742314a2cb (commit)
from 33f5c81279e1de9afd97adb1872c1b11caf7f6f9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8dfb2c715ff2de2553bcf3744a2b4d742314a2cb
Author: Mark Wells <mark at freeside.biz>
Date: Wed Mar 4 16:23:28 2015 -0800
better endpoint handling on daily reports, #29407
diff --git a/FS/FS/Report/Table/Daily.pm b/FS/FS/Report/Table/Daily.pm
index c181064..6673937 100644
--- a/FS/FS/Report/Table/Daily.pm
+++ b/FS/FS/Report/Table/Daily.pm
@@ -1,13 +1,9 @@
package FS::Report::Table::Daily;
use strict;
-use vars qw( @ISA );
-use FS::Report::Table;
+use base 'FS::Report::Table';
+use DateTime;
use FS::Conf;
-use Time::Local qw( timelocal timelocal_nocheck ); # eventually replace with DateTime
-use Date::Format qw( time2str );
-
- at ISA = qw( FS::Report::Table );
=head1 NAME
@@ -50,35 +46,51 @@ sub data {
my $sday = $self->{'start_day'};
my $smonth = $self->{'start_month'};
- my $syear = $self->{'start_year'};
+ my $syear = $self->{'start_year'} + 1900; # temporary kludge
my $eday = $self->{'end_day'};
my $emonth = $self->{'end_month'};
- my $eyear = $self->{'end_year'};
+ my $eyear = $self->{'end_year'} + 1900;
my $agentnum = $self->{'agentnum'};
my $cust_classnum = $self->{'cust_classnum'} || [];
$cust_classnum = [ $cust_classnum ] if !ref($cust_classnum);
- my %data;
+ #these need to get generalized, sheesh
+ my %data = (
+ # rows (time intervals)
+ speriod => [], # start timestamps
+ eperiod => [], # end timestamps
+ label => [], # date labels
+ data => [], # arrayrefs of column values
+
+ # columns (observables + query parameters)
+ items => $self->{'items'},
+ item_labels => $self->{'item_labels'} || $self->{'items'},
+ colors => $self->{'colors'}, # no default?
+ links => $self->{'links'} || [],
+ );
- my $sdate = timelocal(0,0,0,$sday,$smonth-1,$syear);
- my $edate = timelocal(0,0,0,$eday,$emonth-1,$eyear);
+ my $sdate = DateTime->new(
+ day => $sday,
+ month => $smonth,
+ year => $syear,
+ time_zone => 'local'
+ );
+ my $edate = DateTime->new(
+ day => $eday,
+ month => $emonth,
+ year => $eyear,
+ time_zone => 'local'
+ )->add(days => 1); # include all of the end day
my $conf = FS::Conf->new;
my $date_format = $conf->config('date_format') || '%d/%m/%Y';
- #warn "daily range $sdate $edate\n";
-
- # XXX: use date_format config for the labels since we have day in the labels now?
while ( $sdate < $edate ) {
- push @{$data{label}}, time2str($date_format, $sdate);
+ push @{$data{label}}, $sdate->strftime($date_format);
- my $speriod = $sdate;
-
- #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;
+ my $speriod = $sdate->epoch;
+ $sdate->add(days => 1);
+ my $eperiod = $sdate->epoch;;
push @{$data{speriod}}, $speriod;
push @{$data{eperiod}}, $eperiod;
@@ -95,7 +107,6 @@ sub data {
}
}
- #these need to get generalized, sheesh
$data{'items'} = $self->{'items'};
$data{'item_labels'} = $self->{'item_labels'} || $self->{'items'};
$data{'colors'} = $self->{'colors'};
-----------------------------------------------------------------------
Summary of changes:
FS/FS/Report/Table/Daily.pm | 57 ++++++++++++++++++++++++++-----------------
1 file changed, 34 insertions(+), 23 deletions(-)
More information about the freeside-commits
mailing list