"email" => "ct.email",
"street" => "ct.street",
"taxnumber" => "ct.taxnumber",
- "business" => "ct.business",
+ "business" => "b.description",
"invnumber" => "ct.invnumber",
"ordnumber" => "ct.ordnumber",
"quonumber" => "ct.quonumber",
"city" => "ct.city",
"country" => "ct.country",
"discount" => "ct.discount",
- "salesman" => "e.name"
+ "insertdate" => "ct.itime",
+ "salesman" => "e.name",
+ "payment" => "pt.description",
+ "pricegroup" => "pg.pricegroup",
);
$form->{sort} ||= "name";
}
my $sortdir = !defined $form->{sortdir} ? 'ASC' : $form->{sortdir} ? 'ASC' : 'DESC';
- if ($sortorder !~ /(business|id|discount)/ && !$join_records) {
+ if ($sortorder !~ /(business|id|discount|itime)/ && !$join_records) {
$sortorder = "lower($sortorder) ${sortdir}";
} else {
$sortorder .= " ${sortdir}";
push(@values, conv_i($form->{business_id}));
}
+ if ($form->{salesman_id}) {
+ $where .= qq| AND (ct.salesman_id = ?)|;
+ push(@values, conv_i($form->{salesman_id}));
+ }
+
+ if($form->{insertdatefrom}) {
+ $where .= qq| AND (ct.itime::DATE >= ?)|;
+ push@values, conv_date($form->{insertdatefrom});
+ }
+
+ if($form->{insertdateto}) {
+ $where .= qq| AND (ct.itime::DATE <= ?)|;
+ push @values, conv_date($form->{insertdateto});
+ }
+
# 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 em.id from employee em where em.login = ?)|;
- push(@values, $form->{login});
+ push(@values, $::myconfig{login});
}
my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'CT',
push @values, $form->{addr_zipcode} . '%';
}
+ my $pg_select = $form->{l_pricegroup} ? qq|, pg.pricegroup as pricegroup | : '';
+ my $pg_join = $form->{l_pricegroup} ? qq|LEFT JOIN pricegroup pg ON (ct.klass = pg.id) | : '';
my $query =
- qq|SELECT ct.*, b.description AS business, e.name as salesman | .
+ qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
+ qq| pt.description as payment | .
+ $pg_select .
(qq|, NULL AS invnumber, NULL AS ordnumber, NULL AS quonumber, NULL AS invid, NULL AS module, NULL AS formtype, NULL AS closed | x!! $join_records) .
qq|FROM $cv ct | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|LEFT JOIN employee e ON (ct.salesman_id = e.id) | .
+ qq|LEFT JOIN payment_terms pt ON (ct.payment_id = pt.id) | .
+ $pg_join .
qq|WHERE $where|;
my @saved_values = @values;
push(@values, @saved_values);
$query .=
qq| UNION | .
- qq|SELECT ct.*, b.description AS business, e.name as salesman, | .
- qq| a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, | .
+ qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
+ qq| pt.description as payment | .
+ $pg_select .
+ qq|, a.invnumber, a.ordnumber, a.quonumber, a.id AS invid, | .
qq| '$module' AS module, 'invoice' AS formtype, | .
qq| (a.amount = a.paid) AS closed | .
qq|FROM $cv ct | .
qq|JOIN $ar a ON (a.${cv}_id = ct.id) | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|LEFT JOIN employee e ON (ct.salesman_id = e.id) | .
+ qq|LEFT JOIN payment_terms pt ON (ct.payment_id = pt.id) | .
+ $pg_join .
qq|WHERE $where AND (a.invoice = '1')|;
}
push(@values, @saved_values);
$query .=
qq| UNION | .
- qq|SELECT ct.*, b.description AS business, e.name as salesman, | .
- qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
+ qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
+ qq| pt.description as payment | .
+ $pg_select .
+ qq|, ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
qq| 'oe' AS module, 'order' AS formtype, o.closed | .
qq|FROM $cv ct | .
qq|JOIN oe o ON (o.${cv}_id = ct.id) | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|LEFT JOIN employee e ON (ct.salesman_id = e.id) | .
+ qq|LEFT JOIN payment_terms pt ON (ct.payment_id = pt.id) | .
+ $pg_join .
qq|WHERE $where AND (o.quotation = '0')|;
}
push(@values, @saved_values);
$query .=
qq| UNION | .
- qq|SELECT ct.*, b.description AS business, e.name as salesman, | .
- qq| ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
+ qq|SELECT ct.*, ct.itime::DATE AS insertdate, b.description AS business, e.name as salesman, | .
+ qq| pt.description as payment | .
+ $pg_select .
+ qq|, ' ' AS invnumber, o.ordnumber, o.quonumber, o.id AS invid, | .
qq| 'oe' AS module, 'quotation' AS formtype, o.closed | .
qq|FROM $cv ct | .
qq|JOIN oe o ON (o.${cv}_id = ct.id) | .
qq|LEFT JOIN business b ON (ct.business_id = b.id) | .
qq|LEFT JOIN employee e ON (ct.salesman_id = e.id) | .
+ qq|LEFT JOIN payment_terms pt ON (ct.payment_id = pt.id) | .
+ $pg_join .
qq|WHERE $where AND (o.quotation = '1')|;
}
}
my $table = $params{vc} eq 'customer' ? 'customer' : 'vendor';
my @ids = ref $params{id} eq 'ARRAY' ? @{ $params{id} } : ($params{id});
my $placeholders = join ", ", ('?') x scalar @ids;
- my $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic
+ my $c_mandate = $params{vc} eq 'customer' ? ', mandator_id, mandate_date_of_signature' : '';
+ my $query = qq|SELECT id, name, account_number, bank, bank_code, iban, bic ${c_mandate}
FROM ${table}
WHERE id IN (${placeholders})|;