X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Felements%2Fcust_main_dayranges.html;fp=httemplate%2Fsearch%2Felements%2Fcust_main_dayranges.html;h=8b7b89bd2ab9ff3c7b2be61a280ba64a70c81de1;hp=45d605e6ecbff5709117e69ba6d6d3375257075b;hb=f4658067b9a1dd0564be8fd590a1e541681bfe27;hpb=342e2bfbe6aad470ab9dee40640f8ac7d9653003 diff --git a/httemplate/search/elements/cust_main_dayranges.html b/httemplate/search/elements/cust_main_dayranges.html index 45d605e6e..8b7b89bd2 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 }; @@ -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'};