From a620ce3b904e9a9ba1da9c990f63f7a94acb785c Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Sat, 9 Aug 2014 17:40:49 -0700 Subject: [PATCH] two-sided printing of invoice batches, #29927 --- FS/FS/Conf.pm | 7 +++++++ FS/FS/bill_batch.pm | 9 +++++++++ FS/FS/cust_bill.pm | 2 ++ 3 files changed, 18 insertions(+) diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 8f4d05b3c..616a06c90 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -1527,6 +1527,13 @@ and customer address. Include units.', 'type' => 'checkbox', }, + { + 'key' => 'invoice_print_pdf-duplex', + 'section' => 'invoicing', + 'description' => 'Insert blank pages so that spooled invoices are each an even number of pages. Use this for double-sided printing.', + 'type' => 'checkbox', + }, + { 'key' => 'invoice_default_terms', 'section' => 'invoicing', diff --git a/FS/FS/bill_batch.pm b/FS/FS/bill_batch.pm index fb41e0e6b..d4f2aec29 100644 --- a/FS/FS/bill_batch.pm +++ b/FS/FS/bill_batch.pm @@ -61,6 +61,8 @@ sub print_pdf { my @invoices = sort { $a->invnum <=> $b->invnum } $self->cust_bill_batch; return "No invoices in batch ".$self->batchnum.'.' if !@invoices; + my $duplex = FS::Conf->exists('invoice_print_pdf-duplex'); + my $pdf_out; my $num = 0; foreach my $invoice (@invoices) { @@ -73,6 +75,13 @@ sub print_pdf { else { $pdf_out = CAM::PDF->new($part); } + if ( $duplex ) { + my $n = $pdf_out->numPages; + if ( $n % 2 == 1 ) { + # then insert a blank page so we end on an even number + $pdf_out->duplicatePage($n, 1); + } + } if($job) { # update progressbar $num++; diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 676f218c7..1b9b34792 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -1507,6 +1507,8 @@ sub fax_invoice { Place this invoice into the open batch (see C). If there isn't an open batch, one will be created. +HASHREF may contain any options to be passed to C. + =cut sub batch_invoice { -- 2.11.0