From: Moritz Bunkus Date: Thu, 5 Jun 2014 06:33:53 +0000 (+0200) Subject: RDBO {Invoice,DeliveryOrder}->new_from Attribute nachträglich zuweisen X-Git-Tag: release-3.2.0beta~420 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=6473dcb171ba4e401d001372075ada92cc90e875;p=kivitendo-erp.git RDBO {Invoice,DeliveryOrder}->new_from Attribute nachträglich zuweisen Macht man die Vermischung ->new(%args, %attributes), so ist die Reihenfolge, wann welche aus %args und welche aus %attributes genommen werden, aufgrund von Perls beliebiger Hash-Reihenfolge nicht garantiert. Also zuerst nur die berechneten aus %args zuweisen und danach die vom Caller bereitgestellten in %attributes. --- diff --git a/SL/DB/DeliveryOrder.pm b/SL/DB/DeliveryOrder.pm index 75eab64b0..06024855f 100644 --- a/SL/DB/DeliveryOrder.pm +++ b/SL/DB/DeliveryOrder.pm @@ -139,7 +139,8 @@ sub new_from { $args{shipto_id} = $source->shipto_id; } - my $delivery_order = $class->new(%args, %{ $params{attributes} || {} }); + my $delivery_order = $class->new(%args); + $delivery_order->assign_attributes(%{ $params{attributes} }) if $params{attributes}; my $items = delete($params{items}) || $source->items_sorted; my %item_parents; diff --git a/SL/DB/Invoice.pm b/SL/DB/Invoice.pm index 9cf52a24c..3f94795ee 100644 --- a/SL/DB/Invoice.pm +++ b/SL/DB/Invoice.pm @@ -166,7 +166,8 @@ sub new_from { $args{quodate} = $source->transdate; } - my $invoice = $class->new(%args, %{ $params{attributes} || {} }); + my $invoice = $class->new(%args); + $invoice->assign_attributes(%{ $params{attributes} }) if $params{attributes}; my $items = delete($params{items}) || $source->items_sorted; my %item_parents;