[freeside-commits] branch master updated. c3a7e8855edbe4f836543184d5a7543e04255a43

Ivan ivan at 420.am
Wed Jan 30 00:13:55 PST 2013


The branch, master has been updated
       via  c3a7e8855edbe4f836543184d5a7543e04255a43 (commit)
      from  aa97e36a3bb5c92251ab14a47c710ffecb5b26c8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c3a7e8855edbe4f836543184d5a7543e04255a43
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Wed Jan 30 00:13:54 2013 -0800

    per-agent lpr command, RT#18549

diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm
index 9a064b6..25d4727 100644
--- a/FS/FS/Conf.pm
+++ b/FS/FS/Conf.pm
@@ -1616,6 +1616,7 @@ and customer address. Include units.',
     'section'     => 'required',
     'description' => 'Print command for paper invoices, for example `lpr -h\'',
     'type'        => 'text',
+    'per_agent'   => 1,
   },
 
   {
diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm
index 096ec8a..5e89abc 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -800,16 +800,32 @@ sub _pslatex {
 
 }
 
-=item do_print ARRAYREF
+=item do_print ARRAYREF [, OPTION => VALUE ... ]
 
 Sends the lines in ARRAYREF to the printer.
 
+Options available are:
+
+=over 4
+
+=item agentnum
+
+Uses this agent's 'lpr' configuration setting override instead of the global
+value.
+
+=item lpr
+
+Uses this command instead of the configured lpr command (overrides both the
+global value and agentnum).
+
 =cut
 
 sub do_print {
-  my $data = shift;
+  my( $data, %opt ) = @_;
 
-  my $lpr = $conf->config('lpr');
+  my $lpr = ( exists($opt{'lpr'}) && $opt{'lpr'} )
+              ? $opt{'lpr'}
+              : $conf->config('lpr', $opt{'agentnum'} );
 
   my $outerr = '';
   run3 $lpr, $data, \$outerr, \$outerr;
diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index e7622d7..b3ae290 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -1584,7 +1584,10 @@ sub print {
     $self->batch_invoice(\%opt);
   }
   else {
-    do_print $self->lpr_data(\%opt);
+    do_print(
+      $self->lpr_data(\%opt),
+      'agentnum' => $self->cust_main->agentnum,
+    );
   }
 }
 
diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 45d57cd..1920e9f 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -4917,7 +4917,10 @@ sub queueable_print {
 
 sub print {
   my ($self, $template) = (shift, shift);
-  do_print [ $self->print_ps($template) ];
+  do_print(
+    [ $self->print_ps($template) ],
+    'agentnum' => $self->agentnum,
+  );
 }
 
 #these three subs should just go away once agent stuff is all config overrides
diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm
index e38346a..011ce24 100644
--- a/FS/FS/msg_template.pm
+++ b/FS/FS/msg_template.pm
@@ -484,13 +484,15 @@ Render a PDF and send it to the printer.  OPTIONS are as for 'render'.
 =cut
 
 sub print {
-  my $file = render(@_);
-  my @lpr = $conf->config('lpr');
-  run ([@lpr, '-r'], '<', $file)
+  my( $self, %opt ) = @_;
+  my $file = $self->render(%opt);
+
+  my $lpr = $conf->config('lpr', $opt{'cust_main'}->agentnum );
+
+  run ( $lpr, '<', $file)
     or die "lpr error:\n$?\n";
 }
 
-
 # helper sub for package dates
 my $ymd = sub { $_[0] ? time2str('%Y-%m-%d', $_[0]) : '' };
 

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Conf.pm         |    1 +
 FS/FS/Misc.pm         |   22 +++++++++++++++++++---
 FS/FS/cust_bill.pm    |    5 ++++-
 FS/FS/cust_main.pm    |    5 ++++-
 FS/FS/msg_template.pm |   10 ++++++----
 5 files changed, 34 insertions(+), 9 deletions(-)




More information about the freeside-commits mailing list