trailing whitespaces entfernt
[kivitendo-erp.git] / SL / Controller / PriceSource.pm
index baed7d4..b7ee8bd 100644 (file)
@@ -72,11 +72,12 @@ sub _make_record_item {
 
   my $class = {
     sales_order             => 'OrderItem',
-    purchase_oder           => 'OrderItem',
+    purchase_order          => 'OrderItem',
     sales_quotation         => 'OrderItem',
     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,14 +117,15 @@ sub _make_record {
 
   my $class = {
     sales_order             => 'Order',
-    purchase_oder           => 'Order',
+    purchase_order          => 'Order',
     sales_quotation         => 'Order',
     request_quotation       => 'Order',
+    purchase_invoice        => 'PurchaseInvoice',
     purchase_delivery_order => 'DeliveryOrder',
     sales_delivery_order    => 'DeliveryOrder',
   }->{$::form->{type}};
 
-  if ($::form->{type} eq 'invoice') {
+  if ($::form->{type} =~ /invoice|credit_note/) {
     $class = $::form->{vc} eq 'customer' ? 'Invoice'
            : $::form->{vc} eq 'vendor'   ? 'PurchaseInvoice'
            : do { die 'unknown invoice type' };
@@ -145,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});
     }
@@ -159,6 +165,7 @@ sub _make_record {
 
     $obj->items(@items) if @items;
   }
+  $obj->is_sales(!!$obj->customer_id) if $class eq 'SL::DB::DeliveryOrder';
 
   return $obj;
 }