From 270df90017196116ff80fc2b917bb23aca5ca994 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Mon, 22 Oct 2007 15:34:32 +0000 Subject: [PATCH] ...und die neuen Dateien --- bin/mozilla/invoice_io.pl | 738 ++++++++++++++++++ templates/webpages/generic/new_item_de.html | 25 + .../webpages/generic/new_item_master.html | 25 + templates/webpages/oe/orders_footer_de.html | 142 ++++ .../webpages/oe/orders_footer_master.html | 142 ++++ templates/webpages/oe/orders_header_de.html | 194 +++++ .../webpages/oe/orders_header_master.html | 194 +++++ templates/webpages/oe/sales_order_de.html | 27 + templates/webpages/oe/sales_order_master.html | 27 + 9 files changed, 1514 insertions(+) create mode 100644 bin/mozilla/invoice_io.pl create mode 100644 templates/webpages/generic/new_item_de.html create mode 100644 templates/webpages/generic/new_item_master.html create mode 100644 templates/webpages/oe/orders_footer_de.html create mode 100644 templates/webpages/oe/orders_footer_master.html create mode 100644 templates/webpages/oe/orders_header_de.html create mode 100644 templates/webpages/oe/orders_header_master.html create mode 100644 templates/webpages/oe/sales_order_de.html create mode 100644 templates/webpages/oe/sales_order_master.html diff --git a/bin/mozilla/invoice_io.pl b/bin/mozilla/invoice_io.pl new file mode 100644 index 000000000..3277f049c --- /dev/null +++ b/bin/mozilla/invoice_io.pl @@ -0,0 +1,738 @@ +#===================================================================== +# LX-Office ERP +# Copyright (C) 2004 +# Based on SQL-Ledger Version 2.1.9 +# Web http://www.lx-office.org +############################################################################# +# Veraendert 2005-01-05 - Marco Welter - Neue Optik # +############################################################################# +# SQL-Ledger, Accounting +# Copyright (c) 1998-2002 +# +# Author: Dieter Simader +# Email: dsimader@sql-ledger.org +# Web: http://www.sql-ledger.org +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +####################################################################### +# +# common routines used in is, ir but not in oe +# +####################################################################### + +use CGI; +use CGI::Ajax; +use List::Util qw(max); + +use SL::Common; +use SL::CT; +use SL::IC; + +require "bin/mozilla/common.pl"; + +# any custom scripts for this one +if (-f "bin/mozilla/custom_invoice_io.pl") { + eval { require "bin/mozilla/custom_ivvoice_io.pl"; }; +} +if (-f "bin/mozilla/$form->{login}_invoice_io.pl") { + eval { require "bin/mozilla/$form->{login}_invoice_io.pl"; }; +} + +1; + +# end of main + +# this is for our long dates +# $locale->text('January') +# $locale->text('February') +# $locale->text('March') +# $locale->text('April') +# $locale->text('May ') +# $locale->text('June') +# $locale->text('July') +# $locale->text('August') +# $locale->text('September') +# $locale->text('October') +# $locale->text('November') +# $locale->text('December') + +# this is for our short month +# $locale->text('Jan') +# $locale->text('Feb') +# $locale->text('Mar') +# $locale->text('Apr') +# $locale->text('May') +# $locale->text('Jun') +# $locale->text('Jul') +# $locale->text('Aug') +# $locale->text('Sep') +# $locale->text('Oct') +# $locale->text('Nov') +# $locale->text('Dec') +use SL::IS; +use SL::PE; +use SL::AM; +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 set_pricegroup { + $lxdebug->enter_sub(); + my $rowcount = shift; + for $j (1 .. $rowcount) { + my $pricegroup_old = $form->{"pricegroup_old_$i"}; + if ($form->{PRICES}{$j}) { + $len = 0; + $prices = ''; + $price = 0; + foreach $item (@{ $form->{PRICES}{$j} }) { + + #$price = $form->round_amount($myconfig, $item->{price}, 5); + #$price = $form->format_amount($myconfig, $item->{price}, 2); + $price = $item->{price}; + $pricegroup_id = $item->{pricegroup_id}; + $pricegroup = $item->{pricegroup}; + + # build drop down list for pricegroups + $prices .= + qq|\n|; + + $len += 1; + + # map { + # $form->{"${_}_$j"} = + # $form->format_amount(\%myconfig, $form->{"${_}_$j"}) + # } qw(sellprice price_new price_old); + + # set new selectedpricegroup_id and prices for "Preis" + if ($item->{selected} && ($pricegroup_id != 0)) { + $form->{"pricegroup_old_$j"} = $pricegroup_id; + $form->{"price_new_$j"} = $price; + $form->{"sellprice_$j"} = $price; + } + if ($pricegroup_id == 0) { + $form->{"price_new_$j"} = $form->{"sellprice_$j"}; + } + } + $form->{"prices_$j"} = $prices; + } + } + $lxdebug->leave_sub(); +} + +sub display_form { + $lxdebug->enter_sub(); + + relink_accounts(); + + my $new_rowcount = $form->{"rowcount"} * 1 + 1; + $form->{"project_id_${new_rowcount}"} = $form->{"globalproject_id"}; + + $form->language_payment(\%myconfig); + + # if we have a display_form + if ($form->{display_form}) { + call_sub($form->{"display_form"}); + exit; + } + + Common::webdav_folder($form) if ($webdav); + + # if ( $form->{print_and_post} + # && $form->{second_run} + # && ($form->{action} eq "display_form")) { + # for (keys %$form) { $old_form->{$_} = $form->{$_} } + # $old_form->{rowcount}++; + # + # #$form->{rowcount}--; + # #$form->{rowcount}--; + # + # $form->{print_and_post} = 0; + # + # &print_form($old_form); + # exit; + # } + # + # $form->{action} = ""; + # $form->{resubmit} = 0; + # + # if ($form->{print_and_post} && !$form->{second_run}) { + # $form->{second_run} = 1; + # $form->{action} = "display_form"; + # $form->{rowcount}--; + # my $rowcount = $form->{rowcount}; + # + # # get pricegroups for parts + # IS->get_pricegroups_for_parts(\%myconfig, \%$form); + # + # # build up html code for prices_$i + # set_pricegroup($rowcount); + # + # $form->{resubmit} = 1; + # + # } + &form_header; + + $numrows = ++$form->{rowcount}; + $subroutine = "display_row"; + + if ($form->{item} eq 'part') { + + #set preisgruppenanzahl + $numrows = $form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + + $numrows = ++$form->{makemodel_rows}; + $subroutine = "makemodel_row"; + } + if ($form->{item} eq 'assembly') { + $numrows = $form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + + $numrows = ++$form->{makemodel_rows}; + $subroutine = "makemodel_row"; + + # create makemodel rows + &{$subroutine}($numrows); + + $numrows = ++$form->{assembly_rows}; + $subroutine = "assembly_row"; + } + if ($form->{item} eq 'service') { + $numrows = $form->{price_rows}; + $subroutine = "price_row"; + + &{$subroutine}($numrows); + + $numrows = 0; + } + + # create rows + &{$subroutine}($numrows) if $numrows; + + &form_footer; + + $lxdebug->leave_sub(); +} diff --git a/templates/webpages/generic/new_item_de.html b/templates/webpages/generic/new_item_de.html new file mode 100644 index 000000000..b11a94b0a --- /dev/null +++ b/templates/webpages/generic/new_item_de.html @@ -0,0 +1,25 @@ + + +

Dieser Artikel ist nicht in der Datenbank! + + +

Was ist dieser Artikel?

+ +
+ +

+ +  Ware
+  Dienstleistung +

+ + + + + + +

+ + + + diff --git a/templates/webpages/generic/new_item_master.html b/templates/webpages/generic/new_item_master.html new file mode 100644 index 000000000..a60249593 --- /dev/null +++ b/templates/webpages/generic/new_item_master.html @@ -0,0 +1,25 @@ + + +

Item not on file! + + +

What type of item is this?

+ +
+ +

+ +  Part
+  Service +

+ + + + + + +

+ + + + diff --git a/templates/webpages/oe/orders_footer_de.html b/templates/webpages/oe/orders_footer_de.html new file mode 100644 index 000000000..c119f1c05 --- /dev/null +++ b/templates/webpages/oe/orders_footer_de.html @@ -0,0 +1,142 @@ +[%- USE HTML %] +[%- USE LxERP %] + + + + + + + + +
+ + + + + + + + + + + + + +
Bemerkungeninterne Bemerkungen
[% notes %][% intnotes %]
Zahlungskonditionen[% payments %]
+
+ + +[%- IF is_sales %] + + + + + + + + +[%- END %] + + + +
Ertrag[% LxERP.format_amount(marge_total, 2) %] %
Ertrag prozentual[% LxERP.format_amount(marge_percent, 2) %] %
+
+[%- IF taxaccounts %] + Steuer im Preis inbegriffen

