From 5c3a962f492011bebe096a5a4b007062152df2d7 Mon Sep 17 00:00:00 2001 From: tetragon Date: Wed, 4 Apr 2007 02:35:26 +0000 Subject: First round of template changes for new TT system git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@1023 4979c152-3d1c-0410-bac9-87ea11338e46 --- Build.PL | 2 + LedgerSMB.pm | 2 +- LedgerSMB/Form.pm | 3 +- LedgerSMB/Template.pm | 87 +++++++++++++++++++++ LedgerSMB/Template/HTML.pm | 57 ++++++++++++++ bin/arapprn.pl | 27 +++++++ bin/cp.pl | 14 ++++ bin/io.pl | 19 ++++- bin/jc.pl | 15 ++++ bin/pos.pl | 15 ++++ bin/rp.pl | 38 +++++++++ menu.pl | 1 + templates/demo/ap_transaction.html | 105 ++++++++++++------------- templates/demo/ar_transaction.html | 124 ++++++++++++++--------------- templates/demo/balance_sheet.html | 37 +++++---- templates/demo/bin_list.html | 93 +++++++++++----------- templates/demo/income_statement.html | 30 +++---- templates/demo/invoice.html | 142 +++++++++++++++++----------------- templates/demo/packing_list.html | 67 ++++++++-------- templates/demo/pick_list.html | 51 ++++++------ templates/demo/purchase_order.html | 108 +++++++++++++------------- templates/demo/request_quotation.html | 69 +++++++++-------- templates/demo/sales_order.html | 104 ++++++++++++------------- templates/demo/sales_quotation.html | 76 +++++++++--------- templates/demo/statement.html | 47 +++++------ templates/demo/timecard.html | 6 +- templates/demo/work_order.html | 81 +++++++++---------- 27 files changed, 851 insertions(+), 569 deletions(-) create mode 100755 LedgerSMB/Template.pm create mode 100755 LedgerSMB/Template/HTML.pm diff --git a/Build.PL b/Build.PL index 2e237ec5..fece985b 100644 --- a/Build.PL +++ b/Build.PL @@ -26,6 +26,8 @@ my $build = Module::Build->new ( 'Cwd' => 0, 'Config::Std' => 0, 'MIME::Lite' => 0, + 'Error' => 0, + 'Template' => 0, }, recommends => { 'HTML::LinkExtor' => 0, diff --git a/LedgerSMB.pm b/LedgerSMB.pm index 8e55b933..e938a660 100755 --- a/LedgerSMB.pm +++ b/LedgerSMB.pm @@ -136,7 +136,7 @@ sub new { } - if (($self->{script} =~ m#(..|\\|/)#)){ + if (($self->{script} =~ m#(\.\.|\\|/)#)){ $self->error("Access Denied"); } diff --git a/LedgerSMB/Form.pm b/LedgerSMB/Form.pm index 0cf52871..e799753f 100644 --- a/LedgerSMB/Form.pm +++ b/LedgerSMB/Form.pm @@ -88,7 +88,7 @@ sub new { } - if (($self->{script} =~ m#(..|\\|/)#)){ + if (($self->{script} =~ m#(\.\.|\\|/)#)){ $self->error("Access Denied"); } @@ -601,6 +601,7 @@ sub parse_template { my ($chars_per_line, $lines_on_first_page, $lines_on_second_page) = (0, 0, 0); my ($current_page, $current_line) = (1, 1); + print STDERR "Using deprecated Form::parse_template function\n"; my $pagebreak = ""; my $sum = 0; diff --git a/LedgerSMB/Template.pm b/LedgerSMB/Template.pm new file mode 100755 index 00000000..2c1a9d8f --- /dev/null +++ b/LedgerSMB/Template.pm @@ -0,0 +1,87 @@ +#===================================================================== +# +# Template support module for LedgerSMB +# LedgerSMB::Template +# +# LedgerSMB +# Small Medium Business Accounting software +# http://www.ledgersmb.org/ +# +# +# Copyright (C) 2007 +# This work contains copyrighted information from a number of sources all used +# with permission. It is released under the GNU General Public License +# Version 2 or, at your option, any later version. See COPYRIGHT file for +# details. +# +# +#====================================================================== +# This package contains template related functions: +# +# +#==================================================================== +use Error qw(:try); +use Template; +use LedgerSMB::Sysconfig; + +package LedgerSMB::Template; + +sub new { + my $class = shift; + my $self = {}; + $self->{myconfig} = shift; + $self->{template} = shift; + $self->{format} = shift; + $self->{language} = shift; + $self->{output} = ''; + bless $self, $class; + return $self; +} + +sub valid_language { + my $self = shift; + # XXX Actually perform validity checks + return 1; +} + +sub render { + my $self = shift; + my $vars = shift; + my $template; + + if (not defined $self->{language}) { + $template = Template->new({ + INCLUDE_PATH => $self->{'myconfig'}->{'templates'}, + START_TAG => quotemeta(' quotemeta('?>'), + DELIMITER => ';', + }) || throw Error::Simple Template->error(); + } elsif ($self->valid_language()) { + $template = Template->new({ + INCLUDE_PATH => "$self->{'myconfig'}->{'templates'}/$self->{language};$self->{'myconfig'}->{'templates'}", + START_TAG => quotemeta(' quotemeta('?>'), + DELIMITER => ';', + }) || throw Error::Simple Template->error(); + } else { + throw Error::Simple 'Invalid language'; + } + + eval "require LedgerSMB::Template::$self->{format}"; + if ($@) { + throw Error::Simple $@; + } + + my $cleanvars = &{"LedgerSMB::Template::$self->{format}::preprocess"}($vars); + if (not $template->process( + &{"LedgerSMB::Template::$self->{format}::get_template"}($self->{template}), + $cleanvars, \$self->{output}, binmode => ':utf8')) { + throw Error::Simple $template->error(); + } + + &{"LedgerSMB::Template::$self->{format}::postprocess"}($self); + + return $self->{output}; +} + +1; diff --git a/LedgerSMB/Template/HTML.pm b/LedgerSMB/Template/HTML.pm new file mode 100755 index 00000000..8e610e26 --- /dev/null +++ b/LedgerSMB/Template/HTML.pm @@ -0,0 +1,57 @@ +=head1 NAME + +LedgerSMB::Template::HTML Template support module for LedgerSMB + +=head1 METHODS + +=item get_template () + +=item preprocess ($vars) +This method returns a reference to a hash that contains a copy of the passed +hashref's data with HTML entities converted to escapes. + +=item postprocess () + +=head1 Copyright (C) 2007, The LedgerSMB core team. + +# This work contains copyrighted information from a number of sources all used +# with permission. +# +# It is released under the GNU General Public License Version 2 or, at your +# option, any later version. See COPYRIGHT file for details. For a full list +# including contact information of contributors, maintainers, and copyright +# holders, see the CONTRIBUTORS file. +=cut + +use Error qw(:try); +use CGI; + +package LedgerSMB::Template::HTML; + +sub get_template { + my $name = shift; + return "${name}.html"; +} + +sub preprocess { + my $rawvars = shift; + my $vars; + my $type = ref $rawvars; + +#XXX fix escaping function + if ($type eq 'ARRAY') { + } elsif ($type eq 'HASH') { + for (keys %{$rawvars}) { + $vars->{$_} = preprocess($rawvars[$_]); + } + } else { + return CGI::escapeHTML($rawvars); + } +} + +sub postprocess { + my $parent = shift; + return; +} + +1; diff --git a/bin/arapprn.pl b/bin/arapprn.pl index 5eb138d9..9cd91e02 100644 --- a/bin/arapprn.pl +++ b/bin/arapprn.pl @@ -39,6 +39,9 @@ # printing routines for ar, ap # +use Error qw(:try); +use LedgerSMB::Template; + # any custom scripts for this one if (-f "bin/custom/arapprn.pl") { eval { require "bin/custom/arapprn.pl"; }; @@ -258,6 +261,18 @@ sub print_check { $form->{fileid} = $invnumber; $form->{fileid} =~ s/(\s|\W)+//g; + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig); if ($form->{previousform}) { @@ -476,6 +491,18 @@ sub print_transaction { $form->{fileid} = $form->{invnumber}; $form->{fileid} =~ s/(\s|\W)+//g; + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig); if (%$old_form) { diff --git a/bin/cp.pl b/bin/cp.pl index 95a19254..8665fb29 100644 --- a/bin/cp.pl +++ b/bin/cp.pl @@ -45,7 +45,9 @@ # #====================================================================== +use Error qw(:try); +use LedgerSMB::Template; use LedgerSMB::CP; use LedgerSMB::OP; use LedgerSMB::IS; @@ -1277,6 +1279,18 @@ sub print_form { $form->{printmode} = '|-'; } + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); } diff --git a/bin/io.pl b/bin/io.pl index 46e30120..16e6f1c3 100644 --- a/bin/io.pl +++ b/bin/io.pl @@ -38,7 +38,10 @@ # ####################################################################### +use Error qw(:try); + use LedgerSMB::Tax; +use LedgerSMB::Template; use LedgerSMB::Sysconfig; # any custom scripts for this one @@ -1544,9 +1547,21 @@ sub print_form { $form->{fileid} = $form->{"${inv}number"}; $form->{fileid} =~ s/(\s|\W)+//g; - - $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); + + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } + $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); # if we got back here restore the previous form if (defined %$old_form) { diff --git a/bin/jc.pl b/bin/jc.pl index 6af0f84a..18153885 100644 --- a/bin/jc.pl +++ b/bin/jc.pl @@ -39,6 +39,9 @@ # #====================================================================== +use Error qw(:try); + +use LedgerSMB::Template; use LedgerSMB::JC; 1; @@ -1913,6 +1916,18 @@ sub print_timecard { $status{audittrail} .= $form->audittrail("", \%myconfig, \%audittrail); } + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); if (defined %$old_form) { diff --git a/bin/pos.pl b/bin/pos.pl index 692fdfc1..939ab0e0 100644 --- a/bin/pos.pl +++ b/bin/pos.pl @@ -40,6 +40,9 @@ # #===================================================================== +use Error qw(:try); + +use LedgerSMB::Template; use LedgerSMB::Tax; 1; @@ -872,6 +875,18 @@ sub print_form { delete $form->{stylesheet}; $form->{cd_open} = $pos_config{rp_cash_drawer_open}; + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); if ($form->{printed} !~ /$form->{formname}/) { diff --git a/bin/rp.pl b/bin/rp.pl index bea42005..26f55dcf 100644 --- a/bin/rp.pl +++ b/bin/rp.pl @@ -41,9 +41,11 @@ # #====================================================================== +use Error qw(:try); require "bin/arap.pl"; +use LedgerSMB::Template; use LedgerSMB::PE; use LedgerSMB::RP; @@ -993,6 +995,18 @@ sub generate_income_statement { $form->{IN} = "income_statement.html"; + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template; } @@ -1027,6 +1041,18 @@ sub generate_balance_sheet { $form->{templates} = $myconfig{templates}; + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template; } @@ -2022,6 +2048,18 @@ sub print_form { for ("c0", "c30", "c60", "c90", "") { $form->{"${_}total"} = $form->format_amount(\%myconfig, $form->{"${_}total"}, 2) } + if (($form->{'media'} eq 'screen') and ($form->{'format'} eq 'html')) { + my $template = LedgerSMB::Template->new(\%myconfig, $form->{'formname'}, 'HTML'); + try { + $template->render($form); + $form->header; + print $template->{'output'}; + exit; + } catch Error::Simple with { + my $E = shift; + $form->error($E->stacktrace); + }; + } $form->parse_template(\%myconfig, ${LedgerSMB::Sysconfig::userspath}); } diff --git a/menu.pl b/menu.pl index bf32547b..4a8cacbe 100755 --- a/menu.pl +++ b/menu.pl @@ -48,6 +48,7 @@ use LedgerSMB::Sysconfig; use Digest::MD5; +use Error qw(:try); $| = 1; diff --git a/templates/demo/ap_transaction.html b/templates/demo/ap_transaction.html index 153b208f..74d269c7 100644 --- a/templates/demo/ap_transaction.html +++ b/templates/demo/ap_transaction.html @@ -3,7 +3,7 @@ - + @@ -21,39 +21,39 @@ - + - - + + - + @@ -100,48 +100,48 @@ @@ -162,7 +162,7 @@ - + @@ -188,30 +188,31 @@ - + - + + - - - - - + + + + + - + - +
 

- +
- +
- + , - + - +
- +
- +

- + - +
Tel: - + - +
Fax: - + - +
- + - +

Taxnumber: - +

@@ -70,18 +70,18 @@ Due
PO #  
Order #  
Employee   - + + - - + + - + - + - + - + - + - - - + - + - + + - + - + - + - + - +
Total Subtotal
@ % @ %
Total
 Memo Amount
- + - +   @@ -219,7 +220,7 @@ Taxes shown are included in price. - + diff --git a/templates/demo/ar_transaction.html b/templates/demo/ar_transaction.html index b9ecd757..79457370 100644 --- a/templates/demo/ar_transaction.html +++ b/templates/demo/ar_transaction.html @@ -3,7 +3,7 @@ - + @@ -21,39 +21,39 @@ - + - - + + - + @@ -100,48 +100,48 @@ @@ -162,7 +162,7 @@ - + @@ -187,37 +187,39 @@ - + - + + - - - - + + + + - + - +
 

- +
- +
- + , - + - +
- +
- +

- + - +
Tel: - + - +
Fax: - + - +
- + - +
Taxnumber: - +
@@ -70,18 +70,18 @@ Due
PO #  
Order #  
Salesperson   - + + - - - - - - - - + + + + + + + + - + - + - + - - - + - + - + - + + - - - + + + - + - + - + - +
      
Total   Subtotal  
@ %  @ % 
Total  
 Source Amount
- + - + +   - Registration + Registration - + - +   @@ -225,7 +227,7 @@ Taxes shown are included in price. - + diff --git a/templates/demo/balance_sheet.html b/templates/demo/balance_sheet.html index 2ce532f8..e81aad0c 100644 --- a/templates/demo/balance_sheet.html +++ b/templates/demo/balance_sheet.html @@ -9,9 +9,9 @@
as at - +

Department:

- + @@ -20,14 +20,15 @@ - + + - - - + + + - + @@ -45,14 +46,15 @@ - + + - - - + + + - + @@ -71,14 +73,15 @@ - + + - - - + + + - + diff --git a/templates/demo/bin_list.html b/templates/demo/bin_list.html index 3a14e7d9..d9400d45 100644 --- a/templates/demo/bin_list.html +++ b/templates/demo/bin_list.html @@ -3,7 +3,7 @@
LIABILITIES
SHAREHOLDER'S EQUITY

- + @@ -26,63 +26,63 @@
 

- +
- +
- + , - + - + - +
- +
Attn: - + - +
Tel: - + - +
Fax: - + - +
- +

- +
- +
- + , - + - + - +
- +
Attn: - + - +
Tel: - + - +
Fax: - +
@@ -100,9 +100,9 @@ Order # Date Contact - + Warehouse - + Shipping Point Ship via @@ -110,19 +110,17 @@   - + - - - + - +   - + - +     @@ -148,19 +146,20 @@ Bin - + + - - - - - - - - - + + + + + + + + + - + diff --git a/templates/demo/income_statement.html b/templates/demo/income_statement.html index 14b01219..7618733c 100644 --- a/templates/demo/income_statement.html +++ b/templates/demo/income_statement.html @@ -9,13 +9,13 @@
- +

Department:

- + - +

Project Number:

- + @@ -24,14 +24,15 @@ - + + - - - + + + - + @@ -50,14 +51,15 @@ - + + - - - + + + - + diff --git a/templates/demo/invoice.html b/templates/demo/invoice.html index 90b43c88..3b2a08dc 100644 --- a/templates/demo/invoice.html +++ b/templates/demo/invoice.html @@ -3,7 +3,7 @@
EXPENSES

- + @@ -26,68 +26,68 @@
 

- +
- +
- + , - + - +
- +
- +

- + - +
Tel: - + - +
Fax: - + - +
- +

- +
- +
- + , - + - +
- +
- +

- + - +
Tel: - + - +
Fax: - + - +
- +
@@ -141,62 +141,62 @@ Extended - + + - . - - - - - - - - + . + + + + + + + + - +
- + Total - - - + Subtotal - + - + + - on @ % - + on @ % + - + - + Paid - - +  
- +   Balance Due - + @@ -209,9 +209,9 @@ - + - + @@ -223,7 +223,7 @@ - + @@ -246,22 +246,23 @@ - + - + + - - - - + + + + - + - +
***** /100
 Source Amount
- + @@ -293,15 +294,16 @@ - + +   - Registration + Registration - + - +   @@ -309,7 +311,7 @@ Taxes shown are included in price. - + diff --git a/templates/demo/packing_list.html b/templates/demo/packing_list.html index 10c03410..2af7f721 100644 --- a/templates/demo/packing_list.html +++ b/templates/demo/packing_list.html @@ -3,7 +3,7 @@ - + @@ -26,31 +26,31 @@ @@ -71,9 +71,9 @@ - + - + @@ -82,19 +82,17 @@ - + - - - + - + - + - + @@ -119,18 +117,19 @@ - + + - - - - - - - - + + + + + + + + - +
 

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +
Order # Date Contact Warehouse Shipping Point Ship via
            
@@ -142,7 +141,7 @@
- +   @@ -155,7 +154,7 @@ - +   diff --git a/templates/demo/pick_list.html b/templates/demo/pick_list.html index c71dd76d..bab639b7 100644 --- a/templates/demo/pick_list.html +++ b/templates/demo/pick_list.html @@ -3,7 +3,7 @@ - + @@ -26,31 +26,31 @@ @@ -79,13 +79,11 @@ - + - - - + - + @@ -111,17 +109,18 @@ - + + - - - + + + + - - + + - +
 

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +
       Bin
- [      ]
diff --git a/templates/demo/purchase_order.html b/templates/demo/purchase_order.html index cc8ea763..228c0fe5 100644 --- a/templates/demo/purchase_order.html +++ b/templates/demo/purchase_order.html @@ -3,7 +3,7 @@ - + @@ -26,58 +26,58 @@
 

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +
@@ -126,83 +126,83 @@ Amount - + + - . - - - - - - - + . + + + + + + + - +
- + Total - - - + Subtotal - + - + + - on @ % - + on @ % + - +  
- + Total - + - + Terms Net days Total - + - + Tax included - +   - + All prices in Funds - + - +   @@ -216,7 +216,7 @@ - +   diff --git a/templates/demo/request_quotation.html b/templates/demo/request_quotation.html index ad9b0ab2..827fdf1a 100644 --- a/templates/demo/request_quotation.html +++ b/templates/demo/request_quotation.html @@ -3,7 +3,7 @@ - + @@ -26,58 +26,58 @@
 

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - +
@@ -138,15 +138,16 @@ Extended - + + - . - - - - + . + + + + - +
@@ -156,7 +157,7 @@ - +   @@ -170,7 +171,7 @@ - + diff --git a/templates/demo/sales_order.html b/templates/demo/sales_order.html index d238b339..03d657db 100644 --- a/templates/demo/sales_order.html +++ b/templates/demo/sales_order.html @@ -3,7 +3,7 @@ - + @@ -26,58 +26,58 @@
 

- +
- +
- + , - + - +
- +
- +
Attn: - - + +
Tel: - - + +
Fax: - - + +
- +

- +
- +
- + , - + - +
- +
- +
- - + +
Tel: - - + +
Fax: - - + +
- +
@@ -128,41 +128,41 @@ Amount - + + - . - - - - - - - + . + + + + + + + - +
- + Total - - - + Subtotal - + - + + - on @ % - + on @ % + - +   @@ -172,9 +172,9 @@ ***** /100 - +
Terms Net days - + Total @@ -194,10 +194,10 @@ - + - + diff --git a/templates/demo/sales_quotation.html b/templates/demo/sales_quotation.html index 7e4ac121..64fc8720 100644 --- a/templates/demo/sales_quotation.html +++ b/templates/demo/sales_quotation.html @@ -3,7 +3,7 @@
Notes All prices in Funds
- + @@ -22,34 +22,34 @@ @@ -99,41 +99,41 @@ - + + - - - - - - - - + + + + + + + + - + - + - - - + - + - + + - - + + - + @@ -142,9 +142,9 @@ @@ -164,10 +164,10 @@ - + + - - - - - - - - + + + + + + + + - + diff --git a/templates/demo/timecard.html b/templates/demo/timecard.html index e6bb05ab..af49fb87 100644 --- a/templates/demo/timecard.html +++ b/templates/demo/timecard.html @@ -2,7 +2,7 @@
 

- +
- +
- + , - + - +
- +
- +
Attn: - + - +
Tel: - + - +
Fax: - + - +
- +
Amount

Total Subtotal
on @ % on @ %
 
  - + Terms Net days - + Total - + - + diff --git a/templates/demo/statement.html b/templates/demo/statement.html index 6635f605..6bdee5d1 100644 --- a/templates/demo/statement.html +++ b/templates/demo/statement.html @@ -3,7 +3,7 @@
Notes All prices in Funds
- + @@ -26,27 +26,27 @@
 

- +
- +
- + , - + - +
- +
- +
Tel: - - + +
Fax: - - + +
- +
@@ -71,18 +71,19 @@
90

- + @@ -105,7 +105,7 @@ - + @@ -115,7 +115,7 @@ - +
 
diff --git a/templates/demo/work_order.html b/templates/demo/work_order.html index b0f359da..6fb884f0 100644 --- a/templates/demo/work_order.html +++ b/templates/demo/work_order.html @@ -3,7 +3,7 @@ - + @@ -26,58 +26,58 @@
 

- +
- +
- + , - + - +
- +
- +
Attn: - - + +
Tel: - - + +
Fax: - - + +
- +

- +
- +
- + , - + - +
- +
- +
- - + +
Tel: - - + +
Fax: - - + +
- +
@@ -127,17 +127,18 @@ Serial # - + + - . - - - - - - + . + + + + + + - +
@@ -150,9 +151,9 @@   - + - + -- cgit v1.2.3