292 |
292 |
|
293 |
293 |
my $parts = Common->retrieve_parts(\%myconfig, $form, 'description', 1);
|
294 |
294 |
|
295 |
|
if (scalar @{ $parts } == 1) {
|
|
295 |
if (!scalar @{ $parts }) {
|
|
296 |
new_item(action => "transfer_stock_update_part");
|
|
297 |
} elsif (scalar @{ $parts } == 1) {
|
296 |
298 |
@{$form}{qw(parts_id partnumber description ean)} = @{$parts->[0]}{qw(id partnumber description ean)};
|
297 |
299 |
transfer_stock_get_partunit();
|
298 |
300 |
transfer_warehouse_selection();
|
... | ... | |
311 |
313 |
|
312 |
314 |
# --------------------------------------------------------------------
|
313 |
315 |
# Transfer: assemblies
|
314 |
|
# Dies ist die Auswahlmaske für ein assembly.
|
|
316 |
# Dies ist die Auswahlmaske für ein assembly.
|
315 |
317 |
# Die ist einfach von transfer_assembly_update_part kopiert und nur um den trans_type (assembly) korrigiert worden
|
316 |
318 |
# Es wäre schön, hier nochmal check_assembly_max_create auf, um die max. Fertigungszahl herauszufinden.
|
317 |
319 |
# Ich lass das mal als auskommentierte Idee bestehen jb 18.3.09
|
... | ... | |
345 |
347 |
}
|
346 |
348 |
|
347 |
349 |
# hier die oben benannte idee
|
348 |
|
# my $maxcreate = Common->check_assembly_max_create(assembly_id => $form->{parts_id}, dbh => $my_dbh);
|
|
350 |
# my $maxcreate = Common->check_assembly_max_create(assembly_id => $form->{parts_id}, dbh => $my_dbh);
|
349 |
351 |
$lxdebug->leave_sub();
|
350 |
352 |
}
|
351 |
353 |
sub transfer_stock_part_selected {
|
... | ... | |
386 |
388 |
if ($form->{qty} <= 0) {
|
387 |
389 |
$form->show_generic_error($locale->text('Invalid quantity.'), 'back_button' => 1);
|
388 |
390 |
}
|
389 |
|
# TODO Es wäre schön, hier schon die maximale Anzahl der zu fertigenden Erzeugnisse zu haben
|
|
391 |
# TODO Es wäre schön, hier schon die maximale Anzahl der zu fertigenden Erzeugnisse zu haben
|
390 |
392 |
#else { if ($form->{qty} > $maxcreate) { #s.o.
|
391 |
393 |
# $form->show_generic_error($locale->text('Can not create that quantity with current stock'), 'back_button' => 1);
|
392 |
394 |
# $form->show_generic_error('Maximale Stückzahl' . $maxcreate , 'back_button' => 1);
|
393 |
|
# }
|
|
395 |
# }
|
394 |
396 |
# }
|
395 |
397 |
|
396 |
398 |
if (!$form->{warehouse_id} || !$form->{bin_id}) {
|
... | ... | |
880 |
882 |
return -1;
|
881 |
883 |
}
|
882 |
884 |
|
|
885 |
=item new_item
|
|
886 |
|
|
887 |
call new item dialogue from warehouse masks.
|
|
888 |
|
|
889 |
PARAMS:
|
|
890 |
action => name of sub to be called when new item is done
|
|
891 |
|
|
892 |
=cut
|
|
893 |
sub new_item {
|
|
894 |
$main::lxdebug->enter_sub();
|
|
895 |
my %params = @_;
|
|
896 |
|
|
897 |
# change callback
|
|
898 |
$form->{old_callback} = $form->escape($form->{callback}, 1);
|
|
899 |
$form->{callback} = $form->escape("$form->{script}?action=$params{action}", 1);
|
|
900 |
|
|
901 |
# save all form variables except action in a previousform variable
|
|
902 |
my $previousform = join '&', map { my $value = $form->{$_}; $value =~ s/&/%26/; "$_=$value" } grep { !/action/ } keys %$form;
|
|
903 |
|
|
904 |
# push @HIDDENS, { 'name' => 'previousform', 'value' => $form->escape($previousform, 1) };
|
|
905 |
push @HIDDENS, map +{ 'name' => $_, 'value' => $form->{$_} }, qw(partnumber description unit vc sellprice ean);
|
|
906 |
push @HIDDENS, { 'name' => 'taxaccount2', 'value' => $form->{taxaccounts} };
|
|
907 |
push @HIDDENS, { 'name' => 'notes', 'value' => $form->{longdescription} };
|
|
908 |
|
|
909 |
$form->header();
|
|
910 |
print $form->parse_html_template("generic/new_item", { HIDDENS => [ sort { $a->{name} cmp $b->{name} } @HIDDENS ] } );
|
|
911 |
|
|
912 |
$main::lxdebug->leave_sub();
|
|
913 |
}
|
|
914 |
|
883 |
915 |
sub update {
|
884 |
916 |
call_sub($form->{update_nextsub} || $form->{nextsub});
|
885 |
917 |
}
|
Beim Einlagern aus dem Lagersystem neue Waren auch anlegen.
Note: Für Erzeugnisse funktioniert dieser Mechanismus nicht, weil irgendwer es für wahnsinnig schlau hielt, Assemblies so zu coden,d ass sie reaonly sind, sobald previous_form gesetzt ist.
Partieller Fix für Bug 937.