X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCT.pm;h=8ceab3aa6a31896331bbb9908cac66a73fdd7ea9;hb=2766521474b20c77e62d169a1c99efb41cb1c56f;hp=39c29b0651b1f3788eb69be8422a1f4fe8ae6ca8;hpb=aa0fece0399b780eae5688a4498d8c982b6a33d4;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index 39c29b065..8ceab3aa6 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -42,6 +42,7 @@ use Data::Dumper; use SL::Common; use SL::CVar; use SL::DBUtils; +use SL::DB::Default; use SL::FU; use SL::Notes; use SL::TransNumber; @@ -321,7 +322,8 @@ sub save_customer { qq|c_vendor_id = ?, | . qq|klass = ?, | . qq|currency_id = (SELECT id FROM currencies WHERE name = ?), | . - qq|taxincluded_checked = ? | . + qq|taxincluded_checked = ?, | . + qq|delivery_term_id = ? | . qq|WHERE id = ?|; my @values = ( $form->{customernumber}, @@ -365,6 +367,7 @@ sub save_customer { conv_i($form->{klass}), $form->{currency}, $form->{taxincluded_checked} ne '' ? $form->{taxincluded_checked} : undef, + conv_i($form->{delivery_term_id}), $form->{id} ); do_query( $form, $dbh, $query, @values ); @@ -472,7 +475,8 @@ sub save_vendor { qq| username = ?, | . qq| user_password = ?, | . qq| v_customer_id = ?, | . - qq| currency_id = (SELECT id FROM currencies WHERE name = ?) | . + qq| currency_id = (SELECT id FROM currencies WHERE name = ?), | . + qq| delivery_term_id = ? | . qq|WHERE id = ?|; my @values = ( $form->{vendornumber}, @@ -513,6 +517,7 @@ sub save_vendor { $form->{user_password}, $form->{v_customer_id}, $form->{currency}, + conv_i($form->{delivery_term_id}), $form->{id} ); do_query($form, $dbh, $query, @values); @@ -616,24 +621,25 @@ sub search { 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", + "discount" => "ct.discount", + "salesman" => "e.name" ); $form->{sort} ||= "name"; @@ -648,7 +654,7 @@ sub search { } my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC'; - if ($sortorder !~ /(business|id)/ && !$join_records) { + if ($sortorder !~ /(business|id|discount)/ && !$join_records) { $sortorder = "lower($sortorder) ${sortdir}"; } else { $sortorder .= " ${sortdir}"; @@ -675,10 +681,10 @@ sub search { $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; @@ -688,10 +694,10 @@ sub search { $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; @@ -717,20 +723,20 @@ sub search { } 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}); } @@ -744,12 +750,12 @@ sub search { } 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} . '%'; } @@ -1080,6 +1086,10 @@ sub parse_excel_file { 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'; @@ -1122,8 +1132,6 @@ sub parse_excel_file { $form->{notes} =~ s/^\s+//g; - $form->{templates} = $myconfig->{templates}; - delete $form->{printer_command}; $form->get_employee_info($myconfig); @@ -1157,7 +1165,6 @@ sub search_contacts { 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',