From 91ab1ef646193de9359076a876a33a74d7691145 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Thu, 1 Nov 2007 21:05:28 +0000 Subject: [PATCH] Um die Benutzung des Template Systems mal ein wenig zu foerdern. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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. --- SL/Common.pm | 63 ++ SL/Form.pm | 11 +- SL/Template/Plugin/LxERP.pm | 1 + bin/mozilla/common.pl | 256 +++++ bin/mozilla/invoice_io.pl | 916 +++++++++--------- bin/mozilla/io.pl | 209 ++++ bin/mozilla/oe.pl | 270 +----- js/customer_or_vendor_selection.js | 16 + locale/de/admin | 19 + locale/de/all | 10 + locale/de/am | 19 + locale/de/amtemplates | 19 + locale/de/ap | 19 + locale/de/ar | 19 + locale/de/arap | 19 + locale/de/bp | 19 + locale/de/common | 19 + locale/de/cp | 19 + locale/de/ct | 18 + locale/de/datev | 19 + locale/de/dn | 18 + locale/de/drafts | 19 + locale/de/gl | 19 + locale/de/ic | 18 + locale/de/io | 18 + locale/de/ir | 18 + locale/de/is | 18 + locale/de/licenses | 19 + locale/de/login | 19 + locale/de/oe | 18 + locale/de/pe | 19 + locale/de/rc | 19 + locale/de/rp | 19 + locale/de/ustva | 19 + .../webpages/generic/cov_selection_de.html | 103 ++ .../generic/cov_selection_master.html | 103 ++ templates/webpages/generic/multibox.html | 64 ++ templates/webpages/oe/orders_footer_de.html | 10 +- .../webpages/oe/orders_footer_master.html | 10 +- templates/webpages/oe/orders_header_de.html | 98 +- .../webpages/oe/orders_header_master.html | 98 +- 41 files changed, 1940 insertions(+), 766 deletions(-) create mode 100644 js/customer_or_vendor_selection.js create mode 100644 templates/webpages/generic/cov_selection_de.html create mode 100644 templates/webpages/generic/cov_selection_master.html create mode 100644 templates/webpages/generic/multibox.html diff --git a/SL/Common.pm b/SL/Common.pm index 9d7cdcbcc..bedb9e6d7 100644 --- a/SL/Common.pm +++ b/SL/Common.pm @@ -154,6 +154,69 @@ sub retrieve_employees { 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(); diff --git a/SL/Form.pm b/SL/Form.pm index 211c366fc..f43578bb6 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -555,11 +555,12 @@ sub parse_html_template { $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 }; diff --git a/SL/Template/Plugin/LxERP.pm b/SL/Template/Plugin/LxERP.pm index ed2287b42..7c5ad94ff 100644 --- a/SL/Template/Plugin/LxERP.pm +++ b/SL/Template/Plugin/LxERP.pm @@ -2,6 +2,7 @@ package SL::Template::Plugin::LxERP; use base qw( Template::Plugin ); use Template::Plugin; +use List::Util qw(first); sub new { my $class = shift; diff --git a/bin/mozilla/common.pl b/bin/mozilla/common.pl index 6f9e9bedb..bcdb59996 100644 --- a/bin/mozilla/common.pl +++ b/bin/mozilla/common.pl @@ -80,6 +80,123 @@ sub select_employee_internal { $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(); @@ -588,4 +705,143 @@ sub mark_as_paid_common { $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; diff --git a/bin/mozilla/invoice_io.pl b/bin/mozilla/invoice_io.pl index 90e2d4e6f..12864290f 100644 --- a/bin/mozilla/invoice_io.pl +++ b/bin/mozilla/invoice_io.pl @@ -90,464 +90,464 @@ use Data::Dumper; # 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|| . $locale->text('No.') . qq||; - $column_data{partnumber} = qq|| . $locale->text('Number') . qq||; - $column_data{description} = qq|| . $locale->text('Part Description') . qq||; - if ($form->{"type"} eq "purchase_order") { - $column_data{ship} = qq|| . $locale->text('Ship rcvd') . qq||; - } else { - $column_data{ship} = qq|| . $locale->text('Ship') . qq||; - } - $column_data{qty} = qq|| . $locale->text('Qty') . qq||; - $column_data{unit} = qq|| . $locale->text('Unit') . qq||; - $column_data{license} = qq|| . $locale->text('License') . qq||; - $column_data{serialnr} = qq|| . $locale->text('Serial No.') . qq||; - $column_data{projectnr} = qq|| . $locale->text('Project') . qq||; - $column_data{sellprice} = qq|| . $locale->text('Price') . qq||; - $column_data{sellprice_pg} = qq|| . $locale->text('Pricegroup') . qq||; - $column_data{discount} = qq|| . $locale->text('Discount') . qq||; - $column_data{linetotal} = qq|| . $locale->text('Extended') . qq||; - $column_data{bin} = qq|| . $locale->text('Bin') . qq||; -############## 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| - - | . $cgi->hidden("-name" => "show_details", "-value" => $form->{show_details}) . qq| - -
- - |; - - map { print "\n$column_data{$_}" } @column_index; - - print qq| - -|; - - $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 = ""; - $marge_font_end = ""; - } - - } 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||; # HuT -############## ENDE Neueintrag ################## - - $column_data{partnumber} = - qq||; - - if (($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) { - $column_data{description} = - qq||; - } else { - $column_data{description} = - qq||; - } - - (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/); - $qty_dec = length $qty_dec; - - $column_data{qty} = - qq||; - $column_data{ship} = - qq||; - - 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"} = ""; - - # 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||; - $column_data{sellprice} = - qq||; - } else { - - # for last row and report - # set pricegroup drop down list from report menu - if ($form->{"sellprice_$i"} != 0) { - $prices = - qq|\n|; - - $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"}; - - $column_data{sellprice_pg} = - qq||; - - } else { - - # for last row - $column_data{sellprice_pg} = qq||; - } - - $column_data{sellprice} = - qq||; - } - $column_data{discount} = - qq||; - $column_data{linetotal} = - qq||; - $column_data{bin} = qq||; - -######################################## - # 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||; - # } - # - # if ($form->{type} !~ /_quotation/) { - # $column_data{serialnr} = qq||; - # } - # - # $column_data{projectnr} = qq||; -############## ENDE Neueintrag ################## - my $j = $i % 2; - print qq| - - |; - - map { print "\n$column_data{$_}" } @column_index; - - print("\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| - - - -|; - -############## ENDE Neueintrag ################## - - map { $form->{"${_}_base"} += $linetotal } - (split(/ /, $form->{"taxaccounts_$i"})); - - $form->{invsubtotal} += $linetotal; - } - - print qq| -
|; - if ($form->{"formel_$i"}) { - $column_data{qty} .= qq|| - . $cgi->hidden("-name" => "formel_$i", "-value" => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"}); - } - $column_data{qty} .= qq|" . - $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) - . " | - . $form->format_amount(\%myconfig, $linetotal, 2) - . qq|$form->{"bin_$i"}
-|; - 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| - Lizenz\#  - -|; - } - if ($form->{type} !~ /_quotation/) { - print qq| - $serialnumber |; - } - - print qq|$projectnumber | . - 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| - ${$reqdate_term}  -|; - } - my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : ""; - print qq| - |.$locale->text('Subtotal').qq|  -|; - - 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}| . $locale->text('Ertrag') . qq| $form->{"marge_total_$i"} $form->{"marge_percent_$i"} % ${marge_font_end}|; - } - print qq| -  | . $locale->text('LP') . qq| | . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq| -  | . $locale->text('EK') . qq| | . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor; - - - print qq| -
- - -|; - - 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|| . $locale->text('No.') . qq||; +# $column_data{partnumber} = qq|| . $locale->text('Number') . qq||; +# $column_data{description} = qq|| . $locale->text('Part Description') . qq||; +# if ($form->{"type"} eq "purchase_order") { +# $column_data{ship} = qq|| . $locale->text('Ship rcvd') . qq||; +# } else { +# $column_data{ship} = qq|| . $locale->text('Ship') . qq||; +# } +# $column_data{qty} = qq|| . $locale->text('Qty') . qq||; +# $column_data{unit} = qq|| . $locale->text('Unit') . qq||; +# $column_data{license} = qq|| . $locale->text('License') . qq||; +# $column_data{serialnr} = qq|| . $locale->text('Serial No.') . qq||; +# $column_data{projectnr} = qq|| . $locale->text('Project') . qq||; +# $column_data{sellprice} = qq|| . $locale->text('Price') . qq||; +# $column_data{sellprice_pg} = qq|| . $locale->text('Pricegroup') . qq||; +# $column_data{discount} = qq|| . $locale->text('Discount') . qq||; +# $column_data{linetotal} = qq|| . $locale->text('Extended') . qq||; +# $column_data{bin} = qq|| . $locale->text('Bin') . qq||; +############### 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| +# +# | . $cgi->hidden("-name" => "show_details", "-value" => $form->{show_details}) . qq| +# +#
+# +# |; +# +# map { print "\n$column_data{$_}" } @column_index; +# +# print qq| +# +#|; +# +# $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 = ""; +# $marge_font_end = ""; +# } +# +# } 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||; # HuT +############### ENDE Neueintrag ################## +# +# $column_data{partnumber} = +# qq||; +# +# if (($rows = $form->numtextrows($form->{"description_$i"}, 30, 6)) > 1) { +# $column_data{description} = +# qq||; +# } else { +# $column_data{description} = +# qq||; +# } +# +# (my $qty_dec) = ($form->{"qty_$i"} =~ /\.(\d+)/); +# $qty_dec = length $qty_dec; +# +# $column_data{qty} = +# qq||; +# $column_data{ship} = +# qq||; +# +# 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"} = ""; +# +# # 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||; +# $column_data{sellprice} = +# qq||; +# } else { +# +# # for last row and report +# # set pricegroup drop down list from report menu +# if ($form->{"sellprice_$i"} != 0) { +# $prices = +# qq|\n|; +# +# $form->{"pricegroup_old_$i"} = $form->{"pricegroup_id_$i"}; +# +# $column_data{sellprice_pg} = +# qq||; +# +# } else { +# +# # for last row +# $column_data{sellprice_pg} = qq||; +# } +# +# $column_data{sellprice} = +# qq||; +# } +# $column_data{discount} = +# qq||; +# $column_data{linetotal} = +# qq||; +# $column_data{bin} = qq||; +# +######################################### +# # 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||; +# # } +# # +# # if ($form->{type} !~ /_quotation/) { +# # $column_data{serialnr} = qq||; +# # } +# # +# # $column_data{projectnr} = qq||; +############### ENDE Neueintrag ################## +# my $j = $i % 2; +# print qq| +# +# |; +# +# map { print "\n$column_data{$_}" } @column_index; +# +# print("\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| +# +# +# +#|; +# +############### ENDE Neueintrag ################## +# +# map { $form->{"${_}_base"} += $linetotal } +# (split(/ /, $form->{"taxaccounts_$i"})); +# +# $form->{invsubtotal} += $linetotal; +# } +# +# print qq| +#
|; +# if ($form->{"formel_$i"}) { +# $column_data{qty} .= qq|| +# . $cgi->hidden("-name" => "formel_$i", "-value" => $form->{"formel_$i"}) . $cgi->hidden("-name" => "alu_$i", "-value" => $form->{"alu_$i"}); +# } +# $column_data{qty} .= qq|" . +# $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) +# . " | +# . $form->format_amount(\%myconfig, $linetotal, 2) +# . qq|$form->{"bin_$i"}
+#|; +# 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| +# Lizenz\#  +# +#|; +# } +# if ($form->{type} !~ /_quotation/) { +# print qq| +# $serialnumber |; +# } +# +# print qq|$projectnumber | . +# 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| +# ${$reqdate_term}  +#|; +# } +# my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : ""; +# print qq| +# |.$locale->text('Subtotal').qq|  +#|; +# +# 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}| . $locale->text('Ertrag') . qq| $form->{"marge_total_$i"} $form->{"marge_percent_$i"} % ${marge_font_end}|; +# } +# print qq| +#  | . $locale->text('LP') . qq| | . $form->format_amount(\%myconfig, $form->{"listprice_$i"}, 2) . qq| +#  | . $locale->text('EK') . qq| | . $form->format_amount(\%myconfig, $form->{"lastcost_$i"}, 2) . $marge_price_factor; +# +# +# print qq| +#
+# +# +#|; +# +# 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(); diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 69d79511f..118aac3a9 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -90,6 +90,215 @@ use Data::Dumper; # 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||; + $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|$serialnumber | } + if $form->{type} !~ /_quotation/; + push @ROW2, { value => qq|$projectnumber | . NTI($cgi->popup_menu('-name' => "project_id_$i", '-values' => \@projectnumber_values, + '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"})) }; + push @ROW2, { value => qq|$reqdate | } + if $form->{type} =~ /order/; + push @ROW2, { value => sprintf qq|%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|%s %s  %s%%  %s %s  %s %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} diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index b515be117..c7d289f11 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -367,65 +367,18 @@ sub form_header { 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|%s%s|, - $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} }; @@ -2000,212 +1953,3 @@ sub display_form { $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||; - $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|$serialnumber | } - if $form->{type} !~ /_quotation/; - push @ROW2, { value => qq|$projectnumber | . NTI($cgi->popup_menu('-name' => "project_id_$i", '-values' => \@projectnumber_values, - '-labels' => \%projectnumber_labels, '-default' => $form->{"project_id_$i"})) }; - push @ROW2, { value => qq|$reqdate | } - if $form->{type} =~ /order/; - push @ROW2, { value => sprintf qq|%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|%s %s  %s%%  %s %s  %s %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(); -} diff --git a/js/customer_or_vendor_selection.js b/js/customer_or_vendor_selection.js new file mode 100644 index 000000000..4d1bf8d7b --- /dev/null +++ b/js/customer_or_vendor_selection.js @@ -0,0 +1,16 @@ +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); +} diff --git a/locale/de/admin b/locale/de/admin index 83639714b..473edc507 100644 --- a/locale/de/admin +++ b/locale/de/admin @@ -14,6 +14,7 @@ $self->{texts} = { 'Cc' => 'Cc', 'Change Admin Password' => 'Administratorpasswort ändern', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Create Dataset' => 'Datenbank anlegen', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -50,13 +51,16 @@ $self->{texts} = { '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.', @@ -82,9 +86,13 @@ $self->{texts} = { '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', @@ -96,6 +104,7 @@ $self->{texts} = { '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', @@ -108,6 +117,7 @@ $self->{texts} = { 'Vendor details' => 'Lieferantendetails', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'is already a member!' => 'ist bereits ein Mitglied!', 'no' => 'nein', @@ -118,6 +128,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -136,8 +147,13 @@ $self->{subs} = { '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', @@ -163,8 +179,11 @@ $self->{subs} = { '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', diff --git a/locale/de/all b/locale/de/all index a5c34093d..c030de56e 100644 --- a/locale/de/all +++ b/locale/de/all @@ -746,6 +746,7 @@ aktualisieren wollen?', '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', @@ -754,12 +755,14 @@ aktualisieren wollen?', '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.', @@ -1008,11 +1011,15 @@ aktualisieren wollen?', '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', @@ -1166,6 +1173,7 @@ aktualisieren wollen?', '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.', @@ -1313,6 +1321,7 @@ aktualisieren wollen?', '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', @@ -1393,6 +1402,7 @@ aktualisieren wollen?', 'up' => 'hoch', 'use program settings' => 'benutze Programmeinstellungen', 'valid from' => 'Gültig ab', + 'vendor' => 'Lieferant', 'vendor_list' => 'lieferantenliste', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', diff --git a/locale/de/am b/locale/de/am index 0d3936765..14faf014b 100644 --- a/locale/de/am +++ b/locale/de/am @@ -79,6 +79,7 @@ $self->{texts} = { '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', @@ -152,10 +153,13 @@ $self->{texts} = { '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.', @@ -204,9 +208,13 @@ $self->{texts} = { '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', @@ -236,6 +244,7 @@ $self->{texts} = { '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!', @@ -253,6 +262,7 @@ $self->{texts} = { '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', @@ -269,6 +279,7 @@ $self->{texts} = { 'service units' => 'Dienstleistungseinheiten', 'up' => 'hoch', 'use program settings' => 'benutze Programmeinstellungen', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -300,8 +311,13 @@ $self->{subs} = { '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', @@ -364,8 +380,11 @@ $self->{subs} = { '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', diff --git a/locale/de/amtemplates b/locale/de/amtemplates index b982c7c60..31b0c3213 100644 --- a/locale/de/amtemplates +++ b/locale/de/amtemplates @@ -10,6 +10,7 @@ $self->{texts} = { 'Cc' => 'Cc', 'Check' => 'Scheck', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', 'Customer details' => 'Kundendetails', @@ -37,10 +38,13 @@ $self->{texts} = { '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.', @@ -66,14 +70,19 @@ $self->{texts} = { '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', @@ -89,6 +98,7 @@ $self->{texts} = { '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', @@ -98,6 +108,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -109,6 +120,11 @@ $self->{subs} = { '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', @@ -123,8 +139,11 @@ $self->{subs} = { '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', diff --git a/locale/de/ap b/locale/de/ap index 4bdd7d7e6..073f9417e 100644 --- a/locale/de/ap +++ b/locale/de/ap @@ -28,6 +28,7 @@ $self->{texts} = { '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.', @@ -100,10 +101,13 @@ $self->{texts} = { '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.', @@ -148,9 +152,13 @@ $self->{texts} = { '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', @@ -167,6 +175,7 @@ $self->{texts} = { '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.', @@ -192,6 +201,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'history' => 'Historie', 'invoice' => 'Rechnung', 'invoice_list' => 'debitorenbuchungsliste', @@ -206,6 +216,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -223,9 +234,14 @@ $self->{subs} = { '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', @@ -261,8 +277,11 @@ $self->{subs} = { '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', diff --git a/locale/de/ar b/locale/de/ar index 9ee14ac48..c042fe4ce 100644 --- a/locale/de/ar +++ b/locale/de/ar @@ -29,6 +29,7 @@ $self->{texts} = { '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.', @@ -107,10 +108,13 @@ $self->{texts} = { '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.', @@ -154,9 +158,13 @@ $self->{texts} = { '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', @@ -176,6 +184,7 @@ $self->{texts} = { '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.', @@ -199,6 +208,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'history' => 'Historie', 'invoice' => 'Rechnung', 'invoice_list' => 'debitorenbuchungsliste', @@ -213,6 +223,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -232,9 +243,14 @@ $self->{subs} = { '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', @@ -272,8 +288,11 @@ $self->{subs} = { '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', diff --git a/locale/de/arap b/locale/de/arap index 883fbd566..724c4692d 100644 --- a/locale/de/arap +++ b/locale/de/arap @@ -7,6 +7,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -35,10 +36,13 @@ $self->{texts} = { '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.', @@ -63,15 +67,20 @@ $self->{texts} = { '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', @@ -83,6 +92,7 @@ $self->{texts} = { 'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -92,6 +102,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -106,9 +117,14 @@ $self->{subs} = { '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', @@ -120,8 +136,11 @@ $self->{subs} = { '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', diff --git a/locale/de/bp b/locale/de/bp index 5ebbba532..a5707c6e3 100644 --- a/locale/de/bp +++ b/locale/de/bp @@ -13,6 +13,7 @@ $self->{texts} = { 'Checks' => 'Schecks', 'Confirm!' => 'Bestätigen Sie!', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer' => 'Kunde', @@ -43,10 +44,13 @@ $self->{texts} = { '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.', @@ -85,15 +89,20 @@ $self->{texts} = { '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.', @@ -107,6 +116,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'done' => 'erledigt', 'invoice' => 'Rechnung', 'no' => 'nein', @@ -117,6 +127,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -129,7 +140,12 @@ $self->{subs} = { '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', @@ -142,8 +158,11 @@ $self->{subs} = { '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', diff --git a/locale/de/common b/locale/de/common index e26835094..b55c0ba35 100644 --- a/locale/de/common +++ b/locale/de/common @@ -7,6 +7,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', 'Customer details' => 'Kundendetails', @@ -31,10 +32,13 @@ $self->{texts} = { '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.', @@ -57,13 +61,18 @@ $self->{texts} = { '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', @@ -73,6 +82,7 @@ $self->{texts} = { 'Vendor details' => 'Lieferantendetails', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -82,6 +92,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -93,6 +104,11 @@ $self->{subs} = { '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', @@ -100,8 +116,11 @@ $self->{subs} = { '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', diff --git a/locale/de/cp b/locale/de/cp index 44847263b..8cdb6cb1f 100644 --- a/locale/de/cp +++ b/locale/de/cp @@ -16,6 +16,7 @@ $self->{texts} = { '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', @@ -55,10 +56,13 @@ $self->{texts} = { '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.', @@ -96,9 +100,13 @@ $self->{texts} = { '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', @@ -106,6 +114,7 @@ $self->{texts} = { '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', @@ -121,6 +130,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -130,6 +140,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -145,10 +156,15 @@ $self->{subs} = { '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', @@ -167,8 +183,11 @@ $self->{subs} = { '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', diff --git a/locale/de/ct b/locale/de/ct index 0c4125f4a..101234922 100644 --- a/locale/de/ct +++ b/locale/de/ct @@ -79,10 +79,13 @@ $self->{texts} = { '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.', @@ -134,9 +137,13 @@ $self->{texts} = { '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', @@ -148,6 +155,7 @@ $self->{texts} = { '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', @@ -168,6 +176,7 @@ $self->{texts} = { 'Zipcode' => 'PLZ', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'customer_list' => 'kundenliste', 'customernumber not unique!' => 'Die Kundennummer ist schon vergeben', 'history' => 'Historie', @@ -182,6 +191,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'vendor_list' => 'lieferantenliste', 'yes' => 'ja', }; @@ -196,7 +206,12 @@ $self->{subs} = { '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', @@ -227,8 +242,11 @@ $self->{subs} = { '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', diff --git a/locale/de/datev b/locale/de/datev index c22aa84f4..9240d4912 100644 --- a/locale/de/datev +++ b/locale/de/datev @@ -13,6 +13,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -61,10 +62,13 @@ $self->{texts} = { '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.', @@ -92,14 +96,19 @@ $self->{texts} = { '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', @@ -112,6 +121,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'bis' => 'bis', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -121,6 +131,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -132,7 +143,12 @@ $self->{subs} = { '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', @@ -146,8 +162,11 @@ $self->{subs} = { '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', diff --git a/locale/de/dn b/locale/de/dn index 96e9e0b2e..c19318ab7 100644 --- a/locale/de/dn +++ b/locale/de/dn @@ -95,11 +95,14 @@ $self->{texts} = { '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.', @@ -150,9 +153,13 @@ $self->{texts} = { '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', @@ -171,6 +178,7 @@ $self->{texts} = { '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.', @@ -185,6 +193,7 @@ $self->{texts} = { 'Zipcode' => 'PLZ', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'dunning_list' => 'mahnungsliste', 'emailed to' => 'gemailt an', 'invoice' => 'Rechnung', @@ -201,6 +210,7 @@ $self->{texts} = { 'sales_quotation' => 'Verkaufsangebot', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -217,10 +227,15 @@ $self->{subs} = { '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', @@ -257,9 +272,12 @@ $self->{subs} = { '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', diff --git a/locale/de/drafts b/locale/de/drafts index 5971f6fef..c75999d33 100644 --- a/locale/de/drafts +++ b/locale/de/drafts @@ -7,6 +7,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', 'Customer details' => 'Kundendetails', @@ -33,10 +34,13 @@ $self->{texts} = { '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.', @@ -59,14 +63,19 @@ $self->{texts} = { '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', @@ -76,6 +85,7 @@ $self->{texts} = { 'Vendor details' => 'Lieferantendetails', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -85,6 +95,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -96,6 +107,11 @@ $self->{subs} = { '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', @@ -110,8 +126,11 @@ $self->{subs} = { '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', diff --git a/locale/de/gl b/locale/de/gl index 629c185df..07e2f8230 100644 --- a/locale/de/gl +++ b/locale/de/gl @@ -29,6 +29,7 @@ $self->{texts} = { '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.', @@ -102,10 +103,13 @@ $self->{texts} = { '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.', @@ -144,9 +148,13 @@ $self->{texts} = { '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', @@ -162,6 +170,7 @@ $self->{texts} = { '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.', @@ -182,6 +191,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'general_ledger_list' => 'buchungsjournal', 'invoice' => 'Rechnung', 'no' => 'nein', @@ -194,6 +204,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -210,9 +221,14 @@ $self->{subs} = { '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', @@ -242,8 +258,11 @@ $self->{subs} = { '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', diff --git a/locale/de/ic b/locale/de/ic index 2234ef276..3417d4d32 100644 --- a/locale/de/ic +++ b/locale/de/ic @@ -131,10 +131,13 @@ aktualisieren wollen?', '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.', @@ -211,9 +214,13 @@ aktualisieren wollen?', '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', @@ -242,6 +249,7 @@ aktualisieren wollen?', '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:
For regular article:
Variablename= Variable Unit;
Variablename2= Variable2 Unit2;
...
###
Variable + ( Variable2 / Variable )
Please be beware of the spaces in the formula
' => 'Die Formeln müssen in der folgenden Syntax eingegeben werden:
Bei normalen Artikeln:
Variablenname= Variable Einheit;
Variablenname2= Variable2 Einheit2;
...
###
Variable + Variable2 * ( Variable - Variable2 )
Bitte achten Sie auf die Leerzeichen in der Formel
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', @@ -269,6 +277,7 @@ aktualisieren wollen?', 'button' => '?', 'choice' => 'auswählen', 'choice part' => 'Artikel auswählen', + 'customer' => 'Kunde', 'deliverydate' => 'Lieferdatum', 'ea' => 'St.', 'emailed to' => 'gemailt an', @@ -293,6 +302,7 @@ aktualisieren wollen?', 'sent to printer' => 'an Drucker geschickt', 'service_list' => 'dienstleistungsliste', 'soldtotal' => 'Verkaufte Anzahl', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -308,10 +318,15 @@ $self->{subs} = { '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', @@ -357,9 +372,12 @@ $self->{subs} = { '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', diff --git a/locale/de/io b/locale/de/io index 418d1c34a..bc4a8ecd5 100644 --- a/locale/de/io +++ b/locale/de/io @@ -79,10 +79,13 @@ $self->{texts} = { '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.', @@ -133,9 +136,13 @@ $self->{texts} = { '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', @@ -152,6 +159,7 @@ $self->{texts} = { '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', @@ -163,6 +171,7 @@ $self->{texts} = { 'Zipcode' => 'PLZ', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'emailed to' => 'gemailt an', 'invoice' => 'Rechnung', 'no' => 'nein', @@ -176,6 +185,7 @@ $self->{texts} = { 'sales_quotation' => 'Verkaufsangebot', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -187,7 +197,12 @@ $self->{subs} = { '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', @@ -211,9 +226,12 @@ $self->{subs} = { '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', diff --git a/locale/de/ir b/locale/de/ir index 48a51d408..ff3ef2692 100644 --- a/locale/de/ir +++ b/locale/de/ir @@ -114,10 +114,13 @@ $self->{texts} = { '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.', @@ -182,9 +185,13 @@ $self->{texts} = { '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', @@ -208,6 +215,7 @@ $self->{texts} = { '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.', @@ -228,6 +236,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'emailed to' => 'gemailt an', 'history' => 'Historie', 'invoice' => 'Rechnung', @@ -244,6 +253,7 @@ $self->{texts} = { 'sales_quotation' => 'Verkaufsangebot', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -260,10 +270,15 @@ $self->{subs} = { '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', @@ -307,9 +322,12 @@ $self->{subs} = { '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', diff --git a/locale/de/is b/locale/de/is index c7b78c293..d92e8f799 100644 --- a/locale/de/is +++ b/locale/de/is @@ -132,10 +132,13 @@ $self->{texts} = { '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.', @@ -206,9 +209,13 @@ $self->{texts} = { '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', @@ -234,6 +241,7 @@ $self->{texts} = { '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', @@ -254,6 +262,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'emailed to' => 'gemailt an', 'history' => 'Historie', 'invoice' => 'Rechnung', @@ -270,6 +279,7 @@ $self->{texts} = { 'sales_quotation' => 'Verkaufsangebot', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -286,10 +296,15 @@ $self->{subs} = { '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', @@ -337,9 +352,12 @@ $self->{subs} = { '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', diff --git a/locale/de/licenses b/locale/de/licenses index 5ac0ad46b..b9e4383f7 100644 --- a/locale/de/licenses +++ b/locale/de/licenses @@ -13,6 +13,7 @@ $self->{texts} = { 'Comment' => 'Kommentar', 'Company Name' => 'Firmenname', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -46,10 +47,13 @@ $self->{texts} = { '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.', @@ -78,9 +82,13 @@ $self->{texts} = { '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', @@ -89,6 +97,7 @@ $self->{texts} = { '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', @@ -102,6 +111,7 @@ $self->{texts} = { 'Zipcode' => 'PLZ', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -111,6 +121,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -123,7 +134,12 @@ $self->{subs} = { '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', @@ -142,8 +158,11 @@ $self->{subs} = { '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', diff --git a/locale/de/login b/locale/de/login index cbcfd02b7..e5d2d4ca4 100644 --- a/locale/de/login +++ b/locale/de/login @@ -8,6 +8,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', 'Customer details' => 'Kundendetails', @@ -33,10 +34,13 @@ $self->{texts} = { '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.', @@ -59,13 +63,18 @@ $self->{texts} = { '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', @@ -78,6 +87,7 @@ $self->{texts} = { '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', @@ -87,6 +97,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -98,7 +109,12 @@ $self->{subs} = { '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', @@ -109,8 +125,11 @@ $self->{subs} = { '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', diff --git a/locale/de/oe b/locale/de/oe index 110352888..264625341 100644 --- a/locale/de/oe +++ b/locale/de/oe @@ -126,10 +126,13 @@ $self->{texts} = { '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.', @@ -198,9 +201,13 @@ $self->{texts} = { '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', @@ -221,6 +228,7 @@ $self->{texts} = { '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', @@ -245,6 +253,7 @@ $self->{texts} = { '[email]' => '[email]', 'bin_list' => 'Lagerliste', 'button' => '?', + 'customer' => 'Kunde', 'emailed to' => 'gemailt an', 'invoice' => 'Rechnung', 'no' => 'nein', @@ -265,6 +274,7 @@ $self->{texts} = { 'saved!' => 'gespeichert', 'sent' => 'gesendet', 'sent to printer' => 'an Drucker geschickt', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -282,6 +292,8 @@ $self->{subs} = { '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', @@ -290,6 +302,9 @@ $self->{subs} = { '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', @@ -343,9 +358,12 @@ $self->{subs} = { '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', diff --git a/locale/de/pe b/locale/de/pe index 9fefe7cd3..37d10cbce 100644 --- a/locale/de/pe +++ b/locale/de/pe @@ -14,6 +14,7 @@ $self->{texts} = { 'CANCELED' => 'Storniert', 'Cc' => 'Cc', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -51,10 +52,13 @@ $self->{texts} = { '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.', @@ -90,13 +94,18 @@ $self->{texts} = { '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', @@ -107,6 +116,7 @@ $self->{texts} = { 'Yes' => 'Ja', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'history' => 'Historie', 'invoice' => 'Rechnung', 'no' => 'nein', @@ -117,6 +127,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -129,7 +140,12 @@ $self->{subs} = { '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', @@ -150,8 +166,11 @@ $self->{subs} = { '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', diff --git a/locale/de/rc b/locale/de/rc index 4ae050764..4b447bbea 100644 --- a/locale/de/rc +++ b/locale/de/rc @@ -10,6 +10,7 @@ $self->{texts} = { 'Cc' => 'Cc', 'Cleared Balance' => 'abgeschlossen', 'Confirmation' => 'Auftragsbestätigung', + 'Contact' => 'Kontakt', 'Continue' => 'Weiter', 'Credit Note' => 'Gutschrift', 'Customer Number' => 'Kundennummer', @@ -44,10 +45,13 @@ $self->{texts} = { '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.', @@ -73,16 +77,21 @@ $self->{texts} = { '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', @@ -94,6 +103,7 @@ $self->{texts} = { 'Vendor details' => 'Lieferantendetails', '[email]' => '[email]', 'bin_list' => 'Lagerliste', + 'customer' => 'Kunde', 'invoice' => 'Rechnung', 'no' => 'nein', 'packing_list' => 'Versandliste', @@ -103,6 +113,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -114,7 +125,12 @@ $self->{subs} = { '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', @@ -127,8 +143,11 @@ $self->{subs} = { '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', diff --git a/locale/de/rp b/locale/de/rp index 2face8047..b288d9d6c 100644 --- a/locale/de/rp +++ b/locale/de/rp @@ -24,6 +24,7 @@ $self->{texts} = { '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.', @@ -96,10 +97,13 @@ $self->{texts} = { '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.', @@ -144,9 +148,13 @@ $self->{texts} = { '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!', @@ -165,6 +173,7 @@ $self->{texts} = { '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', @@ -187,6 +196,7 @@ $self->{texts} = { 'bin_list' => 'Lagerliste', 'bis' => 'bis', 'button' => '?', + 'customer' => 'Kunde', 'for Period' => 'für den Zeitraum', 'invoice' => 'Rechnung', 'list_of_payments' => 'zahlungsausgaenge', @@ -202,6 +212,7 @@ $self->{texts} = { 'request_quotation' => 'Angebotsanforderung', 'sales_order' => 'Kundenauftrag', 'sales_quotation' => 'Verkaufsangebot', + 'vendor' => 'Lieferant', 'wrongformat' => 'Falsches Format', 'yes' => 'ja', }; @@ -218,9 +229,14 @@ $self->{subs} = { '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', @@ -256,8 +272,11 @@ $self->{subs} = { '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', diff --git a/locale/de/ustva b/locale/de/ustva index d3d2e243e..a8c811d4b 100644 --- a/locale/de/ustva +++ b/locale/de/ustva @@ -22,6 +22,7 @@ $self->{texts} = { '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', @@ -69,12 +70,15 @@ $self->{texts} = { '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.', @@ -104,10 +108,14 @@ $self->{texts} = { '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', @@ -117,6 +125,7 @@ $self->{texts} = { '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.', @@ -138,6 +147,7 @@ $self->{texts} = { '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', @@ -152,6 +162,7 @@ $self->{texts} = { 'sales_quotation' => 'Verkaufsangebot', 'saved' => 'gespeichert', 'to (date)' => 'bis', + 'vendor' => 'Lieferant', 'yes' => 'ja', }; @@ -167,11 +178,16 @@ $self->{subs} = { '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', @@ -190,8 +206,11 @@ $self->{subs} = { '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', diff --git a/templates/webpages/generic/cov_selection_de.html b/templates/webpages/generic/cov_selection_de.html new file mode 100644 index 000000000..0be4e1a3c --- /dev/null +++ b/templates/webpages/generic/cov_selection_de.html @@ -0,0 +1,103 @@ +[%- USE HTML %] + + +
+ + + + + + + + + + + + + + + + + + + + +
[% title %]
+ [%- IF !is_vendor %] + Bitte einen Endkunden aus der Liste auswählen + [%- ELSE %] + Bitte einen Händler aus der Liste auswählen + [%- END %] +
+ + + + + [%- FOREACH row = HEADER %] + + [%- END %] + + + [%- FOREACH row = COVS %] + + + + + + + [% END %] +
 [% row.column_title %]
+ + + [% HTML.escape(row.name) %][% HTML.escape(row.address) %][% HTML.escape(row.contact) %]
+ +
+ +
+ + + + + diff --git a/templates/webpages/generic/cov_selection_master.html b/templates/webpages/generic/cov_selection_master.html new file mode 100644 index 000000000..336587e0e --- /dev/null +++ b/templates/webpages/generic/cov_selection_master.html @@ -0,0 +1,103 @@ +[%- USE HTML %] + + +
+ + + + + + + + + + + + + + + + + + + + +
[% title %]
+ [%- IF !is_vendor %] + Please select a customer from the list below. + [%- ELSE %] + Please select a vendor from the list below. + [%- END %] +
+ + + + + [%- FOREACH row = HEADER %] + + [%- END %] + + + [%- FOREACH row = COVS %] + + + + + + + [% END %] +
 [% row.column_title %]
+ + + [% HTML.escape(row.name) %][% HTML.escape(row.address) %][% HTML.escape(row.contact) %]
+ +
+ +
+ + + + + diff --git a/templates/webpages/generic/multibox.html b/templates/webpages/generic/multibox.html new file mode 100644 index 000000000..5d8e86321 --- /dev/null +++ b/templates/webpages/generic/multibox.html @@ -0,0 +1,64 @@ +[%- 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 %] + +[%~ IF select %] + +[% END ~%] +[%- ELSE %] + +[%- END %] diff --git a/templates/webpages/oe/orders_footer_de.html b/templates/webpages/oe/orders_footer_de.html index c119f1c05..68112fb66 100644 --- a/templates/webpages/oe/orders_footer_de.html +++ b/templates/webpages/oe/orders_footer_de.html @@ -16,7 +16,15 @@ Zahlungskonditionen - [% payments %] + + [%- INCLUDE 'generic/multibox.html' + name = 'payment_id', + style = 'width: 250px', + DATA = ALL_PAYMENTS, + id_key = 'id', + label_key = 'description', + show_empty = 1 -%] + diff --git a/templates/webpages/oe/orders_footer_master.html b/templates/webpages/oe/orders_footer_master.html index 997396dfc..23b2cf2d4 100644 --- a/templates/webpages/oe/orders_footer_master.html +++ b/templates/webpages/oe/orders_footer_master.html @@ -16,7 +16,15 @@ Payment Terms - [% payments %] + + [%- INCLUDE 'generic/multibox.html' + name = 'payment_id', + style = 'width: 250px', + DATA = ALL_PAYMENTS, + id_key = 'id', + label_key = 'description', + show_empty = 1 -%] + diff --git a/templates/webpages/oe/orders_header_de.html b/templates/webpages/oe/orders_header_de.html index 31f4c474b..1e3ea8b56 100644 --- a/templates/webpages/oe/orders_header_de.html +++ b/templates/webpages/oe/orders_header_de.html @@ -8,14 +8,15 @@ + [%- FOREACH row = HIDDENS %] - + [%- END %] - + @@ -25,17 +26,47 @@ diff --git a/templates/webpages/oe/orders_header_master.html b/templates/webpages/oe/orders_header_master.html index d0db27258..682daf566 100644 --- a/templates/webpages/oe/orders_header_master.html +++ b/templates/webpages/oe/orders_header_master.html @@ -8,14 +8,15 @@ + [%- FOREACH row = HIDDENS %] - + [%- END %]
[% title %][% HTML.escape(title) %]
- [% vc %] -[%- IF contact %] + + + +[%- IF ALL_CONTACTS.size %] - + [%- END %] -[%- IF shipto %] +[%- IF ALL_SHIPTO %] - + [%- END %] [%- IF is_order %] @@ -47,21 +78,28 @@ [%- IF business %] - + [%- END %] [%- IF max_dunning_level %] [%- END %] - + [%- IF selectdepartment %] @@ -95,7 +133,7 @@ -[%- END -%] +[%- END %] @@ -137,27 +175,41 @@ [% openclosed %] - + -[%- IF salesmen %] +[%- IF is_sales and ALL_SALESMEN.size %] - + [%- END %] [%- IF is_order %] - + [%- END %] - + -[%- IF is_order %] +[%- IF is_order %] + - + [%- END %] @@ -182,7 +234,15 @@ - +
[% IF vc == 'customer' %]Kunde[% ELSE %]Lieferant[% END %] + [%- 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();" -%] + +
Ansprechpartner[% contact %] + [%- INCLUDE 'generic/multibox.html' + name = 'cp_id', + style = 'width: 250px', + DATA = ALL_CONTACTS, + id_key = 'cp_id', + label_sub = 'contact_labels', + show_empty = 1 -%] +
Lieferadresse[% shipto %] + [%- 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();" -%] +
[% business_label %][% business %]; Rabatt [% LxERP.format_percent(tradediscount) %] %[% HTML.escape(business) %]; Rabatt [% LxERP.format_percent(tradediscount) %] %
höchste Mahnstufe: - [% max_dunning_level %]; + [% HTML.escape(max_dunning_level) %]; gemahnter Betrag: [% LxERP.format_amount(dunning_amount, 2) %]
Steuersatz[% taxzone %] + [%- INCLUDE 'generic/multibox.html' + name = 'taxzone_id', + style = 'width: 250px', + DATA = ALL_TAXZONES, + id_key = 'id', + label_key = 'description' -%] +
Motiv
Versandort
Bearbeiter[% employee %] + [%- INCLUDE 'generic/multibox.html' + name = 'employee_id', + DATA = ALL_EMPLOYEES, + id_key = 'id', + label_sub = 'sales_employee_labels' -%] +
Verkäufer/in[% salesmen %] + [%- 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' -%] +
Auftragsnummer
[% IF is_req_quo %]Anfragenummer[% ELSE %]Angebotsnummer[% END %]
Bestellnummer des Kunden
Projektnummer[% globalprojectnumber %] + [%- 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();" -%] +
- + @@ -25,17 +26,47 @@ -- 2.20.1
[% title %][% HTML.escape(title) %]
- [% vc %] -[%- IF contact %] + + + +[%- IF ALL_CONTACTS.size %] - + [%- END %] -[%- IF shipto %] +[%- IF ALL_SHIPTO %] - + [%- END %] [%- IF is_order %] @@ -47,21 +78,28 @@ [%- IF business %] - + [%- END %] [%- IF max_dunning_level %] [%- END %] - + [%- IF selectdepartment %] @@ -95,7 +133,7 @@ -[%- END -%] +[%- END %] @@ -137,27 +175,41 @@ [% openclosed %] - + -[%- IF salesmen %] +[%- IF is_sales and ALL_SALESMEN.size %] - + [%- END %] [%- IF is_order %] - + [%- END %] - + -[%- IF is_order %] +[%- IF is_order %] + - + [%- END %] @@ -182,7 +234,15 @@ - +
[% IF vc == 'customer' %]Customer[% ELSE %]Vendor[% END %] + [%- 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();" -%] + +
Contact Person[% contact %] + [%- INCLUDE 'generic/multibox.html' + name = 'cp_id', + style = 'width: 250px', + DATA = ALL_CONTACTS, + id_key = 'cp_id', + label_sub = 'contact_labels', + show_empty = 1 -%] +
Shipping Address[% shipto %] + [%- 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();" -%] +
[% business_label %][% business %]; Trade Discount [% LxERP.format_percent(tradediscount) %] %[% HTML.escape(business) %]; Trade Discount [% LxERP.format_percent(tradediscount) %] %
Max. Dunning Level: - [% max_dunning_level %]; + [% HTML.escape(max_dunning_level) %]; Dunning Amount: [% LxERP.format_amount(dunning_amount, 2) %]
Steuersatz[% taxzone %] + [%- INCLUDE 'generic/multibox.html' + name = 'taxzone_id', + style = 'width: 250px', + DATA = ALL_TAXZONES, + id_key = 'id', + label_key = 'description' -%] +
Motiv
Shipping Point
Employee[% employee %] + [%- INCLUDE 'generic/multibox.html' + name = 'employee_id', + DATA = ALL_EMPLOYEES, + id_key = 'id', + label_sub = 'sales_employee_labels' -%] +
Salesman[% salesmen %] + [%- 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' -%] +
Order Number
[% IF is_req_quo %]RFQ Number[% ELSE %]Quotation Number[% END %]
Customer Order Number
Project Number[% globalprojectnumber %] + [%- 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();" -%] +