summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2003-09-26 12:49:02 +0000
committerivan <ivan>2003-09-26 12:49:02 +0000
commit06ef2ebbf1ac9bb45a9af2899227b34bf7bb3ebd (patch)
treecbccf3232102d749c42c1297d1ac6f27a50823e0
parent81f959a3bf9b3774e11274912f8c0df9fe007eb8 (diff)
backport a bunch of invoice-printing stuff from 1.5, for named taxes
-rw-r--r--FS/FS/cust_bill.pm47
1 files changed, 29 insertions, 18 deletions
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index d9f860684..d5c3b9e92 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -1055,33 +1055,48 @@ sub print_text {
}
#new charges
- foreach ( $self->cust_bill_pkg ) {
+ foreach my $cust_bill_pkg (
+ ( grep { $_->pkgnum } $self->cust_bill_pkg ), #packages first
+ ( grep { ! $_->pkgnum } $self->cust_bill_pkg ), #then taxes
+ ) {
- if ( $_->pkgnum ) {
+ if ( $cust_bill_pkg->pkgnum ) {
- my($cust_pkg)=qsearchs('cust_pkg', { 'pkgnum', $_->pkgnum } );
- my($part_pkg)=qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->pkgpart});
- my($pkg)=$part_pkg->pkg;
+ my $cust_pkg = qsearchs('cust_pkg', { pkgnum =>$cust_bill_pkg->pkgnum } );
+ my $part_pkg = qsearchs('part_pkg', { pkgpart=>$cust_pkg->pkgpart } );
+ my $pkg = $part_pkg->pkg;
- if ( $_->setup != 0 ) {
- push @buf, [ "$pkg Setup", $money_char. sprintf("%10.2f",$_->setup) ];
+ if ( $cust_bill_pkg->setup != 0 ) {
+ push @buf, [ "$pkg Setup",
+ $money_char. sprintf("%10.2f", $cust_bill_pkg->setup) ];
push @buf,
map { [ " ". $_->[0]. ": ". $_->[1], '' ] } $cust_pkg->labels;
}
- if ( $_->recur != 0 ) {
+ if ( $cust_bill_pkg->recur != 0 ) {
push @buf, [
- "$pkg (" . time2str("%x",$_->sdate) . " - " .
- time2str("%x",$_->edate) . ")",
- $money_char. sprintf("%10.2f",$_->recur)
+ "$pkg (" . time2str("%x", $cust_bill_pkg->sdate) . " - " .
+ time2str("%x", $cust_bill_pkg->edate) . ")",
+ $money_char. sprintf("%10.2f", $cust_bill_pkg->recur)
];
push @buf,
map { [ " ". $_->[0]. ": ". $_->[1], '' ] } $cust_pkg->labels;
}
- } else { #pkgnum Tax
- push @buf,["Tax", $money_char. sprintf("%10.2f",$_->setup) ]
- if $_->setup != 0;
+ } else { #pkgnum tax or one-shot line item
+ my $itemdesc = defined $cust_bill_pkg->dbdef_table->column('itemdesc')
+ ? ( $cust_bill_pkg->itemdesc || 'Tax' )
+ : 'Tax';
+ if ( $cust_bill_pkg->setup != 0 ) {
+ push @buf, [ $itemdesc,
+ $money_char. sprintf("%10.2f", $cust_bill_pkg->setup) ];
+ }
+ if ( $cust_bill_pkg->recur != 0 ) {
+ push @buf, [ "$itemdesc (". time2str("%x", $cust_bill_pkg->sdate). " - "
+ . time2str("%x", $cust_bill_pkg->edate). ")",
+ $money_char. sprintf("%10.2f", $cust_bill_pkg->recur)
+ ];
+ }
}
}
@@ -1225,10 +1240,6 @@ sub print_text {
=back
-=head1 VERSION
-
-$Id: cust_bill.pm,v 1.41.2.23 2003-09-21 07:31:26 ivan Exp $
-
=head1 BUGS
The delete method.