Die bin/mozilla/oe.pl noch einmal umgeschrieben, so dass jetzt noch mehr Funktionen ins Frontend ausgelagert sind.
Ein neues Highlight ist die template/generic/multibox.html, die es erlaubt aus wenigen Steuerkommandos ein HTML-Eingabefeld zu erstellen, was bei kleinen Datenmengen als Dropdownbox erscheint, udn bei grossen asl Textfeld, mit dazugehörigem Popup-Button, um eine Auswahlliste aufzumachen. Saemtliche Funktionen lassen sich ueber Perlfunktionsreferenzen wieder zurück ins Backend leiten, und dort wieder mit komplexer Logik füllen. Dokumentation ist im Template direkt enthalten.
Die Customer/Vendor Eingabe macht auch gleich Gebrauch davon und erzeugt bei zu grosser Anzahl ein Textfeld, und daneben einen Suchbutton, der die passenden Kunden in einer Liste anzeigt.
Der "Kundendetails"-Button wurde von "?" umbenannt in "D" (immernoch gruselig)
Auf Wunsch von Moritz habe ich die display_row von bin/mozilla/oe.pl wieder verlagert in die bin/mozilla/io.pl, und dafuer die Version in bin/mozilla/invoice_io.pl deaktiviert.
return $employees;
}
+sub retrieve_customers_or_vendors {
+ $main::lxdebug->enter_sub();
+
+ my ($self, $myconfig, $form, $order_by, $order_dir, $is_vendor, $allow_both) = @_;
+
+ my $dbh = $form->dbconnect($myconfig);
+
+ my (@filter_values, $filter);
+ if ($form->{"name"}) {
+ $filter .= " AND (TABLE.name ILIKE ?)";
+ push(@filter_values, '%' . $form->{"name"} . '%');
+ }
+ if (!$form->{"obsolete"}) {
+ $filter .= " AND NOT TABLE.obsolete";
+ }
+ substr($filter, 1, 3) = "WHERE" if ($filter);
+
+ $order_by =~ s/[^a-zA-Z_]//g;
+ $order_dir = $order_dir ? "ASC" : "DESC";
+
+ my (@queries, @query_parameters);
+
+ if ($allow_both || !$is_vendor) {
+ my $c_filter = $filter;
+ $c_filter =~ s/TABLE/c/g;
+ push(@queries, qq|SELECT
+ c.id, c.name, 0 AS customer_is_vendor,
+ c.street, c.zipcode, c.city,
+ ct.cp_greeting, ct.cp_title, ct.cp_givenname, ct.cp_name
+ FROM customer c
+ LEFT JOIN contacts ct ON (c.id = ct.cp_cv_id)
+ $c_filter|);
+ push(@query_parameters, @filter_values);
+ }
+
+ if ($allow_both || $is_vendor) {
+ my $v_filter = $filter;
+ $v_filter =~ s/TABLE/v/g;
+ push(@queries, qq|SELECT
+ v.id, v.name, 1 AS customer_is_vendor,
+ v.street, v.zipcode, v.city,
+ ct.cp_greeting, ct.cp_title, ct.cp_givenname, ct.cp_name
+ FROM vendor v
+ LEFT JOIN contacts ct ON (v.id = ct.cp_cv_id)
+ $v_filter|);
+ push(@query_parameters, @filter_values);
+ }
+
+ my $query = join(" UNION ", @queries) . " ORDER BY $order_by $order_dir";
+ my $sth = $dbh->prepare($query);
+ $sth->execute(@query_parameters) || $form->dberror($query . " (" . join(", ", @query_parameters) . ")");
+ my $customers = [];
+ while (my $ref = $sth->fetchrow_hashref()) {
+ push(@{$customers}, $ref);
+ }
+ $sth->finish();
+ $dbh->disconnect();
+
+ $main::lxdebug->leave_sub();
+
+ return $customers;
+}
+
sub retrieve_delivery_customer {
$main::lxdebug->enter_sub();
$file = $self->_prepare_html_template($file, $additional_params);
- my $template = Template->new({ 'INTERPOLATE' => 0,
- 'EVAL_PERL' => 0,
- 'ABSOLUTE' => 1,
- 'CACHE_SIZE' => 0,
- 'PLUGIN_BASE' => 'SL::Template::Plugin',
+ my $template = Template->new({ 'INTERPOLATE' => 0,
+ 'EVAL_PERL' => 0,
+ 'ABSOLUTE' => 1,
+ 'CACHE_SIZE' => 0,
+ 'PLUGIN_BASE' => 'SL::Template::Plugin',
+ 'INCLUDE_PATH' => '.:templates/webpages',
}) || die;
map { $additional_params->{$_} ||= $self->{$_} } keys %{ $self };
use base qw( Template::Plugin );
use Template::Plugin;
+use List::Util qw(first);
sub new {
my $class = shift;
$lxdebug->leave_sub();
}
+## Customers/Vendors
+
+sub check_customer_or_vendor {
+ $lxdebug->enter_sub();
+
+ my ($field, $cov_selected_nextsub, $is_vendor) = @_;
+
+ if ($form->{"f_${field}"} eq $form->{"f_old_${field}"}) {
+ $lxdebug->leave_sub();
+ return 1;
+ }
+
+ my $type = $is_vendor ? $locale->text("vendor") : $locale->text("customer");
+
+ my $old_form = save_form();
+ $form->{"name"} = $form->{"f_${field}"};
+ $form->{"obsolete"} = 1;
+ my $covs;
+ $covs = Common->retrieve_customers_or_vendors(\%myconfig, $form, "name", 1, $is_vendor);
+ restore_form($old_form);
+
+ if (0 == scalar(@{$covs})) {
+ $form->header();
+ $form->show_generic_error(sprintf($locale->text("There is no %s whose name matches '%s'."), $type, $form->{"f_${field}"}));
+
+ $lxdebug->leave_sub();
+ return 0;
+
+ }
+
+ if (1 != scalar(@{$covs})) {
+ # If there is more than one CoV with the same name
+ # then we have to check if the ID is set, too. Otherwise
+ # we'd be stuck in an endless loop.
+ if ($form->{"f_${field}_id"}) {
+ foreach my $cov (@{$covs}) {
+ if (($form->{"f_${field}_id"} == $cov->{"id"}) &&
+ ($form->{"f_${field}"} eq $cov->{"name"})) {
+ $lxdebug->leave_sub();
+ return 1;
+ }
+ }
+ }
+
+ $form->{"cov_selected_nextsub"} = $cov_selected_nextsub;
+ $form->{"check_cov_field"} = $field;
+ select_customer_or_vendor("cov_selected", $is_vendor, @{$covs});
+ $lxdebug->leave_sub();
+ return 0;
+ }
+
+ $form->{"f_${field}_id"} = $covs->[0]->{"id"};
+ $form->{"f_${field}"} = $covs->[0]->{"name"};
+
+ $lxdebug->leave_sub();
+
+ return 1;
+}
+
+sub select_customer_or_vendor {
+ $lxdebug->enter_sub();
+
+ my ($callback_sub, $is_vendor, @covs) = @_;
+
+ my $old_form = save_form();
+
+ if (0 == scalar(@covs)) {
+ delete($form->{"name"});
+ $form->{"obsolete"} = 1;
+ my $c = Common->retrieve_customers_or_vendors(\%myconfig, $form, "name", 1, $is_vendor);
+ restore_form($old_form);
+ @covs = @{$c};
+ }
+
+ $form->header();
+ print($form->parse_html_template("generic/select_customer_or_vendor",
+ { "COVS" => \@covs,
+ "old_form" => $old_form,
+ "title" => $is_vendor ? $locale->text("Select a vendor") : $locale->text("Select a customer"),
+ "nextsub" => "select_cov_internal",
+ "callback_sub" => $callback_sub }));
+
+ $lxdebug->leave_sub();
+}
+
+sub cov_selected {
+ $lxdebug->enter_sub();
+ my ($new_id, $new_name) = @_;
+
+ my $field = $form->{"check_cov_field"};
+ delete($form->{"check_cov_field"});
+
+ $form->{"f_${field}_id"} = $new_id;
+ $form->{"f_${field}"} = $new_name;
+ $form->{"f_old_${field}"} = $new_name;
+
+ &{ $form->{"cov_selected_nextsub"} }();
+
+ $lxdebug->leave_sub();
+}
+
+sub select_cov_internal {
+ $lxdebug->enter_sub();
+
+ my ($new_id, $new_name, $callback_sub);
+
+ my $new_id = $form->{"new_id_" . $form->{"selection"}};
+ my $new_name = $form->{"new_name_" . $form->{"selection"}};
+ my $callback_sub = $form->{"callback_sub"};
+
+ restore_form($form->{"old_form"});
+
+ &{ $callback_sub }($new_id, $new_name);
+
+ $lxdebug->leave_sub();
+}
+
sub select_part {
$lxdebug->enter_sub();
$lxdebug->leave_sub();
}
+sub cov_selection_internal {
+ $lxdebug->enter_sub();
+
+ $order_by = "name";
+ $order_by = $form->{"order_by"} if (defined($form->{"order_by"}));
+ $order_dir = 1;
+ $order_dir = $form->{"order_dir"} if (defined($form->{"order_dir"}));
+
+ my $type = $form->{"is_vendor"} ? $locale->text("vendor") : $locale->text("customer");
+
+ $covs = Common->retrieve_customers_or_vendors(\%myconfig, $form, $order_by, $order_dir, $form->{"is_vendor"}, $form->{"allow_both"});
+ map({ $covs->[$_]->{"selected"} = $_ ? 0 : 1; } (0..$#{$covs}));
+ if (0 == scalar(@{$covs})) {
+ $form->show_generic_information(sprintf($locale->text("No %s was found matching the search parameters."), $type));
+ } elsif (1 == scalar(@{$covs})) {
+ $onload = "cov_selected('1')";
+ }
+
+ my $callback = "$form->{script}?action=cov_selection_internal&";
+ map({ $callback .= "$_=" . $form->escape($form->{$_}) . "&" }
+ (qw(login path password name input_name input_id is_vendor allow_both), grep({ /^[fl]_/ } keys %$form)));
+
+ my @header_sort = qw(name address contact);
+ my %header_title = ( "name" => $locale->text("Name"),
+ "address" => $locale->text("Address"),
+ "contact" => $locale->text("Contact"),
+ );
+
+ my @header =
+ map(+{ "column_title" => $header_title{$_},
+ "column" => $_,
+ "callback" => $callback . "order_by=${_}&order_dir=" . ($order_by eq $_ ? 1 - $order_dir : $order_dir),
+ },
+ @header_sort);
+
+ foreach my $cov (@{ $covs }) {
+ $cov->{address} = "$cov->{street}, $cov->{zipcode} $cov->{city}";
+ $cov->{address} =~ s{^,}{}x;
+ $cov->{address} =~ s{\ +}{\ }gx;
+
+ $cov->{contact} = join " ", map { $cov->{$_} } qw(cp_greeting cp_title cp_givenname cp_name);
+ $cov->{contact} =~ s{\ +}{\ }gx;
+ }
+
+ $form->{"title"} = $form->{is_vendor} ? $locale->text("Select a vendor") : $locale->text("Select a customer");
+ $form->header();
+ print($form->parse_html_template("generic/cov_selection", { "HEADER" => \@header,
+ "COVS" => $covs,
+ "onload" => $onload }));
+
+ $lxdebug->leave_sub();
+}
+
+sub check_cov2 {
+ $lxdebug->enter_sub();
+
+ my $callback_sub = shift;
+
+ if (!$form->{customer}
+ || ($form->{customer} eq $form->{old_customer})
+ || ("$form->{customer}--$form->{customer_id}" eq $form->{old_customer})) {
+ $lxdebug->leave_sub();
+ return;
+ }
+
+ $old_name = $form->{name};
+ $form->{name} = $form->{customer};
+
+ my $covs = Common->retrieve_customers_or_vendors(\%myconfig, $form, "name", "ASC", 0, 1);
+
+ $form->{name} = $old_name;
+
+ if (0 == scalar @{$covs}) {
+ $form->show_generic_information(sprintf($locale->text("No %s was found matching the search parameters."), $type));
+
+ } elsif (1 == scalar @{ $covs }) {
+ $form->{customer} = $covs->[0]->{name};
+ $form->{old_customer} = $covs->[0]->{name};
+ $form->{customer_id} = $covs->[0]->{id};
+ $form->{customer_is_vendor} = $covs->[0]->{customer_is_vendor};
+
+ } else {
+ $form->{new_cov_nextsub} = $callback_sub;
+
+ delete @{$form}{qw(customer customer_is_vendor customer_id old_customer action)};
+ my @hidden = map { { 'key' => $_, 'value' => $form->{$_} } } grep { '' eq ref $form->{$_} } keys %{ $form };
+
+ foreach my $cov (@{ $covs }) {
+ $cov->{address} = "$cov->{street}, $cov->{zipcode} $cov->{city}";
+ $cov->{address} =~ s{^,}{}x;
+ $cov->{address} =~ s{\ +}{\ }gx;
+
+ $cov->{contact} = join " ", map { $cov->{$_} } qw(cp_greeting cp_title cp_givenname cp_name);
+ $cov->{contact} =~ s{\ +}{\ }gx;
+ }
+
+ $form->{title} = $locale->text("Select a vendor or customer");
+ $form->header();
+
+ print $form->parse_html_template("generic/cov_selection2", { "COVS" => $covs, "HIDDEN" => \@hidden });
+
+ exit 0;
+ }
+
+ $lxdebug->leave_sub();
+}
+
+sub cov_selected2 {
+ $lxdebug->enter_sub();
+
+ if (!$form->{new_cov} || !$form->{new_cov_nextsub}) {
+ $form->error($locale->text('No customer has been selected.'));
+ }
+
+ map { $form->{$_} = $form->{"new_cov_${_}_$form->{new_cov}"} } qw(customer customer_id customer_is_vendor);
+ $form->{old_customer} = $form->{customer};
+
+ &{ $form->{new_cov_nextsub} }();
+
+ $lxdebug->leave_sub();
+}
+
+sub select_item_selection_internal {
+ $lxdebug->enter_sub();
+
+ @items = SystemBrace->retrieve_select_items(\%myconfig, $form, $form->{"select_item_type"});
+ if (0 == scalar(@items)) {
+ $form->show_generic_information($locale->text("No item was found."));
+ } elsif (1 == scalar(@items)) {
+ $onload = "select_item_selected('1')";
+ }
+
+ $form->{"title"} = $locale->text("Select an entry");
+ $form->header();
+ print($form->parse_html_template("generic/select_item_selection", { "SELECT_ITEMS" => \@items,
+ "onload" => $onload }));
+
+ $lxdebug->leave_sub();
+}
1;
# Eintrag fuer Version 2.2.0 geaendert #
# neue Optik im Rechnungsformular #
########################################
-sub display_row {
- $lxdebug->enter_sub();
- my $numrows = shift;
-
- my $is_sales =
- (substr($form->{type}, 0, 6) eq "sales_")
- || (($form->{type} eq "invoice") && ($form->{script} eq "is.pl"))
- || ($form->{type} eq 'credit_note');
-
- if ($lizenzen && $form->{vc} eq "customer") {
- if ($form->{type} =~ /sales_order/) {
- @column_index = (runningnumber, partnumber, description, ship, qty);
- } elsif ($form->{type} =~ /sales_quotation/) {
- @column_index = (runningnumber, partnumber, description, qty);
- } else {
- @column_index = (runningnumber, partnumber, description, qty);
- }
- } else {
- if ( ($form->{type} =~ /purchase_order/)
- || ($form->{type} =~ /sales_order/)) {
- @column_index = (runningnumber, partnumber, description, ship, qty);
- } else {
- @column_index = (runningnumber, partnumber, description, qty);
- }
- }
-############## ENDE Neueintrag ##################
-
- my $dimension_units = AM->retrieve_units(\%myconfig, $form, "dimension");
- my $service_units = AM->retrieve_units(\%myconfig, $form, "service");
- my $all_units = AM->retrieve_units(\%myconfig, $form);
-
- my %price_factors = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} };
-
- push @column_index, qw(unit);
-
- #for pricegroups column
- if ( $form->{type} =~ (/sales_quotation/)
- or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/))
- or (($form->{level} eq undef) and ($form->{type} =~ /invoice/))
- or ($form->{type} =~ /sales_order/)) {
- push @column_index, qw(sellprice_pg);
- }
-
- push @column_index, qw(sellprice);
-
- if ($form->{vc} eq 'customer') {
- push @column_index, qw(discount);
- }
-
- push @column_index, "linetotal";
-
- my $colspan = $#column_index + 1;
-
- $form->{invsubtotal} = 0;
- map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
-
-########################################
- # Eintrag fuer Version 2.2.0 geaendert #
- # neue Optik im Rechnungsformular #
-########################################
- $column_data{runningnumber} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('No.') . qq|</th>|;
- $column_data{partnumber} = qq|<th align="left" nowrap width="12%" class="listheading">| . $locale->text('Number') . qq|</th>|;
- $column_data{description} = qq|<th align="left" nowrap width="30%" class="listheading">| . $locale->text('Part Description') . qq|</th>|;
- if ($form->{"type"} eq "purchase_order") {
- $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship rcvd') . qq|</th>|;
- } else {
- $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship') . qq|</th>|;
- }
- $column_data{qty} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Qty') . qq|</th>|;
- $column_data{unit} = qq|<th align="left" nowrap width="20%" class="listheading">| . $locale->text('Unit') . qq|</th>|;
- $column_data{license} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('License') . qq|</th>|;
- $column_data{serialnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Serial No.') . qq|</th>|;
- $column_data{projectnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Project') . qq|</th>|;
- $column_data{sellprice} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Price') . qq|</th>|;
- $column_data{sellprice_pg} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Pricegroup') . qq|</th>|;
- $column_data{discount} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Discount') . qq|</th>|;
- $column_data{linetotal} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Extended') . qq|</th>|;
- $column_data{bin} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Bin') . qq|</th>|;
-############## ENDE Neueintrag ##################
-
- $myconfig{"show_form_details"} = 1
- unless (defined($myconfig{"show_form_details"}));
- $form->{"show_details"} = $myconfig{"show_form_details"}
- unless (defined($form->{"show_details"}));
- $form->{"show_details"} = $form->{"show_details"} ? 1 : 0;
- my $show_details_new = 1 - $form->{"show_details"};
- my $show_details_checked = $form->{"show_details"} ? "checked" : "";
-
- print qq|
- <tr>
- <td>| . $cgi->hidden("-name" => "show_details", "-value" => $form->{show_details}) . qq|
- <input type="checkbox" id="cb_show_details" onclick="show_form_details($show_details_new);" $show_details_checked>
- <label for="cb_show_details">| . $locale->text("Show details") . qq|</label><br>
- <table width="100%">
- <tr class="listheading">|;
-
- map { print "\n$column_data{$_}" } @column_index;
-
- print qq|
- </tr>
-|;
-
- $runningnumber = $locale->text('No.');
- $deliverydate = $locale->text('Delivery Date');
- $serialnumber = $locale->text('Serial No.');
- $projectnumber = $locale->text('Project');
- $partsgroup = $locale->text('Group');
- $reqdate = $locale->text('Reqdate');
-
- $delvar = 'deliverydate';
-
- if ($form->{type} =~ /_order$/ || $form->{type} =~ /_quotation$/) {
- $deliverydate = $locale->text('Required by');
- $delvar = 'reqdate';
- }
-
- $form->{marge_total} = 0;
- $form->{sellprice_total} = 0;
- $form->{lastcost_total} = 0;
- my %projectnumber_labels = ();
- my @projectnumber_values = ("");
- foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
- push(@projectnumber_values, $item->{"id"});
- $projectnumber_labels{$item->{"id"}} = $item->{"projectnumber"};
- }
-
- for $i (1 .. $numrows) {
-
- # undo formatting
- map {
- $form->{"${_}_$i"} =
- $form->parse_amount(\%myconfig, $form->{"${_}_$i"})
- } qw(qty ship discount sellprice price_new price_old) unless ($form->{simple_save});
-
- if (!$form->{"unit_old_$i"}) {
- # Neue Ware aus der Datenbank. In diesem Fall ist unit_$i die
- # Einheit, wie sie in den Stammdaten hinterlegt wurde.
- # Es sollte also angenommen werden, dass diese ausgewaehlt war.
- $form->{"unit_old_$i"} = $form->{"unit_$i"};
- }
-
- # Die zuletzt ausgewaehlte mit der aktuell ausgewaehlten Einheit
- # vergleichen und bei Unterschied den Preis entsprechend umrechnen.
- $form->{"selected_unit_$i"} = $form->{"unit_$i"} unless ($form->{"selected_unit_$i"});
-
- my $check_units = $form->{"inventory_accno_$i"} ? $dimension_units : $service_units;
- if (!$check_units->{$form->{"selected_unit_$i"}} ||
- ($check_units->{$form->{"selected_unit_$i"}}->{"base_unit"} ne
- $all_units->{$form->{"unit_old_$i"}}->{"base_unit"})) {
- # Die ausgewaehlte Einheit ist fuer diesen Artikel nicht gueltig
- # (z.B. Dimensionseinheit war ausgewaehlt, es handelt sich aber
- # um eine Dienstleistung). Dann keinerlei Umrechnung vornehmen.
- $form->{"unit_old_$i"} = $form->{"selected_unit_$i"} = $form->{"unit_$i"};
- }
- if ((!$form->{"prices_$i"}) || ($form->{"new_pricegroup_$i"} == $form->{"old_pricegroup_$i"})) {
- if ($form->{"unit_old_$i"} ne $form->{"selected_unit_$i"}) {
- my $basefactor = 1;
- if (defined($all_units->{$form->{"unit_old_$i"}}->{"factor"}) &&
- $all_units->{$form->{"unit_old_$i"}}->{"factor"}) {
- $basefactor = $all_units->{$form->{"selected_unit_$i"}}->{"factor"} /
- $all_units->{$form->{"unit_old_$i"}}->{"factor"};
- }
- $form->{"sellprice_$i"} *= $basefactor;
- $form->{"unit_old_$i"} = $form->{"selected_unit_$i"};
- }
- }
-
- ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
- $decimalplaces = max length($dec), 2;
-
- $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || 1;
- $discount = (100 - $form->{"discount_$i"} * 1) / 100;
-
- $linetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"} * $discount / $price_factor, $decimalplaces);
-
- my $real_sellprice = $form->{"sellprice_$i"} * $discount / $price_factor;
-
- # marge calculations
- my ($marge_font_start, $marge_font_end);
-
- $form->{"lastcost_$i"} *= 1;
-
- $marge_price_factor = $form->{"marge_price_factor_$i"} * 1 || 1;
-
- if ($real_sellprice && ($form->{"qty_$i"} * 1)) {
- $form->{"marge_percent_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * 100 / $real_sellprice;
- $myconfig{"marge_percent_warn"} = 15 unless (defined($myconfig{"marge_percent_warn"}));
-
- if ($form->{"id_$i"} &&
- ($form->{"marge_percent_$i"} < (1 * $myconfig{"marge_percent_warn"}))) {
- $marge_font_start = "<font color=\"#ff0000\">";
- $marge_font_end = "</font>";
- }
-
- } else {
- $form->{"marge_percent_$i"} = 0;
- }
-
- my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
- $form->{"marge_total_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
- $form->{"marge_total"} += $form->{"marge_total_$i"};
- $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"} / $marge_price_factor;
- $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
-
- map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_total marge_percent);
-
- # convert " to "
- map { $form->{"${_}_$i"} =~ s/\"/"/g }
- qw(partnumber description unit unit_old);
-
-########################################
- # Eintrag fuer Version 2.2.0 geaendert #
- # neue Optik im Rechnungsformular #
-########################################
- $column_data{runningnumber} =
- qq|<td><input name="runningnumber_$i" size="5" value="$i"></td>|; # HuT
-############## ENDE Neueintrag ##################
-
- $column_data{partnumber} =
- qq|<td><input name="partnumber_$i" size=12 value="$form->{"partnumber_$i"}"></td>|;
-
- if (($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) {
- $column_data{description} =
- qq|<td><textarea name="description_$i" rows="$rows" cols="30" wrap="soft">| . H($form->{"description_$i"}) . qq|</textarea><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
- } else {
- $column_data{description} =
- qq|<td><input name="description_$i" size="30" value="| . $form->quote($form->{"description_$i"}) . qq|"><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
- }
-
- (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/);
- $qty_dec = length $qty_dec;
-
- $column_data{qty} =
- qq|<td align="right"><input name="qty_$i" size="5" value="|
- . $form->format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec) .qq|">|;
- if ($form->{"formel_$i"}) {
- $column_data{qty} .= qq|<button type="button" onclick="calculate_qty_selection_window('qty_$i','alu_$i', 'formel_$i', $i)">| . $locale->text('*/') . qq|</button>|
- . $cgi->hidden("-name" => "formel_$i", "-value" => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"});
- }
- $column_data{qty} .= qq|</td>|;
- $column_data{ship} =
- qq|<td align="right"><input name="ship_$i" size=5 value="|
- . $form->format_amount(\%myconfig, $form->{"ship_$i"})
- . qq|"></td>|;
-
- my $is_part = $form->{"inventory_accno_$i"};
- my $is_assembly = $form->{"assembly_$i"};
- my $is_assigned = $form->{"id_$i"};
- my $this_unit = $form->{"unit_$i"};
- if ($form->{"selected_unit_$i"} && $this_unit &&
- $all_units->{$form->{"selected_unit_$i"}} && $all_units->{$this_unit} &&
- ($all_units->{$form->{"selected_unit_$i"}}->{"base_unit"} eq $all_units->{$this_unit}->{"base_unit"})) {
- $this_unit = $form->{"selected_unit_$i"};
- } elsif (!$is_assigned ||
- ($is_part && !$this_unit && ($all_units->{$this_unit} && ($all_units->{$this_unit}->{"base_unit"} eq $all_units->{"kg"}->{"base_unit"})))) {
- $this_unit = "kg";
- }
-
- my $price_factor_select;
- if (0 < scalar @{ $form->{ALL_PRICE_FACTORS} }) {
- my @values = ('', map { $_->{id} } @{ $form->{ALL_PRICE_FACTORS} });
- my %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_PRICE_FACTORS} };
-
- $price_factor_select =
- NTI($cgi->popup_menu('-name' => "price_factor_id_$i",
- '-default' => $form->{"price_factor_id_$i"},
- '-values' => \@values,
- '-labels' => \%labels,
- '-style' => 'width:90px'))
- . ' ';
- }
-
- $column_data{"unit"} = "<td>" .
- $price_factor_select .
- AM->unit_select_html($is_part || $is_assembly ? $dimension_units :
- $is_assigned ? $service_units : $all_units,
- "unit_$i", $this_unit,
- $is_assigned ? $form->{"unit_$i"} : undef)
- . "</td>";
-
- # build in drop down list for pricesgroups
- if ($form->{"prices_$i"}) {
- if ($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"}) {
- $price_tmp = $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces);
- } else {
- $price_tmp = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
- }
-
- $column_data{sellprice_pg} =
- qq|<td align="right"><select name="sellprice_pg_$i">$form->{"prices_$i"}</select></td>|;
- $column_data{sellprice} =
- qq|<td><input name="sellprice_$i" size="10" value="$price_tmp" onBlur=\"check_right_number_format(this)\"></td>|;
- } else {
-
- # for last row and report
- # set pricegroup drop down list from report menu
- if ($form->{"sellprice_$i"} != 0) {
- $prices =
- qq|<option value="$form->{"sellprice_$i"}--$form->{"pricegroup_id_$i"}" selected>$form->{"pricegroup_$i"}</option>\n|;
-
- $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
-
- $column_data{sellprice_pg} =
- qq|<td align="right"><select name="sellprice_pg_$i">$prices</select></td>|;
-
- } else {
-
- # for last row
- $column_data{sellprice_pg} = qq|<td align="right"> </td>|;
- }
-
- $column_data{sellprice} =
- qq|<td><input name="sellprice_$i" size="10" onBlur=\"check_right_number_format(this)\" value="|
- . $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
- $decimalplaces)
- . qq|"></td>|;
- }
- $column_data{discount} =
- qq|<td align="right"><input name="discount_$i" size=3 value="|
- . $form->format_amount(\%myconfig, $form->{"discount_$i"})
- . qq|"></td>|;
- $column_data{linetotal} =
- qq|<td align="right">|
- . $form->format_amount(\%myconfig, $linetotal, 2)
- . qq|</td>|;
- $column_data{bin} = qq|<td>$form->{"bin_$i"}</td>|;
-
-########################################
- # Eintrag fuer Version 2.2.0 geaendert #
- # neue Optik im Rechnungsformular #
-########################################
- # if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
- # $column_data{license} = qq|<td><select name="licensenumber_$i">$form->{"lizenzen_$i"}></select></td>|;
- # }
- #
- # if ($form->{type} !~ /_quotation/) {
- # $column_data{serialnr} = qq|<td><input name="serialnumber_$i" size=10 value="$form->{"serialnumber_$i"}"></td>|;
- # }
- #
- # $column_data{projectnr} = qq|<td><input name="projectnumber_$i" size=10 value="$form->{"projectnumber_$i"}"></td>|;
-############## ENDE Neueintrag ##################
- my $j = $i % 2;
- print qq|
-
- <tr valign="top" class="listrow$j">|;
-
- map { print "\n$column_data{$_}" } @column_index;
-
- print("</tr>\n" .
- $cgi->hidden("-name" => "unit_old_$i",
- "-value" => $form->{"selected_unit_$i"})
- . "\n" .
- $cgi->hidden("-name" => "price_new_$i",
- "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"}))
- . "\n");
- map({ print($cgi->hidden("-name" => $_, "-value" => $form->{$_}) . "\n"); }
- ("orderitems_id_$i", "bo_$i", "pricegroup_old_$i", "price_old_$i",
- "id_$i", "inventory_accno_$i", "bin_$i", "partsgroup_$i", "partnotes_$i",
- "income_accno_$i", "expense_accno_$i", "listprice_$i", "assembly_$i",
- "taxaccounts_$i", "ordnumber_$i", "transdate_$i", "cusordnumber_$i",
- "longdescription_$i", "basefactor_$i", "marge_total_$i", "marge_percent_$i", "lastcost_$i",
- "marge_price_factor_$i"));
-
-########################################
- # Eintrag fuer Version 2.2.0 geaendert #
- # neue Optik im Rechnungsformular #
-########################################
-
- my $row_style_attr =
- 'style="display:none;"' if (!$form->{"show_details"});
-
- # print second row
- print qq|
- <tr class="listrow$j" $row_style_attr>
- <td colspan="$colspan">
-|;
- if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
- my $selected = $form->{"licensenumber_$i"};
- my $lizenzen_quoted;
- $form->{"lizenzen_$i"} =~ s/ selected//g;
- $form->{"lizenzen_$i"} =~
- s/value="${selected}"\>/value="${selected}" selected\>/;
- $lizenzen_quoted = $form->{"lizenzen_$i"};
- $lizenzen_quoted =~ s/\"/"/g;
- print qq|
- <b>Lizenz\#</b> <select name="licensenumber_$i" size="1">
- $form->{"lizenzen_$i"}
- </select>
- <input type="hidden" name="lizenzen_$i" value="${lizenzen_quoted}">
-|;
- }
- if ($form->{type} !~ /_quotation/) {
- print qq|
- <b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">|;
- }
-
- print qq|<b>$projectnumber</b> | .
- NTI($cgi->popup_menu('-name' => "project_id_$i",
- '-values' => \@projectnumber_values,
- '-labels' => \%projectnumber_labels,
- '-default' => $form->{"project_id_$i"}));
-
- if ($form->{type} eq 'invoice' or $form->{type} =~ /order/) {
- my $reqdate_term =
- ($form->{type} eq 'invoice')
- ? 'deliverydate'
- : 'reqdate'; # invoice uses a different term for the same thing.
- print qq|
- <b>${$reqdate_term}</b> <input name="${reqdate_term}_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"${reqdate_term}_$i"}">
-|;
- }
- my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : "";
- print qq|
- <b>|.$locale->text('Subtotal').qq|</b> <input type="checkbox" name="subtotal_$i" value="1" $subtotalchecked>
-|;
-
- if ($form->{"id_$i"} && $is_sales) {
- my $marge_price_factor;
-
- $form->{"marge_price_factor_$i"} *= 1;
-
- if ($form->{"marge_price_factor_$i"} && (1 != $form->{"marge_price_factor_$i"})) {
- $marge_price_factor = '/' . $form->format_amount(\%myconfig, $form->{"marge_price_factor_$i"});
- }
-
- print qq|
- ${marge_font_start}<b>| . $locale->text('Ertrag') . qq|</b> $form->{"marge_total_$i"} $form->{"marge_percent_$i"} % ${marge_font_end}|;
- }
- print qq|
- <b>| . $locale->text('LP') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq|
- <b>| . $locale->text('EK') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor;
-
-
- print qq|
- </td>
- </tr>
-|;
-
-############## ENDE Neueintrag ##################
-
- map { $form->{"${_}_base"} += $linetotal }
- (split(/ /, $form->{"taxaccounts_$i"}));
-
- $form->{invsubtotal} += $linetotal;
- }
-
- print qq|
- </table>
- </td>
- </tr>
-|;
-
- if (0 != ($form->{sellprice_total} * 1)) {
- $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100;
- }
-
- $lxdebug->leave_sub();
-}
+#sub display_row {
+# $lxdebug->enter_sub();
+# my $numrows = shift;
+#
+# my $is_sales =
+# (substr($form->{type}, 0, 6) eq "sales_")
+# || (($form->{type} eq "invoice") && ($form->{script} eq "is.pl"))
+# || ($form->{type} eq 'credit_note');
+#
+# if ($lizenzen && $form->{vc} eq "customer") {
+# if ($form->{type} =~ /sales_order/) {
+# @column_index = (runningnumber, partnumber, description, ship, qty);
+# } elsif ($form->{type} =~ /sales_quotation/) {
+# @column_index = (runningnumber, partnumber, description, qty);
+# } else {
+# @column_index = (runningnumber, partnumber, description, qty);
+# }
+# } else {
+# if ( ($form->{type} =~ /purchase_order/)
+# || ($form->{type} =~ /sales_order/)) {
+# @column_index = (runningnumber, partnumber, description, ship, qty);
+# } else {
+# @column_index = (runningnumber, partnumber, description, qty);
+# }
+# }
+############### ENDE Neueintrag ##################
+#
+# my $dimension_units = AM->retrieve_units(\%myconfig, $form, "dimension");
+# my $service_units = AM->retrieve_units(\%myconfig, $form, "service");
+# my $all_units = AM->retrieve_units(\%myconfig, $form);
+#
+# my %price_factors = map { $_->{id} => $_->{factor} } @{ $form->{ALL_PRICE_FACTORS} };
+#
+# push @column_index, qw(unit);
+#
+# #for pricegroups column
+# if ( $form->{type} =~ (/sales_quotation/)
+# or (($form->{level} =~ /Sales/) and ($form->{type} =~ /invoice/))
+# or (($form->{level} eq undef) and ($form->{type} =~ /invoice/))
+# or ($form->{type} =~ /sales_order/)) {
+# push @column_index, qw(sellprice_pg);
+# }
+#
+# push @column_index, qw(sellprice);
+#
+# if ($form->{vc} eq 'customer') {
+# push @column_index, qw(discount);
+# }
+#
+# push @column_index, "linetotal";
+#
+# my $colspan = $#column_index + 1;
+#
+# $form->{invsubtotal} = 0;
+# map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
+#
+#########################################
+# # Eintrag fuer Version 2.2.0 geaendert #
+# # neue Optik im Rechnungsformular #
+#########################################
+# $column_data{runningnumber} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('No.') . qq|</th>|;
+# $column_data{partnumber} = qq|<th align="left" nowrap width="12%" class="listheading">| . $locale->text('Number') . qq|</th>|;
+# $column_data{description} = qq|<th align="left" nowrap width="30%" class="listheading">| . $locale->text('Part Description') . qq|</th>|;
+# if ($form->{"type"} eq "purchase_order") {
+# $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship rcvd') . qq|</th>|;
+# } else {
+# $column_data{ship} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Ship') . qq|</th>|;
+# }
+# $column_data{qty} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Qty') . qq|</th>|;
+# $column_data{unit} = qq|<th align="left" nowrap width="20%" class="listheading">| . $locale->text('Unit') . qq|</th>|;
+# $column_data{license} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('License') . qq|</th>|;
+# $column_data{serialnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Serial No.') . qq|</th>|;
+# $column_data{projectnr} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Project') . qq|</th>|;
+# $column_data{sellprice} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Price') . qq|</th>|;
+# $column_data{sellprice_pg} = qq|<th align="left" nowrap width="15%" class="listheading">| . $locale->text('Pricegroup') . qq|</th>|;
+# $column_data{discount} = qq|<th align="left" nowrap width="5%" class="listheading">| . $locale->text('Discount') . qq|</th>|;
+# $column_data{linetotal} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Extended') . qq|</th>|;
+# $column_data{bin} = qq|<th align="left" nowrap width="10%" class="listheading">| . $locale->text('Bin') . qq|</th>|;
+############### ENDE Neueintrag ##################
+#
+# $myconfig{"show_form_details"} = 1
+# unless (defined($myconfig{"show_form_details"}));
+# $form->{"show_details"} = $myconfig{"show_form_details"}
+# unless (defined($form->{"show_details"}));
+# $form->{"show_details"} = $form->{"show_details"} ? 1 : 0;
+# my $show_details_new = 1 - $form->{"show_details"};
+# my $show_details_checked = $form->{"show_details"} ? "checked" : "";
+#
+# print qq|
+# <tr>
+# <td>| . $cgi->hidden("-name" => "show_details", "-value" => $form->{show_details}) . qq|
+# <input type="checkbox" id="cb_show_details" onclick="show_form_details($show_details_new);" $show_details_checked>
+# <label for="cb_show_details">| . $locale->text("Show details") . qq|</label><br>
+# <table width="100%">
+# <tr class="listheading">|;
+#
+# map { print "\n$column_data{$_}" } @column_index;
+#
+# print qq|
+# </tr>
+#|;
+#
+# $runningnumber = $locale->text('No.');
+# $deliverydate = $locale->text('Delivery Date');
+# $serialnumber = $locale->text('Serial No.');
+# $projectnumber = $locale->text('Project');
+# $partsgroup = $locale->text('Group');
+# $reqdate = $locale->text('Reqdate');
+#
+# $delvar = 'deliverydate';
+#
+# if ($form->{type} =~ /_order$/ || $form->{type} =~ /_quotation$/) {
+# $deliverydate = $locale->text('Required by');
+# $delvar = 'reqdate';
+# }
+#
+# $form->{marge_total} = 0;
+# $form->{sellprice_total} = 0;
+# $form->{lastcost_total} = 0;
+# my %projectnumber_labels = ();
+# my @projectnumber_values = ("");
+# foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
+# push(@projectnumber_values, $item->{"id"});
+# $projectnumber_labels{$item->{"id"}} = $item->{"projectnumber"};
+# }
+#
+# for $i (1 .. $numrows) {
+#
+# # undo formatting
+# map {
+# $form->{"${_}_$i"} =
+# $form->parse_amount(\%myconfig, $form->{"${_}_$i"})
+# } qw(qty ship discount sellprice price_new price_old) unless ($form->{simple_save});
+#
+# if (!$form->{"unit_old_$i"}) {
+# # Neue Ware aus der Datenbank. In diesem Fall ist unit_$i die
+# # Einheit, wie sie in den Stammdaten hinterlegt wurde.
+# # Es sollte also angenommen werden, dass diese ausgewaehlt war.
+# $form->{"unit_old_$i"} = $form->{"unit_$i"};
+# }
+#
+# # Die zuletzt ausgewaehlte mit der aktuell ausgewaehlten Einheit
+# # vergleichen und bei Unterschied den Preis entsprechend umrechnen.
+# $form->{"selected_unit_$i"} = $form->{"unit_$i"} unless ($form->{"selected_unit_$i"});
+#
+# my $check_units = $form->{"inventory_accno_$i"} ? $dimension_units : $service_units;
+# if (!$check_units->{$form->{"selected_unit_$i"}} ||
+# ($check_units->{$form->{"selected_unit_$i"}}->{"base_unit"} ne
+# $all_units->{$form->{"unit_old_$i"}}->{"base_unit"})) {
+# # Die ausgewaehlte Einheit ist fuer diesen Artikel nicht gueltig
+# # (z.B. Dimensionseinheit war ausgewaehlt, es handelt sich aber
+# # um eine Dienstleistung). Dann keinerlei Umrechnung vornehmen.
+# $form->{"unit_old_$i"} = $form->{"selected_unit_$i"} = $form->{"unit_$i"};
+# }
+# if ((!$form->{"prices_$i"}) || ($form->{"new_pricegroup_$i"} == $form->{"old_pricegroup_$i"})) {
+# if ($form->{"unit_old_$i"} ne $form->{"selected_unit_$i"}) {
+# my $basefactor = 1;
+# if (defined($all_units->{$form->{"unit_old_$i"}}->{"factor"}) &&
+# $all_units->{$form->{"unit_old_$i"}}->{"factor"}) {
+# $basefactor = $all_units->{$form->{"selected_unit_$i"}}->{"factor"} /
+# $all_units->{$form->{"unit_old_$i"}}->{"factor"};
+# }
+# $form->{"sellprice_$i"} *= $basefactor;
+# $form->{"unit_old_$i"} = $form->{"selected_unit_$i"};
+# }
+# }
+#
+# ($dec) = ($form->{"sellprice_$i"} =~ /\.(\d+)/);
+# $decimalplaces = max length($dec), 2;
+#
+# $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || 1;
+# $discount = (100 - $form->{"discount_$i"} * 1) / 100;
+#
+# $linetotal = $form->round_amount($form->{"sellprice_$i"} * $form->{"qty_$i"} * $discount / $price_factor, $decimalplaces);
+#
+# my $real_sellprice = $form->{"sellprice_$i"} * $discount / $price_factor;
+#
+# # marge calculations
+# my ($marge_font_start, $marge_font_end);
+#
+# $form->{"lastcost_$i"} *= 1;
+#
+# $marge_price_factor = $form->{"marge_price_factor_$i"} * 1 || 1;
+#
+# if ($real_sellprice && ($form->{"qty_$i"} * 1)) {
+# $form->{"marge_percent_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * 100 / $real_sellprice;
+# $myconfig{"marge_percent_warn"} = 15 unless (defined($myconfig{"marge_percent_warn"}));
+#
+# if ($form->{"id_$i"} &&
+# ($form->{"marge_percent_$i"} < (1 * $myconfig{"marge_percent_warn"}))) {
+# $marge_font_start = "<font color=\"#ff0000\">";
+# $marge_font_end = "</font>";
+# }
+#
+# } else {
+# $form->{"marge_percent_$i"} = 0;
+# }
+#
+# my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
+# $form->{"marge_total_$i"} = ($real_sellprice - $form->{"lastcost_$i"} / $marge_price_factor) * $form->{"qty_$i"} * $marge_adjust_credit_note;
+# $form->{"marge_total"} += $form->{"marge_total_$i"};
+# $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"} / $marge_price_factor;
+# $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
+#
+# map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_total marge_percent);
+#
+# # convert " to "
+# map { $form->{"${_}_$i"} =~ s/\"/"/g }
+# qw(partnumber description unit unit_old);
+#
+#########################################
+# # Eintrag fuer Version 2.2.0 geaendert #
+# # neue Optik im Rechnungsformular #
+#########################################
+# $column_data{runningnumber} =
+# qq|<td><input name="runningnumber_$i" size="5" value="$i"></td>|; # HuT
+############### ENDE Neueintrag ##################
+#
+# $column_data{partnumber} =
+# qq|<td><input name="partnumber_$i" size=12 value="$form->{"partnumber_$i"}"></td>|;
+#
+# if (($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) {
+# $column_data{description} =
+# qq|<td><textarea name="description_$i" rows="$rows" cols="30" wrap="soft">| . H($form->{"description_$i"}) . qq|</textarea><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
+# } else {
+# $column_data{description} =
+# qq|<td><input name="description_$i" size="30" value="| . $form->quote($form->{"description_$i"}) . qq|"><button type="button" onclick="set_longdescription_window('longdescription_$i')">| . $locale->text('L') . qq|</button></td>|;
+# }
+#
+# (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/);
+# $qty_dec = length $qty_dec;
+#
+# $column_data{qty} =
+# qq|<td align="right"><input name="qty_$i" size="5" value="|
+# . $form->format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec) .qq|">|;
+# if ($form->{"formel_$i"}) {
+# $column_data{qty} .= qq|<button type="button" onclick="calculate_qty_selection_window('qty_$i','alu_$i', 'formel_$i', $i)">| . $locale->text('*/') . qq|</button>|
+# . $cgi->hidden("-name" => "formel_$i", "-value" => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"});
+# }
+# $column_data{qty} .= qq|</td>|;
+# $column_data{ship} =
+# qq|<td align="right"><input name="ship_$i" size=5 value="|
+# . $form->format_amount(\%myconfig, $form->{"ship_$i"})
+# . qq|"></td>|;
+#
+# my $is_part = $form->{"inventory_accno_$i"};
+# my $is_assembly = $form->{"assembly_$i"};
+# my $is_assigned = $form->{"id_$i"};
+# my $this_unit = $form->{"unit_$i"};
+# if ($form->{"selected_unit_$i"} && $this_unit &&
+# $all_units->{$form->{"selected_unit_$i"}} && $all_units->{$this_unit} &&
+# ($all_units->{$form->{"selected_unit_$i"}}->{"base_unit"} eq $all_units->{$this_unit}->{"base_unit"})) {
+# $this_unit = $form->{"selected_unit_$i"};
+# } elsif (!$is_assigned ||
+# ($is_part && !$this_unit && ($all_units->{$this_unit} && ($all_units->{$this_unit}->{"base_unit"} eq $all_units->{"kg"}->{"base_unit"})))) {
+# $this_unit = "kg";
+# }
+#
+# my $price_factor_select;
+# if (0 < scalar @{ $form->{ALL_PRICE_FACTORS} }) {
+# my @values = ('', map { $_->{id} } @{ $form->{ALL_PRICE_FACTORS} });
+# my %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_PRICE_FACTORS} };
+#
+# $price_factor_select =
+# NTI($cgi->popup_menu('-name' => "price_factor_id_$i",
+# '-default' => $form->{"price_factor_id_$i"},
+# '-values' => \@values,
+# '-labels' => \%labels,
+# '-style' => 'width:90px'))
+# . ' ';
+# }
+#
+# $column_data{"unit"} = "<td>" .
+# $price_factor_select .
+# AM->unit_select_html($is_part || $is_assembly ? $dimension_units :
+# $is_assigned ? $service_units : $all_units,
+# "unit_$i", $this_unit,
+# $is_assigned ? $form->{"unit_$i"} : undef)
+# . "</td>";
+#
+# # build in drop down list for pricesgroups
+# if ($form->{"prices_$i"}) {
+# if ($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"}) {
+# $price_tmp = $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces);
+# } else {
+# $price_tmp = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+# }
+#
+# $column_data{sellprice_pg} =
+# qq|<td align="right"><select name="sellprice_pg_$i">$form->{"prices_$i"}</select></td>|;
+# $column_data{sellprice} =
+# qq|<td><input name="sellprice_$i" size="10" value="$price_tmp" onBlur=\"check_right_number_format(this)\"></td>|;
+# } else {
+#
+# # for last row and report
+# # set pricegroup drop down list from report menu
+# if ($form->{"sellprice_$i"} != 0) {
+# $prices =
+# qq|<option value="$form->{"sellprice_$i"}--$form->{"pricegroup_id_$i"}" selected>$form->{"pricegroup_$i"}</option>\n|;
+#
+# $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
+#
+# $column_data{sellprice_pg} =
+# qq|<td align="right"><select name="sellprice_pg_$i">$prices</select></td>|;
+#
+# } else {
+#
+# # for last row
+# $column_data{sellprice_pg} = qq|<td align="right"> </td>|;
+# }
+#
+# $column_data{sellprice} =
+# qq|<td><input name="sellprice_$i" size="10" onBlur=\"check_right_number_format(this)\" value="|
+# . $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
+# $decimalplaces)
+# . qq|"></td>|;
+# }
+# $column_data{discount} =
+# qq|<td align="right"><input name="discount_$i" size=3 value="|
+# . $form->format_amount(\%myconfig, $form->{"discount_$i"})
+# . qq|"></td>|;
+# $column_data{linetotal} =
+# qq|<td align="right">|
+# . $form->format_amount(\%myconfig, $linetotal, 2)
+# . qq|</td>|;
+# $column_data{bin} = qq|<td>$form->{"bin_$i"}</td>|;
+#
+#########################################
+# # Eintrag fuer Version 2.2.0 geaendert #
+# # neue Optik im Rechnungsformular #
+#########################################
+# # if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
+# # $column_data{license} = qq|<td><select name="licensenumber_$i">$form->{"lizenzen_$i"}></select></td>|;
+# # }
+# #
+# # if ($form->{type} !~ /_quotation/) {
+# # $column_data{serialnr} = qq|<td><input name="serialnumber_$i" size=10 value="$form->{"serialnumber_$i"}"></td>|;
+# # }
+# #
+# # $column_data{projectnr} = qq|<td><input name="projectnumber_$i" size=10 value="$form->{"projectnumber_$i"}"></td>|;
+############### ENDE Neueintrag ##################
+# my $j = $i % 2;
+# print qq|
+#
+# <tr valign="top" class="listrow$j">|;
+#
+# map { print "\n$column_data{$_}" } @column_index;
+#
+# print("</tr>\n" .
+# $cgi->hidden("-name" => "unit_old_$i",
+# "-value" => $form->{"selected_unit_$i"})
+# . "\n" .
+# $cgi->hidden("-name" => "price_new_$i",
+# "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"}))
+# . "\n");
+# map({ print($cgi->hidden("-name" => $_, "-value" => $form->{$_}) . "\n"); }
+# ("orderitems_id_$i", "bo_$i", "pricegroup_old_$i", "price_old_$i",
+# "id_$i", "inventory_accno_$i", "bin_$i", "partsgroup_$i", "partnotes_$i",
+# "income_accno_$i", "expense_accno_$i", "listprice_$i", "assembly_$i",
+# "taxaccounts_$i", "ordnumber_$i", "transdate_$i", "cusordnumber_$i",
+# "longdescription_$i", "basefactor_$i", "marge_total_$i", "marge_percent_$i", "lastcost_$i",
+# "marge_price_factor_$i"));
+#
+#########################################
+# # Eintrag fuer Version 2.2.0 geaendert #
+# # neue Optik im Rechnungsformular #
+#########################################
+#
+# my $row_style_attr =
+# 'style="display:none;"' if (!$form->{"show_details"});
+#
+# # print second row
+# print qq|
+# <tr class="listrow$j" $row_style_attr>
+# <td colspan="$colspan">
+#|;
+# if ($lizenzen && $form->{type} eq "invoice" && $form->{vc} eq "customer") {
+# my $selected = $form->{"licensenumber_$i"};
+# my $lizenzen_quoted;
+# $form->{"lizenzen_$i"} =~ s/ selected//g;
+# $form->{"lizenzen_$i"} =~
+# s/value="${selected}"\>/value="${selected}" selected\>/;
+# $lizenzen_quoted = $form->{"lizenzen_$i"};
+# $lizenzen_quoted =~ s/\"/"/g;
+# print qq|
+# <b>Lizenz\#</b> <select name="licensenumber_$i" size="1">
+# $form->{"lizenzen_$i"}
+# </select>
+# <input type="hidden" name="lizenzen_$i" value="${lizenzen_quoted}">
+#|;
+# }
+# if ($form->{type} !~ /_quotation/) {
+# print qq|
+# <b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">|;
+# }
+#
+# print qq|<b>$projectnumber</b> | .
+# NTI($cgi->popup_menu('-name' => "project_id_$i",
+# '-values' => \@projectnumber_values,
+# '-labels' => \%projectnumber_labels,
+# '-default' => $form->{"project_id_$i"}));
+#
+# if ($form->{type} eq 'invoice' or $form->{type} =~ /order/) {
+# my $reqdate_term =
+# ($form->{type} eq 'invoice')
+# ? 'deliverydate'
+# : 'reqdate'; # invoice uses a different term for the same thing.
+# print qq|
+# <b>${$reqdate_term}</b> <input name="${reqdate_term}_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"${reqdate_term}_$i"}">
+#|;
+# }
+# my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : "";
+# print qq|
+# <b>|.$locale->text('Subtotal').qq|</b> <input type="checkbox" name="subtotal_$i" value="1" $subtotalchecked>
+#|;
+#
+# if ($form->{"id_$i"} && $is_sales) {
+# my $marge_price_factor;
+#
+# $form->{"marge_price_factor_$i"} *= 1;
+#
+# if ($form->{"marge_price_factor_$i"} && (1 != $form->{"marge_price_factor_$i"})) {
+# $marge_price_factor = '/' . $form->format_amount(\%myconfig, $form->{"marge_price_factor_$i"});
+# }
+#
+# print qq|
+# ${marge_font_start}<b>| . $locale->text('Ertrag') . qq|</b> $form->{"marge_total_$i"} $form->{"marge_percent_$i"} % ${marge_font_end}|;
+# }
+# print qq|
+# <b>| . $locale->text('LP') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq|
+# <b>| . $locale->text('EK') . qq|</b> | . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor;
+#
+#
+# print qq|
+# </td>
+# </tr>
+#|;
+#
+############### ENDE Neueintrag ##################
+#
+# map { $form->{"${_}_base"} += $linetotal }
+# (split(/ /, $form->{"taxaccounts_$i"}));
+#
+# $form->{invsubtotal} += $linetotal;
+# }
+#
+# print qq|
+# </table>
+# </td>
+# </tr>
+#|;
+#
+# if (0 != ($form->{sellprice_total} * 1)) {
+# $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100;
+# }
+#
+# $lxdebug->leave_sub();
+#}
sub set_pricegroup {
$lxdebug->enter_sub();
# Eintrag fuer Version 2.2.0 geaendert #
# neue Optik im Rechnungsformular #
########################################
+sub display_row {
+ $lxdebug->enter_sub();
+ my $numrows = shift;
+
+ # column_index
+ my @header_sort = qw(runningnumber partnumber description ship qty unit sellprice_pg sellprice discount linetotal);
+ my @HEADER = (
+ { id => 'runningnumber', width => 5, value => $locale->text('No.'), display => 1, },
+ { id => 'partnumber', width => 12, value => $locale->text('Number'), display => 1, },
+ { id => 'description', width => 30, value => $locale->text('Part Description'), display => 1, },
+ { id => 'ship', width => 5, value => ($form->{type} eq 'purchase_order' ? $locale->text('Ship rcvd') : $locale->text('Ship')),
+ display => $form->{type} =~ /sales_order/ || ($form->{type} =~ /purchase_order/ && !($lizenzen && $form->{vc} eq "customer")) , },
+ { id => 'qty', width => 5, value => $locale->text('Qty'), display => 1, },
+ { id => 'unit', width => 5, value => $locale->text('Unit'), display => 1, },
+ { id => 'license', width => 10, value => $locale->text('License'), display => 0, },
+ { id => 'serialnr', width => 10, value => $locale->text('Serial No.'), display => 0, },
+ { id => 'projectnr', width => 10, value => $locale->text('Project'), display => 0, },
+ { id => 'sellprice', width => 15, value => $locale->text('Price'), display => 1, },
+ { id => 'sellprice_pg', width => 15, value => $locale->text('Pricegroup'), display => $form->{type} =~ /^sales_/, },
+ { id => 'discount', width => 5, value => $locale->text('Discount'), display => $form->{vc} eq 'customer', },
+ { id => 'linetotal', width => 10, value => $locale->text('Extended'), display => 1, },
+ { id => 'bin', width => 10, value => $locale->text('Bin'), display => 0, },
+ );
+ my @column_index = map { $_->{id} } grep { $_->{display} } @HEADER;
+
+ # cache units
+ my $dimension_units = AM->retrieve_units(\%myconfig, $form, "dimension");
+ my $service_units = AM->retrieve_units(\%myconfig, $form, "service");
+ my $all_units = AM->retrieve_units(\%myconfig, $form);
+
+ my $colspan = scalar @column_index;
+
+ $form->{invsubtotal} = 0;
+ map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
+
+ # about details
+ $myconfig{show_form_details} = 1 unless (defined($myconfig{show_form_details}));
+ $form->{show_details} = $myconfig{show_form_details} unless (defined($form->{show_details}));
+ # /about details
+
+ # translations, unused commented out
+# $runningnumber = $locale->text('No.');
+ $deliverydate = $locale->text('Delivery Date');
+ $serialnumber = $locale->text('Serial No.');
+ $projectnumber = $locale->text('Project');
+# $partsgroup = $locale->text('Group');
+ $reqdate = $locale->text('Reqdate');
+ $deliverydate = $locale->text('Required by');
+
+ # special alignings
+ my %align = map { $_ => 'right' } qw(qty ship right sellprice_pg discount linetotal);
+
+ $form->{marge_total} = 0;
+ $form->{sellprice_total} = 0;
+ $form->{lastcost_total} = 0;
+ my %projectnumber_labels = ();
+ my @projectnumber_values = ("");
+
+ foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
+ push(@projectnumber_values, $item->{"id"});
+ $projectnumber_labels{$item->{"id"}} = $item->{"projectnumber"};
+ }
+
+ # rows
+ for $i (1 .. $numrows) {
+
+ # undo formatting
+ map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(qty ship discount sellprice price_new price_old) unless ($form->{simple_save});
+
+# unit begin
+ $form->{"unit_old_$i"} ||= $form->{"unit_$i"};
+ $form->{"selected_unit_$i"} ||= $form->{"unit_$i"};
+
+ my $local_units = $form->{"inventory_accno_$i"} || $form->{"assembly_$i"} ? $dimension_units
+ : $form->{"id_$i"} ? $service_units
+ : $all_units;
+ if ( !$local_units->{$form->{"selected_unit_$i"}} # Die ausgewaehlte Einheit ist fuer diesen Artikel nicht gueltig
+ || !AM->convert_unit($form->{"selected_unit_$i"}, $form->{"unit_old_$i"}, $all_units)) { # (z.B. Dimensionseinheit war ausgewaehlt, es handelt sich aber
+ $form->{"unit_old_$i"} = $form->{"selected_unit_$i"} = $form->{"unit_$i"}; # um eine Dienstleistung). Dann keinerlei Umrechnung vornehmen.
+ }
+ # adjust prices by unit, ignore if pricegroup changed
+ if ((!$form->{"prices_$i"}) || ($form->{"new_pricegroup_$i"} == $form->{"old_pricegroup_$i"})) {
+ $form->{"sellprice_$i"} *= AM->convert_unit($form->{"selected_unit_$i"}, $form->{"unit_old_$i"}, $all_units) || 1;
+ $form->{"unit_old_$i"} = $form->{"selected_unit_$i"};
+ }
+ my $this_unit = $form->{"unit_$i"};
+ $this_unit = $form->{"selected_unit_$i"} if AM->convert_unit($this_unit, $form->{"selected_unit_$i"}, $all_units);
+ $this_unit ||= "kg";
+
+ $column_data{"unit"} = AM->unit_select_html($local_units, "unit_$i", $this_unit, $form->{"id_$i"} ? $form->{"unit_$i"} : undef);
+# / unit ending
+
+ $form->{"sellprice_$i"} =~ /\.(\d+)/;
+ $decimalplaces = max 2, length $1;
+
+ $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"} / 100, $decimalplaces);
+ $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
+ $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
+
+ # convert " to "
+ map { $form->{"${_}_$i"} =~ s/\"/"/g } qw(partnumber description unit unit_old);
+
+ $column_data{runningnumber} = $cgi->textfield(-name => "runningnumber_$i", -size => 5, -value => $i); # HuT
+ $column_data{partnumber} = $cgi->textfield(-name => "partnumber_$i", -size => 12, -value => $form->{"partnumber_$i"});
+ $column_data{description} = ((($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) # if description is too large, use a textbox instead
+ ? $cgi->textarea( -name => "description_$i", -default => H($form->{"description_$i"}), -rows => $rows, -columns => 30)
+ : $cgi->textfield(-name => "description_$i", -size => 30, -value => $form->quote($form->{"description_$i"})))
+ . $cgi->button(-value => $locale->text('L'), -onClick => "set_longdescription_window('longdescription_$i')");
+
+ $form->{"qty_$i"} =~ /\.(\d+)/;
+ my $qty_dec = length $1;
+
+ $column_data{qty} = $cgi->textfield(-name => "qty_$i", -size => 5, -value => $form->format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec));
+ $column_data{qty} .= $cgi->button(-onclick => "calculate_qty_selection_window('qty_$i','alu_$i', 'formel_$i', $i)", -value => $locale->text('*/'))
+ . $cgi->hidden(-name => "formel_$i", -value => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"})
+ if $form->{"formel_$i"};
+ $column_data{ship} = $cgi->textfield(-name => "ship_$i", -size => 5, -value => $form->format_amount(\%myconfig, $form->{"ship_$i"}));
+
+ # build in drop down list for pricesgroups
+ if ($form->{"prices_$i"}) {
+ $column_data{sellprice_pg} = qq|<select name="sellprice_pg_$i">$form->{"prices_$i"}</select>|;
+ $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => 'check_right_number_format(this)', -value =>
+ (($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"})
+ ? $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces)
+ : $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces)));
+ } else {
+ # for last row and report
+ # set pricegroup drop down list from report menu
+ if ($form->{"sellprice_$i"} != 0) {
+ $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
+ my $default_option = $form->{"sellprice_$i"}.'--'.$form->{"pricegroup_id_$i"};
+ $column_data{sellprice_pg} = NTI($cgi->popup_menu("sellpricepg_$i", [ $default_option ], $default_option, { $default_option => $form->{"pricegroup_$i"} || '' }));
+ } else {
+ $column_data{sellprice_pg} = qq| |;
+ }
+ $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value =>
+ $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces));
+ }
+ $column_data{discount} = $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"}));
+ $column_data{linetotal} = $form->format_amount(\%myconfig, $linetotal, 2);
+ $column_data{bin} = $form->{"bin_$i"};
+
+ my @ROW1 = map { value => $column_data{$_}, align => $align{$_} }, @column_index;
+
+ # second row
+ my @ROW2 = ();
+ push @ROW2, { value => qq|<b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">| }
+ if $form->{type} !~ /_quotation/;
+ push @ROW2, { value => qq|<b>$projectnumber</b> | . NTI($cgi->popup_menu('-name' => "project_id_$i", '-values' => \@projectnumber_values,
+ '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"})) };
+ push @ROW2, { value => qq|<b>$reqdate</b> <input name="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">| }
+ if $form->{type} =~ /order/;
+ push @ROW2, { value => sprintf qq|<b>%s</b> <input type="checkbox" name="subtotal_$i" value="1" %s>|,
+ $locale->text('Subtotal'), $form->{"subtotal_$i"} ? 'checked' : '' };
+
+# begin marge calculations
+ my $marge_color;
+ my $real_sellprice = $form->{"sellprice_$i"} - $discount;
+
+ $form->{"lastcost_$i"} *= 1;
+ $form->{"marge_percent_$i"} = 0;
+
+ if ($real_sellprice && ($form->{"qty_$i"} * 1)) {
+ $form->{"marge_percent_$i"} = ($real_sellprice - $form->{"lastcost_$i"}) * 100 / $real_sellprice;
+ $myconfig{marge_percent_warn} ||= 15;
+ $marge_color = 'color="#ff0000"' if $form->{"id_$i"} && ($form->{"marge_percent_$i"} < (1 * $myconfig{marge_percent_warn}));
+ }
+
+ my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
+ $form->{"marge_absolut_$i"} = ($real_sellprice - $form->{"lastcost_$i"}) * $form->{"qty_$i"} * $marge_adjust_credit_note;
+ $form->{"marge_total"} += $form->{"marge_absolut_$i"};
+ $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"};
+ $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
+
+ map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent);
+
+ push @ROW2, { value => sprintf qq|<font %s><b>%s</b> %s %s%% </font> <b>%s</b> %s <b>%s</b> %s|,
+ $marge_color, $locale->text('Ertrag'),$form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"},
+ $locale->text('LP'), $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2),
+ $locale->text('EK'), $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) }
+ if $form->{"id_$i"} && $form->{type} =~ /^sales_/;
+# / marge calculations ending
+
+ my @HIDDENS = map { value => $_}, (
+ $cgi->hidden("-name" => "unit_old_$i", "-value" => $form->{"selected_unit_$i"}),
+ $cgi->hidden("-name" => "price_new_$i", "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"})),
+ map { ($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } map { $_."_$i" }
+ qw(orderitems_id bo pricegroup_old price_old id inventory_accno bin partsgroup partnotes
+ income_accno expense_accno listprice assembly taxaccounts ordnumber transdate cusordnumber
+ longdescription basefactor marge_absolut marge_percent lastcost)
+ );
+
+ map { $form->{"${_}_base"} += $linetotal } (split(/ /, $form->{"taxaccounts_$i"}));
+
+ $form->{invsubtotal} += $linetotal;
+
+ push @ROWS, { ROW1 => \@ROW1, ROW2 => \@ROW2, HIDDENS => \@HIDDENS, colspan => $colspan, };
+ }
+
+ print $form->parse_html_template('oe/sales_order', { ROWS => \@ROWS,
+ HEADER => \@HEADER,
+ });
+
+ if (0 != ($form->{sellprice_total} * 1)) {
+ $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100;
+ }
+
+ $lxdebug->leave_sub();
+}
##################################################
# build html-code for pricegroups in variable $form->{prices_$j}
limit => $myconfig{vclimit} + 1 },
"price_factors" => "ALL_PRICE_FACTORS");
- # contacts
- @values = ("", map { $_->{cp_id} } @{ $form->{ALL_CONTACTS} });
- %labels = map { $_->{cp_id} => $_->{"cp_name"} . ($_->{cp_abteilung} ? " ($_->{cp_abteilung})" : "") } @{ $form->{ALL_CONTACTS} };
- $TMPL_VAR{contact} = NTI($cgi->popup_menu('-name' => 'cp_id', '-values' => \@values, '-style' => 'width: 250px',
- '-labels' => \%labels, '-default' => $form->{"cp_id"})) if scalar @values > 1;
+ # label subs
+ $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
+ $TMPL_VAR{shipto_labels} = sub { join "; ", grep { $_ } map { $_[0]->{"shipto${_}" } } qw(name department_1 street city) };
+ $TMPL_VAR{contact_labels} = sub { $_[0]->{"cp_name"} . ($_[0]->{cp_abteilung} ? " ($_[0]->{cp_abteilung})" : "") };
# vendor/customer
- @values = map { "$_->{name}--$_->{id}" } @{ $form->{uc "all_$form->{vc}s" } };
- %labels = map { +"$_->{name}--$_->{id}" => $_->{name} } @{ $form->{uc "all_$form->{vc}s" } };
+ $TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
+ $TMPL_VAR{vclimit} = $myconfig{vclimit};
+ $TMPL_VAR{vc_select} = "customer_or_vendor_selection_window('$form->{vc}', '', @{[ $form->{vc} eq 'vendor' ? 1 : 0 ]}, 0)";
push @custom_hiddens, "$form->{vc}_id";
push @custom_hiddens, "old$form->{vc}";
push @custom_hiddens, "select$form->{vc}";
- $TMPL_VAR{vc} = sprintf qq|<th align="right">%s</th><td>%s<input type="button" value="?" onclick="show_vc_details('$form->{vc}')"></td>|,
- $locale->text(ucfirst $form->{vc}),
- ($myconfig{vclimit} <= scalar(@values))
- ? $cgi->textfield(-value => H($form->{"old$form->{vc}"} =~ /^(.*)\-\-.*$/), -name => $form->{vc})
- : NTI($cgi->popup_menu('-name' => "$form->{vc}", '-default' => $form->{"old$form->{vc}"},
- '-onChange' => "document.getElementById('update_button').click();",
- '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px'));
-
- # payments (for footer)
- @values = ("", map { $_->{id} } @{ $form->{ALL_PAYMENTS} });
- %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_PAYMENTS} };
- $TMPL_VAR{payments} = NTI($cgi->popup_menu('-name' => 'payment_id', '-values' => \@values, '-style' => 'width: 250px',
- '-labels' => \%labels, '-default' => $form->{payment_id}));
-
- # shipto
- @values = ("", map { $_->{shipto_id} } @{ $form->{ALL_SHIPTO} });
- $TMPL_VAR{ALL_SHIPTO} = $form->{ALL_SHIPTO};
- for my $item ( @{ $TMPL_VAR{ALL_SHIPTO} }) {
- $item->{label} = join "; ", grep { $_ } map { $item->{"shipto${_}" } } qw(name department_1 street city);
- }
- %labels = map { my $item=$_; $_->{shipto_id} => join "; ", grep { $_ } map { $item->{"shipto${_}" } } qw(name department_1 street city) } @{ $form->{ALL_SHIPTO} };
- $TMPL_VAR{shipto} = NTI($cgi->popup_menu('-name' => 'shipto_id', '-values' => \@values, '-style' => 'width: 250px',
- '-labels' => \%labels, '-default' => $form->{"shipto_id"})) if scalar @values > 1;
-
- # projects
- @values = ("", map { $_->{id} } @{ $form->{ALL_PROJECTS} });
- %labels = map { $_->{id} => $_->{projectnumber} } @{ $form->{ALL_PROJECTS} };
- $TMPL_VAR{globalprojectnumber} = NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values,
- '-labels' => \%labels, '-default' => $form->{"globalproject_id"}));
-
- # salesmen
- @values = map { $_->{id} } @{ $form->{ALL_SALESMEN} };
- %labels = map { $_->{id} => ($_->{name} || $_->{login}) } @{ $form->{ALL_SALESMEN} };
- $TMPL_VAR{salesmen} = NTI($cgi->popup_menu('-name' => 'salesman_id', '-default' => $form->{"salesman_id"} ? $form->{"salesman_id"} : $form->{"employee_id"},
- '-values' => \@values, '-labels' => \%labels)) if $form->{type} =~ /^sales_/ && scalar @values;
-
- # employees
- @values = map { $_->{id} } @{ $form->{ALL_EMPLOYEES} };
- %labels = map { $_->{id} => $_->{name} || $_->{login} } @{ $form->{ALL_EMPLOYEES} };
- $TMPL_VAR{employee} = NTI($cgi->popup_menu('-name' => 'employee_id', '-default' => $form->{"employee_id"},
- '-values' => \@values, '-labels' => \%labels));
-
- # taxzone
- @values = map { $_->{id} } @{ $form->{ALL_TAXZONES} };
- %labels = map { $_->{id} => $_->{description} } @{ $form->{ALL_TAXZONES} };
- $TMPL_VAR{taxzone} = NTI($cgi->popup_menu('-name' => 'taxzone_id', '-default' => $form->{"taxzone_id"},
- '-values' => \@values, '-labels' => \%labels, '-style' => 'width: 250px'));
# currencies and exchangerate
@values = map { $_ } @{ $form->{ALL_CURRENCIES} };
$lxdebug->leave_sub();
}
-sub display_row {
- $lxdebug->enter_sub();
- my $numrows = shift;
-
- # column_index
- my @header_sort = qw(runningnumber partnumber description ship qty unit sellprice_pg sellprice discount linetotal);
- my @HEADER = (
- { id => 'runningnumber', width => 5, value => $locale->text('No.'), display => 1, },
- { id => 'partnumber', width => 12, value => $locale->text('Number'), display => 1, },
- { id => 'description', width => 30, value => $locale->text('Part Description'), display => 1, },
- { id => 'ship', width => 5, value => ($form->{type} eq 'purchase_order' ? $locale->text('Ship rcvd') : $locale->text('Ship')),
- display => $form->{type} =~ /sales_order/ || ($form->{type} =~ /purchase_order/ && !($lizenzen && $form->{vc} eq "customer")) , },
- { id => 'qty', width => 5, value => $locale->text('Qty'), display => 1, },
- { id => 'unit', width => 5, value => $locale->text('Unit'), display => 1, },
- { id => 'license', width => 10, value => $locale->text('License'), display => 0, },
- { id => 'serialnr', width => 10, value => $locale->text('Serial No.'), display => 0, },
- { id => 'projectnr', width => 10, value => $locale->text('Project'), display => 0, },
- { id => 'sellprice', width => 15, value => $locale->text('Price'), display => 1, },
- { id => 'sellprice_pg', width => 15, value => $locale->text('Pricegroup'), display => $form->{type} =~ /^sales_/, },
- { id => 'discount', width => 5, value => $locale->text('Discount'), display => $form->{vc} eq 'customer', },
- { id => 'linetotal', width => 10, value => $locale->text('Extended'), display => 1, },
- { id => 'bin', width => 10, value => $locale->text('Bin'), display => 0, },
- );
- my @column_index = map { $_->{id} } grep { $_->{display} } @HEADER;
-
- # cache units
- my $dimension_units = AM->retrieve_units(\%myconfig, $form, "dimension");
- my $service_units = AM->retrieve_units(\%myconfig, $form, "service");
- my $all_units = AM->retrieve_units(\%myconfig, $form);
-
- my $colspan = scalar @column_index;
-
- $form->{invsubtotal} = 0;
- map { $form->{"${_}_base"} = 0 } (split(/ /, $form->{taxaccounts}));
-
- # about details
- $myconfig{show_form_details} = 1 unless (defined($myconfig{show_form_details}));
- $form->{show_details} = $myconfig{show_form_details} unless (defined($form->{show_details}));
- # /about details
-
- # translations, unused commented out
-# $runningnumber = $locale->text('No.');
- $deliverydate = $locale->text('Delivery Date');
- $serialnumber = $locale->text('Serial No.');
- $projectnumber = $locale->text('Project');
-# $partsgroup = $locale->text('Group');
- $reqdate = $locale->text('Reqdate');
- $deliverydate = $locale->text('Required by');
-
- # special alignings
- my %align = map { $_ => 'right' } qw(qty ship right sellprice_pg discount linetotal);
-
- $form->{marge_total} = 0;
- $form->{sellprice_total} = 0;
- $form->{lastcost_total} = 0;
- my %projectnumber_labels = ();
- my @projectnumber_values = ("");
-
- foreach my $item (@{ $form->{"ALL_PROJECTS"} }) {
- push(@projectnumber_values, $item->{"id"});
- $projectnumber_labels{$item->{"id"}} = $item->{"projectnumber"};
- }
-
- # rows
- for $i (1 .. $numrows) {
-
- # undo formatting
- map { $form->{"${_}_$i"} = $form->parse_amount(\%myconfig, $form->{"${_}_$i"}) } qw(qty ship discount sellprice price_new price_old) unless ($form->{simple_save});
-
-# unit begin
- $form->{"unit_old_$i"} ||= $form->{"unit_$i"};
- $form->{"selected_unit_$i"} ||= $form->{"unit_$i"};
-
- my $local_units = $form->{"inventory_accno_$i"} || $form->{"assembly_$i"} ? $dimension_units
- : $form->{"id_$i"} ? $service_units
- : $all_units;
- if ( !$local_units->{$form->{"selected_unit_$i"}} # Die ausgewaehlte Einheit ist fuer diesen Artikel nicht gueltig
- || !AM->convert_unit($form->{"selected_unit_$i"}, $form->{"unit_old_$i"}, $all_units)) { # (z.B. Dimensionseinheit war ausgewaehlt, es handelt sich aber
- $form->{"unit_old_$i"} = $form->{"selected_unit_$i"} = $form->{"unit_$i"}; # um eine Dienstleistung). Dann keinerlei Umrechnung vornehmen.
- }
- # adjust prices by unit, ignore if pricegroup changed
- if ((!$form->{"prices_$i"}) || ($form->{"new_pricegroup_$i"} == $form->{"old_pricegroup_$i"})) {
- $form->{"sellprice_$i"} *= AM->convert_unit($form->{"selected_unit_$i"}, $form->{"unit_old_$i"}, $all_units) || 1;
- $form->{"unit_old_$i"} = $form->{"selected_unit_$i"};
- }
- my $this_unit = $form->{"unit_$i"};
- $this_unit = $form->{"selected_unit_$i"} if AM->convert_unit($this_unit, $form->{"selected_unit_$i"}, $all_units);
- $this_unit ||= "kg";
-
- $column_data{"unit"} = AM->unit_select_html($local_units, "unit_$i", $this_unit, $form->{"id_$i"} ? $form->{"unit_$i"} : undef);
-# / unit ending
-
- $form->{"sellprice_$i"} =~ /\.(\d+)/;
- $decimalplaces = max 2, length $1;
-
- $discount = $form->round_amount($form->{"sellprice_$i"} * $form->{"discount_$i"} / 100, $decimalplaces);
- $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces);
- $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2);
-
- # convert " to "
- map { $form->{"${_}_$i"} =~ s/\"/"/g } qw(partnumber description unit unit_old);
-
- $column_data{runningnumber} = $cgi->textfield(-name => "runningnumber_$i", -size => 5, -value => $i); # HuT
- $column_data{partnumber} = $cgi->textfield(-name => "partnumber_$i", -size => 12, -value => $form->{"partnumber_$i"});
- $column_data{description} = ((($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) # if description is too large, use a textbox instead
- ? $cgi->textarea( -name => "description_$i", -default => H($form->{"description_$i"}), -rows => $rows, -columns => 30)
- : $cgi->textfield(-name => "description_$i", -size => 30, -value => $form->quote($form->{"description_$i"})))
- . $cgi->button(-value => $locale->text('L'), -onClick => "set_longdescription_window('longdescription_$i')");
-
- $form->{"qty_$i"} =~ /\.(\d+)/;
- my $qty_dec = length $1;
-
- $column_data{qty} = $cgi->textfield(-name => "qty_$i", -size => 5, -value => $form->format_amount(\%myconfig, $form->{"qty_$i"}, $qty_dec));
- $column_data{qty} .= $cgi->button(-onclick => "calculate_qty_selection_window('qty_$i','alu_$i', 'formel_$i', $i)", -value => $locale->text('*/'))
- . $cgi->hidden(-name => "formel_$i", -value => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"})
- if $form->{"formel_$i"};
- $column_data{ship} = $cgi->textfield(-name => "ship_$i", -size => 5, -value => $form->format_amount(\%myconfig, $form->{"ship_$i"}));
-
- # build in drop down list for pricesgroups
- if ($form->{"prices_$i"}) {
- $column_data{sellprice_pg} = qq|<select name="sellprice_pg_$i">$form->{"prices_$i"}</select>|;
- $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => 'check_right_number_format(this)', -value =>
- (($form->{"new_pricegroup_$i"} != $form->{"old_pricegroup_$i"})
- ? $form->format_amount(\%myconfig, $form->{"price_new_$i"}, $decimalplaces)
- : $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces)));
- } else {
- # for last row and report
- # set pricegroup drop down list from report menu
- if ($form->{"sellprice_$i"} != 0) {
- $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"};
- my $default_option = $form->{"sellprice_$i"}.'--'.$form->{"pricegroup_id_$i"};
- $column_data{sellprice_pg} = NTI($cgi->popup_menu("sellpricepg_$i", [ $default_option ], $default_option, { $default_option => $form->{"pricegroup_$i"} || '' }));
- } else {
- $column_data{sellprice_pg} = qq| |;
- }
- $column_data{sellprice} = $cgi->textfield(-name => "sellprice_$i", -size => 10, -onBlur => "check_right_number_format(this)", -value =>
- $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces));
- }
- $column_data{discount} = $cgi->textfield(-name => "discount_$i", -size => 3, -value => $form->format_amount(\%myconfig, $form->{"discount_$i"}));
- $column_data{linetotal} = $form->format_amount(\%myconfig, $linetotal, 2);
- $column_data{bin} = $form->{"bin_$i"};
-
- my @ROW1 = map { value => $column_data{$_}, align => $align{$_} }, @column_index;
-
- # second row
- my @ROW2 = ();
- push @ROW2, { value => qq|<b>$serialnumber</b> <input name="serialnumber_$i" size="15" value="$form->{"serialnumber_$i"}">| }
- if $form->{type} !~ /_quotation/;
- push @ROW2, { value => qq|<b>$projectnumber</b> | . NTI($cgi->popup_menu('-name' => "project_id_$i", '-values' => \@projectnumber_values,
- '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"})) };
- push @ROW2, { value => qq|<b>$reqdate</b> <input name="reqdate_$i" size="11" onBlur="check_right_date_format(this)" value="$form->{"reqdate_$i"}">| }
- if $form->{type} =~ /order/;
- push @ROW2, { value => sprintf qq|<b>%s</b> <input type="checkbox" name="subtotal_$i" value="1" %s>|,
- $locale->text('Subtotal'), $form->{"subtotal_$i"} ? 'checked' : '' };
-
-# begin marge calculations
- my $marge_color;
- my $real_sellprice = $form->{"sellprice_$i"} - $discount;
-
- $form->{"lastcost_$i"} *= 1;
- $form->{"marge_percent_$i"} = 0;
-
- if ($real_sellprice && ($form->{"qty_$i"} * 1)) {
- $form->{"marge_percent_$i"} = ($real_sellprice - $form->{"lastcost_$i"}) * 100 / $real_sellprice;
- $myconfig{marge_percent_warn} ||= 15;
- $marge_color = 'color="#ff0000"' if $form->{"id_$i"} && ($form->{"marge_percent_$i"} < (1 * $myconfig{marge_percent_warn}));
- }
-
- my $marge_adjust_credit_note = $form->{type} eq 'credit_note' ? -1 : 1;
- $form->{"marge_absolut_$i"} = ($real_sellprice - $form->{"lastcost_$i"}) * $form->{"qty_$i"} * $marge_adjust_credit_note;
- $form->{"marge_total"} += $form->{"marge_absolut_$i"};
- $form->{"lastcost_total"} += $form->{"lastcost_$i"} * $form->{"qty_$i"};
- $form->{"sellprice_total"} += $real_sellprice * $form->{"qty_$i"};
-
- map { $form->{"${_}_$i"} = $form->format_amount(\%myconfig, $form->{"${_}_$i"}, 2) } qw(marge_absolut marge_percent);
-
- push @ROW2, { value => sprintf qq|<font %s><b>%s</b> %s %s%% </font> <b>%s</b> %s <b>%s</b> %s|,
- $marge_color, $locale->text('Ertrag'),$form->{"marge_absolut_$i"}, $form->{"marge_percent_$i"},
- $locale->text('LP'), $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2),
- $locale->text('EK'), $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) }
- if $form->{"id_$i"} && $form->{type} =~ /^sales_/;
-# / marge calculations ending
-
- my @HIDDENS = map { value => $_}, (
- $cgi->hidden("-name" => "unit_old_$i", "-value" => $form->{"selected_unit_$i"}),
- $cgi->hidden("-name" => "price_new_$i", "-value" => $form->format_amount(\%myconfig, $form->{"price_new_$i"})),
- map { ($cgi->hidden("-name" => $_, "-value" => $form->{$_})); } map { $_."_$i" }
- qw(orderitems_id bo pricegroup_old price_old id inventory_accno bin partsgroup partnotes
- income_accno expense_accno listprice assembly taxaccounts ordnumber transdate cusordnumber
- longdescription basefactor marge_absolut marge_percent lastcost)
- );
-
- map { $form->{"${_}_base"} += $linetotal } (split(/ /, $form->{"taxaccounts_$i"}));
-
- $form->{invsubtotal} += $linetotal;
-
- push @ROWS, { ROW1 => \@ROW1, ROW2 => \@ROW2, HIDDENS => \@HIDDENS, colspan => $colspan, };
- }
-
- print $form->parse_html_template('oe/sales_order', { ROWS => \@ROWS,
- HEADER => \@HEADER,
- });
-
- if (0 != ($form->{sellprice_total} * 1)) {
- $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100;
- }
-
- $lxdebug->leave_sub();
-}
--- /dev/null
+function customer_or_vendor_selection_window(input_name, input_id, is_vendor, allow_both, action_on_cov_selected) {
+ var parm = centerParms(800,600) + ",width=800,height=600,status=yes,scrollbars=yes";
+ var name = document.getElementsByName(input_name)[0].value;
+ url = "common.pl?" +
+ "action=cov_selection_internal&" +
+ "login=" + escape(document.forms[0].login.value) + "&" +
+ "password=" + escape(document.forms[0].password.value) + "&" +
+ "name=" + escape_more(name) + "&" +
+ "input_name=" + escape(input_name) + "&" +
+ "input_id=" + escape(input_id) + "&" +
+ "is_vendor=" + (is_vendor ? "1" : "0") + "&" +
+ "allow_both=" + (allow_both ? "1" : "0") + "&" +
+ "action_on_cov_selected=" + (action_on_cov_selected ? escape(action_on_cov_selected) : "")
+ //alert(url);
+ window.open(url, "_new_cov_selection", parm);
+}
'Cc' => 'Cc',
'Change Admin Password' => 'Administratorpasswort ändern',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Create Dataset' => 'Datenbank anlegen',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 %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 Database Drivers available!' => 'Kein Datenbanktreiber verfügbar!',
'No Dataset selected!' => 'Keine Datenbank ausgewählt!',
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Händler gefunden',
'No backup file has been uploaded.' => 'Es wurde keine Sicherungsdatei hochgeladen.',
'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgewählt.',
+ 'No customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The passwords do not match.' => 'Die Passwörter stimmen nicht überein.',
'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.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Vendor details' => 'Lieferantendetails',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'is already a member!' => 'ist bereits ein Mitglied!',
'no' => 'nein',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'call_sub' => 'call_sub',
'change_admin_password' => 'change_admin_password',
'change_password' => 'change_password',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_password' => 'check_password',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_dataset' => 'create_dataset',
'dbcreate' => 'dbcreate',
'dbdelete' => 'dbdelete',
'restore_dataset' => 'restore_dataset',
'restore_dataset_start' => 'restore_dataset_start',
'save' => 'save',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'New vendor' => 'Neuer Lieferant',
'Next Dunning Level' => 'Nächste Mahnstufe',
'No' => 'Nein',
+ 'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
'No Company Address given' => 'Keine Firmenadresse hinterlegt!',
'No Company Name given' => 'Kein Firmenname hinterlegt!',
'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 backup file has been uploaded.' => 'Es wurde keine Sicherungsdatei hochgeladen.',
'No customer has been selected yet.' => 'Es wurde noch kein Kunde ausgewählt.',
+ 'No customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No data was found.' => 'Es wurden keine Daten gefunden.',
'No databases have been found on this server.' => 'Auf diesem Server wurden keine Datenbanken gefunden.',
'No datasets have been selected.' => 'Es wurden keine Datenbanken ausgewählt.',
'No dunnings have been selected for printing.' => 'Es wurden keine Mahnungen zum Drucken ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
'No entries were found which had no unit assigned to them.' => 'Es wurden keine Einträge gefunden, denen keine Einheit zugeordnet war.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No licenses were found that match the search criteria.' => 'Es wurden keine Lizenzen gefunden, auf die die Suchkriterien zutreffen.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'Search Dunning' => 'Mahnung suchen',
'Select' => 'auswählen',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a period' => 'Bitte Zeitraum auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select all' => 'Alle auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'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.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'There is nothing to do in this step.' => 'In diesem Schritt gibt es nichts mehr zu tun.',
'Therefore there\'s no need to create the same article more than once if it is sold or bought in/from another tax zone.' => 'Deswegen muss man den gleichen Artikel nicht mehr mehrmals anlegen, wenn er in verschiedenen Steuerzonen gehandelt werden soll.',
'These units can be based on other units so that Lx-Office can convert prices when the user switches from one unit to another.' => 'Diese Einheiten können auf anderen Einheiten basieren, sodass Lx-Office Preise umrechnen kann, wenn der Benutzer von einer Einheit zu einer anderen Wechselt.',
'choice part' => 'Artikel auswählen',
'close' => 'schließen',
'continue' => 'weiter',
+ 'customer' => 'Kunde',
'customer_list' => 'kundenliste',
'customernumber not unique!' => 'Die Kundennummer ist schon vergeben',
'debug' => 'Debug',
'up' => 'hoch',
'use program settings' => 'benutze Programmeinstellungen',
'valid from' => 'Gültig ab',
+ 'vendor' => 'Lieferant',
'vendor_list' => 'lieferantenliste',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
'Chart of Accounts' => 'Kontenübersicht',
'Close Books up to' => 'Die Bücher abschließen bis zum',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Cost Center' => 'Kostenstelle',
'Costs' => 'Kosten',
'National Revenues' => 'Erlöse Inland',
'Netto Terms' => 'Zahlungsziel netto',
'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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Save' => 'Speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Skonto' => 'Skonto',
'Skonto Terms' => 'Zahlungsziel Skonto',
'Storno Invoice' => 'Stornorechnung',
'The unit in row %d has been deleted in the meantime.' => 'Die Einheit in Zeile %d ist in der Zwischentzeit gelöscht worden.',
'The unit in row %d has been used in the meantime and cannot be changed anymore.' => 'Die Einheit in Zeile %d wurde in der Zwischenzeit benutzt und kann nicht mehr geändert werden.',
'The units have been saved.' => 'Die Einheiten wurden gespeichert.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Transaction reversal enforced for all dates' => 'Fehleintragungen müssen für jeden Zeitraum mit einer Kontraeintragung ausgebessert werden',
'Transaction reversal enforced up to' => 'Fehleintragungen können bis zu dem angegebenen Zeitraum nur mit einer Kontraeintragung ausgebessert werden!',
'You can use the following strings in the long description and all translations. They will be replaced by their actual values by Lx-Office before they\'re output.' => 'Sie können im Langtext und allen Übersetzungen die folgenden Variablen benutzen, die vor der Ausgabe von Lx-Office automatisch ersetzt werden:',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'dimension units' => 'Maßeinheiten',
'down' => 'runter',
'invoice' => 'Rechnung',
'service units' => 'Dienstleistungseinheiten',
'up' => 'hoch',
'use program settings' => 'benutze Programmeinstellungen',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'business_header' => 'business_header',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'config' => 'config',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delete' => 'delete',
'delete_account' => 'delete_account',
'delete_buchungsgruppe' => 'delete_buchungsgruppe',
'save_printer' => 'save_printer',
'save_tax' => 'save_tax',
'save_unit' => 'save_unit',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Cc' => 'Cc',
'Check' => 'Scheck',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'Customer details' => 'Kundendetails',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SCREENED' => 'Angezeigt',
'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Statement' => 'Sammelrechnung',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'USTVA' => 'USTVA',
'You\'re not editing a file.' => 'Sie bearbeiten momentan keine Datei.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'display' => 'display',
'display_template' => 'display_template',
'reformat_numbers' => 'reformat_numbers',
'save' => 'save',
'save_template' => 'save_template',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Closed' => 'Geschlossen',
'Confirm!' => 'Bestätigen Sie!',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Salesperson' => 'Verkäufer',
'Save draft' => 'Entwurf speichern',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Sep' => 'Sep',
'Taxkey' => 'Steuerschlüssel',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Transaction %d cancelled.' => 'Buchung %d erfolgreich storniert.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'history' => 'Historie',
'invoice' => 'Rechnung',
'invoice_list' => 'debitorenbuchungsliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_links' => 'create_links',
'create_subtotal_row' => 'create_subtotal_row',
'delete' => 'delete',
'sales_invoice' => 'sales_invoice',
'save_draft' => 'save_draft',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Closed' => 'Geschlossen',
'Confirm!' => 'Bestätigen Sie!',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
'Could not spawn the printer command.' => 'Die Druckanwendung konnte nicht gestartet werden.',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Salesperson' => 'Verkäufer',
'Save draft' => 'Entwurf speichern',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Sep' => 'Sep',
'Taxkey' => 'Steuerschlüssel',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Transaction %d cancelled.' => 'Buchung %d erfolgreich storniert.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'history' => 'Historie',
'invoice' => 'Rechnung',
'invoice_list' => 'debitorenbuchungsliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_links' => 'create_links',
'create_subtotal_row' => 'create_subtotal_row',
'delete' => 'delete',
'save_draft' => 'save_draft',
'search' => 'search',
'section_menu' => 'section_menu',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'employee_selection_internal' => 'employee_selection_internal',
'format_dates' => 'format_dates',
'project_selection_internal' => 'project_selection_internal',
'reformat_numbers' => 'reformat_numbers',
'sales_invoice' => 'sales_invoice',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Checks' => 'Schecks',
'Confirm!' => 'Bestätigen Sie!',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer' => 'Kunde',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Sales Invoices' => 'Kundenrechnung',
'Sales Orders' => 'Aufträge',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select all' => 'Alle auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Spoolfile' => 'Druckdatei',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To' => 'An',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'done' => 'erledigt',
'invoice' => 'Rechnung',
'no' => 'nein',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'employee_selection_internal' => 'employee_selection_internal',
'format_dates' => 'format_dates',
'remove' => 'remove',
'search' => 'search',
'select_all' => 'select_all',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'Customer details' => 'Kundendetails',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Vendor details' => 'Lieferantendetails',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'employee_selection_internal' => 'employee_selection_internal',
'format_dates' => 'format_dates',
'part_selection_internal' => 'part_selection_internal',
'project_selection_internal' => 'project_selection_internal',
'reformat_numbers' => 'reformat_numbers',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Cannot process payment for a closed period!' => 'Es kann keine Zahlung in einem abgeschlossenen Zeitraum verbucht werden!',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Currency' => 'Währung',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Screen' => 'Bildschirm',
'Select' => 'auswählen',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Source' => 'Beleg',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'customer_details' => 'customer_details',
'delivery_customer_selection' => 'delivery_customer_selection',
'employee_selection_internal' => 'employee_selection_internal',
'project_selection_internal' => 'project_selection_internal',
'reformat_numbers' => 'reformat_numbers',
'sales_invoice' => 'sales_invoice',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Name' => 'Name',
'Name missing!' => 'Name fehlt!',
'New contact' => 'Neuer Ansprechpartner',
+ '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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Save and Quotation' => 'Speichern und Angebot',
'Save and RFQ' => 'Speichern und Lieferantenanfrage',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Sell Price' => 'Verkaufspreis',
'Shipping Address' => 'Lieferadresse',
'Steuersatz' => 'Steuersatz',
'Tax Number / SSN' => 'Steuernummer',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'This customer number is already in use.' => 'Diese Kundennummer wird bereits verwendet.',
'This vendor number is already in use.' => 'Diese Lieferantennummer wird bereits verwendet.',
'Title' => 'Titel',
'Zipcode' => 'PLZ',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'customer_list' => 'kundenliste',
'customernumber not unique!' => 'Die Kundennummer ist schon vergeben',
'history' => 'Historie',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'vendor_list' => 'lieferantenliste',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delete' => 'delete',
'delivery_customer_selection' => 'delivery_customer_selection',
'display' => 'display',
'save_and_quotation' => 'save_and_quotation',
'save_and_rfq' => 'save_and_rfq',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'Monat' => 'Monat',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Name' => 'Name',
+ '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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'September' => 'September',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'bis' => 'bis',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'download' => 'download',
'employee_selection_internal' => 'employee_selection_internal',
'part_selection_internal' => 'part_selection_internal',
'project_selection_internal' => 'project_selection_internal',
'reformat_numbers' => 'reformat_numbers',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No dunnings have been selected for printing.' => 'Es wurden keine Mahnungen zum Drucken ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Screen' => 'Bildschirm',
'Search Dunning' => 'Mahnung suchen',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'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 dunnings have been printed.' => 'Die Mahnung(en) wurden gedruckt.',
'The list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total Fees' => 'Kumulierte Gebühren',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Zipcode' => 'PLZ',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'dunning_list' => 'mahnungsliste',
'emailed to' => 'gemailt an',
'invoice' => 'Rechnung',
'sales_quotation' => 'Verkaufsangebot',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'customer_details' => 'customer_details',
'delivery_customer_selection' => 'delivery_customer_selection',
'edit_config' => 'edit_config',
'save' => 'save',
'save_dunning' => 'save_dunning',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'Customer details' => 'Kundendetails',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Skip' => 'Überspringen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Vendor details' => 'Lieferantendetails',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delete_drafts' => 'delete_drafts',
'delivery_customer_selection' => 'delivery_customer_selection',
'dont_load_draft' => 'dont_load_draft',
'reformat_numbers' => 'reformat_numbers',
'remove_draft' => 'remove_draft',
'save_draft' => 'save_draft',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Cc' => 'Cc',
'Confirm!' => 'Bestätigen Sie!',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Contra' => 'gegen',
'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
'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',
+ '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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Sep' => 'Sep',
'Taxkey' => 'Steuerschlüssel',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'To (time)' => 'Bis',
'Transaction %d cancelled.' => 'Buchung %d erfolgreich storniert.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'general_ledger_list' => 'buchungsjournal',
'invoice' => 'Rechnung',
'no' => 'nein',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_subtotal_row' => 'create_subtotal_row',
'delete' => 'delete',
'delivery_customer_selection' => 'delivery_customer_selection',
'report_generator_export_as_pdf' => 'report_generator_export_as_pdf',
'sales_invoice' => 'sales_invoice',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Model' => 'Modell',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Name' => 'Name',
+ '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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Save as new' => 'als neu speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
'Sell Price' => 'Verkaufspreis',
'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 formula needs the following syntax:<br>For regular article:<br>Variablename= Variable Unit;<br>Variablename2= Variable2 Unit2;<br>...<br>###<br>Variable + ( Variable2 / Variable )<br><b>Please be beware of the spaces in the formula</b><br>' => 'Die Formeln müssen in der folgenden Syntax eingegeben werden:<br>Bei normalen Artikeln:<br>Variablenname= Variable Einheit;<br>Variablenname2= Variable2 Einheit2;<br>...<br>###<br>Variable + Variable2 * ( Variable - Variable2 )<br>Bitte achten Sie auf die Leerzeichen in der Formel<br>Es muss jeweils die Gesamte Zeile eingegeben werden',
'The list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To' => 'An',
'To (email)' => 'An',
'To (time)' => 'Bis',
'button' => '?',
'choice' => 'auswählen',
'choice part' => 'Artikel auswählen',
+ 'customer' => 'Kunde',
'deliverydate' => 'Lieferdatum',
'ea' => 'St.',
'emailed to' => 'gemailt an',
'sent to printer' => 'an Drucker geschickt',
'service_list' => 'dienstleistungsliste',
'soldtotal' => 'Verkaufte Anzahl',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
'choice' => 'choice',
'confirm_price_update' => 'confirm_price_update',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'customer_details' => 'customer_details',
'delete' => 'delete',
'delivery_customer_selection' => 'delivery_customer_selection',
'search' => 'search',
'search_update_prices' => 'search_update_prices',
'section_menu' => 'section_menu',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'send_email' => 'send_email',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SCREENED' => 'Angezeigt',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
'Sep' => 'Sep',
'Subject' => 'Betreff',
'Subtotal' => 'Zwischensumme',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Zipcode' => 'PLZ',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'emailed to' => 'gemailt an',
'invoice' => 'Rechnung',
'no' => 'nein',
'sales_quotation' => 'Verkaufsangebot',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'customer_details' => 'customer_details',
'delivery_customer_selection' => 'delivery_customer_selection',
'display_form' => 'display_form',
'reformat_numbers' => 'reformat_numbers',
'relink_accounts' => 'relink_accounts',
'request_for_quotation' => 'request_for_quotation',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'send_email' => 'send_email',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Save draft' => 'Entwurf speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Subtotal' => 'Zwischensumme',
'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'emailed to' => 'gemailt an',
'history' => 'Historie',
'invoice' => 'Rechnung',
'sales_quotation' => 'Verkaufsangebot',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'customer_details' => 'customer_details',
'delete' => 'delete',
'delete_drafts' => 'delete_drafts',
'request_for_quotation' => 'request_for_quotation',
'sales_invoice' => 'sales_invoice',
'save_draft' => 'save_draft',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Save draft' => 'Entwurf speichern',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Subtotal' => 'Zwischensumme',
'Tax Included' => 'Steuer im Preis inbegriffen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Trade Discount' => 'Rabatt',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'emailed to' => 'gemailt an',
'history' => 'Historie',
'invoice' => 'Rechnung',
'sales_quotation' => 'Verkaufsangebot',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_form' => 'check_form',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'credit_note' => 'credit_note',
'customer_details' => 'customer_details',
'delete' => 'delete',
'request_for_quotation' => 'request_for_quotation',
'sales_invoice' => 'sales_invoice',
'save_draft' => 'save_draft',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Comment' => 'Kommentar',
'Company Name' => 'Firmenname',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No licenses were found that match the search criteria.' => 'Es wurden keine Lizenzen gefunden, auf die die Suchkriterien zutreffen.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'SCREENED' => 'Angezeigt',
'Save' => 'Speichern',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Storno Invoice' => 'Stornorechnung',
'Subject' => 'Betreff',
'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 licensing module has been deactivated in lx-erp.conf.' => 'Das Lizenzverwaltungsmodul wurde in lx-erp.conf deaktiviert.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Zipcode' => 'PLZ',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'details' => 'details',
'do_add' => 'do_add',
'reformat_numbers' => 'reformat_numbers',
'save' => 'save',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'Customer details' => 'Kundendetails',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'You did not enter a name!' => 'Sie haben keinen Namen eingegeben!',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'company_logo' => 'company_logo',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'employee_selection_internal' => 'employee_selection_internal',
'format_dates' => 'format_dates',
'part_selection_internal' => 'part_selection_internal',
'project_selection_internal' => 'project_selection_internal',
'reformat_numbers' => 'reformat_numbers',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'Salesman' => 'Verkäufer/in',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Tax' => 'Steuer',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Transaction description' => 'Vorgangsbezeichnung',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
'button' => '?',
+ 'customer' => 'Kunde',
'emailed to' => 'gemailt an',
'invoice' => 'Rechnung',
'no' => 'nein',
'saved!' => 'gespeichert',
'sent' => 'gesendet',
'sent to printer' => 'an Drucker geschickt',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_delivered_flag' => 'check_delivered_flag',
'check_for_direct_delivery' => 'check_for_direct_delivery',
'check_for_direct_delivery_no' => 'check_for_direct_delivery_no',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_backorder' => 'create_backorder',
'create_subtotal_row' => 'create_subtotal_row',
'customer_details' => 'customer_details',
'save_as_new' => 'save_as_new',
'save_exchangerate' => 'save_exchangerate',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
'select_item' => 'select_item',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'CANCELED' => 'Storniert',
'Cc' => 'Cc',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SCREENED' => 'Angezeigt',
'Save' => 'Speichern',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Yes' => 'Ja',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'history' => 'Historie',
'invoice' => 'Rechnung',
'no' => 'nein',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delete' => 'delete',
'delivery_customer_selection' => 'delivery_customer_selection',
'edit' => 'edit',
'reformat_numbers' => 'reformat_numbers',
'save' => 'save',
'search' => 'search',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Cc' => 'Cc',
'Cleared Balance' => 'abgeschlossen',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 %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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select all' => 'Alle auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Source' => 'Beleg',
'Statement Balance' => 'Sammelrechnungsbilanz',
'Storno Invoice' => 'Stornorechnung',
'Storno Packing List' => 'Stornolieferschein',
'Subject' => 'Betreff',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'Unit' => 'Einheit',
'Vendor details' => 'Lieferantendetails',
'[email]' => '[email]',
'bin_list' => 'Lagerliste',
+ 'customer' => 'Kunde',
'invoice' => 'Rechnung',
'no' => 'nein',
'packing_list' => 'Versandliste',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'delivery_customer_selection' => 'delivery_customer_selection',
'display_form' => 'display_form',
'done' => 'done',
'reconciliation' => 'reconciliation',
'reformat_numbers' => 'reformat_numbers',
'select_all' => 'select_all',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'set_longdescription' => 'set_longdescription',
'Cc' => 'Cc',
'Compare to' => 'Gegenüberstellen zu',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Copies' => 'Kopien',
'Could not spawn html2ps or GhostScript.' => 'html2ps oder GhostScript konnte nicht gestartet werden.',
'Monthly' => 'monatlich',
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
'Name' => 'Name',
+ '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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SCREENED' => 'Angezeigt',
'Screen' => 'Bildschirm',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
'Tax paid' => 'Vorsteuer',
'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 list has been printed.' => 'Die Liste wurde ausgedruckt.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Total' => 'Summe',
'Trial Balance' => 'Saldenbilanz',
'bin_list' => 'Lagerliste',
'bis' => 'bis',
'button' => '?',
+ 'customer' => 'Kunde',
'for Period' => 'für den Zeitraum',
'invoice' => 'Rechnung',
'list_of_payments' => 'zahlungsausgaenge',
'request_quotation' => 'Angebotsanforderung',
'sales_order' => 'Kundenauftrag',
'sales_quotation' => 'Verkaufsangebot',
+ 'vendor' => 'Lieferant',
'wrongformat' => 'Falsches Format',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_aging_subtotal_row' => 'create_aging_subtotal_row',
'create_list_accounts_subtotal_row' => 'create_list_accounts_subtotal_row',
'delivery_customer_selection' => 'delivery_customer_selection',
'report_generator_export_as_pdf' => 'report_generator_export_as_pdf',
'sales_invoice' => 'sales_invoice',
'select_all' => 'select_all',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
'Choose Outputformat' => 'Ausgabeformat auswählen...',
'Choose a Tax Number' => 'Bitte eine Steuernummer angeben',
'Confirmation' => 'Auftragsbestätigung',
+ 'Contact' => 'Kontakt',
'Continue' => 'Weiter',
'Credit Note' => 'Gutschrift',
'Customer Number' => 'Kundennummer',
'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 %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.',
'No Company Address given' => 'Keine Firmenadresse hinterlegt!',
'No Company Name given' => 'Kein Firmenname hinterlegt!',
'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 customer has been selected.' => 'Es wurde kein Kunde ausgewählt.',
'No employee was found matching the search parameters.' => 'Es wurde kein Angestellter gefunden, auf den die Suchparameter zutreffen.',
+ 'No item was found.' => 'Es wurde kein Eintrag gefunden.',
'No part was found matching the search parameters.' => 'Es wurde kein Artikel gefunden, auf den die Suchparameter zutreffen.',
'No project was found matching the search parameters.' => 'Es wurde kein Projekt gefunden, auf das die Suchparameter zutreffen.',
'No vendor has been selected yet.' => 'Es wurde noch kein Lieferant ausgewählt.',
'SAVED FOR DUNNING' => 'Gespeichert',
'SCREENED' => 'Angezeigt',
'Select a Customer' => 'Endkunde auswählen',
+ 'Select a customer' => 'Einen Kunden auswählen',
'Select a part' => 'Artikel auswählen',
'Select a period' => 'Bitte Zeitraum auswählen',
'Select a project' => 'Projekt auswählen',
+ 'Select a vendor' => 'Einen Lieferanten auswählen',
+ 'Select a vendor or customer' => 'Kunden oder Lieferanten auswählen',
'Select an employee' => 'Angestellten auswählen',
+ 'Select an entry' => 'Eintrag auswählen',
'Select from one of the names below' => 'Wählen Sie einen der untenstehenden Namen',
'Select from one of the projects below' => 'Wählen Sie eines der untenstehenden Projekte',
'Sep' => 'Sep',
'Subject' => 'Betreff',
'Tax Office Preferences' => 'Finanzamt - Einstellungen',
'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+ 'There is no %s whose name matches \'%s\'.' => 'Es gibt keinen %s, dessen Name \'%s\' enthält.',
'To (email)' => 'An',
'Trying to call a sub without a name' => 'Es wurde versucht, eine Unterfunktion ohne Namen aufzurufen.',
'USTVA-Hint: Method' => 'Wenn Sie Ist-Versteuert sind, wählen Sie die Einnahmen-/Überschuß-Rechnung aus. Sind Sie Soll-Versteuert und bilanzverpflichtet, dann wählen Sie Bilanz aus.',
'accrual' => 'Bilanzierung (Soll-Versteuerung)',
'bin_list' => 'Lagerliste',
'cash' => 'E/Ü-Rechnung (Ist-Versteuerung)',
+ 'customer' => 'Kunde',
'for Period' => 'für den Zeitraum',
'invoice' => 'Rechnung',
'month' => 'Monatliche Abgabe',
'sales_quotation' => 'Verkaufsangebot',
'saved' => 'gespeichert',
'to (date)' => 'bis',
+ 'vendor' => 'Lieferant',
'yes' => 'ja',
};
'build_std_url' => 'build_std_url',
'calculate_qty' => 'calculate_qty',
'call_sub' => 'call_sub',
+ 'check_cov2' => 'check_cov2',
+ 'check_customer_or_vendor' => 'check_customer_or_vendor',
'check_name' => 'check_name',
'check_project' => 'check_project',
'config_step1' => 'config_step1',
'config_step2' => 'config_step2',
'continue' => 'continue',
+ 'cov_selected' => 'cov_selected',
+ 'cov_selected2' => 'cov_selected2',
+ 'cov_selection_internal' => 'cov_selection_internal',
'create_steuernummer' => 'create_steuernummer',
'debug' => 'debug',
'delivery_customer_selection' => 'delivery_customer_selection',
'report' => 'report',
'sales_invoice' => 'sales_invoice',
'save' => 'save',
+ 'select_cov_internal' => 'select_cov_internal',
+ 'select_customer_or_vendor' => 'select_customer_or_vendor',
'select_employee' => 'select_employee',
'select_employee_internal' => 'select_employee_internal',
+ 'select_item_selection_internal' => 'select_item_selection_internal',
'select_name' => 'select_name',
'select_part' => 'select_part',
'select_part_internal' => 'select_part_internal',
--- /dev/null
+[%- USE HTML %]
+<body[% IF onload %] onload="[% onload %]"[% END %]>
+
+ <form method="post">
+
+ <input type="hidden" name="input_name" value="[% HTML.escape(input_name) %]">
+ <input type="hidden" name="input_id" value="[% HTML.escape(input_id) %]">
+ <input type="hidden" name="is_vendor" value="[% HTML.escape(is_vendor) %]">
+ <input type="hidden" name="allow_both" value="[% HTML.escape(allow_both) %]">
+ <input type="hidden" name="action_on_cov_selected" value="[% HTML.escape(action_on_cov_selected) %]">
+
+ <table width="100%">
+ <tr>
+ <th class="listtop">[% title %]</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr>
+ <td>
+ [%- IF !is_vendor %]
+ Bitte einen Endkunden aus der Liste auswählen
+ [%- ELSE %]
+ Bitte einen Händler aus der Liste auswählen
+ [%- END %]
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+
+ <table>
+ <tr class="listheading">
+ <th class="listheading"> </th>
+ [%- FOREACH row = HEADER %]
+ <th nowrap class="listheading"><a href="[% HTML.escape(row.callback) %]">[% row.column_title %]</a></th>
+ [%- END %]
+ </tr>
+
+ [%- FOREACH row = COVS %]
+ <tr class="listrow[% loop.count % 2 %]">
+ <td valign="top"><button type="button" onclick="cov_selected('[% loop.count %]')">Auswahl</button></td>
+ <td valign="top"><input type="hidden" id="id_[% loop.count %]" name="id_[% loop.count %]" value="[% HTML.escape(row.id) %]">
+ <input type="hidden" id="name_[% loop.count %]" name="name_[% loop.count %]" value="[% HTML.escape(row.name) %]">
+ <input type="hidden" id="customer_is_vendor_[% loop.count %]" name="customer_is_vendor_[% loop.count %]" value="[% HTML.escape(row.customer_is_vendor) %]">
+ [% HTML.escape(row.name) %]</td>
+ <td valign="top">[% HTML.escape(row.address) %]</td>
+ <td valign="top">[% HTML.escape(row.contact) %]</td>
+ </tr>
+ [% END %]
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+ </form>
+
+ <script type="text/javascript">
+ <!--
+ function cov_selected(selected) {
+ var name = document.getElementsByName("name_" + selected)[0].value
+ var id = document.getElementsByName("id_" + selected)[0].value
+ var customer_is_vendor = document.getElementsByName("customer_is_vendor_" + selected)[0].value
+ var cov_name = document.forms[0].input_name.value;
+ window.opener.document.getElementsByName(cov_name)[0].value = name;
+ if (document.forms[0].input_id.value != "") {
+ window.opener.document.getElementsByName(document.forms[0].input_id.value)[0].value = id;
+ }
+
+ var cov_is_vendor = cov_name + "_is_vendor";
+ var input = window.opener.document.getElementsByName(cov_is_vendor)[0];
+ if (input) {
+ input.value = customer_is_vendor;
+ }
+
+ var prefix = "";
+ if (cov_name.substr(0, 2) == "f_") {
+ prefix = "f_";
+ cov_name = cov_name.substr(2);
+ }
+ cov_name = prefix + "old_" + cov_name;
+ var input = window.opener.document.getElementsByName(cov_name)[0];
+ if (input) {
+ input.value = name;
+ }
+ cov_name = prefix + "old" + cov_name;
+ input = window.opener.document.getElementsByName(cov_name)[0];
+ if (input) {
+ input.value = name;
+ }
+
+ if (document.forms[0].action_on_cov_selected.value != "") {
+ window.opener.document.getElementsByName("action")[0].value = document.forms[0].action_on_cov_selected.value;
+ window.opener.document.forms[0].submit();
+ }
+
+ self.close();
+ }
+ //-->
+ </script>
+
+</body>
+</html>
--- /dev/null
+[%- USE HTML %]
+<body[% IF onload %] onload="[% onload %]"[% END %]>
+
+ <form method="post">
+
+ <input type="hidden" name="input_name" value="[% HTML.escape(input_name) %]">
+ <input type="hidden" name="input_id" value="[% HTML.escape(input_id) %]">
+ <input type="hidden" name="is_vendor" value="[% HTML.escape(is_vendor) %]">
+ <input type="hidden" name="allow_both" value="[% HTML.escape(allow_both) %]">
+ <input type="hidden" name="action_on_cov_selected" value="[% HTML.escape(action_on_cov_selected) %]">
+
+ <table width="100%">
+ <tr>
+ <th class="listtop">[% title %]</th>
+ </tr>
+ <tr height="5"></tr>
+
+ <tr>
+ <td>
+ [%- IF !is_vendor %]
+ <translate>Please select a customer from the list below.</translate>
+ [%- ELSE %]
+ <translate>Please select a vendor from the list below.</translate>
+ [%- END %]
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+
+ <table>
+ <tr class="listheading">
+ <th class="listheading"> </th>
+ [%- FOREACH row = HEADER %]
+ <th nowrap class="listheading"><a href="[% HTML.escape(row.callback) %]">[% row.column_title %]</a></th>
+ [%- END %]
+ </tr>
+
+ [%- FOREACH row = COVS %]
+ <tr class="listrow[% loop.count % 2 %]">
+ <td valign="top"><button type="button" onclick="cov_selected('[% loop.count %]')">Auswahl</button></td>
+ <td valign="top"><input type="hidden" id="id_[% loop.count %]" name="id_[% loop.count %]" value="[% HTML.escape(row.id) %]">
+ <input type="hidden" id="name_[% loop.count %]" name="name_[% loop.count %]" value="[% HTML.escape(row.name) %]">
+ <input type="hidden" id="customer_is_vendor_[% loop.count %]" name="customer_is_vendor_[% loop.count %]" value="[% HTML.escape(row.customer_is_vendor) %]">
+ [% HTML.escape(row.name) %]</td>
+ <td valign="top">[% HTML.escape(row.address) %]</td>
+ <td valign="top">[% HTML.escape(row.contact) %]</td>
+ </tr>
+ [% END %]
+ </table>
+
+ </td>
+ </tr>
+ </table>
+
+ </form>
+
+ <script type="text/javascript">
+ <!--
+ function cov_selected(selected) {
+ var name = document.getElementsByName("name_" + selected)[0].value
+ var id = document.getElementsByName("id_" + selected)[0].value
+ var customer_is_vendor = document.getElementsByName("customer_is_vendor_" + selected)[0].value
+ var cov_name = document.forms[0].input_name.value;
+ window.opener.document.getElementsByName(cov_name)[0].value = name;
+ if (document.forms[0].input_id.value != "") {
+ window.opener.document.getElementsByName(document.forms[0].input_id.value)[0].value = id;
+ }
+
+ var cov_is_vendor = cov_name + "_is_vendor";
+ var input = window.opener.document.getElementsByName(cov_is_vendor)[0];
+ if (input) {
+ input.value = customer_is_vendor;
+ }
+
+ var prefix = "";
+ if (cov_name.substr(0, 2) == "f_") {
+ prefix = "f_";
+ cov_name = cov_name.substr(2);
+ }
+ cov_name = prefix + "old_" + cov_name;
+ var input = window.opener.document.getElementsByName(cov_name)[0];
+ if (input) {
+ input.value = name;
+ }
+ cov_name = prefix + "old" + cov_name;
+ input = window.opener.document.getElementsByName(cov_name)[0];
+ if (input) {
+ input.value = name;
+ }
+
+ if (document.forms[0].action_on_cov_selected.value != "") {
+ window.opener.document.getElementsByName("action")[0].value = document.forms[0].action_on_cov_selected.value;
+ window.opener.document.forms[0].submit();
+ }
+
+ self.close();
+ }
+ //-->
+ </script>
+
+</body>
+</html>
--- /dev/null
+[%- USE HTML %]
+[%#-
+ Multibox
+
+ This template makes an input box for you,
+ decides wether it should be a text field or a drop down box,
+ generates the HTML code, and fixes everything just right.
+
+ call: INCLUDE generic/multibox.html var = var, var2 = ....
+
+ options and variables:
+ name : name of the select/textfield
+ id : id of the select/textfield, optional, defaults to name
+ default : entered/selected value. defaults to a dereference of name, since it is usually set to that for update mechanisms
+ id_key : key that holds the id in each row.
+ id_sub : name of a perl sub that calculates the id for each row. will be called with a hashref.
+ label_key : key that holds the label in each row.
+ label_sub : name of a perl sub that calculates the label for each row. will be called with a hashref.
+ DATA : the actual data, expected to be arrayref of hashrefs, usually what's returned by the all_vc routines.
+ limit : defines the limit of entries, after which a textbox is generated. defaults to vclimit, or, failing to find that, 50.
+ show_empty : show an empty first line in select boxes. defaults to false
+ style : additional style information
+ onChange : java magic on change
+ select : java function call for a selection popup or other magic
+-%]
+[%- DEFAULT
+ limit = limit != '' ? limit : 50
+ id = id != '' ? id : name
+ default = default != '' ? default : $name
+-%]
+[%- FOREACH row = DATA %]
+ [%-
+ row.id = row.$id_key != '' ? row.$id_key : $id_sub(row)
+ row.label = row.$label_key != '' ? row.$label_key
+ : $label_sub(row) != '' ? $label_sub(row)
+ : row.id
+ row.selected = default == row.id
+ -%]
+[%- END -%]
+[%- IF DATA.size and limit < DATA.size %]
+<input type="text"
+ [%~ IF name %] name="[% HTML.escape(name) %]"[% END ~%]
+ [%~ IF id %] id="[% HTML.escape(id) %]"[% END ~%]
+ [%~ IF default %] value="[% HTML.escape(default) %]"[% END ~%]
+ [%~ IF style %] style="[% HTML.escape(style) %]"[% END ~%]
+>
+[%~ IF select %]
+ <button type="button" onclick="[% select %]">?</button>
+[% END ~%]
+[%- ELSE %]
+<select
+ [%~ IF name %] name="[% HTML.escape(name) %]"[% END ~%]
+ [%~ IF id %] id="[% HTML.escape(id) %]"[% END ~%]
+ [%~ IF style %] style="[% HTML.escape(style) %]"[% END ~%]
+ [%~ IF onChange %] onChange="[% HTML.escape(onChange) %]"[% END ~%]
+>
+ [%- IF show_empty %]
+ <option value=""></option>
+ [%- END %]
+ [%- FOREACH row = DATA %]
+ <option value="[% row.id %]"[% IF row.selected %] selected[% END %]>[% HTML.escape(row.label) %]</option>
+ [%- END %]
+</select>
+[%- END %]
</tr>
<tr>
<th align="right">Zahlungskonditionen</th>
- <td>[% payments %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'payment_id',
+ style = 'width: 250px',
+ DATA = ALL_PAYMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1 -%]
+ </td>
</tr>
</table>
</td>
</tr>
<tr>
<th align="right"><translate>Payment Terms</translate></th>
- <td>[% payments %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'payment_id',
+ style = 'width: 250px',
+ DATA = ALL_PAYMENTS,
+ id_key = 'id',
+ label_key = 'description',
+ show_empty = 1 -%]
+ </td>
</tr>
</table>
</td>
<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
<script type="text/javascript" src="js/vendor_selection.js"></script>
<script type="text/javascript" src="js/calculate_qty.js"></script>
+ <script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
[%- FOREACH row = HIDDENS %]
- <input type="hidden" name="[% row.name %]" value="[% HTML.escape(row.value) %]" >
+ <input type="hidden" name="[% HTML.escape(row.name) %]" value="[% HTML.escape(row.value) %]" >
[%- END %]
<table width=100%>
<tr class=listtop>
- <th class=listtop>[% title %]</th>
+ <th class=listtop>[% HTML.escape(title) %]</th>
</tr>
<tr height="5"></tr>
<tr>
<td width=50%>
<table width=100%>
<tr>
- [% vc %]
-[%- IF contact %]
+ <th align="right">[% IF vc == 'customer' %]Kunde[% ELSE %]Lieferant[% END %]</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = vc,
+ style = 'width: 250px',
+ DATA = vc == 'customer' ? ALL_CUSTOMERS : ALL_VENDORS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="D" onclick="show_vc_details('[% vc %]')">
+ </td>
+ </tr>
+[%- IF ALL_CONTACTS.size %]
<tr>
<th align="right">Ansprechpartner</th>
- <td>[% contact %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
</tr>
[%- END %]
-[%- IF shipto %]
+[%- IF ALL_SHIPTO %]
<tr>
<th align="right">Lieferadresse</th>
- <td>[% shipto %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'shipto_id',
+ style = 'width: 250px',
+ DATA = ALL_SHIPTO,
+ id_key = 'shipto_id',
+ label_sub = 'shipto_labels',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
</tr>
[%- END %]
[%- IF is_order %]
[%- IF business %]
<tr>
<th align="right">[% business_label %]</th>
- <td>[% business %]; Rabatt [% LxERP.format_percent(tradediscount) %] %</td>
+ <td>[% HTML.escape(business) %]; Rabatt [% LxERP.format_percent(tradediscount) %] %</td>
</tr>
[%- END %]
[%- IF max_dunning_level %]
<tr>
<th align="right">höchste Mahnstufe:</th>
<td>
- <b>[% max_dunning_level %]</b>;
+ <b>[% HTML.escape(max_dunning_level) %]</b>;
gemahnter Betrag: <b>[% LxERP.format_amount(dunning_amount, 2) %]</b>
</td>
</tr>
[%- END %]
<tr>
<th align="right">Steuersatz</th>
- <td>[% taxzone %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id',
+ style = 'width: 250px',
+ DATA = ALL_TAXZONES,
+ id_key = 'id',
+ label_key = 'description' -%]
+ </td>
</tr>
[%- IF selectdepartment %]
<tr>
<th align=right>Motiv</th>
<td style="font-weight:bold" colspan=3><input name=motiv size=35 value="[% HTML.escape(motiv) %]"></td>
</tr>
-[%- END -%]
+[%- END %]
<tr>
<th align=right>Versandort</th>
<td colspan=3><input name=shippingpoint size=35 value="[% HTML.escape(shippingpoint) %]"></td>
[% openclosed %]
<tr>
<th align="right">Bearbeiter</th>
- <td>[% employee %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
</tr>
-[%- IF salesmen %]
+[%- IF is_sales and ALL_SALESMEN.size %]
<tr>
<th align="right">Verkäufer/in</th>
- <td>[% salesmen %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'salesman_id',
+ default = salesman_id ? salesman_id : employee_id,
+ DATA = ALL_SALESMEN,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
</tr>
[%- END %]
[%- IF is_order %]
<tr>
<th width=70% align=right nowrap>Auftragsnummer</th>
- <td><input name=ordnumber size=11 value="[% ordnumber %]"></td>
+ <td><input name=ordnumber size=11 value="[% HTML.escape(ordnumber) %]"></td>
</tr>
[%- END %]
<tr>
<th width=70% align=right nowrap>[% IF is_req_quo %]Anfragenummer[% ELSE %]Angebotsnummer[% END %]</th>
- <td><input name=quonumber size=11 value="[% quonumber %]"></td>
+ <td><input name=quonumber size=11 value="[% HTML.escape(quonumber) %]"></td>
</tr>
-[%- IF is_order %]<tr>
+[%- IF is_order %]
+ <tr>
<th width=70% align=right nowrap>Bestellnummer des Kunden</th>
- <td><input name=cusordnumber size=11 value="[% cusordnumber %]"></td>
+ <td><input name=cusordnumber size=11 value="[% HTML.escape(cusordnumber) %]"></td>
</tr>
[%- END %]
<tr>
</tr>
<tr>
<th width="70%" align="right" nowrap>Projektnummer</th>
- <td>[% globalprojectnumber %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
</tr>
</table>
</td>
<script type="text/javascript" src="js/delivery_customer_selection.js"></script>
<script type="text/javascript" src="js/vendor_selection.js"></script>
<script type="text/javascript" src="js/calculate_qty.js"></script>
+ <script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
[%- FOREACH row = HIDDENS %]
- <input type="hidden" name="[% row.name %]" value="[% HTML.escape(row.value) %]" >
+ <input type="hidden" name="[% HTML.escape(row.name) %]" value="[% HTML.escape(row.value) %]" >
[%- END %]
<table width=100%>
<tr class=listtop>
- <th class=listtop>[% title %]</th>
+ <th class=listtop>[% HTML.escape(title) %]</th>
</tr>
<tr height="5"></tr>
<tr>
<td width=50%>
<table width=100%>
<tr>
- [% vc %]
-[%- IF contact %]
+ <th align="right">[% IF vc == 'customer' %]<translate>Customer</translate>[% ELSE %]<translate>Vendor</translate>[% END %]</th>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = vc,
+ style = 'width: 250px',
+ DATA = vc == 'customer' ? ALL_CUSTOMERS : ALL_VENDORS,
+ id_sub = 'vc_keys',
+ label_key = 'name',
+ select = vc_select,
+ limit = vclimit,
+ onChange = "document.getElementById('update_button').click();" -%]
+ <input type="button" value="D" onclick="show_vc_details('[% vc %]')">
+ </td>
+ </tr>
+[%- IF ALL_CONTACTS.size %]
<tr>
<th align="right"><translate>Contact Person</translate></th>
- <td>[% contact %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'cp_id',
+ style = 'width: 250px',
+ DATA = ALL_CONTACTS,
+ id_key = 'cp_id',
+ label_sub = 'contact_labels',
+ show_empty = 1 -%]
+ </td>
</tr>
[%- END %]
-[%- IF shipto %]
+[%- IF ALL_SHIPTO %]
<tr>
<th align="right"><translate>Shipping Address</translate></th>
- <td>[% shipto %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'shipto_id',
+ style = 'width: 250px',
+ DATA = ALL_SHIPTO,
+ id_key = 'shipto_id',
+ label_sub = 'shipto_labels',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
</tr>
[%- END %]
[%- IF is_order %]
[%- IF business %]
<tr>
<th align="right">[% business_label %]</th>
- <td>[% business %]; <translate>Trade Discount</translate> [% LxERP.format_percent(tradediscount) %] %</td>
+ <td>[% HTML.escape(business) %]; <translate>Trade Discount</translate> [% LxERP.format_percent(tradediscount) %] %</td>
</tr>
[%- END %]
[%- IF max_dunning_level %]
<tr>
<th align="right"><translate>Max. Dunning Level</translate>:</th>
<td>
- <b>[% max_dunning_level %]</b>;
+ <b>[% HTML.escape(max_dunning_level) %]</b>;
<translate>Dunning Amount</translate>: <b>[% LxERP.format_amount(dunning_amount, 2) %]</b>
</td>
</tr>
[%- END %]
<tr>
<th align="right"><translate>Steuersatz</translate></th>
- <td>[% taxzone %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'taxzone_id',
+ style = 'width: 250px',
+ DATA = ALL_TAXZONES,
+ id_key = 'id',
+ label_key = 'description' -%]
+ </td>
</tr>
[%- IF selectdepartment %]
<tr>
<th align=right><translate>Motiv</translate></th>
<td style="font-weight:bold" colspan=3><input name=motiv size=35 value="[% HTML.escape(motiv) %]"></td>
</tr>
-[%- END -%]
+[%- END %]
<tr>
<th align=right><translate>Shipping Point</translate></th>
<td colspan=3><input name=shippingpoint size=35 value="[% HTML.escape(shippingpoint) %]"></td>
[% openclosed %]
<tr>
<th align="right"><translate>Employee</translate></th>
- <td>[% employee %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'employee_id',
+ DATA = ALL_EMPLOYEES,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
</tr>
-[%- IF salesmen %]
+[%- IF is_sales and ALL_SALESMEN.size %]
<tr>
<th align="right"><translate>Salesman</translate></th>
- <td>[% salesmen %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'salesman_id',
+ default = salesman_id ? salesman_id : employee_id,
+ DATA = ALL_SALESMEN,
+ id_key = 'id',
+ label_sub = 'sales_employee_labels' -%]
+ </td>
</tr>
[%- END %]
[%- IF is_order %]
<tr>
<th width=70% align=right nowrap><translate>Order Number</translate></th>
- <td><input name=ordnumber size=11 value="[% ordnumber %]"></td>
+ <td><input name=ordnumber size=11 value="[% HTML.escape(ordnumber) %]"></td>
</tr>
[%- END %]
<tr>
<th width=70% align=right nowrap>[% IF is_req_quo %]<translate>RFQ Number</translate>[% ELSE %]<translate>Quotation Number</translate>[% END %]</th>
- <td><input name=quonumber size=11 value="[% quonumber %]"></td>
+ <td><input name=quonumber size=11 value="[% HTML.escape(quonumber) %]"></td>
</tr>
-[%- IF is_order %]<tr>
+[%- IF is_order %]
+ <tr>
<th width=70% align=right nowrap><translate>Customer Order Number</translate></th>
- <td><input name=cusordnumber size=11 value="[% cusordnumber %]"></td>
+ <td><input name=cusordnumber size=11 value="[% HTML.escape(cusordnumber) %]"></td>
</tr>
[%- END %]
<tr>
</tr>
<tr>
<th width="70%" align="right" nowrap><translate>Project Number</translate></th>
- <td>[% globalprojectnumber %]</td>
+ <td>
+ [%- INCLUDE 'generic/multibox.html'
+ name = 'globalproject_id',
+ DATA = ALL_PROJECTS,
+ id_key = 'id',
+ label_key = 'projectnumber',
+ show_empty = 1,
+ onChange = "document.getElementById('update_button').click();" -%]
+ </td>
</tr>
</table>
</td>