X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Fio.pl;h=1a018a5cb01cf54ec1ec882371b13ead5e55acd4;hb=3da2dca2e601b311b6e464ffff02bfe98a7024d1;hp=c32509c1f1bfd176193cf077001a97cb0f25091f;hpb=d6bf475aee947e7451eb9b797ed0ad5ab5bcf6f8;p=kivitendo-erp.git diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index c32509c1f..1a018a5cb 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -241,6 +241,9 @@ sub display_row { $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"} }) { @@ -300,6 +303,37 @@ sub display_row { $linetotal = $form->round_amount($form->{"sellprice_$i"} - $discount, $decimalplaces); $linetotal = $form->round_amount($linetotal * $form->{"qty_$i"}, 2); + my $real_sellprice = $form->{"sellprice_$i"} - $discount; + + # marge calculations + my ($marge_font_start, $marge_font_end); + $form->{"lastcost_$i"} *= 1; + if ($real_sellprice && ($form->{"qty_$i"} * 1)) { + $form->{"marge_percent_$i"} = + ($real_sellprice - $form->{"lastcost_$i"}) * 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; + } + $form->{"marge_absolut_$i"} = + ($real_sellprice - $form->{"lastcost_$i"}) * $form->{"qty_$i"}; + $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); # convert " to " map { $form->{"${_}_$i"} =~ s/\"/"/g } @@ -439,7 +473,7 @@ sub display_row { "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")); + "longdescription_$i", "basefactor_$i", "marge_absolut_$i", "marge_percent_$i", "lastcost_$i")); ######################################## # Eintrag fuer Version 2.2.0 geaendert # @@ -492,9 +526,14 @@ sub display_row { my $subtotalchecked = ($form->{"subtotal_$i"}) ? "checked" : ""; print qq| |.$locale->text('Subtotal').qq|  +|; + + print qq| + ${marge_font_start}|.$locale->text('Ertrag').qq| $form->{"marge_absolut_$i"}  $form->{"marge_percent_$i"} % ${marge_font_end} +  |.$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).qq| - |; ############## ENDE Neueintrag ################## @@ -511,6 +550,10 @@ sub display_row { |; + if (0 != ($form->{sellprice_total} * 1)) { + $form->{marge_percent} = ($form->{sellprice_total} - $form->{lastcost_total}) / $form->{sellprice_total} * 100; + } + $lxdebug->leave_sub(); } @@ -647,7 +690,7 @@ sub select_item { my @new_fields = qw(bin listprice inventory_accno income_accno expense_accno unit weight assembly taxaccounts partsgroup formel longdescription not_discountable - part_payment_id partnotes id); + part_payment_id partnotes id lastcost); push(@new_fields, "lizenzen") if ($lizenzen); print join "\n", map { $cgi->hidden("-name" => "new_${_}_$i", "-value" => $ref->{$_}) } @new_fields; @@ -706,7 +749,7 @@ sub item_selected { map { $form->{"${_}_$i"} = $form->{"new_${_}_$j"} } qw(id partnumber description sellprice listprice inventory_accno income_accno expense_accno bin unit weight assembly taxaccounts - partsgroup formel longdescription not_discountable partnotes); + partsgroup formel longdescription not_discountable partnotes lastcost); if ($form->{"part_payment_id_$i"} ne "") { $form->{payment_id} = $form->{"part_payment_id_$i"}; } @@ -946,7 +989,7 @@ sub check_form { my @a = (); my $count = 0; my @flds = ( - qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor) + qw(id partnumber description qty ship sellprice unit discount inventory_accno income_accno expense_accno listprice taxaccounts bin assembly weight projectnumber project_id oldprojectnumber runningnumber serialnumber partsgroup payment_id not_discountable shop ve gv buchungsgruppen_id language_values sellprice_pg pricegroup_old price_old price_new unit_old ordnumber transdate longdescription basefactor marge_absolut marge_percent lastcost ) );