fix final step
This commit is contained in:
parent
9592c00565
commit
394546dc67
9 changed files with 137 additions and 82 deletions
|
@ -278,8 +278,8 @@
|
|||
<div class="modal-body">
|
||||
{% if invoice.remaining_amount != 0 %}
|
||||
<div class="alert alert-warning" role="alert">
|
||||
مانده فاکتور صفر نیست: <strong>{{ invoice.remaining_amount|floatformat:0|intcomma:False }} تومان</strong><br>
|
||||
تا صفر نشود امکان تایید نیست.
|
||||
مانده فاکتور: <strong>{{ invoice.remaining_amount|floatformat:0|intcomma:False }} تومان</strong><br>
|
||||
امکان تایید تا تسویه کامل فاکتور وجود ندارد.
|
||||
</div>
|
||||
{% else %}
|
||||
آیا از تایید این مرحله اطمینان دارید؟
|
||||
|
|
|
@ -1105,7 +1105,7 @@ def delete_final_payment(request, instance_id, step_id, payment_id):
|
|||
return JsonResponse({'success': False, 'message': 'شما مجوز حذف تراکنش تسویه را ندارید'}, status=403)
|
||||
payment.delete()
|
||||
invoice.refresh_from_db()
|
||||
|
||||
|
||||
# On delete, return to awaiting approval
|
||||
try:
|
||||
si, _ = StepInstance.objects.get_or_create(process_instance=instance, step=step)
|
||||
|
@ -1149,30 +1149,3 @@ def delete_final_payment(request, instance_id, step_id, payment_id):
|
|||
'remaining_amount': str(invoice.remaining_amount),
|
||||
}})
|
||||
|
||||
|
||||
@require_POST
|
||||
@login_required
|
||||
def approve_final_settlement(request, instance_id, step_id):
|
||||
instance = get_object_or_404(ProcessInstance, id=instance_id)
|
||||
step = get_object_or_404(instance.process.steps, id=step_id)
|
||||
invoice = get_object_or_404(Invoice, process_instance=instance)
|
||||
# Block approval if any remaining exists (positive or negative)
|
||||
invoice.calculate_totals()
|
||||
if invoice.remaining_amount != 0:
|
||||
return JsonResponse({
|
||||
'success': False,
|
||||
'message': f"تا زمانی که مانده فاکتور صفر نشده امکان تایید نیست (مانده فعلی: {invoice.remaining_amount})"
|
||||
})
|
||||
# complete step
|
||||
step_instance, _ = StepInstance.objects.get_or_create(process_instance=instance, step=step)
|
||||
step_instance.status = 'completed'
|
||||
step_instance.completed_at = timezone.now()
|
||||
step_instance.save()
|
||||
# move next
|
||||
next_step = instance.process.steps.filter(order__gt=step.order).first()
|
||||
redirect_url = reverse('processes:request_list')
|
||||
if next_step:
|
||||
instance.current_step = next_step
|
||||
instance.save()
|
||||
redirect_url = reverse('processes:step_detail', args=[instance.id, next_step.id])
|
||||
return JsonResponse({'success': True, 'message': 'تسویه حساب نهایی ثبت شد', 'redirect': redirect_url})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue