Fehler #199
Kundenrabatt im Einkauf: Can't locate object method "customer" via package "SL::DB::PurchaseInvoice"
0%
Beschreibung
Wenn ein Kunde einen Kundenrabatt hat, und man aus einem Auftrag einen Lieferantenauftrag macht, wird die active_discount_source der Artikel (z.B. "customer_discount/1162") mit auf die Einkaufsseite des Workflows übernommen, und das fliegt einem dann bei der EK-Rechnung um die Ohren.
Wahrscheinlich wäre es aber besser, beim Wechsel von VK zu EK die Kundenrabatte und Kundenpreisregeln herauszufiltern, da diese nichts mit den Vereinbarungen mit dem Lieferanten zu tun haben. Und dann sollten bei den Positionen die Lieferantenregeln vorbelegt werden, so als ob man den Auftrag händisch eingegeben hätte.
Aus dem Chat:
<gorash> wenn du das vorbelegen bauen willst, musst du in der funktion die den wechsel macht:
<gorash> 1. active_(price|discount)_source clearen
<gorash> 2. den block aus oe.pl:681 (bei mir gerade) der mit $price_source = ... anfängt für jede zeile machen
<gorash> der block da taucht an verschiedenen stellen auf, das hab ich nicht sauber in ne funktion kapseln können
<gorash> sollte recht selbsterklärend sein was der tut
<gorash> achja, und schrieb das bitte in die dku von SL/PriceSource.pm, dass die nicht-ändern garantie nur innerhalb eines beleges gilt und nicht beim umwandeln von belegen
<gorash> und ich muss mir dann überlegen wie das zusammenpasst mit den externen preisen die cetaq haben will. die wollen nämlich, dass der preis einer position in der rechnung als preisquelle die position aus dem auftrag haben kann
Historie
Von G. Richardson vor mehr als 8 Jahren aktualisiert
Der Fehler ist behoben mit Commit 7d5e8b70d
Die Filterung ist aber noch offen.