Fehler #544
geschlossenVerknüpfte Belege: Manuelle Auswahl von Dialogbuchung liefert keine Suchtreffer im Popup
0%
Beschreibung
Das Problem ist, dass get_all_sorted aufgerufen wird und in diesem Fall ist die Methode überhaupt nicht in GLTransaction als Hilfsfunktion eingebunden.
Die betroffene Codestelle sollte auch etwas defensiver programmiert werden, da ja überhaupt nicht klar ist, dass der Aufruf erfolgreich durchgeführt werden kann:
$objects = $manager->get_all_sorted(where => \@where, with_objects => \@with_objects, sort_by => 'itime', sort_dir => 'ASC');
Ein eval oder try/catch wäre da gut, bzw. ich hab jetzt wie folgt erweitert und damit wird dann die gewöhnlichere get_all Methode verwendet, falls $manager die get_all_sorted nicht besitzt:
In SL/Controller/RecordLinks.pm ca. Zeile 170:
# show the newest records first (should be better for 80% of the cases TODO sortable click
my $objects;
if ($manager->can('get_all_sorted')) {
$objects = $manager->get_all_sorted(where => \@where, with_objects => \@with_objects, sort_by => 'itime', sort_dir => 'ASC');
} else {
$objects = $manager->get_all(where => \@where);
}
2. Ziel:
Das Popup hat ja erstmal ein paar generelle Suchfilter, wie Kunde oder Lieferant, dass war im Anfang der Entstehung auch logisch sinnvoll, da ja nur Objekte mit einer Kunden- oder Lieferantenbeziehung verknüpft worden sind. Mittlerweile sind aber einige Einträge drin, bei denen eine manuelle Verknüpfung keinen Sinn macht (Mahnungen, Shop-Order) oder bei denen es keine Kunden- oder Lieferantenbeziehung gibt (Dialogbuchen).
Vielleicht lässt sich das Popup etwas flexibler oder intelligenter gestalten.
Von Bernd Bleßmann vor etwa 2 Jahren aktualisiert
- Status wurde von Neu zu Gelöst geändert