sub charge {
my $self = shift;
- my ( $amount, $pkg, $comment, $taxclass, $additional );
+ my ( $amount, $pkg, $comment, $taxclass, $additional, $classnum );
if ( ref( $_[0] ) ) {
$amount = $_[0]->{amount};
$pkg = exists($_[0]->{pkg}) ? $_[0]->{pkg} : 'One-time charge';
$comment = exists($_[0]->{comment}) ? $_[0]->{comment}
: '$'. sprintf("%.2f",$amount);
$taxclass = exists($_[0]->{taxclass}) ? $_[0]->{taxclass} : '';
+ $classnum = exists($_[0]->{classnum}) ? $_[0]->{classnum} : '';
$additional = $_[0]->{additional};
}else{
$amount = shift;
'plan' => 'flat',
'freq' => 0,
'disabled' => 'Y',
+ 'classnum' => $classnum ? $classnum : '',
'taxclass' => $taxclass,
} );
my @where = ();
push @where, "cust_main.custnum = $table.custnum" unless $opt{'total'};
if ( $table eq 'cust_bill' || $opt{'unapplied_date'} ) {
- push @where, "$table._date <= $start" if length($start);
- push @where, "$table._date > $end" if length($end);
+ push @where, "$table._date <= $start" if defined($start) && length($start);
+ push @where, "$table._date > $end" if defined($end) && length($end);
}
push @where, @{$opt{'where'}} if $opt{'where'};
my $where = scalar(@where) ? 'WHERE '. join(' AND ', @where ) : '';