Fehler #742
geschlossenKonfiguration wiederkehrende Rechnung E-Mail Versand an Ansprechpartner angewählt -> als neu speichern -> Kunde wechseln -> alter Ansprechpartner bleibt bestehen ...
0%
Beschreibung
... und beim automatischen Erzeugen einer wiederkehrenden Rechnungen wird klammheimlich eine Rechnung an den falschen Ansprechpartner geschickt.
In der Oberfläche ist davon nichts weiter zu sehen ..
Beim Klonen des Auftrags wird erstmal alles mitgeklont, was korrekt ist.
Der Fehler tritt dann bei der action_customer_vendor_changed auf, da wird dieser wert nicht überschrieben.
Ich hab es mit dieser Zeile erstmal "hart" wegradiert, wahrscheinlich gibt es etwas eleganteres für den Fall:
$self->order->periodic_invoices_config->assign_attributes(email_recipient_contact_id => undef)->save
if ref $self->order->periodic_invoices_config eq 'SL::DB::PeriodicInvoicesConfig';
Von Moritz Bunkus vor etwa 1 Monat aktualisiert
Ich hab mir das endlich angesehen. Leider ist das Datenmodell etwas komisch im neuen Auftragscontroller: die Daten für die wiederkehrenden Rechnungen (also Form-Element `periodic_invoices_config`) wird nicht bei jedem Speichern mitgeschickt, sondern wohl nur, wenn das gerade über den Dialog verändert wurde. Daher kann man nicht einfach auf das Objekt `$self->order->periodic_invoices_config` zugreifen.
Hab in Branch `order-periodic-invoices-config-contact-and-customer-changes` eine mögliche Lösung gepusht, die am Ende der `sub save` eine Prüfung vornimmt. Dabei wird von `$self->order` nur `->id` & `->customer_id` benutzt; die Config für die wR hingegen wird direkt aus der DB gelesen (`SL::DB::Manager::PeriodicInvoicesConfig->find_by(oe_id => $self->order_id)`) und auch direkt da aktualisiert. Somit ist der Code davon unabhängig, ob die YAML-encodierte Config aus'm DOM mitgeschickt wird oder nicht.
Bitte mal testen.
Von Jan Büren vor etwa 1 Monat aktualisiert
- Zielversion wurde auf Bugsprint Schönhagen gesetzt