Benutzerdef. Var. als HTML-Feld: Druckunterstützung
authorMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Nov 2021 14:53:41 +0000 (15:53 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Nov 2021 15:07:50 +0000 (16:07 +0100)
SL/BackgroundJob/CreatePeriodicInvoices.pm
SL/Controller/Order.pm
SL/DN.pm
SL/Form.pm
templates/print/marei/requirement_spec.tex

index 58f1feb..f411353 100644 (file)
@@ -451,6 +451,7 @@ sub _email_invoice {
       longdescription => 'html',
       partnotes       => 'html',
       notes           => 'html',
+      $::form->get_variable_content_types_for_cvars,
     },
   );
 
index 4cf9f61..b030d83 100644 (file)
@@ -2118,6 +2118,7 @@ sub generate_pdf {
           longdescription => 'html',
           partnotes       => 'html',
           notes           => 'html',
+          $::form->get_variable_content_types_for_cvars,
         },
       );
       1;
index 8224172..b3c4d89 100644 (file)
--- a/SL/DN.pm
+++ b/SL/DN.pm
@@ -1217,6 +1217,7 @@ sub print_original_invoice {
                      longdescription => 'html',
                      partnotes       => 'html',
                      notes           => 'html',
+                     $print_form->get_variable_content_types_for_cvars,
                    },
   );
 
index e6cb332..52d222b 100644 (file)
@@ -61,6 +61,7 @@ use SL::DBConnect;
 use SL::DBUtils;
 use SL::DB::AdditionalBillingAddress;
 use SL::DB::Customer;
+use SL::DB::CustomVariableConfig;
 use SL::DB::Default;
 use SL::DB::PaymentTerm;
 use SL::DB::Vendor;
@@ -2713,6 +2714,8 @@ sub lastname_used {
 }
 
 sub get_variable_content_types {
+  my ($self) = @_;
+
   my %html_variables = (
     longdescription  => 'html',
     partnotes        => 'html',
@@ -2725,7 +2728,34 @@ sub get_variable_content_types {
     header_text      => 'html',
     footer_text      => 'html',
   );
-  return \%html_variables;
+
+  return {
+    %html_variables,
+    $self->get_variable_content_types_for_cvars,
+  };
+}
+
+sub get_variable_content_types_for_cvars {
+  my ($self)       = @_;
+  my $html_configs = SL::DB::Manager::CustomVariableConfig->get_all(where => [ type => 'htmlfield' ]);
+  my %types;
+
+  if (@{ $html_configs }) {
+    my %prefix_by_module = (
+      Contacts => 'cp_cvar_',
+      CT       => 'vc_cvar_',
+      IC       => 'ic_cvar_',
+      Projects => 'project_cvar_',
+      ShipTo   => 'shiptocvar_',
+    );
+
+    foreach my $cfg (@{ $html_configs }) {
+      my $prefix = $prefix_by_module{$cfg->module};
+      $types{$prefix . $cfg->name} = 'html' if $prefix;
+    }
+  }
+
+  return %types;
 }
 
 sub current_date {
index d8fb2e5..bd08dc6 100644 (file)
@@ -59,6 +59,23 @@ $( KiviLatex.required_packages_for_html )$
 
 %\tableofcontents
 
+%%%% Deaktiviertes Beispiel, wie benutzerdefinierte Variablen ausgegeben werden können: %%%%
+%% \newpage
+%%
+%% \section{Benutzerdefinierte Variablen}
+%%
+%% %$ ( FOREACH cvar = rspec.cvars_by_config ) $
+%% Name: $ ( KiviLatex.filter(cvar.config.name) ) $
+%%
+%% Wert:% $ ( IF cvar.config.type == 'htmlfield' ) $
+%% $ ( KiviLatex.filter_html(cvar.value_as_text) ) $
+%% % $ ( ELSE ) $
+%% $ ( KiviLatex.filter(cvar.value_as_text) ) $
+%% % $ ( END ) $
+%%
+%% %$ ( END ) $
+%%%% ENDE Beispiel für benutzerdefinierte Variablen %%%%
+
 %% Versionen
 \newpage