From: Jan Büren <jan@lx-office-hosting.de>
Date: Mon, 26 Apr 2010 09:01:56 +0000 (+0200)
Subject: Fehlerbehebung für  Bug 1409 -  Bei 'Erzeugnis fertigen' wird nur der Bestand der... 
X-Git-Tag: release-2.6.2beta1~342^2~8
X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=4236c15112d260d2be1695ce00d125597eed13f1;p=kivitendo-erp.git

Fehlerbehebung für  Bug 1409 -  Bei 'Erzeugnis fertigen' wird nur der Bestand der letzten Komponente geprüft. Fehlerhafte Überprüfung, ob überhaupt Waren/Dienstleistungen definiert worden sind. Entsprechend geändert
---

diff --git a/SL/WH.pm b/SL/WH.pm
index 44feb83a2..b164a3064 100644
--- a/SL/WH.pm
+++ b/SL/WH.pm
@@ -170,11 +170,11 @@ sub transfer_assembly {
   my $sthTransferPartSQL   = prepare_query($form, $dbh, $transferPartSQL);
 
   # der return-string für die fehlermeldung inkl. welche waren zum fertigen noch fehlen
-  my $kannNichtFertigen ="Für dieses Erzeugnis sind keine Einzelteile definiert.
-                          Dementsprechend kann auch nichts hergestellt werden";
 
+  my $kannNichtFertigen ="";  # Falls leer dann erfolgreich
+  my $schleife_durchlaufen=0; # Falls die Schleife nicht ausgeführt wird -> Keine Einzelteile definiert. Bessere Idee? jan
   while (my $hash_ref = $sth_part_qty_assembly->fetchrow_hashref()) { #Schleife für select parts_id,(...) from assembly
-    $kannNichtFertigen ="";  # Wieder auf erfolgreich setzen LEER == keine Fehlermeldung
+    $schleife_durchlaufen=1;  # Erzeugnis definiert
     my $partsQTY = $hash_ref->{qty} * $params{qty}; # benötigte teile * anzahl erzeugnisse
     my $currentPart_ID = $hash_ref->{parts_id};
 
@@ -236,6 +236,14 @@ sub transfer_assembly {
       }
     }  # ende while SELECT SUM(qty), bin_id, chargenumber, bestbefore   FROM inventory  WHERE warehouse_id
   } #ende while select parts_id,qty from assembly where id = ?
+
+  if ($schleife_durchlaufen==0){  # falls die schleife nicht durchlaufen wurde, wurden auch
+                                  # keine einzelteile definiert
+      $kannNichtFertigen ="Für dieses Erzeugnis sind keine Einzelteile definiert.
+                           Dementsprechend kann auch nichts hergestellt werden";
+ }
+  # gibt die Fehlermeldung zurück. A.) Keine Teile definiert
+  #                                B.) Artikel und Anzahl der fehlenden Teile/Dienstleistungen
   if ($kannNichtFertigen) {
     return $kannNichtFertigen;
   }