From a819e841f943f52e254639d50b1506ba9052ef50 Mon Sep 17 00:00:00 2001 From: aminhashemi92 Date: Thu, 9 Oct 2025 11:34:29 +0330 Subject: [PATCH] fix next step in quote payments approved. --- db.sqlite3 | Bin 4198400 -> 4210688 bytes invoices/views.py | 28 ++++++++++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/db.sqlite3 b/db.sqlite3 index 5a406d66a376e28ddbec659f2fdeeb27a234ff7c..79d4607ad3f36157e7ceb521df4ace8e4a2dffd2 100644 GIT binary patch delta 23752 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 diff --git a/invoices/views.py b/invoices/views.py index 04ea85c..4651dba 100644 --- a/invoices/views.py +++ b/invoices/views.py @@ -422,13 +422,29 @@ def quote_payment_step(request, instance_id, step_id): step_instance.status = 'completed' step_instance.completed_at = timezone.now() step_instance.save() - # move to next step - redirect_url = 'processes:request_list' + + # Auto-complete next step if it exists if next_step: - instance.current_step = next_step - instance.save() - return redirect('processes:step_detail', instance_id=instance.id, step_id=next_step.id) - return redirect(redirect_url) + next_step_instance, _ = StepInstance.objects.get_or_create( + process_instance=instance, + step=next_step, + defaults={'status': 'in_progress'} + ) + next_step_instance.status = 'completed' + next_step_instance.completed_at = timezone.now() + next_step_instance.save() + + # Move to the step after next + step_after_next = instance.process.steps.filter(order__gt=next_step.order).first() + if step_after_next: + instance.current_step = step_after_next + instance.save() + return redirect('processes:step_detail', instance_id=instance.id, step_id=step_after_next.id) + else: + # No more steps, go to request list + return redirect('processes:request_list') + + return redirect('processes:request_list') messages.success(request, 'تایید شما ثبت شد. منتظر تایید سایر نقش‌ها.') return redirect('invoices:quote_payment_step', instance_id=instance.id, step_id=step.id)