Unterstützung #611
Bei Unterversionierten Aufträgen wird kein Link im Lieferschein-Bericht angezeigt
Status:
Neu
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
08/16/2023
Due date:
% Done:
0%
Estimated time:
Description
Das Problem ist, dass die Abfrage in DO.pm hart nach der ordnumber sucht und nicht die wirklichen Verknüpfungen untersucht.
Folgender Patch löst das Problem:
+++ b/SL/DO.pm
@ SQL
-304,8 +304,15
}
next unless ($dord->{ordnumber});
- do_statement($form, $sth, $query, $dord->{ordnumber});
- ($dord->{oe_id}) = $sth->fetchrow_array();
+ # first check linked records
+ my $do = SL::DB::DeliveryOrder->load_cached($dord->{id});
+ my $orders = $do->linked_records(from => 'Order');
+ if (scalar { $orders } == 1) {
+ $dord->{oe_id} = $orders->[0]->id;
+ } else {
+ do_statement($form, $sth, $query, $dord->{ordnumber});
+ ($dord->{oe_id}) = $sth->fetchrow_array();
+ }
}
Allerdings ist zusätzlich noch unklar auf welche Version sich der Lieferschein bezieht, da ja im Lieferschein die Nummer ohne Unterversion erzeugt wurde, ist dies eine Lieferung die vom vorherigen Beleg erstellt worden ist. Ggf. müsste man Unterversionierung auch verbieten, sobald der Workflow weitergelaufen ist.
Anyway, nach wirklichen Verknüpfungen suchen, sollte schon mal prinzipiell schlauer sein, als hart nach der Auftragsnummer in oe.