From afbbf7b25df1e419f81f08a2b3c64fd69df35c40 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sat, 11 Jan 2025 13:38:51 -0300 Subject: [PATCH] feat(recurring-transaction): when unpause start generating transactions from today or from existing date, whichever is higher --- .../views/recurring_transactions.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/apps/transactions/views/recurring_transactions.py b/app/apps/transactions/views/recurring_transactions.py index 74fc1ff..1c76705 100644 --- a/app/apps/transactions/views/recurring_transactions.py +++ b/app/apps/transactions/views/recurring_transactions.py @@ -168,12 +168,26 @@ def recurring_transaction_toggle_pause(request, recurring_transaction_id): ) current_paused = recurring_transaction.is_paused recurring_transaction.is_paused = not current_paused - recurring_transaction.save(update_fields=["is_paused"]) if current_paused: - messages.success(request, _("Recurring transaction unpaused successfully")) + today = timezone.localdate(timezone.now()) + recurring_transaction.last_generated_date = max( + recurring_transaction.last_generated_date, today + ) + recurring_transaction.last_generated_reference_date = max( + recurring_transaction.last_generated_reference_date, today + ) + recurring_transaction.save( + update_fields=[ + "last_generated_date", + "last_generated_reference_date", + "is_paused", + ] + ) generate_recurring_transactions.defer() + messages.success(request, _("Recurring transaction unpaused successfully")) else: + recurring_transaction.save(update_fields=["is_paused"]) messages.success(request, _("Recurring transaction paused successfully")) return HttpResponse(