ParseFilter: Komplexe Methoden ermöglichen, die auch den Key ändern
[kivitendo-erp.git] / SL / Controller / PriceSource.pm
index 555b03e..b7ee8bd 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}};
@@ -97,6 +98,8 @@ sub _make_record_item {
       $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"});
     }
@@ -114,10 +117,9 @@ sub _make_record {
 
   my $class = {
     sales_order             => 'Order',
-    purchase_oder           => 'Order',
+    purchase_order          => 'Order',
     sales_quotation         => 'Order',
     request_quotation       => 'Order',
-    invoice                 => 'Invoice',
     purchase_invoice        => 'PurchaseInvoice',
     purchase_delivery_order => 'DeliveryOrder',
     sales_delivery_order    => 'DeliveryOrder',
@@ -147,6 +149,8 @@ sub _make_record {
       $obj->${\"$method\_as_date"}($::form->{$method});
     } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Numeric|Float|DoublePrecsion)$/) {
       $obj->${\"$method\_as\_number"}($::form->{$method});
+    } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::Boolean$/) {
+      $obj->$method(!!$::form->{$method});
     } else {
       $obj->$method($::form->{$method});
     }