[freeside-commits] freeside/FS/FS Conf.pm, 1.222, 1.223 cust_bill.pm, 1.190, 1.191

Ivan,,, ivan at wavetail.420.am
Sat Mar 29 18:26:15 PDT 2008


Update of /home/cvs/cvsroot/freeside/FS/FS
In directory wavetail.420.am:/tmp/cvs-serv13740

Modified Files:
	Conf.pm cust_bill.pm 
Log Message:
fix missing backslash preventing ancient invoice template includes from working, whew!  and spiffied up the error reporting on template compile problems, since they're bound to happen when folks edit

Index: Conf.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/Conf.pm,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -d -r1.222 -r1.223
--- Conf.pm	30 Mar 2008 00:57:09 -0000	1.222
+++ Conf.pm	30 Mar 2008 01:26:13 -0000	1.223
@@ -175,11 +175,12 @@
 =item key_orbase KEY SUFFIX
 
 If the config value KEY_SUFFIX exists, returns KEY_SUFFIX, otherwise returns
-KEY.  Useful for which exact configuration option is returned by config_orbase.
+KEY.  Useful for determining which exact configuration option is returned by
+config_orbase.
 
 =cut
 
-sub configkey_orbase {
+sub key_orbase {
   my $self = shift;
   #no compat for this...return $self->_usecompat('config_orbase', @_) if use_confcompat;
 

Index: cust_bill.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_bill.pm,v
retrieving revision 1.190
retrieving revision 1.191
diff -u -d -r1.190 -r1.191
--- cust_bill.pm	15 Mar 2008 19:52:58 -0000	1.190
+++ cust_bill.pm	30 Mar 2008 01:26:13 -0000	1.191
@@ -1635,7 +1635,7 @@
   $templatefile .= "_$template"
     if length($template);
   my @invoice_template = map "$_\n", $conf->config($templatefile)
-    or die "cannot load config file $templatefile";
+    or die "cannot load config data $templatefile";
 
   my $old_latex = '';
   if ( $format eq 'latex' && grep { /^%%Detail/ } @invoice_template ) {
@@ -1653,7 +1653,7 @@
   );
 
   $text_template->compile()
-    or die 'While compiling ' . $templatefile . ': ' . $Text::Template::ERROR;
+    or die "Can't compile $templatefile: $Text::Template::ERROR\n";
 
 
   # additional substitution could possibly cause breakage in existing templates
@@ -1863,33 +1863,38 @@
   #do variable substitution in notes, footer, smallfooter
   foreach my $include (qw( notes footer smallfooter )) {
 
-    my @inc_src = $conf->config_orbase("invoice_latex$include", $template );
-    my $convert_map = $convert_maps{$format}{$include};
+    my $inc_file = $conf->key_orbase("invoice_${format}$include", $template);
+    my @inc_src;
+
+    if ( $conf->exists($inc_file) && length( $conf->config($inc_file) ) ) {
+
+      @inc_src = $conf->config($inc_file);
 
-    if (
-           defined( $conf->config_orbase("invoice_${format}$include", $template) )
-        && length(  $conf->config_orbase('invoice_${format}$include', $template) )
-    ) {
-      @inc_src = $conf->config_orbase("invoice_${format}$include", $template );
     } else {
-      @inc_src =
-        map { s/\[@--/$delimiters{$format}[0]/g;
-              s/--@]/$delimiters{$format}[1]/g;
-              $_;
-            } 
-        &$convert_map(
-                       $conf->config_orbase("invoice_latex$include", $template )
-                     );
+
+      $inc_file = $conf->key_orbase("invoice_latex$include", $template);
+
+      my $convert_map = $convert_maps{$format}{$include};
+
+      @inc_src = map { s/\[@--/$delimiters{$format}[0]/g;
+                       s/--@\]/$delimiters{$format}[1]/g;
+                       $_;
+                     } 
+                 &$convert_map( $conf->config($inc_file) );
+
     }
 
     my $inc_tt = new Text::Template (
       TYPE       => 'ARRAY',
       SOURCE     => [ map "$_\n", @inc_src ],
       DELIMITERS => $delimiters{$format},
-    ) or die "can't create new Text::Template object: $Text::Template::ERROR";
+    ) or die "Can't create new Text::Template object: $Text::Template::ERROR";
 
-    $inc_tt->compile()
-      or die "can't compile template: $Text::Template::ERROR";
+    unless ( $inc_tt->compile() ) {
+      my $error = "Can't compile $inc_file template: $Text::Template::ERROR\n";
+      warn $error. "Template:\n". join('', map "$_\n", @inc_src);
+      die $error;
+    }
 
     $invoice_data{$include} = $inc_tt->fill_in( HASH => \%invoice_data );
 



More information about the freeside-commits mailing list