huge fix
This commit is contained in:
parent
810c87e2e0
commit
b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions
|
|
@ -90,7 +90,11 @@
|
|||
<!-- Customer & Well Info -->
|
||||
<div class="row mb-3">
|
||||
<div class="col-6">
|
||||
<h6 class="fw-bold mb-2">اطلاعات مشترک</h6>
|
||||
<h6 class="fw-bold mb-2">اطلاعات مشترک {% if instance.representative.profile and instance.representative.profile.user_type == 'legal' %}(حقوقی){% else %}(حقیقی){% endif %}</h6>
|
||||
{% if instance.representative.profile and instance.representative.profile.user_type == 'legal' %}
|
||||
<div class="small mb-1"><span class="text-muted">نام شرکت:</span> {{ instance.representative.profile.company_name|default:"-" }}</div>
|
||||
<div class="small mb-1"><span class="text-muted">شناسه ملی:</span> {{ instance.representative.profile.company_national_id|default:"-" }}</div>
|
||||
{% endif %}
|
||||
<div class="small mb-1"><span class="text-muted">نام:</span> {{ invoice.customer.get_full_name|default:instance.representative.get_full_name }}</div>
|
||||
{% if instance.representative.profile and instance.representative.profile.national_code %}
|
||||
<div class="small mb-1"><span class="text-muted">کد ملی:</span> {{ instance.representative.profile.national_code }}</div>
|
||||
|
|
@ -150,7 +154,7 @@
|
|||
</tr>
|
||||
{% endif %}
|
||||
<tr class="total-section border-top border-2">
|
||||
<td colspan="5" class="text-end"><strong>مبلغ نهایی(تومان):</strong></td>
|
||||
<td colspan="5" class="text-end"><strong>مبلغ نهایی (شامل مالیات)(تومان):</strong></td>
|
||||
<td><strong>{{ invoice.final_amount|floatformat:0|intcomma:False }}</strong></td>
|
||||
</tr>
|
||||
<tr class="total-section">
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
<div class="row g-3 mb-3">
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="border rounded p-3 h-100">
|
||||
<div class="small text-muted">مبلغ نهایی</div>
|
||||
<div class="small text-muted">مبلغ نهایی (با مالیات)</div>
|
||||
<div class="h5 mt-1">{{ invoice.final_amount|floatformat:0|intcomma:False }} تومان</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
</thead>
|
||||
<tbody>
|
||||
{% for r in rows %}
|
||||
<tr>
|
||||
<tr class="{% if r.is_removed %}table-light text-muted{% endif %}">
|
||||
<td>
|
||||
<div class="d-flex flex-column">
|
||||
<span class="fw-semibold">{{ r.item.name }}</span>
|
||||
|
|
@ -118,7 +118,13 @@
|
|||
<td class="text-center text-danger">{{ r.removed_qty }}</td>
|
||||
<td class="text-center">{{ r.quantity }}</td>
|
||||
<td class="text-end">{{ r.unit_price|floatformat:0|intcomma:False }}</td>
|
||||
<td class="text-end">{{ r.total_price|floatformat:0|intcomma:False }}</td>
|
||||
<td class="text-end">
|
||||
{% if r.is_removed %}
|
||||
<span class="text-muted">-</span>
|
||||
{% else %}
|
||||
{{ r.total_price|floatformat:0|intcomma:False }}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="7" class="text-center text-muted">آیتمی یافت نشد</td></tr>
|
||||
|
|
@ -154,7 +160,7 @@
|
|||
<th class="text-end">{{ invoice.discount_amount|floatformat:0|intcomma:False }} تومان</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="6" class="text-end">مبلغ نهایی</th>
|
||||
<th colspan="6" class="text-end">مبلغ نهایی (با مالیات)</th>
|
||||
<th class="text-end">{{ invoice.final_amount|floatformat:0|intcomma:False }} تومان</th>
|
||||
</tr>
|
||||
<tr>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
<a href="{% url 'invoices:final_invoice_print' instance.id %}" target="_blank" class="btn btn-outline-secondary">
|
||||
<i class="bx bx-printer me-2"></i> پرینت
|
||||
</a>
|
||||
{% if request.user|is_manager and step_instance.status != 'approved' and step_instance.status != 'completed' and invoice.remaining_amount != 0 %}
|
||||
<button type="button" class="btn btn-warning" data-bs-toggle="modal" data-bs-target="#forceApproveModal">
|
||||
<i class="bx bx-bolt-circle me-1"></i> تایید اضطراری
|
||||
</button>
|
||||
{% endif %}
|
||||
|
||||
<a href="{% url 'processes:request_list' %}" class="btn btn-outline-secondary">
|
||||
<i class="bx bx-chevron-right bx-sm ms-sm-n2"></i>
|
||||
|
|
@ -106,13 +111,17 @@
|
|||
<div class="col-12 {% if is_broker %}col-lg-7{% else %}col-lg-12{% endif %}">
|
||||
<div class="card mb-3 border">
|
||||
<div class="card-header d-flex justify-content-between">
|
||||
<h5 class="mb-0">وضعیت فاکتور</h5>
|
||||
<h5 class="mb-0">وضعیت فاکتور
|
||||
{% if step_instance.status == 'approved' %}
|
||||
<span class="badge bg-warning">تایید اضطراری</span>
|
||||
{% endif %}
|
||||
</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row g-3">
|
||||
<div class="col-6 col-md-4">
|
||||
<div class="border rounded p-3 h-100">
|
||||
<div class="small text-muted">مبلغ نهایی</div>
|
||||
<div class="small text-muted">مبلغ نهایی (با مالیات)</div>
|
||||
<div class="h5 mt-1">{{ invoice.final_amount|floatformat:0|intcomma:False }} تومان</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -189,10 +198,17 @@
|
|||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h6 class="mb-0">وضعیت تاییدها</h6>
|
||||
{% if can_approve_reject %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#approveFinalSettleModal">تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" data-bs-toggle="modal" data-bs-target="#rejectFinalSettleModal">رد</button>
|
||||
</div>
|
||||
{% if current_user_has_decided %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" disabled>تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" disabled>رد</button>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#approveFinalSettleModal">تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" data-bs-toggle="modal" data-bs-target="#rejectFinalSettleModal">رد</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body py-3">
|
||||
|
|
@ -243,6 +259,32 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Force Approve Modal -->
|
||||
<div class="modal fade" id="forceApproveModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="action" value="force_approve">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title">تایید اضطراری تسویه</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-warning" role="alert">
|
||||
با تایید اضطراری ممکن است هنوز پرداخت کامل نشده باشد و این مرحله به صورت استثنا تایید میشود.
|
||||
</div>
|
||||
آیا از تایید اضطراری این مرحله اطمینان دارید؟
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">انصراف</button>
|
||||
<button type="submit" class="btn btn-warning">تایید اضطراری</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Delete Confirmation Modal (final settlement payments) -->
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
<input type="number" min="1" class="form-control" name="amount" id="id_amount" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">تاریخ پرداخت</label>
|
||||
<label class="form-label">تاریخ پرداخت/سررسید چک</label>
|
||||
<input type="text" class="form-control" id="id_payment_date" name="payment_date" placeholder="انتخاب تاریخ" readonly required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
</select>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label class="form-label">شماره مرجع/چک</label>
|
||||
<label class="form-label">شماره پیگیری/شماره صیادی چک</label>
|
||||
<input type="text" class="form-control" name="reference_number" id="id_reference_number" placeholder="..." required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
|
|
@ -116,7 +116,7 @@
|
|||
<div class="row g-3">
|
||||
<div class="col-6">
|
||||
<div class="border rounded p-3">
|
||||
<div class="small text-muted">مبلغ نهایی پیشفاکتور</div>
|
||||
<div class="small text-muted">مبلغ نهایی پیشفاکتور (با مالیات)</div>
|
||||
<div class="h5 mt-1">{{ totals.final_amount|floatformat:0|intcomma:False }} تومان</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -154,9 +154,9 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th>مبلغ</th>
|
||||
<th>تاریخ</th>
|
||||
<th>تاریخ پرداخت/سررسید چک</th>
|
||||
<th>روش</th>
|
||||
<th>شماره مرجع/چک</th>
|
||||
<th>شماره پیگیری/شماره صیادی چک</th>
|
||||
<th>عملیات</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -197,10 +197,17 @@
|
|||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h6 class="mb-0">وضعیت تاییدها</h6>
|
||||
{% if can_approve_reject %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#approvePaymentsModal2">تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" data-bs-toggle="modal" data-bs-target="#rejectPaymentsModal">رد</button>
|
||||
</div>
|
||||
{% if current_user_has_decided %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" disabled>تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" disabled>رد</button>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="d-flex gap-2">
|
||||
<button type="button" class="btn btn-success btn-sm" data-bs-toggle="modal" data-bs-target="#approvePaymentsModal2">تایید</button>
|
||||
<button type="button" class="btn btn-danger btn-sm" data-bs-toggle="modal" data-bs-target="#rejectPaymentsModal">رد</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body py-3">
|
||||
|
|
|
|||
|
|
@ -114,8 +114,23 @@
|
|||
<div class="">
|
||||
<div class="card-body p-3">
|
||||
<h6 class="card-title text-primary mb-2">
|
||||
<i class="bx bx-user me-1"></i>اطلاعات مشترک
|
||||
<i class="bx bx-user me-1"></i>
|
||||
{% if instance.representative.profile.user_type == 'legal' %}
|
||||
اطلاعات مشترک (حقوقی)
|
||||
{% else %}
|
||||
اطلاعات مشترک (حقیقی)
|
||||
{% endif %}
|
||||
</h6>
|
||||
{% if instance.representative.profile.user_type == 'legal' %}
|
||||
<div class="d-flex gap-2 mb-1">
|
||||
<span class="text-muted small">نام شرکت:</span>
|
||||
<span class="fw-medium small">{{ instance.representative.profile.company_name|default:"-" }}</span>
|
||||
</div>
|
||||
<div class="d-flex gap-2 mb-1">
|
||||
<span class="text-muted small">شناسه ملی:</span>
|
||||
<span class="fw-medium small">{{ instance.representative.profile.company_national_id|default:"-" }}</span>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="d-flex gap-2 mb-1">
|
||||
<span class="text-muted small">نام:</span>
|
||||
<span class="fw-medium small">{{ quote.customer.get_full_name }}</span>
|
||||
|
|
@ -198,7 +213,7 @@
|
|||
{% if quote.discount_amount > 0 %}
|
||||
<p class="mb-2">تخفیف:</p>
|
||||
{% endif %}
|
||||
<p class="mb-0 fw-bold">مبلغ نهایی:</p>
|
||||
<p class="mb-0 fw-bold">مبلغ نهایی (شامل مالیات):</p>
|
||||
</td>
|
||||
<td class="px-4 py-5">
|
||||
<p class="fw-medium mb-2">{{ quote.total_amount|floatformat:0|intcomma:False }} تومان</p>
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@
|
|||
</tr>
|
||||
{% endif %}
|
||||
<tr class="total-section border-top border-2">
|
||||
<td colspan="5" class="text-end"><strong>مبلغ نهایی(تومان):</strong></td>
|
||||
<td colspan="5" class="text-end"><strong>مبلغ نهایی (با مالیات)(تومان):</strong></td>
|
||||
<td><strong>{{ quote.final_amount|floatformat:0|intcomma:False }}</strong></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue