. */ declare(strict_types=1); namespace FireflyIII\Services\Internal\Destroy; use Exception; use FireflyIII\Models\Recurrence; use FireflyIII\Models\RecurrenceTransaction; use Log; /** * @codeCoverageIgnore * Class RecurrenceDestroyService */ class RecurrenceDestroyService { /** * @param Recurrence $recurrence */ public function destroy(Recurrence $recurrence): void { try { // delete all meta data $recurrence->recurrenceMeta()->delete(); } catch (Exception $e) { // @codeCoverageIgnore Log::info(sprintf('Could not delete recurrence meta: %s', $e->getMessage())); // @codeCoverageIgnore } // delete all transactions. /** @var RecurrenceTransaction $transaction */ foreach ($recurrence->recurrenceTransactions as $transaction) { $transaction->recurrenceTransactionMeta()->delete(); try { $transaction->delete(); } catch (Exception $e) { // @codeCoverageIgnore Log::info(sprintf('Could not delete recurrence transaction: %s', $e->getMessage())); // @codeCoverageIgnore } } // delete all repetitions $recurrence->recurrenceRepetitions()->delete(); // delete recurrence try { $recurrence->delete(); } catch (Exception $e) { // @codeCoverageIgnore Log::info(sprintf('Could not delete recurrence: %s', $e->getMessage())); // @codeCoverageIgnore } } }