Revision 455d008c
Von Jan Büren vor fast 3 Jahren hinzugefügt
bin/mozilla/wh.pl | ||
---|---|---|
45 | 45 |
use SL::IC; |
46 | 46 |
use SL::WH; |
47 | 47 |
use SL::OE; |
48 |
# use SL::Helper::Inventory qw(produce_assembly);
|
|
48 |
use SL::Helper::Inventory qw(produce_assembly); |
|
49 | 49 |
use SL::Locale::String qw(t8); |
50 | 50 |
use SL::ReportGenerator; |
51 | 51 |
use SL::Presenter::Tag qw(checkbox_tag); |
... | ... | |
371 | 371 |
$main::lxdebug->leave_sub(); |
372 | 372 |
} |
373 | 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 |
|
|
381 | 374 |
sub create_assembly { |
382 | 375 |
$main::lxdebug->enter_sub(); |
383 | 376 |
|
... | ... | |
389 | 382 |
if ($form->{qty} <= 0) { |
390 | 383 |
$form->show_generic_error($locale->text('Invalid quantity.')); |
391 | 384 |
} |
392 |
# TODO Es wäre schön, hier schon die maximale Anzahl der zu fertigenden Erzeugnisse zu haben |
|
393 |
#else { if ($form->{qty} > $maxcreate) { #s.o. |
|
394 |
# $form->show_generic_error($locale->text('Can not create that quantity with current stock')); |
|
395 |
# $form->show_generic_error('Maximale Stückzahl' . $maxcreate); |
|
396 |
# } |
|
397 |
# } |
|
398 |
|
|
399 | 385 |
if (!$form->{warehouse_id} || !$form->{bin_id}) { |
400 | 386 |
$form->error($locale->text('The warehouse or the bin is missing.')); |
401 | 387 |
} |
388 |
# need part and bin object |
|
389 |
my ($bin, $assembly); |
|
390 |
$assembly = SL::DB::Manager::Part->find_by(id => $form->{parts_id}, part_type => 'assembly'); |
|
391 |
$form->show_generic_error($locale->text('Invalid assembly')) unless ref $assembly eq 'SL::DB::Part'; |
|
392 |
|
|
393 |
$bin = SL::DB::Manager::Bin->find_by(id => $form->{bin_id}); |
|
394 |
$form->show_generic_error($locale->text('Invalid bin')) unless ref $bin eq 'SL::DB::Bin'; |
|
402 | 395 |
|
403 | 396 |
if (!$::instance_conf->get_show_bestbefore) { |
404 |
$form->{bestbefore} = '';
|
|
397 |
$form->{bestbefore} = ''; |
|
405 | 398 |
} |
406 | 399 |
|
407 |
# 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 |
|
408 |
# Anm. jb 18.3. vielleicht auch nur meine unwissenheit in perl-datenstrukturen |
|
409 |
my %TRANSFER = ( |
|
410 |
'transfer_type' => 'assembly', |
|
411 |
'login' => $::myconfig{login}, |
|
412 |
'dst_warehouse_id' => $form->{warehouse_id}, |
|
413 |
'dst_bin_id' => $form->{bin_id}, |
|
414 |
'chargenumber' => $form->{chargenumber}, |
|
415 |
'bestbefore' => $form->{bestbefore}, |
|
416 |
'assembly_id' => $form->{parts_id}, |
|
417 |
'qty' => $form->{qty}, |
|
418 |
'unit' => $form->{unit}, |
|
419 |
'comment' => $form->{comment} |
|
400 |
produce_assembly( |
|
401 |
part => $assembly, # target assembly |
|
402 |
qty => $form->{qty}, # qty |
|
403 |
auto_allocate => 1, |
|
404 |
bin => $bin, # needed unless a global standard target is configured |
|
405 |
chargenumber => $form->{chargenumber}, # optional |
|
406 |
bestbefore => $form->{bestbefore}, |
|
407 |
comment => $form->{comment}, # optional |
|
420 | 408 |
); |
421 | 409 |
|
422 |
my $ret = WH->transfer_assembly (%TRANSFER); |
|
423 |
# Frage: Ich pack in den return-wert auch gleich die Fehlermeldung. Irgendwelche Nummern als Fehlerkonstanten definieren find ich auch nicht besonders schick... |
|
424 |
# Ideen? jb 18.3.09 |
|
425 |
if ($ret ne "1"){ |
|
426 |
# Die locale-Funktion kann keine Double-Quotes escapen, deswegen hier erstmal so (ein wahrscheinlich immerwährender Hotfix) s.a. Frage davor jb 25.4.09 |
|
427 |
$form->show_generic_error($ret); |
|
428 |
} |
|
429 |
|
|
430 | 410 |
delete @{$form}{qw(parts_id partnumber description qty unit chargenumber bestbefore comment)}; |
431 | 411 |
|
432 | 412 |
$form->{saved_message} = $locale->text('The assembly has been created.'); |
Auch abrufbar als: Unified diff
WH::transfer_assembly gegen S/H/Inventory::produce_assembly getauscht
Testfälle i.O., weiteres Feature für das Erzeugnis fertigen möglich
und im Changelog kommentiert. S.a. #429