@ISA = qw( FS::Record );
-$DEBUG = 1;
+$DEBUG = 0;
$me = '[FS::cust_bill_ApplicationCommon]';
=head1 NAME
=head1 METHODS
+=over 4
+
=item insert
=cut
my @apply = ();
+ my $conf = new FS::Conf;
+
local $SIG{HUP} = 'IGNORE';
local $SIG{INT} = 'IGNORE';
local $SIG{QUIT} = 'IGNORE';
my $dbh = dbh;
my @open = $self->cust_bill->open_cust_bill_pkg; #FOR UPDATE...?
+ @open = grep { $_->pkgnum == $self->pkgnum } @open
+ if $conf->exists('pkg-balances') && $self->pkgnum;
warn "$me ". scalar(@open). " open line items for invoice ".
$self->cust_bill->invnum. ": ". join(', ', @open). "\n"
if $DEBUG;
# - apply based on weights...
my $weight_col = $self->_app_part_pkg_weight_column;
- my @openweight = map { [ $_, ($_->cust_pkg->part_pkg->$weight_col()||0) ] }
+ my @openweight = map {
+ my $open = $_;
+ my $cust_pkg = $open->cust_pkg;
+ my $weight =
+ $cust_pkg
+ ? ( $cust_pkg->part_pkg->$weight_col() || 0 )
+ : 0; #default or per-tax weight?
+ [ $open, $weight ]
+ }
@open;
my %saw = ();
qsearchs( 'cust_bill', { 'invnum' => $self->invnum } );
}
+=item applied_to_invoice
+
+Returns a string representing the invoice (see L<FS::cust_bill>), for example:
+"applied to Invoice #54 (3/20/2008)"
+
+=cut
+
+sub applied_to_invoice {
+ my $self = shift;
+ 'applied to '. $self->cust_bill->invnum_date_pretty;
+}
+
=item lineitem_breakdown_table
=cut