Lager/Einlagern: Grund der Einlagerung wird ignoriert
authorFrank Messerschmidt <frank.messerschmidt@opendynamic.de>
Mon, 14 Mar 2016 10:30:10 +0000 (11:30 +0100)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Fri, 9 Nov 2018 12:07:47 +0000 (13:07 +0100)
- Abfrage der eindeutigen ID des Transfertypes statt der Bezeichnung hinzugefügt
- Abfrage nach der eindeutigen ID des Transfertyps erweitert:
- ist diese vorhanden so wird sie direkt verwendet
- ist sie nicht vorhanden so wird das Transferobjekt über den alten Weg erzeugt und die ID des Transfertyps daraus genommen
    (letzteres tritt beim auslagern von Lieferscheinen auf)

implementiert TICKET #4482

(cherry picked from commit e98edcb3c81a18d52dd90b69c76bebeb45954bca)
(cherry-pick von odyn)

SL/Controller/Inventory.pm
SL/WH.pm

index e317381..e608f14 100644 (file)
@@ -411,6 +411,7 @@ sub action_stock {
           qty           => $qty,
           unit          => $self->unit,
           transfer_type => 'stock',
+          transfer_type_id => $::form->{transfer_type_id},
           chargenumber  => $::form->{chargenumber},
           bestbefore    => $::form->{bestbefore},
           ean           => $::form->{ean},
index 3c3f654..48d56e8 100644 (file)
--- a/SL/WH.pm
+++ b/SL/WH.pm
@@ -99,15 +99,21 @@ sub transfer {
       $direction |= 1 if $src_bin;
       $direction |= 2 if $dst_bin;
 
-      my $transfer_type = $objectify->($transfer, 'transfer_type', 'SL::DB::TransferType', direction   => $directions[$direction],
-                                                                                           description => $transfer->{transfer_type});
+      my $transfer_type_id;
+      if ($transfer->{transfer_type_id}) {
+        $transfer_type_id = $transfer->{transfer_type_id};
+      } else {
+        my $transfer_type = $objectify->($transfer, 'transfer_type', 'SL::DB::TransferType', direction   => $directions[$direction],
+                                                                                             description => $transfer->{transfer_type});
+        $transfer_type_id = $transfer_type->id;
+      }
 
       my $stocktaking_qty = $transfer->{stocktaking_qty};
 
       my %params = (
           part             => $part,
           employee         => $employee,
-          trans_type       => $transfer_type,
+          trans_type_id    => $transfer_type_id,
           project          => $project,
           trans_id         => $trans_id,
           shippingdate     => !$transfer->{shippingdate} || $transfer->{shippingdate} eq 'current_date'