Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 330cfa6d

Von Moritz Bunkus vor fast 17 Jahren hinzugefügt

  • ID 330cfa6d7507da52bc1c2a3874b46eb23255538f
  • Vorgänger ca57b730
  • Nachfolger c3c267fe

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.

Unterschiede anzeigen:

SL/DO.pm
dord.transaction_description,
pr.projectnumber AS globalprojectnumber,
e.name AS employee,
sm.name AS salesman,
oe.id AS oe_id
sm.name AS salesman
FROM delivery_orders dord
LEFT JOIN $vc ct ON (dord.${vc}_id = ct.id)
LEFT JOIN employee e ON (dord.employee_id = e.id)
LEFT JOIN employee sm ON (dord.salesman_id = sm.id)
LEFT JOIN project pr ON (dord.globalproject_id = pr.id)
LEFT JOIN oe ON ((dord.ordnumber = oe.ordnumber) AND NOT COALESCE(oe.quotation, FALSE))|;
LEFT JOIN project pr ON (dord.globalproject_id = pr.id)|;
push @where, ($form->{type} eq 'sales_delivery_order' ? '' : 'NOT ') . qq|COALESCE(dord.is_sales, FALSE)|;
......
$form->{DO} = selectall_hashref_query($form, $dbh, $query, @values);
$main::lxdebug->dump(0, "DO", $form->{DO});
if (scalar @{ $form->{DO} }) {
$query =
qq|SELECT id
FROM oe
WHERE NOT COALESCE(quotation, FALSE)
AND (ordnumber = ?)
AND (COALESCE(${vc}_id, 0) != 0)|;
my $sth = prepare_query($form, $dbh, $query);
foreach my $dord (@{ $form->{DO} }) {
do_statement($form, $sth, $query, $dord->{ordnumber});
($dord->{oe_id}) = $sth->fetchrow_array();
}
$sth->finish();
}
$main::lxdebug->leave_sub();
}
bin/mozilla/do.pl
check_do_access();
$form->{vc} = $form->{type} eq 'purchase_order' ? 'vendor' : 'customer';
$form->{vc} = $form->{type} eq 'purchase_delivery_order' ? 'vendor' : 'customer';
$form->get_lists("projects" => { "key" => "ALL_PROJECTS",
"all" => 1 },
......
$lxdebug->enter_sub();
check_do_access();
$auth->assert($form->{type} eq 'purchase_order' || $form->{type} eq 'request_quotation' ? 'vendor_invoice_edit' : 'invoice_edit');
$auth->assert($form->{type} eq 'purchase_delivery_order' ? 'vendor_invoice_edit' : 'invoice_edit');
$form->{deliverydate} = $form->{transdate};
$form->{transdate} = $form->{invdate} = $form->current_date(\%myconfig);

Auch abrufbar als: Unified diff