]> wagnertech.de Git - mfinanz.git/blobdiff - SL/DB/PeriodicInvoicesConfig.pm
PTC: nicht einfach die Rundungsgenauigkeiten erhöhen …
[mfinanz.git] / SL / DB / PeriodicInvoicesConfig.pm
index 081be3577924f9e103a30c9ed8a158c7dc332031..ceb532af93205a2f8535c6487f4ed3edca8db3dc 100644 (file)
@@ -140,8 +140,16 @@ sub disable_one_time_config {
   # A periodicity of one time was set. Deactivate this config now.
   if ($self->periodicity eq 'o') {
     _log_msg("setting inactive\n");
-    $self->active(0);
-    $self->save;
+    if (!$self->db->with_transaction(sub {
+      1;                          # make Emacs happy
+      $self->active(0);
+      $self->order->update_attributes(closed => 1);
+      $self->save;
+      1;
+    })) {
+      $::lxdebug->message(LXDebug->WARN(), "disalbe_one_time config failed: " . join("\n", (split(/\n/, $self->{db_obj}->db->error))[0..2]));
+      return undef;
+    }
     return $self->order->ordnumber;
   }
   return undef;
@@ -256,7 +264,9 @@ the last invoice in that particular order value cycle.
 =item C<sub disable_one_time_config>
 
 Sets the state of the periodic_invoices_configs to inactive
-(active => false) if the periodicity is <Co> (one time).
+(active => false) and closes the source order (closed => true)
+if the periodicity is <Co> (one time).
+
 Returns undef if the periodicity is not 'one time' otherwise the
 order number of the deactivated periodic order.