# get shipto address
- $query = qq|SELECT id, shiptoname
+ $query = qq|SELECT shipto_id, shiptoname, shiptodepartment_1
FROM shipto WHERE trans_id=$form->{id}|;
$sth = $dbh->prepare($query);
$sth->execute || $form->dberror($query);
$form->{taxzone_id} *= 1;
$form->{creditlimit} = $form->parse_amount($myconfig, $form->{creditlimit});
- my ($query, $sth);
+ my ($query, $sth, $f_id);
if ($form->{id}) {
+
+ $query = qq|SELECT id FROM customer
+ WHERE customernumber = '$form->{customernumber}'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ (${f_id}) = $sth->fetchrow_array;
+ $sth->finish;
+ if ((${f_id} ne $form->{id}) and (${f_id} ne "")) {
+
+ $main::lxdebug->leave_sub();
+ return 3;
+ }
$query = qq|DELETE FROM customertax
WHERE customer_id = $form->{id}|;
$dbh->do($query) || $form->dberror($query);
# WHERE trans_id = $form->{id} AND module = 'CT'|;
# $dbh->do($query) || $form->dberror($query);
} else {
+
my $uid = rand() . time;
$uid .= $form->{login};
$uid = substr($uid, 2, 75);
+ if (!$form->{customernumber} && $form->{business}) {
+ $form->{customernumber} =
+ $form->update_business($myconfig, $form->{business});
+ }
+ if (!$form->{customernumber}) {
+ $form->{customernumber} =
+ $form->update_defaults($myconfig, "customernumber");
+ }
+
+ $query = qq|SELECT c.id FROM customer c
+ WHERE c.customernumber = '$form->{customernumber}'|;
+ $sth = $dbh->prepare($query);
+ $sth->execute || $form->dberror($query);
+ (${f_id}) = $sth->fetchrow_array;
+ $sth->finish;
+ if (${f_id} ne "") {
+ $main::lxdebug->leave_sub();
+ return 3;
+ }
$query = qq|INSERT INTO customer (name)
VALUES ('$uid')|;
($form->{id}) = $sth->fetchrow_array;
$sth->finish;
- if (!$form->{customernumber} && $form->{business}) {
- $form->{customernumber} =
- $form->update_business($myconfig, $form->{business});
- }
- if (!$form->{customernumber}) {
- $form->{customernumber} =
- $form->update_defaults($myconfig, "customernumber");
- }
-
}
-
$query = qq|UPDATE customer SET
customernumber = '$form->{customernumber}',
name = '$form->{name}',
}
# add shipto
- $form->add_shipto($dbh, $form->{id});
+ $form->add_shipto($dbh, $form->{id}, "CT");
$rc = $dbh->disconnect;
my $dbh = $form->dbconnect($myconfig);
my $query = qq|SELECT s.*
FROM shipto s
- WHERE s.id = $form->{shipto_id} order by s.id limit 1|;
+ WHERE s.shipto_id = $form->{shipto_id}|;
+ #WHERE s.shipto_id = $form->{shipto_id} order by s.shipto_id limit 1|;
my $sth = $dbh->prepare($query);
$sth->execute || $form->dberror($query);
my ($self, $myconfig, $form) = @_;
my $dbh = $form->dbconnect($myconfig);
+ $tabelle = ($form->{db} eq "vendor") ? "ap" : "ar";
+
$where = " WHERE 1=1 ";
- if ($form->{shipto_id}) {
- $where .= "AND ar.shipto_id=$form->{shipto_id} ";
+ if ($form->{shipto_id} && $tabelle eq "ar") {
+ $where .= "AND $tabelle.shipto_id=$form->{shipto_id} ";
+ } else {
+ $where .="AND $tabelle.$form->{db}_id=$form->{id} ";
}
if ($form->{from}) {
- $where .= "AND ar.transdate >= '$form->{from}' ";
+ $where .= "AND $tabelle.transdate >= '$form->{from}' ";
}
if ($form->{to}) {
- $where .= "AND ar.transdate <= '$form->{to}' ";
+ $where .= "AND $tabelle.transdate <= '$form->{to}' ";
}
-
- my $query = qq|select shiptoname, adr_code, ar.transdate, ar.invnumber, ar.ordnumber, invoice.description, qty, invoice.unit FROM ar LEFT join shipto ON (ar.shipto_id=shipto.id) LEFT join invoice on (ar.id=invoice.trans_id) LEFT join parts ON (parts.id=invoice.parts_id) LEFT join adr ON (parts.adr_id=adr.id) $where ORDER BY ar.transdate DESC LIMIT 15|;
+ my $query = qq|select shiptoname, $tabelle.transdate, $tabelle.invnumber, $tabelle.ordnumber, invoice.description, qty, invoice.unit FROM $tabelle LEFT JOIN shipto ON |;
+ $query .= ($tabelle eq "ar") ? qq|($tabelle.shipto_id=shipto.shipto_id) |:qq|($tabelle.id=shipto.trans_id) |;
+ $query .=qq|LEFT join invoice on ($tabelle.id=invoice.trans_id) LEFT join parts ON (parts.id=invoice.parts_id) $where ORDER BY $tabelle.transdate DESC LIMIT 15|;
my $sth = $dbh->prepare($query);
$sth->execute || $form->dberror($query);
$main::lxdebug->leave_sub();
}
-sub adr {
- $main::lxdebug->enter_sub();
-
- my ($self, $myconfig, $form) = @_;
- my $dbh = $form->dbconnect($myconfig);
- $where = " WHERE 1=1 ";
- if ($form->{from}) {
- $where .= "AND ar.transdate >= '$form->{from}' ";
- }
- if ($form->{to}) {
- $where .= "AND ar.transdate <= '$form->{to}' ";
- }
- if ($form->{year}) {
- $where = " WHERE ar.transdate >= '$form->{year}-01-01' AND ar.transdate <= '$form->{year}-12-31' ";
- }
-
- my $query = qq|select adr_code, adr_description, sum(base_qty), parts.unit from ar LEFT join invoice on (ar.id=invoice.trans_id) LEFT join parts ON (invoice.parts_id=parts.id) LEFT join adr ON (adr.id=parts.adr_id) $where GROUP BY adr_code,adr_description,parts.unit|;
- my $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
-
- while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
- push @{ $form->{ADR} }, $ref;
- }
- $sth->finish;
- $dbh->disconnect;
-
- $main::lxdebug->leave_sub();
-}
-
1;