X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Foe.pl;h=f095c5f8aeb4afb26706aa8289053b7a0a8d6c18;hb=4a19c3d4287ccc276008fd78e63db25930d68f41;hp=39b99584080561a5a239f9e5aca6915530be75a0;hpb=609065d23ee1ba529ba0ebfb5a2146b79775e9ea;p=kivitendo-erp.git
diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl
index 39b995840..f095c5f8a 100644
--- a/bin/mozilla/oe.pl
+++ b/bin/mozilla/oe.pl
@@ -38,6 +38,7 @@ use SL::IR;
use SL::IS;
use SL::PE;
use SL::ReportGenerator;
+use List::Util qw(max);
require "bin/mozilla/io.pl";
require "bin/mozilla/arap.pl";
@@ -324,25 +325,16 @@ sub prepare_order {
sub form_header {
$lxdebug->enter_sub();
- my $checkedclosed = $form->{"closed"} ? "checked" : "";
+ my $checkedclosed = $form->{"closed"} ? "checked" : "";
my $checkeddelivered = $form->{"delivered"} ? "checked" : "";
- if ($form->{old_employee_id}) {
- $form->{employee_id} = $form->{old_employee_id};
- }
- if ($form->{old_salesman_id}) {
- $form->{salesman_id} = $form->{old_salesman_id};
- }
+ $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
+ $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
-
- if ($form->{old_employee_id}) {
- $form->{employee_id} = $form->{old_employee_id};
- }
- if ($form->{old_salesman_id}) {
- $form->{salesman_id} = $form->{old_salesman_id};
- }
+ $form->{employee_id} = $form->{old_employee_id} if $form->{old_employee_id};
+ $form->{salesman_id} = $form->{old_salesman_id} if $form->{old_salesman_id};
map { $form->{$_} =~ s/\"/"/g }
qw(ordnumber quonumber shippingpoint shipvia notes intnotes shiptoname
@@ -365,39 +357,32 @@ sub form_header {
|;
#write Trigger
- $jsscript =
- Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1",
- "reqdate", "BL", "trigger2");
+ $jsscript = Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1", "reqdate", "BL", "trigger2");
my @tmp;
if (($form->{"type"} eq "sales_order") ||
($form->{"type"} eq "purchase_order")) {
- push(@tmp, qq|
-
- |);
+ push(@tmp, qq|
+ |);
}
if ($form->{id}) {
- push(@tmp, qq|
-
- |);
+ push(@tmp, qq|
+ |);
}
if (@tmp) {
- $openclosed .= qq|
-
- | . join("\n", @tmp) . qq|
- |
-
-|;
+ $openclosed .= qq|
+ | . join("\n", @tmp) . qq|
+ |
+
\n|;
}
# set option selected
foreach $item ($form->{vc}, currency, department, ($form->{vc} eq "customer" ? customer : vendor)) {
$form->{"select$item"} =~ s/ selected//;
- $form->{"select$item"} =~
- s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
+ $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
}
#quote select[customer|vendor] Bug 133
@@ -411,24 +396,26 @@ sub form_header {
if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"}));
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
- $form->get_lists("contacts" => "ALL_CONTACTS",
- "shipto" => "ALL_SHIPTO",
- "projects" => { "key" => "ALL_PROJECTS",
- "all" => 0,
- "old_id" => \@old_project_ids },
- "employees" => "ALL_EMPLOYEES",
- "salesmen" => "ALL_SALESMEN",
- "taxzones" => "ALL_TAXZONES",
- "payments" => "ALL_PAYMENTS",
- "currencies" => "ALL_CURRENCIES",
- $vc => "ALL_" . uc($vc));
+ $form->get_lists("contacts" => "ALL_CONTACTS",
+ "shipto" => "ALL_SHIPTO",
+ "projects" => {
+ "key" => "ALL_PROJECTS",
+ "all" => 0,
+ "old_id" => \@old_project_ids
+ },
+ "employees" => "ALL_EMPLOYEES",
+ "salesmen" => "ALL_SALESMEN",
+ "taxzones" => "ALL_TAXZONES",
+ "payments" => "ALL_PAYMENTS",
+ "currencies" => "ALL_CURRENCIES",
+ $vc => "ALL_" . uc($vc),
+ "price_factors" => "ALL_PRICE_FACTORS");
my %labels;
my @values = (undef);
foreach my $item (@{ $form->{"ALL_CONTACTS"} }) {
push(@values, $item->{"cp_id"});
- $labels{$item->{"cp_id"}} = $item->{"cp_name"} .
- ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : "");
+ $labels{$item->{"cp_id"}} = $item->{"cp_name"} . ($item->{"cp_abteilung"} ? " ($item->{cp_abteilung})" : "");
}
my $contact;
@@ -504,10 +491,9 @@ sub form_header {
push(@values, $item->{"id"});
$labels{$item->{"id"}} = $item->{"projectnumber"};
}
- my $globalprojectnumber =
- NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values,
- '-labels' => \%labels,
- '-default' => $form->{"globalproject_id"}));
+ my $globalprojectnumber = NTI($cgi->popup_menu('-name' => 'globalproject_id', '-values' => \@values,
+ '-labels' => \%labels,
+ '-default' => $form->{"globalproject_id"}));
my $salesmen = "";
%labels = ();
@@ -580,40 +566,26 @@ sub form_header {
|;
}
- $form->{exchangerate} =
- $form->format_amount(\%myconfig, $form->{exchangerate});
-
- if (!$form->{exchangerate}) {
- $form->{exchangerate} = "";
- }
+ $form->{exchangerate} = $form->format_amount(\%myconfig, $form->{exchangerate});
+ $form->{exchangerate} = "" unless $form->{exchangerate};
- if (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) {
- $creditwarning = 1;
- } else {
- $creditwarning = 0;
- }
+ $creditwarning = (($form->{creditlimit} != 0) && ($form->{creditremaining} < 0) && !$form->{update}) ? 1 : 0;
- $form->{creditlimit} =
- $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0");
- $form->{creditremaining} =
- $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
+ $form->{creditlimit} = $form->format_amount(\%myconfig, $form->{creditlimit}, 0, "0");
+ $form->{creditremaining} = $form->format_amount(\%myconfig, $form->{creditremaining}, 0, "0");
- $exchangerate = qq|
-{forex}>
-|;
+ $exchangerate = qq|\n{forex}>\n|;
if ($form->{currency} ne $form->{defaultcurrency}) {
if ($form->{forex}) {
$exchangerate .=
- qq||
- . $locale->text('Exchangerate')
+ qq| | | . $locale->text('Exchangerate')
. qq| | $form->{exchangerate} |
{exchangerate}>
|;
} else {
$exchangerate .=
- qq||
- . $locale->text('Exchangerate')
+ qq| | | . $locale->text('Exchangerate')
. qq| | {exchangerate}> | |;
}
}
@@ -681,10 +653,7 @@ sub form_header {
|;
} else {
- $reqlabel =
- ($form->{type} eq 'sales_quotation')
- ? $locale->text('Valid until')
- : $locale->text('Required by');
+ $reqlabel = ($form->{type} eq 'sales_quotation') ? $locale->text('Valid until') : $locale->text('Required by');
if ($form->{type} eq 'sales_quotation') {
$ordnumber = qq|
@@ -705,20 +674,9 @@ sub form_header {
}
- $ordnumber .= qq|
-
- | . $locale->text('Quotation Date') . qq| |
- $button1
-
-
- $reqlabel |
- $button2
-
-|;
- $creditremaining = qq|
- |
- $shipto
-
|;
+ $ordnumber .= qq| | . $locale->text('Quotation Date') . qq| | $button1
+ $reqlabel | $button2
\n|;
+ $creditremaining = qq| | $shipto
|;
}
$department = qq|
@@ -730,35 +688,23 @@ sub form_header {
| if $form->{selectdepartment};
if ($form->{type} eq 'sales_order') {
- if ($form->{selectemployee}) {
- $employee .= qq|
- |;
- }
+ $employee .= qq|\n| if $form->{selectemployee};
} else {
- $employee .= qq|
- |;
- }
- if ($form->{resubmit} && ($form->{format} eq "html")) {
- $onload =
- qq|window.open('about:blank','Beleg'); document.oe.target = 'Beleg';document.oe.submit()|;
- } elsif ($form->{resubmit}) {
- $onload = qq|document.oe.submit()|;
- } else {
- $onload = "focus()";
+ $employee .= qq|\n|;
}
$credittext = $locale->text('Credit Limit exceeded!!!');
- if ($creditwarning) {
- $onload = qq|alert('$credittext')|;
- }
-
+
+ $onload = ($form->{resubmit} && ($form->{format} eq "html")) ? "window.open('about:blank','Beleg'); document.oe.target = 'Beleg';document.oe.submit()"
+ : ($form->{resubmit}) ? "document.oe.submit()"
+ : ($creditwarning) ? "alert('$credittext')"
+ : "focus()";
+
$onload .= qq|;setupDateFormat('|. $myconfig{dateformat} .qq|', '|. $locale->text("Falsches Datumsformat!") .qq|')|;
- $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
+ $onload .= qq|;setupPoints('|. $myconfig{numberformat} .qq|', '|. $locale->text("wrongformat") .qq|')|;
- $form->{"javascript"} .= qq||;
- # show history button js
+ $form->{javascript} .= qq||;
$form->{javascript} .= qq||;
- #/show history button js
$form->{javascript} .= qq||;
$form->header;
@@ -776,8 +722,11 @@ sub form_header {
$form->hide_form(qw(id action type vc formname media format proforma queued printed emailed
title discount creditlimit creditremaining tradediscount business
- max_dunning_level dunning_amount));
-
+ max_dunning_level dunning_amount shiptoname shiptostreet shiptozipcode
+ shiptocity shiptocountry shiptocontact shiptophone shiptofax
+ shiptodepartment_1 shiptodepartment_2 shiptoemail
+ message email subject cc bcc taxpart taxservice taxaccounts),
+ map { $_.'_rate', $_.'_description' } split / /, $form->{taxaccounts} );
print qq|
@@ -856,39 +805,8 @@ print qq|
$jsscript
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|;
- foreach $item (split / /, $form->{taxaccounts}) {
- print qq|
-{"${item}_rate"}>
-
-|;
- }
$lxdebug->leave_sub();
}
@@ -1012,6 +930,10 @@ sub form_footer {
+|;
+
+ if ($form->{type} =~ /^sales_/) {
+ print qq|
| . $locale->text('Ertrag') . qq| |
| . $form->format_amount(\%myconfig, $form->{marge_total}, 2, 0) . qq| |
@@ -1020,6 +942,10 @@ sub form_footer {
| . $locale->text('Ertrag prozentual') . qq| |
| . $form->format_amount(\%myconfig, $form->{marge_percent}, 2, 0) . qq| % |
+|;
+ }
+
+ print qq|
@@ -1056,11 +982,11 @@ sub form_footer {
| Dateiname |
Webdavlink |
|;
- foreach $file (keys %{ $form->{WEBDAV} }) {
+ foreach $file (@{ $form->{WEBDAV} }) {
$webdav_list .= qq|
- $file |
- $form->{WEBDAV}{$file} |
+ $file->{name} |
+ $file->{type} |
|;
}
@@ -1124,12 +1050,10 @@ sub form_footer {
|;
}
- if (1) {
print qq|
|;
-}
if ($form->{type} =~ /sales_order$/) {
print qq|
@@ -1182,34 +1106,24 @@ sub update {
set_headings($form->{"id"} ? "edit" : "add");
- map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) }
- qw(exchangerate creditlimit creditremaining);
+ map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate creditlimit creditremaining);
$form->{update} = 1;
- if($form->{payment_id}) {
- $payment_id = $form->{payment_id};
- }
+ $payment_id = $form->{payment_id} if $form->{payment_id};
&check_name($form->{vc});
- if($form->{payment_id} eq "") {
- $form->{payment_id} = $payment_id;
- }
+ $form->{payment_id} = $payment_id if $form->{payment_id} eq "";
$buysell = 'buy';
$buysell = 'sell' if ($form->{vc} eq 'vendor');
- $form->{exchangerate} = $exchangerate
- if (
- $form->{forex} = (
- $exchangerate =
- $form->check_exchangerate(
- \%myconfig, $form->{currency}, $form->{transdate}, $buysell
- )));
+ $form->{exchangerate} = $exchangerate if
+ $form->{forex} = $exchangerate = $form->check_exchangerate(\%myconfig, $form->{currency}, $form->{transdate}, $buysell);
# for pricegroups
$i = $form->{rowcount};
- $exchangerate = ($form->{exchangerate}) ? $form->{exchangerate} : 1;
+ $exchangerate = $form->{exchangerate} || 1;
if ( ($form->{"partnumber_$i"} eq "")
&& ($form->{"description_$i"} eq "")
@@ -1224,14 +1138,14 @@ sub update {
|| $form->{type} eq 'request_quotation') {
IR->retrieve_item(\%myconfig, \%$form);
}
- if ($form->{type} eq 'sales_order' || $form->{type} eq 'sales_quotation') {
+ if ( $form->{type} eq 'sales_order'
+ || $form->{type} eq 'sales_quotation') {
IS->retrieve_item(\%myconfig, \%$form);
}
my $rows = scalar @{ $form->{item_list} };
- $form->{"discount_$i"} =
- $form->format_amount(\%myconfig, $form->{discount} * 100);
+ $form->{"discount_$i"} = $form->format_amount(\%myconfig, $form->{discount} * 100);
if ($rows) {
$form->{"qty_$i"} = 1 unless ($form->{"qty_$i"});
@@ -1243,51 +1157,33 @@ sub update {
} else {
- $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
- if ($form->{"not_discountable_$i"}) {
- $form->{"discount_$i"} = 0;
- }
- map { $form->{item_list}[$i]{$_} =~ s/\"/"/g }
- qw(partnumber description unit);
- map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} }
- keys %{ $form->{item_list}[0] };
- if ($form->{"part_payment_id_$i"} ne "") {
- $form->{payment_id} = $form->{"part_payment_id_$i"};
- }
+ $sellprice = $form->parse_amount(\%myconfig, $form->{"sellprice_$i"});
+ $form->{"discount_$i"} = 0 if $form->{"not_discountable_$i"};
+ map { $form->{item_list}[$i]{$_} =~ s/\"/"/g } qw(partnumber description unit);
+ map { $form->{"${_}_$i"} = $form->{item_list}[0]{$_} } keys %{ $form->{item_list}[0] };
+ $form->{payment_id} = $form->{"part_payment_id_$i"} if $form->{"part_payment_id_$i"} ne "";
- $s = ($sellprice) ? $sellprice : $form->{"sellprice_$i"};
+ $form->{"marge_price_factor_$i"} = $form->{item_list}->[0]->{price_factor};
- ($dec) = ($s =~ /\.(\d+)/);
- $dec = length $dec;
- $decimalplaces = ($dec > 2) ? $dec : 2;
+ ($sellprice || $form->{"sellprice_$i"}) =~ /\.(\d+)/;
+ $decimalplaces = max 2, length $1;
if ($sellprice) {
$form->{"sellprice_$i"} = $sellprice;
} else {
-
$form->{"sellprice_$i"} *= (1 - $form->{tradediscount});
-
- # if there is an exchange rate adjust sellprice
- $form->{"sellprice_$i"} /= $exchangerate;
+ $form->{"sellprice_$i"} /= $exchangerate; # if there is an exchange rate adjust sellprice
}
- $amount =
- $form->{"sellprice_$i"} * $form->{"qty_$i"} *
- (1 - $form->{"discount_$i"} / 100);
- map { $form->{"${_}_base"} = 0 } (split / /, $form->{taxaccounts});
- map { $form->{"${_}_base"} += $amount }
- (split / /, $form->{"taxaccounts_$i"});
- map { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) }
- split / /, $form->{taxaccounts}
- if !$form->{taxincluded};
+ $amount = $form->{"sellprice_$i"} * $form->{"qty_$i"} * (1 - $form->{"discount_$i"} / 100);
+ map { $form->{"${_}_base"} = 0 } split / /, $form->{taxaccounts};
+ map { $form->{"${_}_base"} += $amount } split / /, $form->{"taxaccounts_$i"};
+ map { $amount += ($form->{"${_}_base"} * $form->{"${_}_rate"}) } split / /, $form->{taxaccounts} if !$form->{taxincluded};
$form->{creditremaining} -= $amount;
- $form->{"sellprice_$i"} =
- $form->format_amount(\%myconfig, $form->{"sellprice_$i"},
- $decimalplaces);
- $form->{"qty_$i"} =
- $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
+ $form->{"sellprice_$i"} = $form->format_amount(\%myconfig, $form->{"sellprice_$i"}, $decimalplaces);
+ $form->{"qty_$i"} = $form->format_amount(\%myconfig, $form->{"qty_$i"}, $dec_qty);
# get pricegroups for parts
IS->get_pricegroups_for_parts(\%myconfig, \%$form);
@@ -1308,14 +1204,11 @@ sub update {
&& ($form->{"description_$i"} eq "")) {
$form->{rowcount}--;
$form->{"discount_$i"} = "";
- &display_form;
- } else {
+ display_form();
+ } else {
$form->{"id_$i"} = 0;
- $form->{"unit_$i"} = $locale->text('ea');
-
- &new_item;
-
+ new_item();
}
}
}
@@ -1414,10 +1307,12 @@ sub search {
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
- $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
- "all" => 1 },
+ $form->get_lists("projects" => { "key" => "ALL_PROJECTS",
+ "all" => 1 },
"employees" => "ALL_EMPLOYEES",
- $vc => "ALL_" . uc($vc));
+ "salesmen" => "ALL_SALESMEN",
+ $vc => "ALL_" . uc($vc)
+ );
my %labels = ();
my @values = ("");
@@ -1436,6 +1331,14 @@ sub search {
push(@values, $item->{"id"});
$labels{$item->{"id"}} = $item->{"name"} ne "" ? $item->{"name"} : $item->{"login"};
}
+
+ #salesmen
+ my %labels_salesmen = ();
+ my @values_salesmen = ('');
+ foreach my $item (@{ $form->{"ALL_SALESMEN"} }) {
+ push(@values_salesmen, $item->{"id"});
+ $labels_salesmen{$item->{"id"}} = $item->{"name"} ne "" ? $item->{"name"} : $item->{"login"};
+ }
my $employee_block = qq|
@@ -1445,6 +1348,14 @@ sub search {
'-values' => \@values,
'-labels' => \%labels)) . qq|
+
+
+ | . $locale->text('Salesman') . qq| |
+ | .
+ NTI($cgi->popup_menu('-name' => 'salesman_id',
+ '-values' => \@values_salesmen,
+ '-labels' => \%labels_salesmen)) . qq|
+ |
|;
%labels = ();
@@ -1527,9 +1438,9 @@ sub search {
$vc_label |
$employee |
+
|
. $locale->text('Ship via') . qq| |
- $employee |
|
@@ -1554,6 +1465,8 @@ sub search {
|
|
. $locale->text('Subtotal') . qq| |
+ |
+ . $locale->text('Salesman') . qq| |
@@ -1621,6 +1534,7 @@ sub orders {
"name", "netamount",
"tax", "amount",
"curr", "employee",
+ "salesman",
"shipvia", "globalprojectnumber",
"transaction_description", "open",
"delivered", "marge_total", "marge_percent"
@@ -1659,7 +1573,7 @@ sub orders {
my @hidden_variables = map { "l_${_}" } @columns;
push @hidden_variables, "l_subtotal", $form->{vc}, qw(l_closed l_notdelivered open closed delivered notdelivered ordnumber quonumber
- transaction_description transdatefrom transdateto type vc employee_id);
+ transaction_description transdatefrom transdateto type vc employee_id salesman_id);
my $href = build_std_url('action=orders', grep { $form->{$_} } @hidden_variables);
@@ -1675,7 +1589,8 @@ sub orders {
'tax' => { 'text' => $locale->text('Tax'), },
'amount' => { 'text' => $locale->text('Total'), },
'curr' => { 'text' => $locale->text('Curr'), },
- 'employee' => { 'text' => $locale->text('Salesperson'), },
+ 'employee' => { 'text' => $locale->text('Employee'), },
+ 'salesman' => { 'text' => $locale->text('Salesman'), },
'shipvia' => { 'text' => $locale->text('Ship via'), },
'globalprojectnumber' => { 'text' => $locale->text('Project Number'), },
'transaction_description' => { 'text' => $locale->text('Transaction description'), },
@@ -1685,7 +1600,7 @@ sub orders {
'marge_percent' => { 'text' => $locale->text('Ertrag prozentual'), }
);
- foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee shipvia)) {
+ foreach my $name (qw(id transdate reqdate quonumber ordnumber name employee salesman shipvia)) {
$column_defs{$name}->{link} = $href . "&sort=$name";
}
@@ -1756,7 +1671,7 @@ sub orders {
# escape callback for href
$callback = $form->escape($href);
- my @subtotal_columns = qw(netamount amount marge_total);
+ my @subtotal_columns = qw(netamount amount marge_total marge_percent);
my %totals = map { $_ => 0 } @subtotal_columns;
my %subtotals = map { $_ => 0 } @subtotal_columns;
@@ -1775,6 +1690,9 @@ sub orders {
map { $subtotals{$_} += $oe->{$_};
$totals{$_} += $oe->{$_} } @subtotal_columns;
+ $subtotals{marge_percent} = $subtotals{netamount} ? ($subtotals{marge_total} * 100 / $subtotals{netamount}) : 0;
+ $totals{marge_percent} = $totals{netamount} ? ($totals{marge_total} * 100 / $totals{netamount} ) : 0;
+
map { $oe->{$_} = $form->format_amount(\%myconfig, $oe->{$_}, 2) } qw(netamount tax amount marge_total marge_percent);
my $row = { };
@@ -2078,8 +1996,8 @@ sub delete {
-
+