+[%- END %] + + [% subtotal %] + [% tax %] + + + + +
Summe[% LxERP.format_amount(invtotal, 2) %]
+
+ + + + + +
+ + +[%- IF webdav %] + + Dokumente im Webdav-Repository + + + + + + + [%- FOREACH file = WEBDAV %] + + + + + [%- END %] +
DateinameWebdavlink
[% file.name %][% file.type %]
+ + +
+ +[%- END %] + + + + [% print_options %] + + + + +[% label_edit %]
+ + + + + + + +[%- IF id %] + + +
[% label_workflow %]
+ + + + [%- IF is_sales_quo %] + + [%- END %] + + [%- IF is_req_quo %] + + [%- END %] + + + +
[% heading %] als neue Vorlage verwenden für
+ [%- IF is_sales_ord %] + + + [%- ELSE %] + [%- IF is_pur_ord %] + + + [%- ELSE %] + + [%- END %] + [%- END %] +[%- END %] + + + + + + + + + + + + diff --git a/templates/webpages/oe/orders_footer_master.html b/templates/webpages/oe/orders_footer_master.html new file mode 100644 index 000000000..997396dfc --- /dev/null +++ b/templates/webpages/oe/orders_footer_master.html @@ -0,0 +1,142 @@ +[%- USE HTML %] +[%- USE LxERP %] + + + + + + + + +
+ + + + + + + + + + + + + +
NotesInternal Notes
[% notes %][% intnotes %]
Payment Terms[% payments %]
+
+ + +[%- IF is_sales %] + + + + + + + + +[%- END %] + + + +
Ertrag[% LxERP.format_amount(marge_total, 2) %] %
Ertrag prozentual[% LxERP.format_amount(marge_percent, 2) %] %
+
+[%- IF taxaccounts %] + Tax Included

