Fertigen ohne Prüfung nach Bestand(2)
authorMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Thu, 21 Jul 2016 08:07:00 +0000 (10:07 +0200)
committerMartin Helmling martin.helmling@octosoft.eu <martin.helmling@octosoft.eu>
Thu, 21 Jul 2016 08:07:00 +0000 (10:07 +0200)
Das Prüfen ob Lager das "Standard-Lager für Auslagern ohne Prüfung auf Bestand"
ist genügt nicht, es können Bauteile dieses Lager auch als Standardlager haben

SL/WH.pm
doc/changelog

index 29643dc..f363ae5 100644 (file)
--- a/SL/WH.pm
+++ b/SL/WH.pm
@@ -211,11 +211,15 @@ sub transfer_assembly {
     my $partsQTY          = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse
     my $currentPart_ID    = $hash_ref->{parts_id};
 
+    my $currentPart_WH_ID = $use_default_warehouse && $hash_ref->{warehouse_id} ? $hash_ref->{warehouse_id} : $params{dst_warehouse_id};
+    my $no_check = 0;
+
     # Prüfen ob Erzeugnis-Teile Standardlager haben.
     if ($use_default_warehouse && ! $hash_ref->{warehouse_id}) {
       # Prüfen ob in Mandantenkonfiguration ein Standardlager aktiviert isti.
       if ($::instance_conf->get_transfer_default_ignore_onhand) {
-        $hash_ref->{warehouse_id} = $::instance_conf->get_warehouse_id_ignore_onhand;
+        $currentPart_WH_ID = $::instance_conf->get_warehouse_id_ignore_onhand;
+        $no_check = 1;
       } else {
         $kannNichtFertigen .= "Kein Standardlager: " .
                             " Die Ware " . $self->get_part_description(parts_id => $currentPart_ID) .
@@ -224,12 +228,11 @@ sub transfer_assembly {
         next;
       }
     }
-    my $currentPart_WH_ID = $use_default_warehouse ? $hash_ref->{warehouse_id} : $params{dst_warehouse_id};
     my $warehouse_info    = $self->get_basic_warehouse_info('id'=> $currentPart_WH_ID);
     my $warehouse_desc    = $warehouse_info->{"warehouse_description"};
 
     # Fertigen ohne Prüfung nach Bestand
-    if ($currentPart_WH_ID == $::instance_conf->get_warehouse_id_ignore_onhand) {
+    if ($no_check) {
       my $temppart_bin_id       = $::instance_conf->get_bin_id_ignore_onhand;
       my $temppart_chargenumber = "";
       my $temppart_bestbefore   = localtime();
index ce90104..b8ab552 100644 (file)
@@ -10,7 +10,7 @@ kleinere neue Features und Detailverbesserungen:
     Statt das Ziellager des Erzeugnisses zu Verwenden, wird nun zur Prüfung der Fertigung das
     Standardlager der einzelnen Bestandteile verwendet.
     Hat das Bestandteil kein Standardlager, so wird das "Standard-Lager für Auslagern ohne Prüfung auf Bestand"
-    verwendeti und ohne Prüfung ausgelagert. Ist dieses nicht gesetzt, wird eine Fehlermeldung erzeugt.
+    verwendet und ohne Prüfung ausgelagert. Ist dieses nicht gesetzt, wird eine Fehlermeldung erzeugt.
 
   - Neues Recht "Verknüpfte Belege", standardmäßig erlaubt. Betrifft alle
     Belege und die Projektstammdaten