Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5b0450c3

Von Sven Schöling vor fast 13 Jahren hinzugefügt

  • ID 5b0450c32a28573a2451879a01f2e847d3c4b6d1
  • Vorgänger 4ba806ac
  • Nachfolger 5c111f6c

Projekte im Warenbericht

Unterschiede anzeigen:

SL/IC.pm
792 792
  $form->{soldtotal} = undef if $form->{l_soldtotal}; # security fix. top100 insists on putting strings in there...
793 793

  
794 794
  my @simple_filters       = qw(partnumber ean description partsgroup microfiche drawing onhand);
795
  my @project_filters      = qw(projectnumber projectdescription);
795 796
  my @makemodel_filters    = qw(make model);
796 797
  my @invoice_oi_filters   = qw(serialnumber soldtotal);
797 798
  my @apoe_filters         = qw(transdate);
798 799
  my @like_filters         = (@simple_filters, @invoice_oi_filters);
799
  my @all_columns          = (@simple_filters, @makemodel_filters, @apoe_filters, qw(serialnumber));
800
  my @all_columns          = (@simple_filters, @makemodel_filters, @apoe_filters, @project_filters, qw(serialnumber));
800 801
  my @simple_l_switches    = (@all_columns, qw(listprice sellprice lastcost priceupdate weight unit bin rop image));
801 802
  my @oe_flags             = qw(bought sold onorder ordered rfq quoted);
802 803
  my @qsooqr_flags         = qw(invnumber ordnumber quonumber trans_id name module qty);
......
816 817
    pfac       => 'LEFT JOIN price_factors pfac ON (pfac.id     = p.price_factor_id)',
817 818
    invoice_oi =>
818 819
      q|LEFT JOIN (
819
         SELECT parts_id, description, serialnumber, trans_id, unit, sellprice, qty,          assemblyitem,         deliverydate, 'invoice'    AS ioi, id FROM invoice UNION
820
         SELECT parts_id, description, serialnumber, trans_id, unit, sellprice, qty, FALSE AS assemblyitem, NULL AS deliverydate, 'orderitems' AS ioi, id FROM orderitems
820
         SELECT parts_id, description, serialnumber, trans_id, unit, sellprice, qty,          assemblyitem,         deliverydate, 'invoice'    AS ioi, project_id, id FROM invoice UNION
821
         SELECT parts_id, description, serialnumber, trans_id, unit, sellprice, qty, FALSE AS assemblyitem, NULL AS deliverydate, 'orderitems' AS ioi, project_id, id FROM orderitems
821 822
       ) AS ioi ON ioi.parts_id = p.id|,
822 823
    apoe       =>
823 824
      q|LEFT JOIN (
824
         SELECT id, transdate, 'ir' AS module, ordnumber, quonumber,         invnumber, FALSE AS quotation, NULL AS customer_id,         vendor_id,    NULL AS deliverydate, 'invoice'    AS ioi FROM ap UNION
825
         SELECT id, transdate, 'is' AS module, ordnumber, quonumber,         invnumber, FALSE AS quotation,         customer_id, NULL AS vendor_id,            deliverydate, 'invoice'    AS ioi FROM ar UNION
826
         SELECT id, transdate, 'oe' AS module, ordnumber, quonumber, NULL AS invnumber,          quotation,         customer_id,         vendor_id, reqdate AS deliverydate, 'orderitems' AS ioi FROM oe
825
         SELECT id, transdate, 'ir' AS module, ordnumber, quonumber,         invnumber, FALSE AS quotation, NULL AS customer_id,         vendor_id,    NULL AS deliverydate, globalproject_id, 'invoice'    AS ioi FROM ap UNION
826
         SELECT id, transdate, 'is' AS module, ordnumber, quonumber,         invnumber, FALSE AS quotation,         customer_id, NULL AS vendor_id,            deliverydate, globalproject_id, 'invoice'    AS ioi FROM ar UNION
827
         SELECT id, transdate, 'oe' AS module, ordnumber, quonumber, NULL AS invnumber,          quotation,         customer_id,         vendor_id, reqdate AS deliverydate, globalproject_id, 'orderitems' AS ioi FROM oe
827 828
       ) AS apoe ON ((ioi.trans_id = apoe.id) AND (ioi.ioi = apoe.ioi))|,
