use SL::Common;
use SL::CVar;
use SL::DBUtils;
+use SL::DB::Default;
use SL::FU;
use SL::Notes;
use SL::TransNumber;
my $ref = $sth->fetchrow_hashref("NAME_lc");
map { $form->{$_} = $ref->{$_} } keys %$ref;
+ $sth->finish;
- # remove any trailing whitespace
- $form->{curr} =~ s/\s*$//;
+ #get name of currency instead of id:
+ $query = qq|SELECT name AS curr FROM currencies WHERE id=?|;
+ ($form->{curr}) = selectrow_query($form, $dbh, $query, conv_i($form->{currency_id}));
- $sth->finish;
if ( $form->{salesman_id} ) {
my $query =
qq|SELECT ct.name AS salesman | .
$query = qq|SELECT nextval('id')|;
($form->{id}) = selectrow_query($form, $dbh, $query);
- $query = qq|INSERT INTO customer (id, name) VALUES (?, '')|;
+ $query = qq|INSERT INTO customer (id, name, currency_id) VALUES (?, '', (SELECT currency_id FROM defaults))|;
do_query($form, $dbh, $query, $form->{id});
}
qq|user_password = ?, | .
qq|c_vendor_id = ?, | .
qq|klass = ?, | .
- qq|curr = ?, | .
+ qq|currency_id = (SELECT id FROM currencies WHERE name = ?), | .
qq|taxincluded_checked = ? | .
qq|WHERE id = ?|;
my @values = (
$form->{user_password},
$form->{c_vendor_id},
conv_i($form->{klass}),
- substr($form->{currency}, 0, 3),
+ $form->{currency},
$form->{taxincluded_checked} ne '' ? $form->{taxincluded_checked} : undef,
$form->{id}
);
$query = qq|SELECT nextval('id')|;
($form->{id}) = selectrow_query($form, $dbh, $query);
- $query = qq|INSERT INTO vendor (id, name) VALUES (?, '')|;
+ $query = qq|INSERT INTO vendor (id, name, currency_id) VALUES (?, '', (SELECT currency_id FROM defaults))|;
do_query($form, $dbh, $query, $form->{id});
my $vendornumber = SL::TransNumber->new(type => 'vendor',
qq| username = ?, | .
qq| user_password = ?, | .
qq| v_customer_id = ?, | .
- qq| curr = ? | .
+ qq| currency_id = (SELECT id FROM currencies WHERE name = ?) | .
qq|WHERE id = ?|;
my @values = (
$form->{vendornumber},
$form->{username},
$form->{user_password},
$form->{v_customer_id},
- substr($form->{currency}, 0, 3),
+ $form->{currency},
$form->{id}
);
do_query($form, $dbh, $query, @values);
my @values;
my %allowed_sort_columns = (
- "id" => "id",
- "customernumber" => "customernumber",
- "vendornumber" => "vendornumber",
- "name" => "ct.name",
- "contact" => "contact",
- "phone" => "phone",
- "fax" => "fax",
- "email" => "email",
- "street" => "street",
- "taxnumber" => "taxnumber",
- "business" => "business",
- "invnumber" => "invnumber",
- "ordnumber" => "ordnumber",
- "quonumber" => "quonumber",
- "zipcode" => "zipcode",
- "city" => "city",
- "country" => "country",
- "salesman" => "e.name"
+ "id" => "ct.id",
+ "customernumber" => "ct.customernumber",
+ "vendornumber" => "ct.vendornumber",
+ "name" => "ct.name",
+ "contact" => "ct.contact",
+ "phone" => "ct.phone",
+ "fax" => "ct.fax",
+ "email" => "ct.email",
+ "street" => "ct.street",
+ "taxnumber" => "ct.taxnumber",
+ "business" => "ct.business",
+ "invnumber" => "ct.invnumber",
+ "ordnumber" => "ct.ordnumber",
+ "quonumber" => "ct.quonumber",
+ "zipcode" => "ct.zipcode",
+ "city" => "ct.city",
+ "country" => "ct.country",
+ "salesman" => "e.name"
);
$form->{sort} ||= "name";
my $sortorder;
if ( $join_records ) {
# in UNION case order by hash key, e.g. salesman
- # the UNION created an implicit select around the result
+ # the UNION created an implicit select around the result
$sortorder = $allowed_sort_columns{$form->{sort}} ? $form->{sort} : "name";
} else {
# in not UNION case order by hash value, e.g. e.name
$where .= " AND ((lower(ct.city) LIKE lower(?))
OR
(ct.id IN (
- SELECT trans_id
- FROM shipto
- WHERE (module = 'CT')
- AND (lower(shiptocity) LIKE lower(?))
+ SELECT sc.trans_id
+ FROM shipto sc
+ WHERE (sc.module = 'CT')
+ AND (lower(sc.shiptocity) LIKE lower(?))
))
)";
push @values, ('%' . $form->{addr_city} . '%') x 2;
$where .= " AND ((lower(ct.country) LIKE lower(?))
OR
(ct.id IN (
- SELECT trans_id
- FROM shipto
- WHERE (module = 'CT')
- AND (lower(shiptocountry) LIKE lower(?))
+ SELECT so.trans_id
+ FROM shipto so
+ WHERE (so.module = 'CT')
+ AND (lower(so.shiptocountry) LIKE lower(?))
))
)";
push @values, ('%' . $form->{addr_country} . '%') x 2;
}
if ($form->{obsolete} eq "Y") {
- $where .= qq| AND obsolete|;
+ $where .= qq| AND ct.obsolete|;
} elsif ($form->{obsolete} eq "N") {
- $where .= qq| AND NOT obsolete|;
+ $where .= qq| AND NOT ct.obsolete|;
}
if ($form->{business_id}) {
- $where .= qq| AND (business_id = ?)|;
+ $where .= qq| AND (ct.business_id = ?)|;
push(@values, conv_i($form->{business_id}));
}
# Nur Kunden finden, bei denen ich selber der Verkäufer bin
# Gilt nicht für Lieferanten
if ($cv eq 'customer' && !$main::auth->assert('customer_vendor_all_edit', 1)) {
- $where .= qq| AND ct.salesman_id = (select id from employee where login= ?)|;
+ $where .= qq| AND ct.salesman_id = (select em.id from employee em where em.login = ?)|;
push(@values, $form->{login});
}
}
if ($form->{addr_street}) {
- $where .= qq| AND (street ILIKE ?)|;
+ $where .= qq| AND (ct.street ILIKE ?)|;
push @values, '%' . $form->{addr_street} . '%';
}
if ($form->{addr_zipcode}) {
- $where .= qq| AND (zipcode ILIKE ?)|;
+ $where .= qq| AND (ct.zipcode ILIKE ?)|;
push @values, $form->{addr_zipcode} . '%';
}
}
$query .= qq| ORDER BY $sortorder|;
-
+
$form->{CT} = selectall_hashref_query($form, $dbh, $query, @values);
$main::lxdebug->leave_sub();
my ($self, $myconfig, $form) = @_;
my $locale = $main::locale;
+ my $defaults = SL::DB::Default->get;
+ $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates;
+ $form->{templates} = $defaults->templates;
+
$form->{formname} = 'sales_quotation';
$form->{type} = 'sales_quotation';
$form->{format} = 'excel';
$form->{notes} =~ s/^\s+//g;
- $form->{templates} = $myconfig->{templates};
-
delete $form->{printer_command};
$form->get_employee_info($myconfig);
my %params = @_;
my $dbh = $params{dbh} || $::form->get_standard_dbh;
- my $vc = $params{db} eq 'customer' ? 'customer' : 'vendor';
my %sortspecs = (
'cp_name' => 'cp_name, cp_givenname',