Revision bd8bd95b
Von Jan Büren vor mehr als 15 Jahren hinzugefügt
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
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