Erstellt vor 7 Jahren
Geschlossen vor 6 Jahren
#815 closed Fehler (fixed)
Storno von Einkaufsrechnungen funktioniert nicht
| Erstellt von: | manuel.schwab@… | Verantwortlicher: | p.reetz@… |
|---|---|---|---|
| Priorität: | sehr hoch | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.4.3 |
| Schweregrad: | kritisch | Stichworte: | Finanzbuchhaltung |
| Beobachter: | s.schoeling@… |
Beschreibung
Habe eine Einkaufsrechnung angelegt dabei einen Fehler gemacht, jedoch wurde
diese schon gebucht.
Also wollte ich diese stornieren, Rechnung aufgerufen, storno gewählt.
Erster Bug hier:
Nach dem ersten Klick auf Storno wird der Lieferant gewechselt.
Nicht der eigentlich richtige Lieferant wird ausgewählt, sondern der Lieferant,
der als erstens in der Liste steht.
Ein anschließender Klick auf "buchen" führt leider keine Korrektur durch,
sondern bucht den gleichen Buchungssatz wie bei einer normalen Einkaufsrechnung
nochmal.
Da ich mir nicht mehr anders zu helfen wusste, wollte ich die Rechnung löschen.
Hier die Fehlermeldung dann:
DELETE FROM ap WHERE id = ? (157)
FEHLER: Aktualisieren oder Löschen in Tabelle »ap« verletzt
Fremdschlüssel-Constraint »ap_storno_id_fkey« von Tabelle »ap«
DETAIL: Auf Schlüssel (id)=(157) wird noch aus Tabelle »ap« verwiesen.
Eine andere Lösung als alles händisch auszubuchen wird es hier wohl nicht geben,
oder eben die DB zurücksetzen was ja aber eigentlich nicht erlaubt ist.
Kann es wirklich sein, dass der Fehler noch nie jemanden aufgefallen ist oder
bin ich einfach zu doof?
Anhänge (1)
Änderungshistorie (5)
comment:1 Geändert vor 7 Jahren durch info@…
comment:2 Geändert vor 7 Jahren durch info@…
Ich habe einen Patch vorzuschlagen, der diesen Bug beseitigt. (Siehe Anhang)
Der Patch ist relativ zu unstable Revision 3220.
Der erste Teil beseitigt einen Eintrag, der storno immer auf 0 setzt. 0 oder
false ist aber ohnehin der Defaultwert in der Datenbank.
Der zweite Teil beseitigt nur einen Quotingfehler in der Bemerkung "intnotes".
Befund mit dem Patch:
- Die Buchungen im Buchungsjournal sind jetzt richtig.
- Rechnung und Storno tauchen in der Rechnungsliste nicht mehr auf (ist das so
gewünscht?).
- Das Stornodatum ist das Rechnungsdatum (Ist das kaufmännisch korrekt?).
Bitte übernehmt den Patch in die unstable-Distribution.
Mit dieser Lösung dürfte auch #761 beseitigt sein.
comment:3 Geändert vor 6 Jahren durch s.schoeling@…
- Beobachter s.schoeling@… hinzugefügt
- Status von new nach assigned geändert
zumindest das quoting in SL/IR.pm habe ich schonmal üernommen.
comment:4 Geändert vor 6 Jahren durch s.schoeling@…
- Lösung auf fixed gesetzt
- Status von assigned nach closed geändert
Und den Stornofix aus is.pl übernommen.

Das entspricht im Wesentlichen #761.
Inzwischen wurde wohl daran gearbeitet, denn in der aktuellen Unstable bricht
das Storno mit der Fehlermeldung
SELECT
v.name AS vendor, v.creditlimit, v.terms, v.notes AS intnotes,
v.email, v.cc, v.bcc, v.language_id, v.payment_id,
v.street, v.zipcode, v.city, v.country, v.taxzone_id,
to_date('08.03.2007', 'dd.mm.yyyy') + COALESCE(pt.terms_netto, 0) AS duedate,
b.description AS business
FROM vendor v
LEFT JOIN business b ON (b.id = v.business_id)
LEFT JOIN payment_terms pt ON (v.payment_id = pt.id)
WHERE 1=1 AND v.id = ?
execute called with an unbound placeholder
ab