X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FCT.pm;h=0468c379d210001590c5c6f5a0094e65ea5f6605;hb=5df2b57a097f66f6cecba0aa577c7aaba3422ab6;hp=d22017d4fbbe9a799b4d5b4c750815666ec7b014;hpb=245b032241e70470b1d392b5fe055a2dfd6333c6;p=kivitendo-erp.git diff --git a/SL/CT.pm b/SL/CT.pm index d22017d4f..0468c379d 100644 --- a/SL/CT.pm +++ b/SL/CT.pm @@ -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; @@ -986,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;