-
+
+
+
END
-print qq!Invoice #$invnum!;
+my $custnum;
+if ( $link eq 'invnum' ) {
+
+ 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' ) {
+ $custnum = $linknum;
+}
+
+print small_custview($custnum, $conf->config('countrydefault'));
-print qq!
Date: !, time2str("%D",$_date), qq!!;
+print qq!!;
+print qq!!;
-print qq!
Amount \$!;
+print '
Payment'. ntable("#cccccc", 2).
+ 'Date | '.
+ time2str("%D",$_date). ' |
';
-print qq!
Payby: $payby!;
+print qq!Amount | \$ |
!;
+
+print qq!Payby | $payby |
!;
#payinfo (check # now as payby="BILL" hardcoded.. what to do later?)
-print qq!
Check #!;
+print qq!Check # | |
!;
+
+print qq!Auto-apply to invoices | | !;
+
+print "";
#paybatch
-print qq!!;
+print qq!!;
print <
-END
-
-print <