summaryrefslogtreecommitdiff
path: root/httemplate/search/elements
diff options
context:
space:
mode:
authormark <mark>2010-07-22 07:25:48 +0000
committermark <mark>2010-07-22 07:25:48 +0000
commit64808a397a0a0935069d65c48aba9afaeb4fafd2 (patch)
tree6ce15f441f75b0360f3388c56f9d1419d90105fa /httemplate/search/elements
parent152d5357089a71f637530054b71f21c36fdfe01b (diff)
Fix weird behavior of aging report, RT#9234
Diffstat (limited to 'httemplate/search/elements')
-rw-r--r--httemplate/search/elements/cust_main_dayranges.html12
1 files changed, 11 insertions, 1 deletions
diff --git a/httemplate/search/elements/cust_main_dayranges.html b/httemplate/search/elements/cust_main_dayranges.html
index aa133883b..d5ef62540 100644
--- a/httemplate/search/elements/cust_main_dayranges.html
+++ b/httemplate/search/elements/cust_main_dayranges.html
@@ -11,6 +11,7 @@ Example:
my( $start, $end ) = @_;
"SQL EXPRESSION BASED ON $start AND $end";
+ # where $start and $end are unix timestamps
};
</%doc>
@@ -252,7 +253,16 @@ sub call_range_sub {
my $as = $opt{'no_as'} ? '' : " AS rangecol_${start}_$end";
- my $sql = &{$range_sub}( $start, $end, $opt{'offset'} ); #%opt?
+ my $offset = $opt{'offset'} || 0;
+ # Time::ParseDate for excruciating correctness
+ # Always use $offset - 1day + 1sec = the last second of that day
+ $start = parsedate('00:00 '.($start + $offset - 1).' days ago') - 1;
+ $end = $end ?
+ parsedate('00:00 '.($end + $offset - 1).' days ago') - 1 :
+ '';
+ my $cutoff = parsedate('00:00 '.($offset - 1).' days ago') - 1;
+
+ my $sql = &{$range_sub}( $start, $end, $cutoff ); #%opt?
$sql = "SUM($sql)" if $opt{'sum'};