Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision bd8bd95b

Von Jan Büren vor mehr als 15 Jahren hinzugefügt

  • ID bd8bd95b1a2dc9c22365311be323d41e0f0cada3
  • Vorgänger f73d3b5e
  • Nachfolger efa178c8

Bugfix fuer 1018 - Die Idee von Sven war nett, hat aber Probleme bei Artikelnummern groesser 32bit - Bei Sortierung von Waren nahc Artikelnummer erscheint ein SQL-Fehler

Unterschiede anzeigen:

SL/IC.pm
866 866

  
867 867
  my $sort_order = ($form->{revers} ? ' DESC' : ' ASC');
868 868

  
869
  my $order_clause = " ORDER BY $form->{sort} " . ($form->{revers} ? 'DESC' : 'ASC');
870

  
869 871
  # special case: sorting by partnumber
870 872
  # since partnumbers are expected to be prefixed integers, a special sorting is implemented sorting first lexically by prefix and then by suffix.
871 873
  # and yes, that expression is designed to hold that array of regexes only once, so the map is kinda messy, sorry about that.
872 874
  # ToDO: implement proper functional sorting
873
  $form->{sort} = join ', ', map { push @select_tokens, $_; ($table_prefix{$_} = "substring(partnumber,'[") . $_ } qw|^[:digit:]]+') [:digit:]]+')::INTEGER|
874
    if $form->{sort} eq 'partnumber';
875
  # Nette Idee von Sven, gibt aber Probleme wenn die Artikelnummern groesser als 32bit sind. Korrekt waere es, dass Sort-Natural-Modul zu nehmen
876
  # Ich lass das mal hier drin, damit die Idee erhalten bleibt jb 28.5.2009 bug 1018 
877
  #$form->{sort} = join ', ', map { push @select_tokens, $_; ($table_prefix{$_} = "substring(partnumber,'[") . $_ } qw|^[:digit:]]+') [:digit:]]+')::INTEGER|
878
  #  if $form->{sort} eq 'partnumber';
875 879

  
876
  my $order_clause = " ORDER BY $form->{sort} $sort_order";
880
  #my $order_clause = " ORDER BY $form->{sort} $sort_order";
877 881

  
878 882
  my $limit_clause = " LIMIT 100" if $form->{top100};
879 883

  

Auch abrufbar als: Unified diff