X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FCT.pm;h=0468c379d210001590c5c6f5a0094e65ea5f6605;hb=5df2b57a097f66f6cecba0aa577c7aaba3422ab6;hp=e25e41cd9092fc76810e6e7aecc01bfe32b0a37a;hpb=eeb07c164e0c3398f14372308b404fb07e2102cf;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index e25e41cd9..0468c379d 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -160,7 +160,7 @@ sub populate_drop_down_boxes { $form->{SHIPTO} = selectall_hashref_query($form, $dbh, $query, $form->{id}); # get contacts - $query = qq|SELECT cp_id, cp_name, cp_givenname FROM contacts WHERE cp_cv_id = ?|; + $query = qq|SELECT cp_id, cp_name, cp_givenname FROM contacts WHERE cp_cv_id = ? ORDER BY cp_name|; $form->{CONTACTS} = selectall_hashref_query($form, $dbh, $query, $form->{id}); # get languages @@ -470,11 +470,7 @@ sub save_vendor { my $query; - if ( $form->{id} ) { - $query = qq|DELETE FROM shipto WHERE (trans_id = ?) AND (module = 'CT')|; - do_query($form, $dbh, $query, $form->{id}); - - } else { + if (!$form->{id}) { $query = qq|SELECT nextval('id')|; ($form->{id}) = selectrow_query($form, $dbh, $query); @@ -684,13 +680,18 @@ sub search { my @values; my %allowed_sort_columns = - map({ $_, 1 } qw(id customernumber name address contact phone fax email + map({ $_, 1 } qw(id customernumber vendornumber name address contact phone fax email taxnumber sic_code business invnumber ordnumber quonumber)); $sortorder = $form->{sort} && $allowed_sort_columns{$form->{sort}} ? $form->{sort} : "name"; $form->{sort} = $sortorder; - $sortorder = "country,city,street" if ($sortorder eq "address"); + + if ($sortorder eq "address") { + $sortorder = "lower(country), lower(city), lower(street)"; + } elsif ($sortorder ne 'id') { + $sortorder = "lower($sortorder)"; + } if ($form->{"${cv}number"}) { $where .= " AND ct.${cv}number ILIKE ?"; @@ -827,6 +828,14 @@ sub get_contact { map { $form->{$_} = $ref->{$_} } keys %$ref; + $query = qq|SELECT COUNT(cp_id) AS used FROM ( + SELECT cp_id FROM oe UNION + SELECT cp_id FROM ar UNION + SELECT cp_id FROM ap UNION + SELECT cp_id FROM delivery_orders + ) AS cpid WHERE cp_id = ? OR ? = 0|; + ($form->{cp_used}) = selectfirst_array_query($form, $dbh, $query, ($form->{cp_id})x2); + $sth->finish; $dbh->disconnect; @@ -845,6 +854,13 @@ sub get_shipto { map { $form->{$_} = $ref->{$_} } keys %$ref; + $query = qq|SELECT COUNT(shipto_id) AS used FROM ( + SELECT shipto_id FROM oe UNION + SELECT shipto_id FROM ar UNION + SELECT shipto_id FROM delivery_orders + ) AS stid WHERE shipto_id = ? OR ? = 0|; + ($form->{shiptoused}) = selectfirst_array_query($form, $dbh, $query, ($form->{shipto_id})x2); + $sth->finish; $dbh->disconnect; @@ -979,4 +995,38 @@ sub _delete_selected_notes { $main::lxdebug->leave_sub(); } +sub delete_shipto { + $main::lxdebug->enter_sub(); + + my $self = shift; + my $shipto_id = shift; + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $dbh = $form->get_standard_dbh(\%myconfig); + + do_query($form, $dbh, qq|UPDATE shipto SET trans_id = NULL WHERE shipto_id = ?|, $shipto_id); + + $dbh->commit(); + + $main::lxdebug->leave_sub(); +} + +sub delete_shipto { + $main::lxdebug->enter_sub(); + + my $self = shift; + my $shipto_id = shift; + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $dbh = $form->get_standard_dbh(\%myconfig); + + do_query($form, $dbh, qq|UPDATE contacts SET cp_cv_id = NULL WHERE cp_id = ?|, $shipto_id); + + $dbh->commit(); + + $main::lxdebug->leave_sub(); +} + 1;