Items | ';
+ foreach ( $cust_bill->cust_bill_pkg ) { #false laziness with FS::cust_bill
+ if ( $_->pkgnum ) {
+
+ my($cust_pkg)=qsearchs('cust_pkg', { 'pkgnum', $_->pkgnum } );
+ my($part_pkg)=qsearchs('part_pkg',{'pkgpart'=>$cust_pkg->pkgpart});
+ my($pkg)=$part_pkg->pkg;
+
+ if ( $_->setup != 0 ) {
+ print "$pkg Setup "; # $money_char. sprintf("%10.2f",$_->setup);
+ print join(' ',
+ map { " ". $_->[0]. ": ". $_->[1] } $cust_pkg->labels
+ ). ' ';
+ }
+
+ if ( $_->recur != 0 ) {
+ print
+ "$pkg (" . time2str("%x",$_->sdate) . " - " .
+ time2str("%x",$_->edate) . ") ";
+ #$money_char. sprintf("%10.2f",$_->recur)
+ print join(' ',
+ map { '--->'. $_->[0]. ": ". $_->[1] } $cust_pkg->labels
+ ). ' ';
+ }
+
+ } else { #pkgnum Tax
+ print "Tax " # $money_char. sprintf("%10.2f",$_->setup)
+ if $_->setup != 0;
+ }
+
+ }
+ print ' |