Revision 8688e71e
Von Moritz Bunkus vor etwa 17 Jahren hinzugefügt
SL/CT.pm | ||
---|---|---|
#======================================================================
|
||
|
||
package CT;
|
||
|
||
use Data::Dumper;
|
||
|
||
use SL::CVar;
|
||
use SL::DBUtils;
|
||
|
||
sub get_tuple {
|
||
... | ... | |
# add shipto
|
||
$form->add_shipto( $dbh, $form->{id}, "CT" );
|
||
|
||
CVar->save_custom_variables('dbh' => $dbh,
|
||
'module' => 'CT',
|
||
'trans_id' => $form->{id},
|
||
'variables' => $form);
|
||
|
||
$rc = $dbh->commit();
|
||
$dbh->disconnect();
|
||
|
||
... | ... | |
# add shipto
|
||
$form->add_shipto( $dbh, $form->{id}, "CT" );
|
||
|
||
CVar->save_custom_variables('dbh' => $dbh,
|
||
'module' => 'CT',
|
||
'trans_id' => $form->{id},
|
||
'variables' => $form);
|
||
|
||
$rc = $dbh->commit();
|
||
$dbh->disconnect();
|
||
|
||
... | ... | |
push(@values, conv_i($form->{business_id}));
|
||
}
|
||
|
||
my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'CT',
|
||
'trans_id_field' => 'ct.id',
|
||
'filter' => $form);
|
||
|
||
if ($cvar_where) {
|
||
$where .= qq| AND ($cvar_where)|;
|
||
push @values, @cvar_values;
|
||
}
|
||
|
||
my $query =
|
||
qq|SELECT ct.*, b.description AS business | .
|
||
qq|FROM $cv ct | .
|
SL/CVar.pm | ||
---|---|---|
package CVar;
|
||
|
||
use List::Util qw(first);
|
||
|
||
use SL::DBUtils;
|
||
|
||
sub get_configs {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my ($where, @values);
|
||
if ($params{module}) {
|
||
$where = 'WHERE module = ?';
|
||
push @values, $params{module};
|
||
}
|
||
|
||
my $query = qq|SELECT * FROM custom_variable_configs $where ORDER BY sortkey|;
|
||
|
||
my $configs = selectall_hashref_query($form, $dbh, $query, @values);
|
||
|
||
foreach my $config (@{ $configs }) {
|
||
if ($config->{type} eq 'select') {
|
||
$config->{OPTIONS} = [ map { { 'value' => $_ } } split(m/\#\#/, $config->{options}) ];
|
||
|
||
} elsif ($config->{type} eq 'number') {
|
||
$config->{precision} = $1 if ($config->{options} =~ m/precision=(\d+)/i);
|
||
|
||
}
|
||
}
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return $configs;
|
||
}
|
||
|
||
sub get_config {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(id));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $query = qq|SELECT * FROM custom_variable_configs WHERE id = ?|;
|
||
|
||
my $config = selectfirst_hashref_query($form, $dbh, $query, conv_i($params{id})) || { };
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return $config;
|
||
}
|
||
|
||
sub save_config {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module config));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $q_id = qq|SELECT nextval('custom_variable_configs_id')|;
|
||
my $h_id = prepare_query($form, $dbh, $q_id);
|
||
|
||
my $q_new =
|
||
qq|INSERT INTO custom_variable_configs (name, description, type, default_value, options, searchable, includeable, included_by_default, module, id, sortkey)
|
||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
|
||
(SELECT COALESCE(MAX(sortkey) + 1, 1) FROM custom_variable_configs))|;
|
||
my $h_new = prepare_query($form, $dbh, $q_new);
|
||
|
||
my $q_update =
|
||
qq|UPDATE custom_variable_configs SET
|
||
name = ?, description = ?,
|
||
type = ?, default_value = ?,
|
||
options = ?, searchable = ?,
|
||
includeable = ?, included_by_default = ?,
|
||
module = ?
|
||
WHERE id = ?|;
|
||
my $h_update = prepare_query($form, $dbh, $q_update);
|
||
|
||
my @configs;
|
||
if ('ARRAY' eq ref $params{config}) {
|
||
@configs = @{ $params{config} };
|
||
} else {
|
||
@configs = ($params{config});
|
||
}
|
||
|
||
foreach my $config (@configs) {
|
||
my ($h_actual, $q_actual);
|
||
|
||
if (!$config->{id}) {
|
||
do_statement($form, $h_id, $q_id);
|
||
($config->{id}) = $h_id->fetchrow_array();
|
||
|
||
$h_actual = $h_new;
|
||
$q_actual = $q_new;
|
||
|
||
} else {
|
||
$h_actual = $h_update;
|
||
$q_actual = $q_update;
|
||
}
|
||
|
||
do_statement($form, $h_actual, $q_actual, @{$config}{qw(name description type default_value options)},
|
||
$config->{searchable} ? 't' : 'f', $config->{includeable} ? 't' : 'f', $config->{included_by_default} ? 't' : 'f',
|
||
$params{module}, conv_i($config->{id}));
|
||
}
|
||
|
||
$h_id->finish();
|
||
$h_new->finish();
|
||
$h_update->finish();
|
||
|
||
$dbh->commit();
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub delete_config {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(id));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
do_query($form, $dbh, qq|DELETE FROM custom_variables WHERE config_id = ?|, conv_i($params{id}));
|
||
do_query($form, $dbh, qq|DELETE FROM custom_variable_configs WHERE id = ?|, conv_i($params{id}));
|
||
|
||
$dbh->commit();
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub get_custom_variables {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $trans_id = $params{trans_id} ? 'OR (v.trans_id = ?) ' : '';
|
||
|
||
my $q_cfg =
|
||
qq|SELECT id, name, description, type, default_value, options,
|
||
date_trunc('seconds', localtimestamp) AS current_timestamp, current_date AS current_date
|
||
FROM custom_variable_configs
|
||
WHERE module = ?
|
||
ORDER BY sortkey|;
|
||
|
||
my $q_var =
|
||
qq|SELECT text_value, timestamp_value, timestamp_value::date AS date_value, number_value, bool_value
|
||
FROM custom_variables
|
||
WHERE (config_id = ?) AND (trans_id = ?)|;
|
||
my $h_var = prepare_query($form, $dbh, $q_var);
|
||
|
||
my $custom_variables = selectall_hashref_query($form, $dbh, $q_cfg, $params{module});
|
||
|
||
foreach my $cvar (@{ $custom_variables }) {
|
||
if ($cvar->{type} eq 'textfield') {
|
||
$cvar->{width} = 30;
|
||
$cvar->{height} = 5;
|
||
|
||
$cvar->{width} = $1 if ($cvar->{options} =~ m/width=(\d+)/i);
|
||
$cvar->{height} = $1 if ($cvar->{options} =~ m/height=(\d+)/i);
|
||
|
||
} elsif ($cvar->{type} eq 'text') {
|
||
$cvar->{maxlength} = $1 if ($cvar->{options} =~ m/maxlength=(\d+)/i);
|
||
|
||
} elsif ($cvar->{type} eq 'number') {
|
||
$cvar->{precision} = $1 if ($cvar->{options} =~ m/precision=(\d+)/i);
|
||
|
||
} elsif ($cvar->{type} eq 'select') {
|
||
$cvar->{OPTIONS} = [ map { { 'value' => $_ } } split(m/\#\#/, $cvar->{options}) ];
|
||
}
|
||
|
||
my $act_var;
|
||
if ($params{trans_id}) {
|
||
do_statement($form, $h_var, $q_var, conv_i($cvar->{id}), conv_i($params{trans_id}));
|
||
$act_var = $h_var->fetchrow_hashref();
|
||
}
|
||
|
||
if ($act_var) {
|
||
$cvar->{value} = $cvar->{type} eq 'date' ? $act_var->{date_value}
|
||
: $cvar->{type} eq 'timestamp' ? $act_var->{timestamp_value}
|
||
: $cvar->{type} eq 'number' ? $act_var->{number_value}
|
||
: $cvar->{type} eq 'bool' ? $act_var->{bool_value}
|
||
: $act_var->{text_value};
|
||
|
||
} else {
|
||
if ($cvar->{type} eq 'date') {
|
||
if ($cvar->{default_value} eq 'NOW') {
|
||
$cvar->{value} = $cvar->{current_date};
|
||
} else {
|
||
$cvar->{value} = $cvar->{default_value};
|
||
}
|
||
|
||
} elsif ($cvar->{type} eq 'timestamp') {
|
||
if ($cvar->{default_value} eq 'NOW') {
|
||
$cvar->{value} = $cvar->{current_timestamp};
|
||
} else {
|
||
$cvar->{value} = $cvar->{default_value};
|
||
}
|
||
|
||
} elsif ($cvar->{type} eq 'bool') {
|
||
$cvar->{value} = $cvar->{default_value} * 1;
|
||
|
||
} elsif ($cvar->{type} eq 'number') {
|
||
$cvar->{value} = $cvar->{default_value} * 1 if ($cvar->{default_value} ne '');
|
||
|
||
} else {
|
||
$cvar->{value} = $cvar->{default_value};
|
||
}
|
||
}
|
||
|
||
if ($cvar->{type} eq 'number') {
|
||
$cvar->{value} = $form->format_amount($myconfig, $cvar->{value} * 1, $cvar->{precision});
|
||
}
|
||
}
|
||
|
||
$h_var->finish();
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return $custom_variables;
|
||
}
|
||
|
||
sub save_custom_variables {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module trans_id variables));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my @configs = grep { $_->{module} eq $params{module} } @{ CVar->get_configs() };
|
||
|
||
my $query =
|
||
qq|DELETE FROM custom_variables
|
||
WHERE (trans_id = ?)
|
||
AND (config_id IN (SELECT DISTINCT id
|
||
FROM custom_variable_configs
|
||
WHERE module = ?))|;
|
||
do_query($form, $dbh, $query, conv_i($params{trans_id}), $params{module});
|
||
|
||
$query =
|
||
qq|INSERT INTO custom_variables (config_id, trans_id, bool_value, timestamp_value, text_value, number_value)
|
||
VALUES (?, ?, ?, ?, ?, ?)|;
|
||
my $sth = prepare_query($form, $dbh, $query);
|
||
|
||
foreach my $config (@configs) {
|
||
my @values = (conv_i($config->{id}), conv_i($params{trans_id}));
|
||
|
||
my $value = $params{variables}->{"cvar_$config->{name}"};
|
||
|
||
if (($config->{type} eq 'text') || ($config->{type} eq 'textfield') || ($config->{type} eq 'select')) {
|
||
push @values, undef, undef, $value, undef;
|
||
|
||
} elsif (($config->{type} eq 'date') || ($config->{type} eq 'timestamp')) {
|
||
push @values, undef, conv_date($value), undef, undef;
|
||
|
||
} elsif ($config->{type} eq 'number') {
|
||
push @values, undef, undef, undef, conv_i($form->parse_amount($myconfig, $value));
|
||
|
||
} elsif ($config->{type} eq 'bool') {
|
||
push @values, $value ? 't' : 'f', undef, undef, undef;
|
||
}
|
||
|
||
do_statement($form, $sth, $query, @values);
|
||
}
|
||
|
||
$sth->finish();
|
||
|
||
$dbh->commit();
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub render_inputs {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(variables));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
foreach my $var (@{ $params{variables} }) {
|
||
$var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs', { 'var' => $var });
|
||
}
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub render_search_options {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(variables));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
$params{include_prefix} = 'l_' unless defined($params{include_prefix});
|
||
$params{include_value} ||= '1';
|
||
|
||
my $filter = $form->parse_html_template('amcvar/search_filter', \%params);
|
||
my $include = $form->parse_html_template('amcvar/search_include', \%params);
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return ($filter, $include);
|
||
}
|
||
|
||
sub build_filter_query {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module trans_id_field filter));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $configs = $self->get_configs(%params);
|
||
|
||
my (@where, @values);
|
||
|
||
foreach my $config (@{ $configs }) {
|
||
next unless ($config->{searchable});
|
||
|
||
my $name = "cvar_$config->{name}";
|
||
|
||
my (@sub_values, @sub_where, $not);
|
||
|
||
if (($config->{type} eq 'text') || ($config->{type} eq 'textfield')) {
|
||
next unless ($params{filter}->{$name});
|
||
|
||
push @sub_where, qq|cvar.text_value ILIKE ?|;
|
||
push @sub_values, '%' . $params{filter}->{$name} . '%'
|
||
|
||
} elsif ($config->{type} eq 'select') {
|
||
next unless ($params{filter}->{$name});
|
||
|
||
push @sub_where, qq|cvar.text_value = ?|;
|
||
push @sub_values, $params{filter}->{$name};
|
||
|
||
} elsif (($config->{type} eq 'date') || ($config->{type} eq 'timestamp')) {
|
||
my $name_from = "${name}_from";
|
||
my $name_to = "${name}_to";
|
||
|
||
if ($params{filter}->{$name_from}) {
|
||
push @sub_where, qq|cvar.timestamp_value >= ?|;
|
||
push @sub_values, conv_date($params{filter}->{$name_from});
|
||
}
|
||
|
||
if ($params{filter}->{$name_to}) {
|
||
push @sub_where, qq|cvar.timestamp_value <= ?|;
|
||
push @sub_values, conv_date($params{filter}->{$name_to});
|
||
}
|
||
|
||
} elsif ($config->{type} eq 'number') {
|
||
next if ($params{filter}->{$name} eq '');
|
||
|
||
my $f_op = $params{filter}->{"${name}_qtyop"};
|
||
|
||
if ($f_op eq '==') {
|
||
$op = '=';
|
||
|
||
} elsif ($f_op eq '=/=') {
|
||
$not = 'NOT';
|
||
$op = '<>';
|
||
|
||
} elsif ($f_op eq '<') {
|
||
$not = 'NOT';
|
||
$op = '>=';
|
||
|
||
} elsif ($f_op eq '<=') {
|
||
$not = 'NOT';
|
||
$op = '>';
|
||
|
||
} elsif (($f_op eq '>') || ($f_op eq '>=')) {
|
||
$op = $f_op;
|
||
|
||
} else {
|
||
$op = '=';
|
||
}
|
||
|
||
push @sub_where, qq|cvar.number_value $op ?|;
|
||
push @sub_values, $form->parse_amount($myconfig, $params{filter}->{$name});
|
||
|
||
} elsif ($config->{type} eq 'bool') {
|
||
next unless ($params{filter}->{$name});
|
||
|
||
$not = 'NOT' if ($params{filter}->{$name} eq 'no');
|
||
push @sub_where, qq|COALESCE(cvar.bool_value, false) = TRUE|;
|
||
}
|
||
|
||
if (@sub_where) {
|
||
push @where,
|
||
qq|$not EXISTS(
|
||
SELECT cvar.id
|
||
FROM custom_variables cvar
|
||
LEFT JOIN custom_variable_configs cvarcfg ON (cvar.config_id = cvarcfg.id)
|
||
WHERE (cvarcfg.module = ?)
|
||
AND (cvarcfg.id = ?)
|
||
AND (cvar.trans_id = $params{trans_id_field})
|
||
AND | . join(' AND ', map { "($_)" } @sub_where) . qq|)|;
|
||
push @values, $params{module}, conv_i($config->{id}), @sub_values;
|
||
}
|
||
}
|
||
|
||
my $query = join ' AND ', @where;
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return ($query, @values);
|
||
}
|
||
|
||
sub add_custom_variables_to_report {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module trans_id_field column_defs data configs));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
my $locale = $main::locale;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $configs = [ grep { $_->{includeable} && $params{column_defs}->{"cvar_$_->{name}"}->{visible} } @{ $params{configs} } ];
|
||
|
||
if (!scalar(@{ $params{data} }) || ! scalar(@{ $configs })) {
|
||
$main::lxdebug->leave_sub();
|
||
return;
|
||
}
|
||
|
||
my %cfg_map = map { $_->{id} => $_ } @{ $configs };
|
||
my @cfg_ids = keys %cfg_map;
|
||
|
||
my $query =
|
||
qq|SELECT text_value, timestamp_value, timestamp_value::date AS date_value, number_value, bool_value, config_id
|
||
FROM custom_variables
|
||
WHERE (config_id IN (| . join(', ', ('?') x scalar(@cfg_ids)) . qq|)) AND (trans_id = ?)|;
|
||
my $sth = prepare_query($form, $dbh, $query);
|
||
|
||
foreach my $row (@{ $params{data} }) {
|
||
do_statement($form, $sth, $query, @cfg_ids, conv_i($row->{$params{trans_id_field}}));
|
||
|
||
while (my $ref = $sth->fetchrow_hashref()) {
|
||
my $cfg = $cfg_map{$ref->{config_id}};
|
||
|
||
$row->{"cvar_$cfg->{name}"} =
|
||
$cfg->{type} eq 'date' ? $ref->{date_value}
|
||
: $cfg->{type} eq 'timestamp' ? $ref->{timestamp_value}
|
||
: $cfg->{type} eq 'number' ? $form->format_amount($myconfig, $ref->{number_value} * 1, $config->{precision})
|
||
: $cfg->{type} eq 'bool' ? ($ref->{bool_value} ? $locale->text('Yes') : $locale->text('No'))
|
||
: $ref->{text_value};
|
||
}
|
||
}
|
||
|
||
$sth->finish();
|
||
|
||
$main::lxdebug->leave_sub();
|
||
}
|
||
|
||
sub get_field_format_list {
|
||
$main::lxdebug->enter_sub();
|
||
|
||
my $self = shift;
|
||
my %params = @_;
|
||
|
||
Common::check_params(\%params, qw(module));
|
||
|
||
my $myconfig = \%main::myconfig;
|
||
my $form = $main::form;
|
||
|
||
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
||
|
||
my $configs = $self->get_configs(%params);
|
||
|
||
my $date_fields = [];
|
||
my $number_fields = {};
|
||
|
||
foreach my $config (@{ $configs }) {
|
||
my $name = "$params{prefix}cvar_$config->{name}";
|
||
$main::lxdebug->message(0, "name $name");
|
||
if ($config->{type} eq 'date') {
|
||
push @{ $date_fields }, $name;
|
||
|
||
} elsif ($config->{type} eq 'number') {
|
||
$number_fields->{$config->{precision}} ||= [];
|
||
push @{ $number_fields->{$config->{precision}} }, $name;
|
||
}
|
||
}
|
||
|
||
$main::lxdebug->leave_sub();
|
||
|
||
return ($date_fields, $number_fields);
|
||
}
|
||
|
||
|
||
1;
|
SL/IR.pm | ||
---|---|---|
|
||
map { $form->{$_} = $ref->{$_} } keys %$ref;
|
||
|
||
my $custom_variables = CVar->get_custom_variables('dbh' => $dbh,
|
||
'module' => 'CT',
|
||
'trans_id' => $form->{vendor_id});
|
||
map { $form->{"vc_cvar_$_->{name}"} = $_->{value} } @{ $custom_variables };
|
||
|
||
$dbh->disconnect();
|
||
|
||
$main::lxdebug->leave_sub();
|
SL/IS.pm | ||
---|---|---|
use List::Util qw(max);
|
||
|
||
use SL::AM;
|
||
use SL::CVar;
|
||
use SL::Common;
|
||
use SL::DBUtils;
|
||
use SL::MoreCommon;
|
||
... | ... | |
|
||
map { $form->{"dv_$_"} = $ref->{$_} } keys %$ref;
|
||
}
|
||
|
||
my $custom_variables = CVar->get_custom_variables('dbh' => $dbh,
|
||
'module' => 'CT',
|
||
'trans_id' => $form->{customer_id});
|
||
map { $form->{"vc_cvar_$_->{name}"} = $_->{value} } @{ $custom_variables };
|
||
|
||
$dbh->disconnect;
|
||
|
||
$main::lxdebug->leave_sub();
|
amcvar.pl | ||
---|---|---|
am.pl
|
bin/mozilla/amcvar.pl | ||
---|---|---|
#=====================================================================
|
||
# LX-Office ERP
|
||
# Copyright (C) 2004
|
||
# Based on SQL-Ledger Version 2.1.9
|
||
# Web http://www.lx-office.org
|
||
#
|
||
#=====================================================================
|
||
# SQL-Ledger Accounting
|
||
# Copyright (c) 1998-2002
|
||
#
|
||
# Author: Dieter Simader
|
||
# Email: dsimader@sql-ledger.org
|
||
# Web: http://www.sql-ledger.org
|
||
#
|
||
#
|
||
# This program is free software; you can redistribute it and/or modify
|
||
# it under the terms of the GNU General Public License as published by
|
||
# the Free Software Foundation; either version 2 of the License, or
|
||
# (at your option) any later version.
|
||
#
|
||
# This program is distributed in the hope that it will be useful,
|
||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
# GNU General Public License for more details.
|
||
# You should have received a copy of the GNU General Public License
|
||
# along with this program; if not, write to the Free Software
|
||
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
#======================================================================
|
||
#
|
||
# administration
|
||
#
|
||
#======================================================================
|
||
|
||
use SL::AM;
|
||
use SL::CVar;
|
||
use SL::Form;
|
||
|
||
use Data::Dumper;
|
||
|
||
1;
|
||
|
||
require "bin/mozilla/common.pl";
|
||
|
||
# end of main
|
||
|
||
our %translations = ('text' => $locale->text('Free-form text'),
|
||
'textfield' => $locale->text('Text field'),
|
||
'number' => $locale->text('Number'),
|
||
'date' => $locale->text('Date'),
|
||
'timestamp' => $locale->text('Timestamp'),
|
||
'bool' => $locale->text('Yes/No (Checkbox)'),
|
||
'select' => $locale->text('Selection'),
|
||
);
|
||
|
||
our @types = qw(text textfield number date bool select); # timestamp
|
||
|
||
sub add {
|
||
add_cvar_config();
|
||
}
|
||
|
||
sub edit {
|
||
edit_cvar_config();
|
||
}
|
||
|
||
sub list_cvar_configs {
|
||
$lxdebug->enter_sub();
|
||
|
||
$auth->assert('config');
|
||
|
||
$form->{module} ||= $form->{cvar_module};
|
||
|
||
my @configs = grep { $_->{module} eq $form->{module} } @{ CVar->get_configs() };
|
||
|
||
my $previous_config;
|
||
|
||
foreach (@configs) {
|
||
$_->{type_tr} = $translations{$_->{type}};
|
||
|
||
if ($previous_config) {
|
||
$previous_config->{next_id} = $_->{id};
|
||
$_->{previous_id} = $previous_config->{id};
|
||
}
|
||
|
||
$previous_config = $_;
|
||
}
|
||
|
||
$form->{title} = $locale->text('List of custom variables');
|
||
$form->header();
|
||
print $form->parse_html_template('amcvar/list_cvar_configs', { 'CONFIGS' => \@configs });
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub add_cvar_config {
|
||
$lxdebug->enter_sub();
|
||
|
||
$auth->assert('config');
|
||
|
||
$form->{module} ||= $form->{cvar_module};
|
||
|
||
$form->{edit} = 0;
|
||
display_cvar_config_form();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub edit_cvar_config {
|
||
$lxdebug->enter_sub();
|
||
|
||
$auth->assert('config');
|
||
|
||
my $config = CVar->get_config('id' => $form->{id});
|
||
|
||
map { $form->{$_} = $config->{$_} } keys %{ $config };
|
||
|
||
$form->{edit} = 1;
|
||
display_cvar_config_form();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub save {
|
||
$lxdebug->enter_sub();
|
||
|
||
$auth->assert('config');
|
||
|
||
$form->isblank('name', $locale->text('The name is missing.'));
|
||
$form->isblank('description', $locale->text('The description is missing.'));
|
||
$form->isblank('options', $locale->text('The option field is empty.')) if ($form->{type} eq 'select');
|
||
|
||
if ($form->{name} !~ /^[a-z][a-z0-9_]*$/i) {
|
||
$form->error($locale->text('The name must only consist of letters, numbers and underscores and start with a letter.'));
|
||
}
|
||
|
||
if (($form->{type} eq 'number') && ($form->{default_value} ne '')) {
|
||
$form->{default_value} = $form->parse_amount(\%myconfig, $form->{default_value});
|
||
}
|
||
|
||
$form->{included_by_default} = $form->{inclusion} eq 'yes_default_on';
|
||
$form->{includeable} = $form->{inclusion} ne 'no';
|
||
|
||
CVar->save_config('module' => $form->{module},
|
||
'config' => $form);
|
||
|
||
$form->{MESSAGE} = $locale->text('The custom variable has been saved.');
|
||
|
||
list_cvar_configs();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub delete {
|
||
$lxdebug->enter_sub();
|
||
|
||
CVar->delete_config('id' => $form->{id});
|
||
|
||
$form->{MESSAGE} = $locale->text('The custom variable has been deleted.');
|
||
|
||
list_cvar_configs();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub display_cvar_config_form {
|
||
$lxdebug->enter_sub();
|
||
|
||
$auth->assert('config');
|
||
|
||
my @types = map { { 'type' => $_, 'type_tr' => $translations{$_} } } @types;
|
||
|
||
if (($form->{type} eq 'number') && ($form->{default_value} ne '')) {
|
||
$form->{default_value} = $form->format_amount(\%myconfig, $form->{default_value});
|
||
}
|
||
|
||
$form->{title} = $form->{edit} ? $locale->text("Edit custom variable") : $locale->text("Add custom variable");
|
||
|
||
$form->header();
|
||
print $form->parse_html_template("amcvar/display_cvar_config_form", { 'TYPES' => \@types });
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
sub swap_cvar_configs {
|
||
$lxdebug->enter_sub();
|
||
|
||
AM->swap_sortkeys(\%myconfig, $form, 'custom_variable_configs');
|
||
|
||
list_cvar_configs();
|
||
|
||
$lxdebug->leave_sub();
|
||
}
|
||
|
||
1;
|
bin/mozilla/ct.pl | ||
---|---|---|
use POSIX qw(strftime);
|
||
|
||
use SL::CT;
|
||
use SL::CVar;
|
||
use SL::ReportGenerator;
|
||
|
||
require "bin/mozilla/common.pl";
|
||
... | ... | |
$form->get_lists("business_types" => "ALL_BUSINESS_TYPES");
|
||
$form->{SHOW_BUSINESS_TYPES} = scalar @{ $form->{ALL_BUSINESS_TYPES} } > 0;
|
||
|
||
$form->{title} = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
|
||
$form->{fokus} = 'Form.name';
|
||
$form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'CT');
|
||
($form->{CUSTOM_VARIABLES_FILTER_CODE},
|
||
$form->{CUSTOM_VARIABLES_INCLUSION_CODE}) = CVar->render_search_options('variables' => $form->{CUSTOM_VARIABLES},
|
||
'include_prefix' => 'l_',
|
||
'include_value' => 'Y');
|
||
|
||
$form->{jsscript} = 1;
|
||
$form->{title} = $form->{IS_CUSTOMER} ? $locale->text('Customers') : $locale->text('Vendors');
|
||
$form->{fokus} = 'Form.name';
|
||
|
||
$form->header();
|
||
print $form->parse_html_template('ct/search');
|
||
... | ... | |
|
||
CT->search(\%myconfig, \%$form);
|
||
|
||
my $cvar_configs = CVar->get_configs('module' => 'CT');
|
||
|
||
my @options;
|
||
if ($form->{status} eq 'all') {
|
||
push @options, $locale->text('All');
|
||
... | ... | |
'ordnumber', 'quonumber'
|
||
);
|
||
|
||
my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
|
||
my %column_defs_cvars = map { +"cvar_$_->{name}" => { 'text' => $_->{description} } } @includeable_custom_variables;
|
||
|
||
push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables;
|
||
|
||
my %column_defs = (
|
||
'id' => { 'text' => $locale->text('ID'), },
|
||
"$form->{db}number" => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Customer Number') : $locale->text('Vendor Number'), },
|
||
... | ... | |
'invnumber' => { 'text' => $locale->text('Invoice'), },
|
||
'ordnumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Sales Order') : $locale->text('Purchase Order'), },
|
||
'quonumber' => { 'text' => $form->{IS_CUSTOMER} ? $locale->text('Quotation') : $locale->text('Request for Quotation'), },
|
||
%column_defs_cvars,
|
||
);
|
||
|
||
map { $column_defs{$_}->{visible} = $form->{"l_$_"} eq 'Y' } @columns;
|
||
... | ... | |
|
||
$report->set_sort_indicator($form->{sort}, 1);
|
||
|
||
CVar->add_custom_variables_to_report('module' => 'CT',
|
||
'trans_id_field' => 'id',
|
||
'configs' => $cvar_configs,
|
||
'column_defs' => \%column_defs,
|
||
'data' => $form->{CT});
|
||
|
||
my $previous_id;
|
||
|
||
foreach my $ref (@{ $form->{CT} }) {
|
||
... | ... | |
map { $form->{"MB_$_"} = [ map +{ id => $_, description => $_ }, @{ $form->{$_} } ] } qw(TITLES GREETINGS COMPANY_GREETINGS DEPARTMENT);
|
||
## /LINET
|
||
|
||
$form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'CT', 'trans_id' => $form->{id});
|
||
|
||
CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
|
||
|
||
$main::lxdebug->dump(0, "cvar", $form->{CUSTOM_VARIABLES});
|
||
|
||
$form->header;
|
||
print $form->parse_html_template('ct/form_header');
|
||
|
bin/mozilla/io.pl | ||
---|---|---|
use CGI::Ajax;
|
||
use List::Util qw(max first);
|
||
|
||
use SL::CVar;
|
||
use SL::Common;
|
||
use SL::CT;
|
||
use SL::IC;
|
||
... | ... | |
$form->{language} = "_" . $form->{language};
|
||
}
|
||
|
||
# Format dates.
|
||
# Format dates and numbers.
|
||
format_dates($output_dateformat, $output_longdates,
|
||
qw(invdate orddate quodate pldate duedate reqdate transdate
|
||
shippingdate deliverydate validitydate paymentdate
|
||
... | ... | |
grep({ /^qty_\d+$/
|
||
} keys(%{$form})));
|
||
|
||
my ($cvar_date_fields, $cvar_number_fields) = CVar->get_field_format_list('module' => 'CT', 'prefix' => 'vc_');
|
||
|
||
if (scalar @{ $cvar_date_fields }) {
|
||
format_dates($output_dateformat, $output_longdates, @{ $cvar_date_fields });
|
||
}
|
||
|
||
while (my ($precision, $field_list) = each %{ $cvar_number_fields }) {
|
||
reformat_numbers($output_numberformat, $precision, @{ $field_list });
|
||
}
|
||
|
||
$form->{IN} = "$form->{formname}$form->{language}${printer_code}.html";
|
||
if ($form->{format} eq 'postscript') {
|
||
$form->{postscript} = 1;
|
doc/dokumentenvorlagen-und-variablen.html | ||
---|---|---|
|
||
<li><a href="dokumentenvorlagen-und-variablen.html#invoice_zahlungen">
|
||
Variablen für die Zahlungseingänge</a></li>
|
||
|
||
<li><a href="dokumentenvorlagen-und-variablen.html#benutzerdefinierte_variablen_vc">
|
||
Benutzerdefinierte Kunden- und Lieferantenvariablen</a></li>
|
||
</ol>
|
||
</li>
|
||
|
||
... | ... | |
</table>
|
||
</p>
|
||
|
||
<h3><a name="benutzerdefinierte_variablen_vc">
|
||
Benutzerdefinierte Kunden- und Lieferantenvariablen:</a></h3>
|
||
|
||
<p>
|
||
Die vom Benutzer definierten Variablen für Kunden und
|
||
Lieferanten stehen beim Ausdruck von Einkaufs- und Verkaufsbelegen
|
||
ebenfalls zur Verfügung. Ihre Namen setzen sich aus dem
|
||
Präfix <code>vc_cvar_</code> und dem vom Benutzer festgelegten
|
||
Variablennamen zusammen.</p>
|
||
|
||
<p>Beispiel: Der Benutzer hat eine Variable
|
||
namens <code>number_of_employees</code> definiert, die die Anzahl
|
||
der Mitarbeiter des Unternehmens enthält. Diese Variable steht
|
||
dann unter dem Namen <code>vc_cvar_number_of_employees</code> zur
|
||
Verfügung.</p>
|
||
|
||
<small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
|
||
zum Inhaltsverzeichnis</a></small><br>
|
||
<hr>
|
locale/de/all | ||
---|---|---|
'Add Buchungsgruppe' => 'Buchungsgruppe erfassen',
|
||
'Add Business' => 'Kunden-/Lieferantentyp erfassen',
|
||
'Add Credit Note' => 'Gutschrift erfassen',
|
||
'Add Custom Variable' => 'Benutzerdefinierte Variable erfassen',
|
||
'Add Customer' => 'Kunde erfassen',
|
||
'Add Department' => 'Abteilung erfassen',
|
||
'Add Dunning' => 'Mahnung erzeugen',
|
||
... | ... | |
'Add Vendor Invoice' => 'Einkaufsrechnung erfassen',
|
||
'Add a new group' => 'Neue Gruppe erfassen',
|
||
'Add and edit %s' => '%s hinzufügen und bearbeiten',
|
||
'Add custom variable' => 'Benutzerdefinierte Variable erfassen',
|
||
'Add to group' => 'Zu Gruppe hinzuf?gen',
|
||
'Add unit' => 'Einheit hinzufügen',
|
||
'Address' => 'Adresse',
|
||
... | ... | |
'Amended Advance Turnover Tax Return (Nr. 10)' => 'Ist dies eine berichtigte Anmeldung? (Nr. 10/Zeile 15 Steuererkl?rung)',
|
||
'Amount' => 'Betrag',
|
||
'Amount Due' => 'Betrag f?llig',
|
||
'Annotations' => 'Anmerkungen',
|
||
'Ansprechpartner' => 'Ansprechpartner',
|
||
'Application Error. No Format given' => 'Fehler in der Anwendung. Das Ausgabeformat fehlt.',
|
||
'Application Error. Wrong Format' => 'Fehler in der Anwendung. Falsches Format: ',
|
||
... | ... | |
'Bis Konto: ' => 'bis Konto: ',
|
||
'Body:' => 'Text:',
|
||
'Books are open' => 'Die B?cher sind ge?ffnet.',
|
||
'Boolean variables: If the default value is non-empty then the checkbox will be checked by default and unchecked otherwise.' => 'Ja/Nein-Variablen: Wenn der Standardwert nicht leer ist, so wird die Checkbox standardmäßig angehakt.',
|
||
'Both' => 'Sowohl als auch',
|
||
'Bottom' => 'Unten',
|
||
'Bought' => 'Gekauft',
|
||
... | ... | |
'Current / Next Level' => 'Aktuelles / N?chstes Mahnlevel',
|
||
'Current Earnings' => 'Gewinn',
|
||
'Current unit' => 'Aktuelle Einheit',
|
||
'Custom Variables' => 'Benutzerdefinierte Variablen',
|
||
'Customer' => 'Kunde',
|
||
'Customer Number' => 'Kundennummer',
|
||
'Customer Order Number' => 'Bestellnummer des Kunden',
|
||
... | ... | |
'Customername' => 'Kundenname',
|
||
'Customernumberinit' => 'Kunden-/Lieferantennummernkreis',
|
||
'Customers' => 'Kunden',
|
||
'Customers and Vendors' => 'Kunden und Lieferanten',
|
||
'Customized Report' => 'Vorgew?hlte Zeitr?ume',
|
||
'DATEV - Export Assistent' => 'DATEV-Exportassistent',
|
||
'DATEV Angaben' => 'DATEV-Angaben',
|
||
... | ... | |
'Date' => 'Datum',
|
||
'Date Format' => 'Datumsformat',
|
||
'Date Paid' => 'Zahlungsdatum',
|
||
'Date and timestamp variables: If the default value equals \'NOW\' then the current date/current timestamp will be used. Otherwise the default value is copied as-is.' => 'Datums- und Uhrzeitvariablen: Wenn der Standardwert \'NOW\' ist, so wird das aktuelle Datum/die aktuelle Uhrzeit eingefügt. Andernfalls wird der Standardwert so wie er ist benutzt.',
|
||
'Date missing!' => 'Datum fehlt!',
|
||
'Datevautomatik' => 'Datevexport',
|
||
'Datum von' => 'Datum von',
|
||
... | ... | |
'Default output medium' => 'Standardausgabekanal',
|
||
'Default printer' => 'Standarddrucker',
|
||
'Default template format' => 'Standardvorlagenformat',
|
||
'Default value' => 'Standardwert',
|
||
'Defaults saved.' => 'Die Standardeinstellungen wurden gespeichert.',
|
||
'Delete' => 'L?schen',
|
||
'Delete Account' => 'Konto l?schen',
|
||
... | ... | |
'Edit Vendor' => 'Lieferant editieren',
|
||
'Edit Vendor Invoice' => 'Einkaufsrechnung bearbeiten',
|
||
'Edit and delete a group' => 'Gruppen bearbeiten und löschen',
|
||
'Edit custom variable' => 'Benutzerdefinierte Variable bearbeiten',
|
||
'Edit file' => 'Datei bearbeiten',
|
||
'Edit group ' => 'Gruppe bearbeiten',
|
||
'Edit group membership' => 'Gruppenmitgliedschaften bearbeiten',
|
||
... | ... | |
'Form details (second row)' => 'Formulardetails (zweite Positionszeile)',
|
||
'Formula' => 'Formel',
|
||
'Free report period' => 'Freier Zeitraum',
|
||
'Free-form text' => 'Textzeile',
|
||
'Fristsetzung' => 'Fristsetzung',
|
||
'From' => 'Von',
|
||
'Full Access' => 'Vollzugriff',
|
||
... | ... | |
'Include column headings' => 'Spaltenüberschriften erzeugen',
|
||
'Include in Report' => 'In Bericht aufnehmen',
|
||
'Include in drop-down menus' => 'In Aufklappmen? aufnehmen',
|
||
'Includeable in reports' => 'In Berichten anzeigbar',
|
||
'Income Statement' => 'GuV',
|
||
'Income accno' => 'Erlöskonto',
|
||
'Incoming Payments' => 'Zahlungseing?nge',
|
||
... | ... | |
'List Accounting Groups' => 'Buchungsgruppen anzeigen',
|
||
'List Accounts' => 'Konten anzeigen',
|
||
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen',
|
||
'List Custom Variables' => 'Benutzerdefinierte Variablen anzeigen',
|
||
'List Departments' => 'Abteilungen anzeigen',
|
||
'List Groups' => 'Warengruppen anzeigen',
|
||
'List Languages' => 'Sprachen anzeigen',
|
||
... | ... | |
'List Printer' => 'Drucker anzeigen',
|
||
'List Tax' => 'Bearbeiten',
|
||
'List Transactions' => 'Buchungsliste',
|
||
'List of custom variables' => 'Liste der benutzerdefinierten Variablen',
|
||
'Load draft' => 'Entwurf laden',
|
||
'Local Tax Office Preferences' => 'Angaben zum Finanzamt',
|
||
'Lock System' => 'System sperren',
|
||
... | ... | |
'Number missing in Row' => 'Nummer fehlt in Zeile',
|
||
'Number of copies' => 'Anzahl Kopien',
|
||
'Number pages' => 'Seiten nummerieren',
|
||
'Number variables: \'PRECISION=n\' forces numbers to be shown with exactly n decimal places.' => 'Zahlenvariablen: Mit \'PRECISION=n\' erzwingt man, dass Zahlen mit n Nachkommastellen formatiert werden.',
|
||
'OBE-Export erfolgreich!' => 'OBE-Export erfolgreich!',
|
||
'Obsolete' => 'Ung?ltig',
|
||
'Oct' => 'Okt',
|
||
... | ... | |
'Ordered' => 'Vom Kunde bestellt',
|
||
'Orientation' => 'Seitenformat',
|
||
'Orphaned' => 'Nie benutzt',
|
||
'Other values are ignored.' => 'Andere Eingaben werden ignoriert.',
|
||
'Others' => 'Andere',
|
||
'Otherwise all users will only have access to their own settings.' => 'Andernfalls haben alle Benutzer nur Zugriff auf ihre Benutzereinstellungen.',
|
||
'Out of balance transaction!' => 'Buchung ist nicht ausgeglichen!',
|
||
... | ... | |
'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
|
||
'Screen' => 'Bildschirm',
|
||
'Search Dunning' => 'Mahnung suchen',
|
||
'Searchable' => 'Durchsuchbar',
|
||
'Select' => 'ausw?hlen',
|
||
'Select a Customer' => 'Endkunde ausw?hlen',
|
||
'Select a customer' => 'Einen Kunden auswählen',
|
||
... | ... | |
'Select postscript or PDF!' => 'Postscript oder PDF ausw?hlen!',
|
||
'Select the chart of accounts in use' => 'Benutzten Kontenrahmen auswählen',
|
||
'Select the checkboxes that match users to the groups they should belong to.' => 'Wählen Sie diejenigen Checkboxen aus, die die Benutzer zu den gewüschten Gruppen zuordnen.',
|
||
'Selection' => 'Auswahlbox',
|
||
'Selection fields: The option field must contain the available options for the selection. Options are separated by \'##\', for example \'Early##Normal##Late\'.' => 'Auswahlboxen: Das Optionenfeld muss die für die Auswahl verfügbaren Einträge enthalten. Die Einträge werden mit \'##\' voneinander getrennt. Beispiel: \'Früh##Normal##Spät\'.',
|
||
'Sell Price' => 'Verkaufspreis',
|
||
'Send the backup via Email' => 'Die Sicherungsdatei per Email verschicken',
|
||
'Sep' => 'Sep',
|
||
... | ... | |
'Template database' => 'Datenbankvorlage',
|
||
'Templates' => 'Vorlagen',
|
||
'Terms missing in row ' => '+Tage fehlen in Zeile ',
|
||
'Text field' => 'Textfeld',
|
||
'Text field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the text field. They default to 30 and 5 respectively.' => 'Textfelder: \'WIDTH=w HEIGHT=h\' setzen die Breite und die Höhe des Textfeldes. Wenn nicht anders angegeben, so werden sie 30 Zeichen breit und fünf Zeichen hoch dargestellt.',
|
||
'Text variables: \'MAXLENGTH=n\' sets the maximum entry length to \'n\'.' => 'Textzeilen: \'MAXLENGTH=n\' setzt eine Maximallänge von n Zeichen.',
|
||
'Text, text field and number variables: The default value will be used as-is.' => 'Textzeilen, Textfelder und Zahlenvariablen: Der Standardwert wird so wie er ist übernommen.',
|
||
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
|
||
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
|
||
'The authentication configuration file "config/authentication.pl" does not exist. This Lx-Office installation has probably not been updated correctly yet. Please contact your administrator.' => 'Die Konfigurationsdatei für die Authentifizierung "config/authentication.pl" wurde nicht gefunden. Diese Lx-Office-Installation wurde vermutlich noch nicht vollständig aktualisiert oder eingerichtet. Bitte wenden Sie sich an Ihren Administrator.',
|
||
'The authentication database is not reachable at the moment. Either it hasn\'t been set up yet or the database server might be down. Please contact your administrator.' => 'Die Authentifizierungsdatenbank kann momentan nicht erreicht werden. Entweder wurde sie noch nicht eingerichtet, oder der Datenbankserver antwortet nicht. Bitte wenden Sie sich an Ihren Administrator.',
|
||
'The available options depend on the varibale type:' => 'Die verfügbaren Optionen hängen vom Variablentypen ab:',
|
||
'The backup you upload here has to be a file created with "pg_dump -o -Ft".' => 'Die von Ihnen hochzuladende Sicherungsdatei muss mit dem Programm und den Parametern "pg_dump -o -Ft" erstellt worden sein.',
|
||
'The base unit does not exist or it is about to be deleted in row %d.' => 'Die Basiseinheit in Zeile %d existiert nicht oder soll gelöscht werden.',
|
||
'The base unit does not exist.' => 'Die Basiseinheit existiert nicht.',
|
||
... | ... | |
'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
|
||
'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
|
||
'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
|
||
'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gelöscht.',
|
||
'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
|
||
'The database [% HTML.escape(db) %] has been successfully deleted.' => 'Die Datenbank [% HTML.escape(db) %] wurde erfolgreich gelöscht.',
|
||
'The database for user management and authentication does not exist. You can create let Lx-Office create it with the following parameters:' => 'Die Datenbank zur Verwaltung der Benutzerdaten und zur Authentifizierung existiert nicht. Sie können Lx-Office diese Datenbank mit den folgenden Parametern anlegen lassen:',
|
||
'The database update/creation did not succeed. The file [% HTML.escape(file) %] contained the following error:' => 'Die Datenbankaktualisierung/erstellung schlug fehl. Die Datei [% HTML.escape(file) %] enthielt den folgenden Fehler:',
|
||
... | ... | |
'The dataset backup has been sent via email to [% HTML.escape(to) %].' => 'Die Datenbanksicherung wurde per Email an [% HTML.escape(to) %] verschickt.',
|
||
'The dataset has to exist before a restoration can be started.' => 'Die Datenbank muss vor der Wiederherstellung bereits angelegt worden sein.',
|
||
'The dataset name is missing.' => 'Der Datenbankname fehlt.',
|
||
'The default value depends on the variable type:' => 'Die Bedeutung des Standardwertes hängt vom Variablentypen ab:',
|
||
'The description is missing.' => 'Die Beschreibung fehlt.',
|
||
'The description is shown on the form. Chose something short and descriptive.' => 'Die Beschreibung wird in der jeweiligen Maske angezeigt. Sie sollte kurz und prägnant sein.',
|
||
'The directory "%s" could not be created:\n%s' => 'Das Verzeichnis "%s" konnte nicht erstellt werden:\n%s',
|
||
'The directory %s does not exist.' => 'Das Verzeichnis %s existiert nicht.',
|
||
'The dunning process started' => 'Der Mahnprozess ist gestartet.',
|
||
... | ... | |
'The name in row %d has already been used before.' => 'Der Name in Zeile %d wurde vorher bereits benutzt.',
|
||
'The name is missing in row %d.' => 'Der Name fehlt in Zeile %d.',
|
||
'The name is missing.' => 'Der Name fehlt.',
|
||
'The name must only consist of letters, numbers and underscores and start with a letter.' => 'Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.',
|
||
'The old file containing the user information is still present ("[% HTML.escape(memberfile) %]"). Do you want to migrate these users into the database? If not then you will not be able to log in with any of the users present in the old file. ' => 'Die alte Datei mit den Benutzerdaten existiert in dieser Installation noch immer ("[% HTML.escape(memberfile) %]"). Wollen Sie diese Benutzer in die neue Authentifizierungsdatenbank migrieren lassen? Falls nicht, so werden Sie sich nicht mehr mit den Benutzerdaten aus der alten Mitgliedsdatei anmelden können.',
|
||
'The option field is empty.' => 'Das Optionsfeld ist leer.',
|
||
'The pg_dump process could not be started.' => 'Der pg_dump-Prozess konnte nicht gestartet werden.',
|
||
'The pg_restore process could not be started.' => 'Der pg_restore-Prozess konnte nicht gestartet werden.',
|
||
'The preferred one is to install packages provided by your operating system distribution (e.g. Debian or RPM packages).' => 'Die bevorzugte Art, ein Perl-Modul zu installieren, ist durch Installation eines von Ihrem Betriebssystem zur Verfügung gestellten Paketes (z.B. Debian-Pakete oder RPM).',
|
||
... | ... | |
'The user has been removed from this group.' => 'Der Benutzer wurde aus der Gruppe entfernt.',
|
||
'The user is a member in the following group(s):' => 'Der Benutzer ist Mitglied in den folgenden Gruppen:',
|
||
'The user migration process is complete.' => 'Der Prozess der Benutzerdatenmigration ist abgeschlossen.',
|
||
'The variable name must only consist of letters, numbers and underscores. It must begin with a letter. Example: send_christmas_present' => 'Der Variablenname darf nur aus Zeichen (keine Umlaute), Ziffern und Unterstrichen bestehen. Er muss mit einem Buchstaben beginnen. Beispiel: weihnachtsgruss_verschicken',
|
||
'There are four tax zones.' => 'Es gibt vier Steuerzonen.',
|
||
'There are still entries in the database for which no unit has been assigned.' => 'Es gibt noch Einträge in der Datenbank, für die keine Einheit zugeordnet ist.',
|
||
'There are usually three ways to install Perl modules.' => 'Es gibt normalerweise drei Arten, ein Perlmodul zu installieren.',
|
||
... | ... | |
'This upgrade script tries to map all existing parts in the database to the newly created Buchungsgruppen.' => 'Dieses Upgradescript versucht, bei allen bestehenden Artikeln neu erstellte Buchungsgruppen zuzuordnen.',
|
||
'This upgrade script tries to map all existing units in the database to the newly created units.' => 'Dieses Update-Script versucht, alle bestehenden Einheiten automatisch in die neuen Einheiten umzuwandeln.',
|
||
'This vendor number is already in use.' => 'Diese Lieferantennummer wird bereits verwendet.',
|
||
'Timestamp' => 'Uhrzeit',
|
||
'Title' => 'Titel',
|
||
'To' => 'An',
|
||
'To (email)' => 'An',
|
||
... | ... | |
'Yearly' => 'j?hrlich',
|
||
'Yearly taxreport not yet implemented' => 'J?hrlicher Steuerreport f?r dieses Ausgabeformat noch nicht implementiert',
|
||
'Yes' => 'Ja',
|
||
'Yes, included by default' => 'Ja, standardmäßig an',
|
||
'Yes/No (Checkbox)' => 'Ja/Nein (Checkbox)',
|
||
'You are logged out!' => 'Auf Wiedersehen!',
|
||
'You can also create new units now.' => 'Sie können jetzt auch neue Einheiten anlegen.',
|
||
'You can create a missing dataset by going back and chosing "Create Dataset".' => 'Sie können eine fehlende Datenbank erstellen, indem Sie jetzt zuück gehen und den Punkt "Datenbank anlegen" wählen.',
|
locale/de/amcvar | ||
---|---|---|
$self->{texts} = {
|
||
'ADDED' => 'Hinzugef?gt',
|
||
'AP' => 'Einkauf',
|
||
'AR' => 'Verkauf',
|
||
'Add custom variable' => 'Benutzerdefinierte Variable erfassen',
|
||
'Address' => 'Adresse',
|
||
'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
|
||
'All reports' => 'Alle Berichte (Kontenübersicht, Saldenbilanz, GuV, BWA, Bilanz, Projektbuchungen)',
|
||
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
|
||
'Bcc' => 'Bcc',
|
||
'Bin List' => 'Lagerliste',
|
||
'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
|
||
'CANCELED' => 'Storniert',
|
||
'Cc' => 'Cc',
|
||
'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Verändern der Lx-Office-Installationseinstellungen (Menüpunkte unterhalb von \'System\')',
|
||
'Confirmation' => 'Auftragsbest?tigung',
|
||
'Contact' => 'Kontakt',
|
||
'Create and edit RFQs' => 'Lieferantenanfragen erfassen und bearbeiten',
|
||
'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
|
||
'Create and edit dunnings' => 'Mahnungen erfassen und bearbeiten',
|
||
'Create and edit invoices and credit notes' => 'Rechnungen und Gutschriften erfassen und bearbeiten',
|
||
'Create and edit parts, services, assemblies' => 'Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten',
|
||
'Create and edit projects' => 'Projekte erfassen und bearbeiten',
|
||
'Create and edit purchase delivery orders' => 'Lieferscheine von Lieferanten erfassen und bearbeiten',
|
||
'Create and edit purchase orders' => 'Lieferantenaufträge erfassen und bearbeiten',
|
||
'Create and edit sales delivery orders' => 'Lieferscheine für Kunden erfassen und bearbeiten',
|
||
'Create and edit sales orders' => 'Auftragsbestätigungen erfassen und bearbeiten',
|
||
'Create and edit sales quotations' => 'Angebote erfassen und bearbeiten',
|
||
'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
|
||
'Credit Note' => 'Gutschrift',
|
||
'Customer Number' => 'Kundennummer',
|
||
'Customer details' => 'Kundendetails',
|
||
'DATEV Export' => 'DATEV-Export',
|
||
'DELETED' => 'Gel?scht',
|
||
'DUNNING STARTED' => 'Mahnprozess gestartet',
|
||
'Dataset upgrade' => 'Datenbankaktualisierung',
|
||
'Date' => 'Datum',
|
||
'Dependency loop detected:' => 'Schleife in den Abhängigkeiten entdeckt:',
|
||
'Directory' => 'Verzeichnis',
|
||
'ELSE' => 'Zusatz',
|
||
'Edit custom variable' => 'Benutzerdefinierte Variable bearbeiten',
|
||
'Enter longdescription' => 'Langtext eingeben',
|
||
'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
|
||
'File' => 'Datei',
|
||
'Free-form text' => 'Textzeile',
|
||
'General ledger and cash' => 'Finanzbuchhaltung und Zahlungsverkehr',
|
||
'History' => 'Historie',
|
||
'Invoice' => 'Rechnung',
|
||
'List of custom variables' => 'Liste der benutzerdefinierten Variablen',
|
||
'MAILED' => 'Gesendet',
|
||
'Manage license keys' => 'Lizenzschlüssel verwalten',
|
||
'Mark as paid?' => 'Als bezahlt markieren?',
|
||
'Marked as paid' => 'Als bezahlt markiert',
|
||
'Master Data' => 'Stammdaten',
|
||
'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
|
||
'Message' => 'Nachricht',
|
||
'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
|
||
'Missing \'tag\' field.' => 'Fehlendes Feld \'tag\'.',
|
||
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
|
||
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'Name' => 'Name',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
||
'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgew?hlt.',
|
||
'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.',
|
||
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgew?hlt.',
|
||
'Number' => 'Nummer',
|
||
'Others' => 'Andere',
|
||
'PAYMENT POSTED' => 'Rechung gebucht',
|
||
'POSTED' => 'Gebucht',
|
||
'POSTED AS NEW' => 'Als neu gebucht',
|
||
'PRINTED' => 'Gedruckt',
|
||
'Packing List' => 'Lieferschein',
|
||
'Pick List' => 'Sammelliste',
|
||
'Please enter values' => 'Bitte Werte eingeben',
|
||
'Proforma Invoice' => 'Proformarechnung',
|
||
'Purchase Order' => 'Lieferantenauftrag',
|
||
'Quotation' => 'Angebot',
|
||
'RFQ' => 'Anfrage',
|
||
'Receipt, payment, reconciliation' => 'Zahlungseingang, Zahlungsausgang, Kontenabgleich',
|
||
'Reports' => 'Berichte',
|
||
'SAVED' => 'Gespeichert',
|
||
'SAVED FOR DUNNING' => 'Gespeichert',
|
||
'SCREENED' => 'Angezeigt',
|
||
'Select a Customer' => 'Endkunde ausw?hlen',
|
||
'Select a customer' => 'Einen Kunden auswählen',
|
||
'Select a vendor' => 'Einen Lieferanten auswählen',
|
||
'Selection' => 'Auswahlbox',
|
||
'Storno Invoice' => 'Stornorechnung',
|
||
'Storno Packing List' => 'Stornolieferschein',
|
||
'Subject' => 'Betreff',
|
||
'Text field' => 'Textfeld',
|
||
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
|
||
'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte überprüfen Sie die Angaben in config/authentication.pl.',
|
||
'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ungütigen Perl-Code:',
|
||
'The config file "config/authentication.pl" was not found.' => 'Die Konfigurationsdatei "config/authentication.pl" wurde nicht gefunden.',
|
||
'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'Die Verbindung zum LDAP-Server kann nicht verschlüsselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte überprüfen Sie die Angaben in config/authentication.pl.',
|
||
'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
|
||
'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
|
||
'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
|
||
'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gelöscht.',
|
||
'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
|
||
'The description is missing.' => 'Die Beschreibung fehlt.',
|
||
'The name is missing.' => 'Der Name fehlt.',
|
||
'The name must only consist of letters, numbers and underscores and start with a letter.' => 'Der Name darf nur aus Buchstaben (keine Umlaute), Ziffern und Unterstrichen bestehen und muss mit einem Buchstaben beginnen.',
|
||
'The option field is empty.' => 'Das Optionsfeld ist leer.',
|
||
'Timestamp' => 'Uhrzeit',
|
||
'To (email)' => 'An',
|
||
'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
|
||
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
|
||
'Unit' => 'Einheit',
|
||
'Unknown dependency \'%s\'.' => 'Unbekannte Abhängigkeit \'%s\'.',
|
||
'Value' => 'Wert',
|
||
'Variable' => 'Variable',
|
||
'Vendor details' => 'Lieferantendetails',
|
||
'Yes' => 'Ja',
|
||
'Yes/No (Checkbox)' => 'Ja/Nein (Checkbox)',
|
||
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
|
||
'[email]' => '[email]',
|
||
'bin_list' => 'Lagerliste',
|
||
'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schlüsselwort "DB_config" fehlt.',
|
||
'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schlüssel "LDAP_config" fehlt.',
|
||
'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Fehlende Parameter in "DB_config". Benötigte Parameter sind "host", "db" und "user".',
|
||
'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Benötigt werden "host", "attribute" und "base_dn".',
|
||
'customer' => 'Kunde',
|
||
'invoice' => 'Rechnung',
|
||
'no' => 'nein',
|
||
'packing_list' => 'Versandliste',
|
||
'pick_list' => 'Entnahmeliste',
|
||
'proforma' => 'Proforma',
|
||
'purchase_order' => 'Auftrag',
|
||
'request_quotation' => 'Angebotsanforderung',
|
||
'sales_order' => 'Kundenauftrag',
|
||
'sales_quotation' => 'Verkaufsangebot',
|
||
'vendor' => 'Lieferant',
|
||
'yes' => 'ja',
|
||
};
|
||
|
||
$self->{subs} = {
|
||
'E' => 'E',
|
||
'H' => 'H',
|
||
'NTI' => 'NTI',
|
||
'Q' => 'Q',
|
||
'add' => 'add',
|
||
'add_cvar_config' => 'add_cvar_config',
|
||
'build_std_url' => 'build_std_url',
|
||
'calculate_qty' => 'calculate_qty',
|
||
'call_sub' => 'call_sub',
|
||
'cov_selection_internal' => 'cov_selection_internal',
|
||
'delete' => 'delete',
|
||
'delivery_customer_selection' => 'delivery_customer_selection',
|
||
'display_cvar_config_form' => 'display_cvar_config_form',
|
||
'edit' => 'edit',
|
||
'edit_cvar_config' => 'edit_cvar_config',
|
||
'format_dates' => 'format_dates',
|
||
'list_cvar_configs' => 'list_cvar_configs',
|
||
'mark_as_paid_common' => 'mark_as_paid_common',
|
||
'reformat_numbers' => 'reformat_numbers',
|
||
'retrieve_partunits' => 'retrieve_partunits',
|
||
'save' => 'save',
|
||
'set_longdescription' => 'set_longdescription',
|
||
'show_history' => 'show_history',
|
||
'show_vc_details' => 'show_vc_details',
|
||
'swap_cvar_configs' => 'swap_cvar_configs',
|
||
'vendor_selection' => 'vendor_selection',
|
||
'erfassen' => 'add',
|
||
'weiter' => 'continue',
|
||
'l?schen' => 'delete',
|
||
'speichern' => 'save',
|
||
};
|
||
|
||
1;
|
locale/de/ap | ||
---|---|---|
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
|
||
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'Name' => 'Name',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
locale/de/ar | ||
---|---|---|
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
|
||
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'Name' => 'Name',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
locale/de/cp | ||
---|---|---|
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
|
||
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'Name' => 'Name',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
||
... | ... | |
'Vendor details' => 'Lieferantendetails',
|
||
'Vendor not on file or locked!' => 'Dieser Lieferant existiert nicht oder ist gesperrt.',
|
||
'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
|
||
'Yes' => 'Ja',
|
||
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
|
||
'Zero amount posting!' => 'Buchung ohne Wert',
|
||
'[email]' => '[email]',
|
locale/de/ct | ||
---|---|---|
'Name' => 'Name',
|
||
'Name missing!' => 'Name fehlt!',
|
||
'New contact' => 'Neuer Ansprechpartner',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
||
... | ... | |
'Vendor details' => 'Lieferantendetails',
|
||
'Vendor saved!' => 'Lieferant gespeichert!',
|
||
'Vendors' => 'Lieferanten',
|
||
'Yes' => 'Ja',
|
||
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
|
||
'[email]' => '[email]',
|
||
'bin_list' => 'Lagerliste',
|
locale/de/dn | ||
---|---|---|
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
|
||
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'Name' => 'Name',
|
||
'No' => 'Nein',
|
||
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
|
||
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden',
|
||
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden',
|
||
... | ... | |
'Variable' => 'Variable',
|
||
'Vendor Number' => 'Lieferantennummer',
|
||
'Vendor details' => 'Lieferantendetails',
|
||
'Yes' => 'Ja',
|
||
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
|
||
'Zipcode' => 'PLZ',
|
||
'[email]' => '[email]',
|
locale/de/gl | ||
---|---|---|
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
|
||
'MwSt. inkl.' => 'MwSt. inkl.',
|
||
'Name' => 'Name',
|
Auch abrufbar als: Unified diff
Implementation des Features "Benutzerdefinierte Variablen für Kunden- und Lieferantenstammdaten".