my $worker = $self->create_worker($file);
$worker->run;
+
+ $self->num_imported(0);
$worker->save_objects if !$params{test};
$self->num_importable(scalar grep { !$_ } map { scalar @{ $_->{errors} } } @{ $self->data || [] });
my ($caller_package, %params) = @_;
my @module_filter = $params{module} ?
- ("config.module" => $params{module}) :
+ ("config_id" => [ \"(SELECT custom_variable_configs.id FROM custom_variable_configs WHERE custom_variable_configs.module = '$params{module}')" ]) :
();
$caller_package->meta->add_relationships(
type => 'one to many',
class => 'SL::DB::CustomVariable',
column_map => { ($params{id} || 'id') => 'trans_id' },
- manager_args => { with_objects => 'config' },
query_args => [ sub_module => $params{sub_module}, @module_filter ],
}
);
while ($text =~ /$self->{substitute_vars_re}/) {
my ($tag_pos, $tag_len) = ($-[0], $+[0] - $-[0]);
- my ($var, @options) = split(/\s+/, $1);
+ my ($var, @option_list) = split(/\s+/, $1);
+ my %options = map { ($_ => 1) } @option_list;
my $value = $self->_get_loop_variable($var, 0, @indices);
- $value = $self->format_string($value) unless (grep(/^NOESCAPE$/, @options));
+ $value = $form->parse_amount({ numberformat => $::myconfig{output_numberformat} || $::myconfig{numberformat} }, $value) if $options{NOFORMAT};
+ $value = $self->format_string($value) unless $options{NOESCAPE};
substr($text, $tag_pos, $tag_len, $value);
}
$output_longdates = 1;
}
+ # Store the output number format so that the template modules know
+ # how to parse the amounts back if requested.
+ $myconfig{output_numberformat} = $output_numberformat || $myconfig{numberformat};
+
($form->{employee}) = split /--/, $form->{employee};
# create the form variables
<li><a href="dokumentenvorlagen-und-variablen.html#zuordnung_dateinamen">
Zuordnung von Dateinamen zu den Funktionen</a></li>
+ <li><a href="#variablen_ausgeben">Variablen ausgeben</a>
+ </li>
+
<li><a href="dokumentenvorlagen-und-variablen.html#tag_style">
Anfang und Ende der Tags verändern</a></li>
zum Inhaltsverzeichnis</a></small><br>
<hr>
+ <h2><a name="variablen_ausgeben">Variablen ausgeben</a></h2>
+
+ <p>Um eine Variable auszugeben, müssen sie einfach nur zwischen die
+ Tags geschrieben werden, also
+ z.B. <code><%variablenname%></code>.</p>
+
+ <p>
+ Optional kann man auch mit Leerzeichen getrennte Flags angeben, die
+ man aber nur selten brauchen wird. Die Syntax sieht also so
+ aus: <code><%variablenname FLAG1 FLAG2%></code>. Momentan werden
+ die folgenden Flags unterstützt:
+ </p>
+
+ <ul>
+ <li>
+ <code>NOFORMAT</code> gilt nur für Zahlenwerte und gibt den Wert
+ ohne Formatierung, also ohne Tausendertrennzeichen mit mit einem
+ Punkt als Dezimaltrennzeichen aus. Nützlich z.B., wenn damit in der
+ Vorlage z.B. von LaTeX gerechnet werden soll.
+ </li>
+
+ <li>
+ <code>NOESCAPE</code> unterdrückt das Escapen von Sonderzeichen für
+ die Vorlagensprache. Wenn also in einer Variablen bereits gültiger
+ LaTeX-Code steht und dieser von LaTeX auch ausgewertet und nicht
+ wortwörtlich angezeigt werden soll, so ist dieses Flag sinnvoll.
+ </li>
+ </ul>
+
+ <p>
+ Beispiel: <code class="blue"><%quototal NOFORMAT%></code>
+ </p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+ zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
<h2><a name="tag_style">
Anfang und Ende der Tags verändern</a></h2>
<th>[%- LxERP.t8('Error') %]</th>
</tr>
[% FOREACH err = SELF.errors %]
- <tr>
+ <tr class="listrow[% loop.count % 2 %]">
<td>[% err.4 %]:[% err.3 %]</td>
<td>[% err.0 %]</td>
<td>[% err.2 %]</td>
<td><input name="select_item_id" class="radio" type="radio" value="[% HTML.escape(item.id) %]"[% IF loop.first %] checked[% END %]></td>
<td>[% HTML.escape(item.partnumber) %]</td>
<td>[% HTML.escape(item.description) %]</td>
+ <td align="right">[% LxERP.format_amount(item.display_sellprice, 2) %]</td>
[%- IF IS_PURCHASE %]
<td align="right">[% LxERP.format_amount(item.rop, '') %]</td>
[%- END %]
- <td align="right">[% LxERP.format_amount(item.display_sellprice, 2) %]</td>
<td align="right">[% LxERP.format_amount(item.onhand, '') %]</td>
<td>[% HTML.escape(item.unit) %]</td>
</tr>