feat(recurring-transaction): when explicitly finishing, delete any upcoming unpaid transactions

This commit is contained in:
Herculino Trotta
2025-01-11 13:40:10 -03:00
parent afbbf7b25d
commit 2cb8100129
2 changed files with 5 additions and 2 deletions

View File

@@ -202,7 +202,7 @@ def recurring_transaction_toggle_pause(request, recurring_transaction_id):
@login_required @login_required
@require_http_methods(["GET"]) @require_http_methods(["GET"])
def recurring_transaction_finish(request, recurring_transaction_id): def recurring_transaction_finish(request, recurring_transaction_id):
recurring_transaction = get_object_or_404( recurring_transaction: RecurringTransaction = get_object_or_404(
RecurringTransaction, id=recurring_transaction_id RecurringTransaction, id=recurring_transaction_id
) )
today = timezone.localdate(timezone.now()) - relativedelta(days=1) today = timezone.localdate(timezone.now()) - relativedelta(days=1)
@@ -211,6 +211,9 @@ def recurring_transaction_finish(request, recurring_transaction_id):
recurring_transaction.is_paused = True recurring_transaction.is_paused = True
recurring_transaction.save(update_fields=["end_date", "is_paused"]) recurring_transaction.save(update_fields=["end_date", "is_paused"])
# Delete all unpaid transactions associated with this RecurringTransaction
recurring_transaction.delete_unpaid_transactions()
messages.success(request, _("Recurring transaction finished successfully")) messages.success(request, _("Recurring transaction finished successfully"))
return HttpResponse( return HttpResponse(

View File

@@ -80,7 +80,7 @@
hx-swap="innerHTML" hx-swap="innerHTML"
data-bypass-on-ctrl="true" data-bypass-on-ctrl="true"
data-title="{% translate "Are you sure?" %}" data-title="{% translate "Are you sure?" %}"
data-text="{% translate "This will stop the creation of new transactions" %}" data-text="{% translate "This will stop the creation of new transactions and delete any unpaid transactions after today" %}"
data-confirm-text="{% translate "Yes, finish it!" %}" data-confirm-text="{% translate "Yes, finish it!" %}"
_="install prompt_swal"> _="install prompt_swal">
<i class="fa-solid fa-flag-checkered fa-fw"></i></a> <i class="fa-solid fa-flag-checkered fa-fw"></i></a>