From f421a622461d5259804f0da238f349f4a790d91f Mon Sep 17 00:00:00 2001
From: Ivan Kohler <ivan@freeside.biz>
Date: Sat, 2 Apr 2016 16:24:53 -0700
Subject: [PATCH] invoice mode in PDF spools, RT#39587

---
 FS/FS/Template_Mixin.pm | 4 ++++
 FS/FS/cust_bill.pm      | 9 ++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm
index df1b86d7c..5153f87e8 100644
--- a/FS/FS/Template_Mixin.pm
+++ b/FS/FS/Template_Mixin.pm
@@ -147,6 +147,10 @@ sub print_latex {
   $template ||= $self->_agent_template
     if $self->can('_agent_template');
 
+  #the new way
+  $self->set('mode', $params{mode})
+    if $params{mode};
+
   my $pkey = $self->primary_key;
   my $tmp_template = $self->table. '.'. $self->$pkey. '.XXXXXXXX';
 
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index 3ee6d4736..79dbbba67 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -1115,9 +1115,8 @@ sub queueable_email {
   my $self = qsearchs('cust_bill', { 'invnum' => $opt{invnum} } )
     or die "invalid invoice number: " . $opt{invnum};
 
-  if ( $opt{mode} ) {
-    $self->set('mode', $opt{mode});
-  }
+  $self->set('mode', $opt{mode})
+    if $opt{mode};
 
   my %args = map {$_ => $opt{$_}} 
              grep { $opt{$_} }
@@ -1258,6 +1257,10 @@ sub batch_invoice {
       batchnum => $bill_batch->batchnum,
       invnum   => $self->invnum,
   });
+  if ( $self->mode ) {
+    $opt->{mode} ||= $self->mode;
+    $opt->{mode} = $opt->{mode}->modenum if ref $opt->{mode};
+  }
   return $cust_bill_batch->insert($opt);
 }
 
-- 
2.20.1