138 |
138 |
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
|
139 |
139 |
|
140 |
140 |
|
141 |
|
# Ablauferklärung
|
142 |
|
#
|
143 |
|
# ... Standard-Check oben Ende. Hier die eigentliche SQL-Abfrage
|
144 |
|
# select parts_id,qty from assembly where id=1064;
|
145 |
|
# Erweiterung für bug 935 am 23.4.09 - Erzeugnisse können Dienstleistungen enthalten, die ja nicht 'lagerbar' sind.
|
146 |
|
# select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id=1066 and inventory_accno_id IS NOT NULL;
|
147 |
|
# Erweiterung für bug 23.4.09 -2 Erzeugnisse in Erzeugnissen können nicht ausgelagert werden, wenn assembly nicht überprüft wird ...
|
148 |
|
# select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id=1066 and parts.inventory_accno_id IS NOT NULL and parts.assembly=false;
|
|
141 |
# Ablauferklärung
|
|
142 |
#
|
|
143 |
# ... Standard-Check oben Ende. Hier die eigentliche SQL-Abfrage
|
|
144 |
# select parts_id,qty from assembly where id=1064;
|
|
145 |
# Erweiterung für bug 935 am 23.4.09 - Erzeugnisse können Dienstleistungen enthalten, die ja nicht 'lagerbar' sind.
|
|
146 |
# select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id=1066 and inventory_accno_id IS NOT NULL;
|
|
147 |
# Erweiterung für bug 23.4.09 -2 Erzeugnisse in Erzeugnissen können nicht ausgelagert werden, wenn assembly nicht überprüft wird ...
|
|
148 |
# patch von joachim eingespielt 24.4.2009:
|
|
149 |
# my $query = qq|select parts_id,qty from assembly inner join parts
|
|
150 |
# on assembly.parts_id = parts.id where assembly.id = ? and
|
|
151 |
# (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
|
149 |
152 |
|
150 |
|
#
|
151 |
|
#
|
152 |
153 |
|
153 |
154 |
# my $query = qq|select parts_id,qty from assembly where id = ?|;
|
154 |
|
my $query = qq|select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id = ? and inventory_accno_id IS NOT NULL and parts.assembly = FALSE|;
|
|
155 |
my $query = qq|select parts_id,qty from assembly inner join parts on assembly.parts_id = parts.id where assembly.id = ? and (inventory_accno_id IS NOT NULL or parts.assembly = TRUE)|;
|
155 |
156 |
|
156 |
157 |
my $sth_part_qty_assembly = prepare_execute_query($form, $dbh, $query, $params{assembly_id});
|
157 |
158 |
|
158 |
|
# Hier wird das prepared Statement für die Schleife über alle Lagerplätze vorbereitet
|
|
159 |
# Hier wird das prepared Statement für die Schleife über alle Lagerplätze vorbereitet
|
159 |
160 |
my $transferPartSQL = qq|INSERT INTO inventory (parts_id, warehouse_id, bin_id, chargenumber, comment, employee_id, qty, trans_id, trans_type_id)
|
160 |
161 |
VALUES (?, ?, ?, ?, ?,(SELECT id FROM employee WHERE login = ?), ?, nextval('id'),
|
161 |
162 |
(SELECT id FROM transfer_type WHERE direction = 'out' AND description = 'used'))|;
|
... | ... | |
172 |
173 |
my $max_parts = get_max_qty_parts($self, parts_id => $currentPart_ID, warehouse_id => $params{dst_warehouse_id}); #$self angeben, damit die Standardkonvention (Name, Parameter) eingehalten wird
|
173 |
174 |
|
174 |
175 |
if ($partsQTY > $max_parts){
|
175 |
|
|
176 |
|
# Gibt es hier ein Problem mit nicht "escapten" Zeichen?
|
177 |
|
$kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY) . " Stueck der Ware:" . get_part_description($self, parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
|
|
176 |
# Gibt es hier ein Problem mit nicht "escapten" Zeichen? 25.4.09 Antwort: Ja. Aber erst wenn im Frontend die locales-Funktion aufgerufen wird
|
|
177 |
$kannNichtFertigen .= "Zum Fertigen fehlen:" . abs($partsQTY - $max_parts) . " Stueck der Ware:" . get_part_description($self, parts_id => $currentPart_ID) . ", um das Erzeugnis herzustellen. <br>"; # Konnte die Menge nicht mit der aktuellen Anzahl der Waren fertigen
|
|
178 |
next; # die weiteren Überprüfungen sind unnötig
|
178 |
179 |
}
|
179 |
180 |
|
180 |
|
# Eine kurze Vorabfrage, um den Lagerplatz und die Chargennummber zu bestimmen
|
181 |
|
# Offen: Die Summe über alle Lagerplätze wird noch nicht gebildet
|
182 |
|
# Gelöst: Wir haben vorher schon die Abfrage durchgeführt, ob wir fertigen können.
|
183 |
|
# Noch besser gelöst: Wir laufen durch alle benötigten Waren zum Fertigen und geben eine Rückmeldung an den Benutzer was noch fehlt
|
184 |
|
# und lösen den Rest dann so wie bei xplace im Barcode-Programm
|
185 |
|
# S.a. Kommentar im bin/mozilla-Code mb übernimmt und macht das in ordentlich
|
|
181 |
# Eine kurze Vorabfrage, um den Lagerplatz und die Chargennummber zu bestimmen
|
|
182 |
# Offen: Die Summe über alle Lagerplätze wird noch nicht gebildet
|
|
183 |
# Gelöst: Wir haben vorher schon die Abfrage durchgeführt, ob wir fertigen können.
|
|
184 |
# Noch besser gelöst: Wir laufen durch alle benötigten Waren zum Fertigen und geben eine Rückmeldung an den Benutzer was noch fehlt
|
|
185 |
# und lösen den Rest dann so wie bei xplace im Barcode-Programm
|
|
186 |
# S.a. Kommentar im bin/mozilla-Code mb übernimmt und macht das in ordentlich
|
186 |
187 |
|
187 |
188 |
my $tempquery = qq|SELECT SUM(qty), bin_id, chargenumber FROM inventory WHERE warehouse_id = ? AND parts_id = ? GROUP BY bin_id, chargenumber having SUM(qty)>0|;
|
188 |
189 |
my $tempsth = prepare_execute_query($form, $dbh, $tempquery, $params{dst_warehouse_id}, $currentPart_ID);
|
Die hoffentlich letzten Änderungen um den Bug 935 zu schliessen. Ferner eine Anpassung im Frontend, um die Fehlermeldung bei Artikeln mit double-quotes 'erscheinen' zu lassen