Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 0e7a8b0c

Von Jan Büren vor etwa 2 Jahren hinzugefügt

  • ID 0e7a8b0c150df60842c4502d536a42b0af44e33f
  • Vorgänger 7dfb5656
  • Nachfolger 2172794d

Einkaufspreis von Erzeugnissen/Sortimententen aktualisieren (rekursiv)

Falls sich ein einzelner Bestandteil verändert. Läuft über alle
weiter verbauten Teile durch Aufruf von Parts::after_save.
Benötigt einen boolean Parameter in $::form->{lastcost_modified}, damit
nicht bei jedem Speichern des Artikels ohne Veränderung des EK-Preises
die Rekursion losgetreten wird. Beachtet auch die Veränderungsroutine
innerhalb des EK-Rechnungscodes.

Unterschiede anzeigen:

SL/IR.pm
# update parts table by setting lastcost to current price, don't allow negative values by using abs
# maybe allow only 2 decimal places -> rounding error with fx can be too huge for datev checks
# @values = ($form->round_amount(abs($fxsellprice * $form->{exchangerate} / $basefactor), 2), conv_i($form->{"id_$i"}));
$query = qq|UPDATE parts SET lastcost = ? WHERE id = ?|;
@values = (abs($fxsellprice * $form->{exchangerate} / $basefactor), conv_i($form->{"id_$i"}));
do_query($form, $dbh, $query, @values);
#$query = qq|UPDATE parts SET lastcost = ? WHERE id = ?|;
#@values = (abs($fxsellprice * $form->{exchangerate} / $basefactor), conv_i($form->{"id_$i"}));
#do_query($form, $dbh, $query, @values);
# after_save hook changes lastcost for all assemblies and assortments recursively
$::form->{lastcost_modified} = 1;
my $a = SL::DB::Part->load_cached(conv_i($form->{"id_$i"}));
$a->update_attributes(lastcost => abs($fxsellprice * $form->{exchangerate} / $basefactor));
# check if we sold the item already and
# make an entry for the expense and inventory

Auch abrufbar als: Unified diff