make_record: Zusätzliche Formvariablen speichern.
[kivitendo-erp.git] / SL / Controller / PriceSource.pm
index df505a6..0c3eb87 100644 (file)
@@ -77,6 +77,7 @@ sub _make_record_item {
     request_quotation       => 'OrderItem',
     invoice                 => 'InvoiceItem',
     purchase_invoice        => 'InvoiceItem',
+    credit_note             => 'InvoiceItem',
     purchase_delivery_order => 'DeliveryOrderItem',
     sales_delivery_order    => 'DeliveryOrderItem',
   }->{$::form->{type}};
@@ -92,15 +93,18 @@ sub _make_record_item {
           : $class->new;
 
   for my $method (apply { s/_$row$// } grep { /_$row$/ } keys %$::form) {
-    next unless $obj->meta->column($method);
-    if ($obj->meta->column($method)->isa('Rose::DB::Object::Metadata::Column::Date')) {
-      $obj->${\"$method\_as_date"}($::form->{"$method\_$row"});
-    } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) {
-      $obj->${\"$method\_as_number"}($::form->{"$method\_$row"});
-    } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) {
-      $obj->$method(!!$::form->{$method});
+    if ($obj->meta->column($method)) {
+      if ($obj->meta->column($method)->isa('Rose::DB::Object::Metadata::Column::Date')) {
+        $obj->${\"$method\_as_date"}($::form->{"$method\_$row"});
+      } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) {
+        $obj->${\"$method\_as_number"}($::form->{"$method\_$row"});
+      } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) {
+        $obj->$method(!!$::form->{$method});
+      } else {
+        $obj->$method($::form->{"$method\_$row"});
+      }
     } else {
-      $obj->$method($::form->{"$method\_$row"});
+      $obj->{__additional_form_attributes}{$method} = $::form->{"$method\_$row"};
     }
   }
 
@@ -119,7 +123,6 @@ sub _make_record {
     purchase_order          => 'Order',
     sales_quotation         => 'Order',
     request_quotation       => 'Order',
-    invoice                 => 'Invoice',
     purchase_invoice        => 'PurchaseInvoice',
     purchase_delivery_order => 'DeliveryOrder',
     sales_delivery_order    => 'DeliveryOrder',