END
+my $custnum;
if ( $link eq 'invnum' ) {
- print "Invoice #$linknum";
+
+ my $cust_bill = qsearchs('cust_bill', { 'invnum' => $linknum } )
+ or die "unknown invnum $linknum";
+ print "Invoice #$linknum". ntable("#cccccc",2).
+ 'Date | '.
+ time2str("%D", $cust_bill->_date). ' |
'.
+ '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 ' |
';
+
+ $custnum = $cust_bill->custnum;
+
} elsif ( $link eq 'custnum' ) {
- print "Customer #$linknum";
+ $custnum = $linknum;
}
-print qq!
Date: !, time2str("%D",$_date), qq!!;
+print "
Customer #$custnum". ntable('#e8e8e8');
+my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } )
+ or die "unknown custnum $custnum";
+
+print ''. ntable("#cccccc",2).
+ ' |
Billing | '.
+ $cust_main->getfield('last'). ', '. $cust_main->first. ' ';
+print $cust_main->company. ' ' if $cust_main->company;
+print $cust_main->address1. ' ';
+print $cust_main->address2. ' ' if $cust_main->address2;
+print $cust_main->city. ', '. $cust_main->state. ' '. $cust_main->zip. ' ';
+print $cust_main->country. ' ' if $cust_main->country
+ && $cust_main->country ne $countrydefault;
+
+print ' | '.
+ '
';
+
+if ( defined $cust_main->dbdef_table->column('ship_last') ) {
+
+ my $pre = $cust_main->ship_last ? 'ship_' : '';
+
+ print ''. ntable("#cccccc",2).
+ ' | Service | '.
+ $cust_main->get("${pre}last"). ', '.
+ $cust_main->get("${pre}first"). ' ';
+ print $cust_main->get("${pre}company"). ' '
+ if $cust_main->get("${pre}company");
+ print $cust_main->get("${pre}address1"). ' ';
+ print $cust_main->get("${pre}address2"). ' '
+ if $cust_main->get("${pre}address2");
+ print $cust_main->get("${pre}city"). ', '.
+ $cust_main->get("${pre}state"). ' '.
+ $cust_main->get("${pre}ship_zip"). ' ';
+ print $cust_main->get("${pre}country"). ' '
+ if $cust_main->get("${pre}country")
+ && $cust_main->get("${pre}country") ne $countrydefault;
+
+ print ' | '.
+ '
';
+}
+
+print '';
+
+
+print '
Payment'. ntable("#cccccc", 2).
+ 'Date | '.
+ time2str("%D",$_date). ' |
'.
+ qq!!;
-print qq!
Amount \$!;
+print qq!Amount | \$ |
!;
-print qq!
Payby: $payby!;
+print qq!Payby | $payby |
!;
#payinfo (check # now as payby="BILL" hardcoded.. what to do later?)
-print qq!
Check #!;
+print qq!Check # | |
!;
#paybatch
print qq!!;
print <
+
END