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)

storno.patch (945 Byte) - hinzugefügt von info@… vor 7 Jahren.
Stronobuchungen korrigiert

Alle Anhänge herunterladen als: .zip

Änderungshistorie (5)

comment:1 Geändert vor 7 Jahren durch info@…

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

Geändert vor 7 Jahren durch info@…

Stronobuchungen korrigiert

comment:2 Geändert vor 7 Jahren durch info@…

  • attachments.description von Siehe meinen zusätzlichen Kommentar nach Stronobuchungen korrigiert geändert

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:

  1. Die Buchungen im Buchungsjournal sind jetzt richtig.
  2. Rechnung und Storno tauchen in der Rechnungsliste nicht mehr auf (ist das so

gewünscht?).

  1. 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.

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.