Merge branch 'b-3.6.1' into mebil
[kivitendo-erp.git] / SL / DB / ShopOrder.pm
index ae5d856..6a53387 100644 (file)
@@ -48,7 +48,8 @@ sub convert_to_sales_order {
     }else{
       my $current_order_item = SL::DB::OrderItem->new(
         parts_id            => $part->id,
-        description         => $part->description,
+        description         => $_->description, # description from the shop
+        longdescription     => $part->notes,    # longdescription from parts. TODO locales
         qty                 => $_->quantity,
         sellprice           => $_->price,
         unit                => $part->unit,
@@ -137,11 +138,11 @@ WHERE (
  OR
    ( street % ?  AND zipcode ILIKE ?)
  OR
-   email ILIKE ?
+   ( email ILIKE ? OR invoice_mail ILIKE ? )
 ) AND obsolete = 'F'
 SQL
 
-    my @values = ($lastname, $company, $self->billing_zipcode, $street, $self->billing_zipcode, $self->billing_email);
+    my @values = ($lastname, $company, $self->billing_zipcode, $street, $self->billing_zipcode, $self->billing_email, $self->billing_email);
 
     $customers = SL::DB::Manager::Customer->get_objects_from_sql(
       sql  => $fs_query,
@@ -151,20 +152,24 @@ SQL
     # If trgm extension is not installed
     $customers = SL::DB::Manager::Customer->get_all(
       where => [
-          or => [
-            and => [
-                     or => [ 'name' => { ilike => $lastname },
-                             'name' => { ilike => $company  },
-                           ],
-                     'zipcode' => { ilike => $zipcode },
+                 or => [
+                   and => [
+                            or => [ 'name' => { ilike => $lastname },
+                                    'name' => { ilike => $company  },
+                            ],
+                            'zipcode' => { ilike => $zipcode },
                    ],
-            and => [
-                     and => [ 'street'  => { ilike => $street_not_fuzzy },
-                              'zipcode' => { ilike => $zipcode },
+                   and => [
+                            and => [ 'street'  => { ilike => $street_not_fuzzy },
+                                     'zipcode' => { ilike => $zipcode },
                             ],
                    ],
-            or  => [ 'email' => { ilike => $email } ],
-          ],
+                   or  => [
+                            'email'        => { ilike => $email },
+                            'invoice_mail' => { ilike => $email },
+                   ],
+                 ],
+                 and => [ obsolete => 'F' ]
       ],
     );
   }
@@ -198,6 +203,7 @@ sub get_customer{
                     'zipcode'               => $self->billing_zipcode,
                     'city'                  => $self->billing_city,
                     'email'                 => $self->billing_email,
+                    'invoice_mail'          => $self->billing_email,
                     'country'               => $self->billing_country,
                     'greeting'              => $self->billing_greeting,
                     'fax'                   => $self->billing_fax,
@@ -233,6 +239,7 @@ sub get_customer{
                                                     obsolete => 'F',
                                                   );
   }
+  $customer->update_attributes(invoice_mail => $self->billing_email) if $customer->invoice_mail ne $self->billing_email;
 
   return $customer;
 }