From a823f2b0dcf59d7344f7b112272849018e1bbf91 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bernd=20Ble=C3=9Fmann?= Date: Mon, 28 May 2018 11:29:46 +0200 Subject: [PATCH] =?utf8?q?Auftrags-Controller:=20fake=20id=20f=C3=BCr=20It?= =?utf8?q?ems=20nach=20Workflow=20setzen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Für items, die hinzugefügt werden, also noch nicht in der DB gespeichert sind, muss eine fake id gesetzt werden, damit diese bei den actions, die einzelne items betreffen, auch richtig gefunden/zugeordnet werden können. Das behebt z.B. einen Fehler mit falschen Preisquellen nach dem Workflow Angebot -> Auftrag, wo immer die Preisquellen der ersten Postion im Dialog verwendet wurde. --- SL/Controller/Order.pm | 5 +++++ templates/webpages/order/tabs/basic_data.html | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index 422996499..1309f141e 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -1372,6 +1372,11 @@ sub _workflow_sales_or_purchase_order { $self->order(SL::DB::Order->new_from($self->order, destination_type => $destination_type)); $self->{converted_from_oe_id} = delete $::form->{id}; + # set item ids to new fake id, to identify them as new items + foreach my $item (@{$self->order->items_sorted}) { + $item->{new_fake_id} = join('_', 'new', Time::HiRes::gettimeofday(), int rand 1000000000000); + } + # change form type $::form->{type} = $destination_type; $self->init_type; diff --git a/templates/webpages/order/tabs/basic_data.html b/templates/webpages/order/tabs/basic_data.html index c968a9473..870e4aaa1 100644 --- a/templates/webpages/order/tabs/basic_data.html +++ b/templates/webpages/order/tabs/basic_data.html @@ -223,7 +223,7 @@ [%- FOREACH item = SELF.order.items_sorted %] - [%- PROCESS order/tabs/_row.html ITEM=item ID=item.id TYPE=SELF.type ALL_PRICE_FACTORS=SELF.all_price_factors %] + [%- PROCESS order/tabs/_row.html ITEM=item ID=(item.id||item.new_fake_id) TYPE=SELF.type ALL_PRICE_FACTORS=SELF.all_price_factors %] [%- END %] -- 2.20.1