Erzeugnis: lastcost-Konflikt für makemodel und Komponenten
authorG. Richardson <information@lx-office-hosting.de>
Thu, 26 Jul 2012 18:27:18 +0000 (20:27 +0200)
committerG. Richardson <information@lx-office-hosting.de>
Thu, 26 Jul 2012 18:43:37 +0000 (20:43 +0200)
Sowohl die EK-Preise der Erzeugnis-Komponenten als auch die EK-Preise
der makemodel-Versionen werden in $form->{lastcost_$i} gespeichert und
überlagern sich damit.

Und da diese auch noch im Hintergrund unterschiedlich
formatiert/geparsed werden kam es bei den Erzeugnis-EK-Preisen nach dem
Erneuern zu Formatierungsfehlern.

Da Erzeugnisse aber produziert und nicht eingekauft werden ist hier auch
kein makemodel nötig, so daß es für Erzeugnisse entfernt wurde.

bin/mozilla/ic.pl
bin/mozilla/invoice_io.pl

index 249c99e..0eb7995 100644 (file)
@@ -1752,8 +1752,11 @@ sub update {
   # parse pricegroups. and no, don't rely on check_form for this...
   map { $form->{"price_$_"} = $form->parse_amount(\%myconfig, $form->{"price_$_"}) } 1 .. $form->{price_rows};
 
-  # same for lastcosts
-  map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
+  # same for makemodel lastcosts
+  # but parse_amount not necessary for assembly component lastcosts
+  unless ($form->{item} eq "assembly") {
+    map { $form->{"lastcost_$_"} = $form->parse_amount(\%myconfig, $form->{"lastcost_$_"}) } 1 .. $form->{"makemodel_rows"};
+  };
 
   if ($form->{item} eq "assembly") {
     my $i = $form->{assembly_rows};
index 5f6c141..843a32f 100644 (file)
@@ -224,8 +224,11 @@ sub display_form {
       $numrows    = ++$form->{makemodel_rows};
       $subroutine = "makemodel_row";
 
+      # assemblies are built from components, they aren't purchased from a vendor
+      # also the lastcost_$i from makemodel conflicted with the component lastcost_$i 
+      # so we don't need the makemodel rows for assemblies 
       # create makemodel rows
-      &{$subroutine}($numrows);
+      &{$subroutine}($numrows);
 
       $numrows    = ++$form->{assembly_rows};
       $subroutine = "assembly_row";