From 030b169a8f85ba045fb1c0385c49b3e41084289f Mon Sep 17 00:00:00 2001 From: tetragon Date: Thu, 6 Sep 2007 20:54:42 +0000 Subject: Adjusting statements for batch printing (1789160) git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1523 4979c152-3d1c-0410-bac9-87ea11338e46 --- bin/rp.pl | 66 +++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 27 deletions(-) (limited to 'bin') diff --git a/bin/rp.pl b/bin/rp.pl index 226bd84c..533582f5 100644 --- a/bin/rp.pl +++ b/bin/rp.pl @@ -2156,33 +2156,52 @@ sub print { if ( $form->{format} !~ /(postscript|pdf)/ ); } + my @batch_data = (); + for $i ( 1 .. $form->{rowcount} ) { + if ( $form->{"statement_$i"} ) { $form->{"$form->{ct}_id"} = $form->{"$form->{ct}_id_$i"}; $language_code = $form->{"language_code_$i"}; $curr = $form->{"curr_$i"}; $selected = 1; - last; + + if ( $form->{media} !~ /(screen|email)/ ) { + # SC: I may not need this anymore... + # But I'll wait until lpr output is working before deciding + $form->{OUT} = "${LedgerSMB::Sysconfig::printer}{$form->{media}}"; + $form->{"$form->{ct}_id"} = ""; + $SIG{INT} = 'IGNORE'; + } + else { + $form->{"statement_1"} = 1; + $form->{"language_code_1"} = $language_code; + $form->{"curr_1"} = $curr; + } + + RP->aging( \%myconfig, \%$form ); + + $printhash = &print_form; + + push @batch_data, $printhash; } } $form->error( $locale->text('Nothing selected!') ) unless $selected; - - if ( $form->{media} !~ /(screen|email)/ ) { - $form->{OUT} = "${LedgerSMB::Sysconfig::printer}{$form->{media}}"; - $form->{printmode} = '|-'; - $form->{"$form->{ct}_id"} = ""; - $SIG{INT} = 'IGNORE'; - } - else { - $form->{"statement_1"} = 1; - $form->{"language_code_1"} = $language_code; - $form->{"curr_1"} = $curr; + + my $template = LedgerSMB::Template->new( + user => \%myconfig, + template => $form->{'formname'} || $form->{'type'}, + format => uc $form->{format} + ); + try { + $template->render({data => \@batch_data}); + $template->output($form); } - - RP->aging( \%myconfig, \%$form ); - - &print_form; + catch Error::Simple with { + my $E = shift; + $form->error( $E->stacktrace ); + }; $form->redirect( $locale->text('Statements sent to printer!') ) if ( $form->{media} !~ /(screen|email)/ ); @@ -2276,18 +2295,11 @@ sub print_form { $form->format_amount( \%myconfig, $form->{"${_}total"}, 2 ); } + + my $printhash = {}; + for (keys %$form) { $printhash->{$_} = $form->{$_}} - my $template = LedgerSMB::Template->new( user => \%myconfig, - template => $form->{'formname'} || $form->{'type'}, - format => uc $form->{format} ); - try { - $template->render($form); - $template->output(%{$form}); - } - catch Error::Simple with { - my $E = shift; - $form->error( $E->stacktrace ); - }; + return $printhash; } } } -- cgit v1.2.3