Revision 0e470b13
Von Bernd Bleßmann vor mehr als 9 Jahren hinzugefügt
SL/DO.pm | ||
---|---|---|
892 | 892 |
my $ic_cvar_configs = CVar->get_configs(module => 'IC'); |
893 | 893 |
my $project_cvar_configs = CVar->get_configs(module => 'Projects'); |
894 | 894 |
|
895 |
# get some values of parts from db on store them in extra array, |
|
896 |
# so that they can be sorted in later |
|
897 |
my %prepared_template_arrays = IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form); |
|
898 |
my @prepared_arrays = keys %prepared_template_arrays; |
|
899 |
|
|
895 | 900 |
$form->{TEMPLATE_ARRAYS} = { }; |
896 |
IC->prepare_parts_for_printing(myconfig => $myconfig, form => $form); |
|
897 | 901 |
|
898 | 902 |
my @arrays = |
899 |
qw(runningnumber number description longdescription qty unit |
|
903 |
qw(runningnumber number description longdescription qty qty_nofmt unit
|
|
900 | 904 |
partnotes serialnumber reqdate projectnumber projectdescription |
901 |
weight lineweight
|
|
905 |
weight weight_nofmt lineweight lineweight_nofmt
|
|
902 | 906 |
si_runningnumber si_number si_description |
903 | 907 |
si_warehouse si_bin si_chargenumber si_bestbefore |
904 | 908 |
si_qty si_qty_nofmt si_unit); |
905 | 909 |
|
906 |
map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays); |
|
910 |
map { $form->{TEMPLATE_ARRAYS}->{$_} = [] } (@arrays, @prepared_arrays);
|
|
907 | 911 |
|
908 | 912 |
push @arrays, map { "ic_cvar_$_->{name}" } @{ $ic_cvar_configs }; |
909 | 913 |
push @arrays, map { "project_cvar_$_->{name}" } @{ $project_cvar_configs }; |
... | ... | |
919 | 923 |
next if (!$form->{"id_$i"}); |
920 | 924 |
|
921 | 925 |
if ($item->[1] ne $sameitem) { |
926 |
push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'partsgroup'); |
|
922 | 927 |
push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, qq|$item->[1]|); |
923 | 928 |
$sameitem = $item->[1]; |
924 | 929 |
|
925 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays));
|
|
930 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays)));
|
|
926 | 931 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); |
927 | 932 |
$si_position++; |
928 | 933 |
} |
... | ... | |
949 | 954 |
my $price_factor = $price_factors{$form->{"price_factor_id_$i"}} || { 'factor' => 1 }; |
950 | 955 |
my $project = $projects_by_id{$form->{"project_id_$i"}} || SL::DB::Project->new; |
951 | 956 |
|
957 |
push(@{ $form->{TEMPLATE_ARRAYS}{$_} }, $prepared_template_arrays{$_}[$i - 1]) for @prepared_arrays; |
|
958 |
|
|
959 |
push @{ $form->{TEMPLATE_ARRAYS}{entry_type} }, 'normal'; |
|
952 | 960 |
push @{ $form->{TEMPLATE_ARRAYS}{runningnumber} }, $position; |
953 | 961 |
push @{ $form->{TEMPLATE_ARRAYS}{number} }, $form->{"partnumber_$i"}; |
954 | 962 |
push @{ $form->{TEMPLATE_ARRAYS}{description} }, $form->{"description_$i"}; |
... | ... | |
1009 | 1017 |
|
1010 | 1018 |
while (my $ref = $h_pg->fetchrow_hashref("NAME_lc")) { |
1011 | 1019 |
if ($form->{groupitems} && $ref->{partsgroup} ne $sameitem) { |
1012 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays));
|
|
1020 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays)));
|
|
1013 | 1021 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); |
1014 | 1022 |
$sameitem = ($ref->{partsgroup}) ? $ref->{partsgroup} : "--"; |
1023 |
push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item-partsgroup'); |
|
1015 | 1024 |
push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, $sameitem); |
1016 | 1025 |
$si_position++; |
1017 | 1026 |
} |
1018 | 1027 |
|
1019 |
push(@{ $form->{TEMPLATE_ARRAYS}->{"description"} }, $form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}) . qq| -- $ref->{partnumber}, $ref->{description}|); |
|
1020 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} @arrays)); |
|
1028 |
push(@{ $form->{TEMPLATE_ARRAYS}->{entry_type} }, 'assembly-item'); |
|
1029 |
push(@{ $form->{TEMPLATE_ARRAYS}->{description} }, $form->format_amount($myconfig, $ref->{qty} * $form->{"qty_$i"}) . qq| -- $ref->{partnumber}, $ref->{description}|); |
|
1030 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, "") } grep({ $_ ne "description" && $_ !~ /^si_/} (@arrays, @prepared_arrays))); |
|
1021 | 1031 |
map({ push(@{ $form->{TEMPLATE_ARRAYS}->{$_} }, []) } grep({ $_ =~ /^si_/} @arrays)); |
1022 | 1032 |
$si_position++; |
1023 | 1033 |
} |
Auch abrufbar als: Unified diff
Ausdruck Erzeugnisse mit Stückliste und Lieferantenartikelnummer repariert.
Betraf wohl auch andere Felder zu Artikeln, die vor der Aufbereitung des
TEMPLATE_ARRAYS aus der DB gelesen wurden. Diese werden jetzt richtig in
TEMPLATE_ARRAYS einsortiert.
Um auch die Einträge für Erzeugnis-Teile und Warengruppen (beim Gruppieren
der Waren) in den Druckvorlagen unterscheiden zu können, gibt es ein Feld
'entry_type', dass die Werte 'normal', 'partsgroup', 'assembly-item' und
'assembly-item-partsgroup' annehmen kann.