our $DEBUG = 1;
+sub recur_temporality { 'preceding'; }
+
+sub price_info {
+ my $self = shift;
+ my $str = $self->SUPER::price_info;
+ $str .= " plus usage" if $str;
+ $str;
+}
+
sub calc_recur {
my $self = shift;
my($cust_pkg, $sdate, $details, $param ) = @_;
my $self = shift;
my($cust_pkg, $sdate, $details, $param ) = @_;
-
my @sdate = localtime($$sdate);
- my $rep_date = ($sdate[5]+1900). '-'. ($sdate[4]+1). '-01';
+ #sdate is next bill date, but we want the report from last month
+ my($m, $y) = ($sdate[4], $sdate[5]+1900);
+ if ( $m == 0 ) { $m=12; $y--; }
+ $m = "0$m" if length($m) == 1;
+ my $rep_date = "$y-$m-01";
warn "searching for MonthlyUsage report for $rep_date\n" if $DEBUG;
my $rep_sql = "
SELECT id FROM reports WHERE rep_date = ?
SELECT value FROM reportfields
WHERE rep_id = $rep_id
AND name = ?
- AND servciceid = ?
+ AND serviceid = ?
";
my $total = 0;
$max -= $inc;
next if $max < 0;
- my $amount = sprintf('%.2f', $self->option($self->_torrus_rate) * $max );
+ my $rate = $self->option($self->_torrus_rate);
+ my $amount = sprintf('%.2f', $rate * $max );
$total += $amount;
#add usage details to invoice
my $l = $self->_torrus_label;
- my $d = "Last month's usage for $serviceid: $max$l";
+ my $d = "Last month's usage for $serviceid: ". sprintf('%.2f',$max). $l;
$d .= " (". ($max+$inc). "$l - $inc$l included)" if $inc;
- $d .= ": $money_char$amount";
+ $d .= " @ $money_char$rate/$l: $money_char$amount";
push @$details, $d;