828 829
    cv         =>
829 830
      q|LEFT JOIN (
......
831 832
           SELECT id, name, 'vendor'   AS cv FROM vendor
832 833
         ) AS cv ON cv.id = apoe.customer_id OR cv.id = apoe.vendor_id|,
833 834
    mv         => 'LEFT JOIN vendor AS mv ON mv.id = mm.make',
835
    project    => 'LEFT JOIN project AS pj ON pj.id = COALESCE(ioi.project_id, apoe.globalproject_id)',
834 836
  );
835
  my @join_order = qw(partsgroup makemodel mv invoice_oi apoe cv pfac);
837
  my @join_order = qw(partsgroup makemodel mv invoice_oi apoe cv pfac project);
836 838

  
837 839
  my %table_prefix = (
838 840
     deliverydate => 'apoe.', serialnumber => 'ioi.',
......
842 844
     quonumber    => 'apoe.', model        => 'mm.',
843 845
     invnumber    => 'apoe.', partsgroup   => 'pg.',
844 846
     lastcost     => 'p.',  , soldtotal    => ' ',
845
     factor       => 'pfac.',
846
     'SUM(ioi.qty)' => ' ',
847
     factor       => 'pfac.', projectnumber => 'pj.',
848
     'SUM(ioi.qty)' => ' ',   projectdescription => 'pj.',
847 849
     description  => 'p.',
848 850
     qty          => 'ioi.',
849 851
     serialnumber => 'ioi.',
......
857 859
  # of the scecified table will gently override (coalesce actually) the original value
858 860
  # use it to conditionally coalesce values from subtables
859 861
  my @column_override = (
860
    #  column name,   prefix,  joins_needed
862
    #  column name,   prefix,  joins_needed,  nick name (in case column is named like another)
861 863
    [ 'description',  'ioi.',  'invoice_oi'  ],
862 864
    [ 'deliverydate', 'ioi.',  'invoice_oi'  ],
863 865
    [ 'transdate',    'apoe.', 'apoe'        ],
......
871 873
    'SUM(ioi.qty)' => 'soldtotal',
872 874
    'ioi.id'       => 'ioi_id',
873 875
    'ioi.ioi'      => 'ioi',
876
    'projectdescription' => 'projectdescription',
877
  );
878

  
879
  my %real_column = (
880
    projectdescription => 'description',
874 881
  );
875 882

  
876 883
  if (($form->{searchitems} eq 'assembly') && $form->{l_lastcost}) {
......
880 887
  my $make_token_builder = sub {
881 888
    my $joins_needed = shift;
882 889
    sub {
883
      my ($col, $alias) = @_;
890
      my ($nick, $alias) = @_;
891
      my ($col) = $real_column{$nick} || $nick;
884 892
      my @coalesce_tokens =
885 893
        map  { ($_->[1] || 'p.') . $_->[0] }
886 894
        grep { !$_->[2] || $joins_needed->{$_->[2]} }
887
        grep {  $_->[0] eq $col }
888
        @column_override, [ $col, $table_prefix{$col} ];
895
        grep { ($_->[3] || $_->[0]) eq $nick }
896
        @column_override, [ $col, $table_prefix{$nick}, undef , $nick ];
889 897

  
890 898
      my $coalesce = scalar @coalesce_tokens > 1;
891 899
      return ($coalesce
892 900
        ? sprintf 'COALESCE(%s)', join ', ', @coalesce_tokens
893 901
        : shift                              @coalesce_tokens)
894
        . ($alias && ($coalesce || $renamed_columns{$col})
895
        ?  " AS " . ($renamed_columns{$col} || $col)
902
        . ($alias && ($coalesce || $renamed_columns{$nick})
903
        ?  " AS " . ($renamed_columns{$nick} || $nick)
896 904
        : '');
897 905
    }
898 906
  };
......
1001 1009

  
1002 1010
  $joins_needed{partsgroup}  = 1;
1003 1011
  $joins_needed{pfac}        = 1;
1012
  $joins_needed{project}     = 1 if grep { $form->{$_} || $form->{"l_$_"} } @project_filters;
1004 1013
  $joins_needed{makemodel}   = 1 if grep { $form->{$_} || $form->{"l_$_"} } @makemodel_filters;
1005 1014
  $joins_needed{mv}          = 1 if $joins_needed{makemodel};
1006 1015
  $joins_needed{cv}          = 1 if $bsooqr;
1007 1016
  $joins_needed{apoe}        = 1 if $joins_needed{cv}   || grep { $form->{$_} || $form->{"l_$_"} } @apoe_filters;
1008
  $joins_needed{invoice_oi}  = 1 if $joins_needed{apoe} || grep { $form->{$_} || $form->{"l_$_"} } @invoice_oi_filters;
1017
  $joins_needed{invoice_oi}  = 1 if $joins_needed{project} || $joins_needed{apoe} || grep { $form->{$_} || $form->{"l_$_"} } @invoice_oi_filters;
1009 1018

  
1010 1019
  # special case for description search.
1011 1020
  # up in the simple filter section the description filter got interpreted as something like: WHERE description ILIKE '%$form->{description}%'
bin/mozilla/ic.pl
1056 1056
    'transdate'          => { 'text' => $locale->text('Transdate'), },
1057 1057
    'unit'               => { 'text' => $locale->text('Unit'), },
1058 1058
    'weight'             => { 'text' => $locale->text('Weight'), },
1059
    'projectnumber'      => { 'text' => $locale->text('Project Number'), },
1060
    'projectdescription' => { 'text' => $locale->text('Project Description'), },
1059 1061
  );
1060 1062

  
1061 1063
  $revers     = $form->{revers};
......
1215 1217
    partnumber description partsgroup bin onhand rop soldtotal unit listprice
1216 1218
    linetotallistprice sellprice linetotalsellprice lastcost linetotallastcost
1217 1219
    priceupdate weight image drawing microfiche invnumber ordnumber quonumber
1218
    transdate name serialnumber deliverydate ean
1220
    transdate name serialnumber deliverydate ean projectnumber projectdescription
1219 1221
  );
1220 1222

  
1221 1223
  my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs };
