# get shipto address
$query =
- qq|SELECT shipto_id, shiptoname, shiptodepartment_1 | .
- qq|FROM shipto WHERE (trans_id = ?) AND (module = 'CT')|;
+ qq|SELECT shipto_id, shiptoname, shiptodepartment_1, shiptostreet, shiptocity
+ FROM shipto
+ WHERE (trans_id = ?) AND (module = 'CT')|;
$form->{SHIPTO} = selectall_hashref_query($form, $dbh, $query, $form->{id});
# get contacts
- $query = qq|SELECT cp_id, cp_name 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
qq|bank_code = ?, | .
qq|bank = ?, | .
qq|obsolete = ?, | .
+ qq|direct_debit = ?, | .
qq|ustid = ?, | .
qq|username = ?, | .
qq|salesman_id = ?, | .
$form->{bank_code},
$form->{bank},
$form->{obsolete} ? 't' : 'f',
+ $form->{direct_debit} ? 't' : 'f',
$form->{ustid},
$form->{username},
conv_i($form->{salesman_id}),
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);
qq| bank_code = ?, | .
qq| bank = ?, | .
qq| obsolete = ?, | .
+ qq| direct_debit = ?, | .
qq| ustid = ?, | .
qq| payment_id = ?, | .
qq| taxzone_id = ?, | .
$form->{bank_code},
$form->{bank},
$form->{obsolete} ? 't' : 'f',
+ $form->{direct_debit} ? 't' : 'f',
$form->{ustid},
conv_i($form->{payment_id}),
conv_i($form->{taxzone_id}, 0),
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";
+ $sortorder = $form->{sort} && $allowed_sort_columns{$form->{sort}} ? $form->{sort} : "name";
$form->{sort} = $sortorder;
- $sortorder = "country,city,street" if ($sortorder eq "address");
+ my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
+
+ if ($sortorder eq "address") {
+ $sortorder = "lower(country) ${sortdir}, lower(city) ${sortdir}, lower(street) ${sortdir}";
+ } elsif ($sortorder ne 'id') {
+ $sortorder = "lower($sortorder) ${sortdir}";
+ } else {
+ $sortorder .= " ${sortdir}";
+ }
if ($form->{"${cv}number"}) {
$where .= " AND ct.${cv}number ILIKE ?";
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;
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;
$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;