Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 0e470b13

Von Bernd Bleßmann vor mehr als 9 Jahren hinzugefügt

  • ID 0e470b13db4ca16d13d406ad56f9b1714d8c831b
  • Vorgänger 5c25bb6b
  • Nachfolger f0dd49cc

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.

Unterschiede anzeigen:

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