Auftrags-Controller: Wiederkehrende Rechnungen. Konfig nicht mit neuer id …
authorBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 26 Sep 2018 10:23:00 +0000 (12:23 +0200)
committerBernd Bleßmann <bernd@kivitendo-premium.de>
Wed, 26 Sep 2018 10:23:00 +0000 (12:23 +0200)
… speichern, wenn diese schon vorhanden ist, sondern die vorhandene mit
den neuen Attributen versehen.

Wenn sich die id ändert, lässt sich nicht mehr feststellen, ob für diese Konfig
bzw. diesen Auftrag schon wiederkehrende Rechnungen erzeugt wurden und es werden
evtl. alle nochmal erzeugt.

SL/Controller/Order.pm

index d8d197a..976f62f 100644 (file)
@@ -1166,8 +1166,10 @@ sub make_order {
 
   $order->assign_attributes(%{$::form->{order}});
 
-  my $periodic_invoices_config = make_periodic_invoices_config_from_yaml($form_periodic_invoices_config);
-  $order->periodic_invoices_config($periodic_invoices_config) if $periodic_invoices_config;
+  if (my $periodic_invoices_config_attrs = $form_periodic_invoices_config ? YAML::Load($form_periodic_invoices_config) : undef) {
+    my $periodic_invoices_config = $order->periodic_invoices_config || $order->periodic_invoices_config(SL::DB::PeriodicInvoicesConfig->new);
+    $periodic_invoices_config->assign_attributes(%$periodic_invoices_config_attrs);
+  }
 
   # remove deleted items
   $self->item_ids_to_delete([]);