+[%- END %] + + [% subtotal %] + [% tax %] + + + + +
Total[% LxERP.format_amount(invtotal, 2) %]
+
+ + + + + +
+ + +[%- IF webdav %] + + Dokumente im Webdav-Repository + + + + + + + [%- FOREACH file = WEBDAV %] + + + + + [%- END %] +
DateinameWebdavlink
[% file.name %][% file.type %]
+ + +
+ +[%- END %] + + + + [% print_options %] + + + + +[% label_edit %]
+ + + + + + + +[%- IF id %] + + +
[% label_workflow %]
+ + + + [%- IF is_sales_quo %] + + [%- END %] + + [%- IF is_req_quo %] + + [%- END %] + + + +
[% heading %] als neue Vorlage verwenden für
+ [%- IF is_sales_ord %] + + + [%- ELSE %] + [%- IF is_pur_ord %] + + + [%- ELSE %] + + [%- END %] + [%- END %] +[%- END %] + + + + + + + + + + + + diff --git a/templates/webpages/oe/orders_header_de.html b/templates/webpages/oe/orders_header_de.html new file mode 100644 index 000000000..31f4c474b --- /dev/null +++ b/templates/webpages/oe/orders_header_de.html @@ -0,0 +1,194 @@ +[%- USE HTML %] +[%- USE LxERP %] + + +
+ + + + + + +[%- FOREACH row = HIDDENS %] + +[%- END %] + + + + + + + + + + + [% jsscript %] diff --git a/templates/webpages/oe/orders_header_master.html b/templates/webpages/oe/orders_header_master.html new file mode 100644 index 000000000..d0db27258 --- /dev/null +++ b/templates/webpages/oe/orders_header_master.html @@ -0,0 +1,194 @@ +[%- USE HTML %] +[%- USE LxERP %] + + + + + + + + + +[%- FOREACH row = HIDDENS %] + +[%- END %] + +
[% title %]
+ + + + + +
+ + + [% vc %] +[%- IF contact %] + + + + +[%- END %] +[%- IF shipto %] + + + + +[%- END %] +[%- IF is_order %] + + + + +[%- END %] +[%- IF business %] + + + + +[%- END %] +[%- IF max_dunning_level %] + + + + +[%- END %] + + + + +[%- IF selectdepartment %] + + + + +[%- END %] + +[%- IF currencies %] + + + + +[%- END %] +[%- IF show_exchangerate %] + + + + +[%- END %] +[%- IF is_sales %] + + + + +[%- END -%] + + + + + + + + + + + + +[%- IF show_delivery_customer %] + + + +[%- END %] +
Ansprechpartner[% contact %]
Lieferadresse[% shipto %]
Kreditlimit[% LxERP.format_amount(creditlimit, 0) %]; Rest [% LxERP.format_amount(creditremaining, 0) %]
[% business_label %][% business %]; Rabatt [% LxERP.format_percent(tradediscount) %] %
höchste Mahnstufe: + [% max_dunning_level %]; + gemahnter Betrag: [% LxERP.format_amount(dunning_amount, 2) %] +
Steuersatz[% taxzone %]
Abteilung + +
Währung[% currencies %]
Wechselkurs + [%~ IF forex ~%] + [% LxERP.format_amount(exchangerate, 0) %] + [%~ ELSE ~%] + + [%~ END ~%] +
Motiv
Versandort
Transportmittel
Vorgangsbezeichnung
+ + + + + + + + + +
+ + +
+ + +
+
+
+ + [% openclosed %] + + + + +[%- IF salesmen %] + + + + +[%- END %] +[%- IF is_order %] + + + + +[%- END %] + + + + +[%- IF is_order %] + + + +[%- END %] + + + [% button1 %] + + + + [% button2 %] + + + + + +
Bearbeiter[% employee %]
Verkäufer/in[% salesmen %]
Auftragsnummer
[% IF is_req_quo %]Anfragenummer[% ELSE %]Angebotsnummer[% END %]
Bestellnummer des Kunden
+ [%~ IF is_order ~%] + Auftragsdatum + [%~ ELSE ~%] + Angebotsdatum + [%~ END ~%] +
+ [%~ IF is_sales_quo ~%] + gültig bis + [%~ ELSE ~%] + Lieferdatum + [%~ END ~%] +
Projektnummer[% globalprojectnumber %]
+
+
+ + + + + + + + + [% jsscript %] diff --git a/templates/webpages/oe/sales_order_de.html b/templates/webpages/oe/sales_order_de.html new file mode 100644 index 000000000..daa53a841 --- /dev/null +++ b/templates/webpages/oe/sales_order_de.html @@ -0,0 +1,27 @@ + + + + diff --git a/templates/webpages/oe/sales_order_master.html b/templates/webpages/oe/sales_order_master.html new file mode 100644 index 000000000..c5789c0ec --- /dev/null +++ b/templates/webpages/oe/sales_order_master.html @@ -0,0 +1,27 @@ + + + + -- 2.20.1
[% title %]
+ + + + + +
+ + + [% vc %] +[%- IF contact %] + + + + +[%- END %] +[%- IF shipto %] + + + + +[%- END %] +[%- IF is_order %] + + + + +[%- END %] +[%- IF business %] + + + + +[%- END %] +[%- IF max_dunning_level %] + + + + +[%- END %] + + + + +[%- IF selectdepartment %] + + + + +[%- END %] + +[%- IF currencies %] + + + + +[%- END %] +[%- IF show_exchangerate %] + + + + +[%- END %] +[%- IF is_sales %] + + + + +[%- END -%] + + + + + + + + + + + + +[%- IF show_delivery_customer %] + + + +[%- END %] +
Contact Person[% contact %]
Shipping Address[% shipto %]
Credit Limit[% LxERP.format_amount(creditlimit, 0) %]; Remaining [% LxERP.format_amount(creditremaining, 0) %]
[% business_label %][% business %]; Trade Discount [% LxERP.format_percent(tradediscount) %] %
Max. Dunning Level: + [% max_dunning_level %]; + Dunning Amount: [% LxERP.format_amount(dunning_amount, 2) %] +
Steuersatz[% taxzone %]
Department + +
Currency[% currencies %]
Exchangerate + [%~ IF forex ~%] + [% LxERP.format_amount(exchangerate, 0) %] + [%~ ELSE ~%] + + [%~ END ~%] +
Motiv
Shipping Point
Ship via
Transaction description
+ + + + + + + + + +
+ + +
+ + +
+
+
+ + [% openclosed %] + + + + +[%- IF salesmen %] + + + + +[%- END %] +[%- IF is_order %] + + + + +[%- END %] + + + + +[%- IF is_order %] + + + +[%- END %] + + + [% button1 %] + + + + [% button2 %] + + + + + +
Employee[% employee %]
Salesman[% salesmen %]
Order Number
[% IF is_req_quo %]RFQ Number[% ELSE %]Quotation Number[% END %]
Customer Order Number
+ [%~ IF is_order ~%] + Order Date + [%~ ELSE ~%] + Quotation Date + [%~ END ~%] +
+ [%~ IF is_sales_quo ~%] + Valid until + [%~ ELSE ~%] + Required by + [%~ END ~%] +
Project Number[% globalprojectnumber %]
+
+
+ + > +
+ + + + + + + + + + + + + + style="display:none;"> + + +
+ +
+
+ + > +
+ + + + + + + + + + + + + + style="display:none;"> + + +
+ +
+