locale/de/all
1406 1406
  'Proforma Invoice'            => 'Proformarechnung',
1407 1407
  'Program'                     => 'Programm',
1408 1408
  'Project'                     => 'Projekt',
1409
  'Project Description'         => '',
1409 1410
  'Project Number'              => 'Projektnummer',
1410 1411
  'Project Number missing!'     => 'Projektnummer fehlt!',
1411 1412
  'Project Numbers'             => 'Projektnummern',
templates/webpages/ic/search.html
271 271
           <input name="l_onhand" id="l_onhand" class="checkbox" type="checkbox" value="Y">
272 272
           <label for="l_onhand">[% 'Stocked Qty' | $T8 %]</label>
273 273
          </td>
274
          <td>
275
           <input name="l_projectnumber" id="l_projectnumber" class="checkbox" type="checkbox" value="Y">
276
           <label for="l_projectnumber">[% 'Project Number' | $T8 %]</label>
277
          </td>
278
          <td>
279
           <input name="l_projectdescription" id="l_projectdescription" class="checkbox" type="checkbox" value="Y">
280
           <label for="l_projectdescription">[% 'Project Description' | $T8 %]</label>
281
          </td>
274 282
         </tr>
275 283

  
276 284
         [% CUSTOM_VARIABLES_INCLUSION_CODE %]

Auch abrufbar als: Unified diff