DeliveryOrder->new_from: kein $custom_shipto-Objekt zurückgeben
authorMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 6 Apr 2016 11:59:31 +0000 (13:59 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 6 Apr 2016 14:05:32 +0000 (16:05 +0200)
commit492c85c2f086299b3e398188e06541d6d44d3741
tree15b8d220a5c28df259b1643f648ebaeac056722b
parent3f0ed511a589aca9642391108a960ef4e8a6286d
DeliveryOrder->new_from: kein $custom_shipto-Objekt zurückgeben

Falls das Quellobjekt eine individuelle Lieferadresse besaß, wurden bei
new_from() zwei Objekte zurückgegeben: das neue Lieferscheinobjekt und
ein Clone der individuellen Lieferadresse. Diese waren nicht verknüpft.
Der Aufrufer musste daher zuerst das Lieferscheinobjekt speichern,
dessen ID beim gecloneten Lieferadressenobjekt hinterlegen und das
anschließend speichern.

Dies ist umständlich und fehlerträchtig. So hat z.B. der einzige
bisherige Nutzer dieses Interfaces,
SL::DB::Order->convert_to_delivery_order, das bereits falsch gemacht und
vergessen, beim Lieferadressenobjekt die ID des neuen
Lieferscheinobjektes einzutragen. Somit wurden Lieferadressen erzeugt,
die keinerlei Verknüpfung hatten.

Das geänderte Interface hinterlegt das Objekt für die individuelle
Lieferadresse schlicht in $new_delivery_order->custom_shipto. Dort wird
das Objekt gespeichert, wenn der Lieferschein selber gespeichert wird.
SL/DB/DeliveryOrder.pm
SL/DB/Order.pm