use SL::DB::Shop;
use SL::DB::MetaSetup::ShopOrder;
use SL::DB::Manager::ShopOrder;
+use SL::DB::PaymentTerm;
use SL::DB::Helper::LinkedRecords;
use SL::Locale::String qw(t8);
use Carp;
}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,
intnotes => $customer->notes,
salesman_id => $employee->id,
taxincluded => $self->tax_included,
- payment_id => $customer->payment_id,
+ payment_id => $self->payment_id,
taxzone_id => $customer->taxzone_id,
currency_id => $customer->currency_id,
transaction_description => $shop->transaction_description,
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,
# 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' ]
],
);
}
my $customer_proposals = $self->check_for_existing_customers;
my $name = $self->billing_firstname . " " . $self->billing_lastname;
my $customer = 0;
+ my $default_payment = SL::DB::Manager::PaymentTerm->get_first();
+ my $payment_id = $default_payment ? $default_payment->id : undef;
if(!scalar(@{$customer_proposals})){
my %address = ( 'name' => $name,
'department_1' => $self->billing_company,
'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,
'pricegroup_id' => (split '\/',$shop->price_source)[0] eq "pricegroup" ? (split '\/',$shop->price_source)[1] : undef,
'taxzone_id' => $shop->taxzone_id,
'currency' => $::instance_conf->get_currency_id,
- #'payment_id' => 7345,# TODO hardcoded
+ 'payment_id' => $payment_id,
);
$customer = SL::DB::Customer->new(%address);
obsolete => 'F',
);
}
+ $customer->update_attributes(invoice_mail => $self->billing_email) if $customer->invoice_mail ne $self->billing_email;
return $customer;
}