Revision 330cfa6d
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
SL/DO.pm | ||
---|---|---|
62 | 62 |
dord.transaction_description, |
63 | 63 |
pr.projectnumber AS globalprojectnumber, |
64 | 64 |
e.name AS employee, |
65 |
sm.name AS salesman, |
|
66 |
oe.id AS oe_id |
|
65 |
sm.name AS salesman |
|
67 | 66 |
FROM delivery_orders dord |
68 | 67 |
LEFT JOIN $vc ct ON (dord.${vc}_id = ct.id) |
69 | 68 |
LEFT JOIN employee e ON (dord.employee_id = e.id) |
70 | 69 |
LEFT JOIN employee sm ON (dord.salesman_id = sm.id) |
71 |
LEFT JOIN project pr ON (dord.globalproject_id = pr.id) |
|
72 |
LEFT JOIN oe ON ((dord.ordnumber = oe.ordnumber) AND NOT COALESCE(oe.quotation, FALSE))|; |
|
70 |
LEFT JOIN project pr ON (dord.globalproject_id = pr.id)|; |
|
73 | 71 |
|
74 | 72 |
push @where, ($form->{type} eq 'sales_delivery_order' ? '' : 'NOT ') . qq|COALESCE(dord.is_sales, FALSE)|; |
75 | 73 |
|
... | ... | |
152 | 150 |
|
153 | 151 |
$form->{DO} = selectall_hashref_query($form, $dbh, $query, @values); |
154 | 152 |
|
155 |
$main::lxdebug->dump(0, "DO", $form->{DO}); |
|
153 |
if (scalar @{ $form->{DO} }) { |
|
154 |
$query = |
|
155 |
qq|SELECT id |
|
156 |
FROM oe |
|
157 |
WHERE NOT COALESCE(quotation, FALSE) |
|
158 |
AND (ordnumber = ?) |
|
159 |
AND (COALESCE(${vc}_id, 0) != 0)|; |
|
160 |
|
|
161 |
my $sth = prepare_query($form, $dbh, $query); |
|
162 |
|
|
163 |
foreach my $dord (@{ $form->{DO} }) { |
|
164 |
do_statement($form, $sth, $query, $dord->{ordnumber}); |
|
165 |
($dord->{oe_id}) = $sth->fetchrow_array(); |
|
166 |
} |
|
167 |
|
|
168 |
$sth->finish(); |
|
169 |
} |
|
156 | 170 |
|
157 | 171 |
$main::lxdebug->leave_sub(); |
158 | 172 |
} |
Auch abrufbar als: Unified diff
Bug in Auflistung von Lieferscheinen: Gibt es mehrere Aufträge mit der gleichen Auftragsnummer, und wenn so eine Nummer bei einem Lieferschein eingetragen war, so wurden diese Lieferscheine gleich mehrfach aufgeführt. Die Links zu den Aufträgen führten dann zusätzlich möglicherweise zu den falschen Aufträgen (von Verkauf in Einkauf und umgekehrt). Falsche Form-Typen führen zu falschen Datenbankabfragen ("customer" vs "vendor"), sodass die Datenbankabfrage im Einkauf tatsächlich die Verkaufslieferscheine lieferte.