From 61a56bb4796ca9edb098541c55a00c990a9f227c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Thu, 8 Dec 2016 15:50:51 +0100 Subject: [PATCH] display_row: id, parts_id in $record_items gefixt --- bin/mozilla/io.pl | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/bin/mozilla/io.pl b/bin/mozilla/io.pl index 33a5930c4..a77632b7e 100644 --- a/bin/mozilla/io.pl +++ b/bin/mozilla/io.pl @@ -1831,25 +1831,44 @@ sub _make_record_item { $class = 'SL::DB::' . $class; + my %translated_methods = ( + 'SL::DB::OrderItem' => { + id => 'parts_id', + orderitems_id => 'id', + }, + 'SL::DB::DeliveryOrderItem' => { + id => 'parts_id', + delivery_order_items_id => 'id', + }, + 'SL::DB::InvoiceItem' => { + id => 'parts_id', + invoice_id => 'id', + }, + ); + eval "require $class"; my $obj = $::form->{"orderitems_id_$row"} ? $class->meta->convention_manager->auto_manager_class_name->find_by(id => $::form->{"orderitems_id_$row"}) : $class->new; - for my $method (apply { s/_$row$// } grep { /_$row$/ } keys %$::form) { + for my $key (grep { /_$row$/ } keys %$::form) { + my $method = $key; + $method =~ s/_$row$//; + $method = $translated_methods{$class}{$method} // $method; + my $value = $::form->{$key}; if ($obj->meta->column($method)) { if ($obj->meta->column($method)->isa('Rose::DB::Object::Metadata::Column::Date')) { - $obj->${\"$method\_as_date"}($::form->{"$method\_$row"}); + $obj->${\"$method\_as_date"}($value); } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) { - $obj->${\"$method\_as_number"}($::form->{"$method\_$row"}); + $obj->${\"$method\_as_number"}($value); } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) { - $obj->$method(!!$::form->{$method}); + $obj->$method(!!$value); } else { - $obj->$method($::form->{"$method\_$row"}); + $obj->$method($value); } } else { - $obj->{__additional_form_attributes}{$method} = $::form->{"$method\_$row"}; + $obj->{__additional_form_attributes}{$method} = $value; } } -- 2.20.1