Revision 4f63ea87
Von Jan Büren vor mehr als 15 Jahren hinzugefügt
bin/mozilla/wh.pl | ||
---|---|---|
104 | 104 |
$form->{title} = $locale->text('Transfer'); |
105 | 105 |
$content = $form->parse_html_template('wh/warehouse_selection'); |
106 | 106 |
|
107 |
} elsif ($form->{trans_type} eq 'assembly') { |
|
108 |
$form->{title} = $locale->text('Assembly'); |
|
109 |
$content = $form->parse_html_template('wh/warehouse_selection_assembly'); |
|
107 | 110 |
} |
108 | 111 |
|
109 | 112 |
$form->header(); |
... | ... | |
305 | 308 |
$lxdebug->leave_sub(); |
306 | 309 |
} |
307 | 310 |
|
311 |
# -------------------------------------------------------------------- |
|
312 |
# Transfer: assemblies |
|
313 |
# Dies ist die Auswahlmaske für ein assembly. |
|
314 |
# Die ist einfach von transfer_assembly_update_part kopiert und nur um den trans_type (assembly) korrigiert worden |
|
315 |
# Es wäre schön, hier nochmal check_assembly_max_create auf, um die max. Fertigungszahl herauszufinden. |
|
316 |
# Ich lass das mal als auskommentierte Idee bestehen jb 18.3.09 |
|
317 |
# -------------------------------------------------------------------- |
|
318 |
|
|
319 |
sub transfer_assembly_update_part { |
|
320 |
$lxdebug->enter_sub(); |
|
321 |
|
|
322 |
$form->{trans_type} = 'assembly'; |
|
323 |
$form->{qty} = $form->parse_amount(\%myconfig, $form->{qty}); |
|
324 |
|
|
325 |
if (!$form->{partnumber} && !$form->{description}) { |
|
326 |
delete @{$form}{qw(parts_id partunit)}; |
|
327 |
transfer_warehouse_selection(); |
|
328 |
|
|
329 |
} elsif (($form->{partnumber} && ($form->{partnumber} ne $form->{old_partnumber})) || $form->{description}) { |
|
330 |
$form->{assemblies} = 1; |
|
331 |
$form->{no_assemblies} = 0; |
|
332 |
my $parts = Common->retrieve_parts(\%myconfig, $form, 'description', 1); |
|
333 |
if (scalar @{ $parts } == 1) { |
|
334 |
@{$form}{qw(parts_id partnumber description)} = @{$parts->[0]}{qw(id partnumber description)}; |
|
335 |
transfer_stock_get_partunit(); |
|
336 |
transfer_warehouse_selection(); |
|
337 |
} else { |
|
338 |
select_part('transfer_stock_part_selected', @{ $parts }); |
|
339 |
} |
|
340 |
|
|
341 |
} else { |
|
342 |
transfer_stock_get_partunit(); |
|
343 |
transfer_warehouse_selection(); |
|
344 |
} |
|
345 |
|
|
346 |
# hier die oben benannte idee |
|
347 |
# my $maxcreate = Common->check_assembly_max_create(assembly_id => $form->{parts_id}, dbh => $my_dbh); |
|
348 |
$lxdebug->leave_sub(); |
|
349 |
} |
|
308 | 350 |
sub transfer_stock_part_selected { |
309 | 351 |
$lxdebug->enter_sub(); |
310 | 352 |
|
... | ... | |
329 | 371 |
$lxdebug->leave_sub(); |
330 | 372 |
} |
331 | 373 |
|
374 |
# vorüberlegung jb 22.2.2009 |
|
375 |
# wir benötigen für diese funktion, die anzahl die vom erzeugnis hergestellt werden soll. vielleicht direkt per js fehleingaben verhindern? |
|
376 |
# ferner dann nochmal mit check_asssembly_max_create gegenprüfen und dann transaktionssicher wegbuchen. |
|
377 |
# wir brauchen eine hilfsfunktion, die nee. brauchen wir nicht. der algorithmus läuft genau wie bei check max_create, nur dass hier auch eine lagerbewegung (verbraucht) stattfindet |
|
378 |
# Manko ist derzeit noch, dass unterschiedliche Lagerplätze, bzw. das Quelllager an sich nicht ausgewählt werden können. |
|
379 |
# Laut Absprache in KW11 09 übernimmt mb hier den rest im April ... jb 18.3.09 |
|
380 |
sub create_assembly { |
|
381 |
# my $maxcreate=shift; # oben begonnene auskommentierte idee, hier als motiv weiterverfolgen (umkehrungen und sequenzierungen als stilmittel nicht vergessen) |
|
382 |
$lxdebug->enter_sub(); |
|
383 |
|
|
384 |
$form->{qty} = $form->parse_amount(\%myconfig, $form->{qty}); |
|
385 |
# my $maxcreate = WH->check_assembly_max_create(assembly_id => $form->{parts_id}); |
|
386 |
if ($form->{qty} <= 0) { |
|
387 |
$form->show_generic_error($locale->text('Invalid quantity.'), 'back_button' => 1); |
|
388 |
} #else { if ($form->{qty} > $maxcreate) { #s.o. |
|
389 |
# $form->show_generic_error($locale->text('Can not create that quantity with current stock'), 'back_button' => 1); |
|
390 |
# $form->show_generic_error('Maximale Stückzahl' . $maxcreate , 'back_button' => 1); |
|
391 |
# } |
|
392 |
# } |
|
393 |
|
|
394 |
if (!$form->{warehouse_id} || !$form->{bin_id}) { |
|
395 |
$form->error($locale->text('The warehouse or the bin is missing.')); |
|
396 |
} |
|
397 |
# WIESO war das nicht vorher schon ein %HASH?? ein hash ist ein hash! das hat mich mehr als eine Stunde gekostet herauszufinden. grr. jb 3.3.2009 |
|
398 |
# Anm. jb 18.3. vielleicht auch nur meine unwissenheit in perl-datenstrukturen |
|
399 |
my %TRANSFER = ( |
|
400 |
'transfer_type' => 'assembly', |
|
401 |
'login' => $form->{login}, |
|
402 |
'dst_warehouse_id' => $form->{warehouse_id}, |
|
403 |
'dst_bin_id' => $form->{bin_id}, |
|
404 |
'chargenumber' => $form->{chargenumber}, |
|
405 |
'assembly_id' => $form->{parts_id}, |
|
406 |
'qty' => $form->{qty}, |
|
407 |
'unit' => $form->{unit}, |
|
408 |
'comment' => $form->{comment}, |
|
409 |
); |
|
410 |
|
|
411 |
my $ret = WH->transfer_assembly (%TRANSFER); |
|
412 |
# Frage: Ich pack in den return-wert auch gleich die Fehlermeldung. Irgendwelche Nummern als Fehlerkonstanten definieren find ich auch nicht besonders schick... |
|
413 |
# Ideen? jb 18.3.09 |
|
414 |
if ($ret ne "1"){ |
|
415 |
$form->show_generic_error($locale->text($ret), 'back_button' => 1); |
|
416 |
} |
|
417 |
|
|
418 |
delete @{$form}{qw(parts_id partnumber description qty unit chargenumber comment)}; |
|
419 |
|
|
420 |
$form->{saved_message} = $locale->text('The assembly has been created.'); |
|
421 |
$form->{trans_type} = 'assembly'; |
|
422 |
|
|
423 |
transfer_warehouse_selection(); |
|
424 |
|
|
425 |
$lxdebug->leave_sub(); |
|
426 |
} |
|
427 |
|
|
332 | 428 |
sub transfer_stock { |
333 | 429 |
$lxdebug->enter_sub(); |
334 | 430 |
|
Auch abrufbar als: Unified diff
Erzeugnisse fertigen, erste Version fertiggestellt. Bugzilla noch oeffnen fuer rueckverfolgbarkeit - Ferner offen, Lagerplaetze und verschiedene Lager