feat: show transaction due dates on invoices

Surface paid vs pending installments and imported transaction counts after moving transactions off the payment document.
This commit is contained in:
2026-08-16 07:32:27 +03:30
parent ba509734ae
commit 45a1c94774
2 changed files with 22 additions and 5 deletions
+18 -3
View File
@@ -73,9 +73,19 @@
{{ toPersianDigits(data.amount?.toLocaleString()) }} تومان {{ toPersianDigits(data.amount?.toLocaleString()) }} تومان
</template> </template>
</Column> </Column>
<Column field="status" header="وضعیت">
<template #body="{ data }">
<StatusTag :status="data.status || (data.date ? 'paid' : 'pending')" type="payment" />
</template>
</Column>
<Column field="method" header="روش پرداخت"> <Column field="method" header="روش پرداخت">
<template #body="{ data }"> <template #body="{ data }">
<Tag :value="data.method === 'online' ? 'درگاه آنلاین' : (data.method === 'card' ? 'کارت به کارت' : 'نقدی')" severity="info" /> <Tag
v-if="data.method"
:value="data.method === 'online' ? 'درگاه آنلاین' : (data.method === 'card' ? 'کارت به کارت' : 'نقدی')"
severity="info"
/>
<span v-else class="text-muted"></span>
</template> </template>
</Column> </Column>
<Column field="receiptNumber" header="شماره فیش / پیگیری"> <Column field="receiptNumber" header="شماره فیش / پیگیری">
@@ -83,9 +93,14 @@
<span dir="ltr">{{ toPersianDigits(data.receiptNumber || '-') }}</span> <span dir="ltr">{{ toPersianDigits(data.receiptNumber || '-') }}</span>
</template> </template>
</Column> </Column>
<Column field="createdAt" header="تاریخ ثبت"> <Column field="dueDate" header="سررسید">
<template #body="{ data }"> <template #body="{ data }">
{{ formatJalali(data.createdAt || data.date) }} {{ formatJalali(data.dueDate) }}
</template>
</Column>
<Column field="date" header="تاریخ پرداخت">
<template #body="{ data }">
{{ data.date ? formatJalali(data.date) : '—' }}
</template> </template>
</Column> </Column>
<Column field="notes" header="یادداشت"> <Column field="notes" header="یادداشت">
+4 -2
View File
@@ -295,8 +295,9 @@
</div> </div>
<p class="text-xs text-muted m-0 line-height-3"> <p class="text-xs text-muted m-0 line-height-3">
نمونه فایلها: <code dir="ltr">raw-data/import-data.json</code> نمونه فایلها: <code dir="ltr">raw-data/import-data.json</code>،
و <code dir="ltr">raw-data/taksa-tir-1405-import.json</code> <code dir="ltr">raw-data/taksa-tir-1405-import.json</code>
و <code dir="ltr">raw-data/taksa-tir-1405-payments-import.json</code>
</p> </p>
<div <div
@@ -312,6 +313,7 @@
<li>جلسه جدید: {{ importResult.stats?.sessionsCreated ?? 0 }} بازاستفاده: {{ importResult.stats?.sessionsReused ?? 0 }}</li> <li>جلسه جدید: {{ importResult.stats?.sessionsCreated ?? 0 }} بازاستفاده: {{ importResult.stats?.sessionsReused ?? 0 }}</li>
<li>حضور و غیاب: {{ importResult.stats?.attendanceRecords ?? 0 }} بدون کاربر: {{ importResult.stats?.attendanceSkipped ?? 0 }}</li> <li>حضور و غیاب: {{ importResult.stats?.attendanceRecords ?? 0 }} بدون کاربر: {{ importResult.stats?.attendanceSkipped ?? 0 }}</li>
<li>پرداخت جدید: {{ importResult.stats?.paymentsCreated ?? 0 }} بهروزرسانی: {{ importResult.stats?.paymentsUpdated ?? 0 }} بازاستفاده: {{ importResult.stats?.paymentsReused ?? 0 }}</li> <li>پرداخت جدید: {{ importResult.stats?.paymentsCreated ?? 0 }} بهروزرسانی: {{ importResult.stats?.paymentsUpdated ?? 0 }} بازاستفاده: {{ importResult.stats?.paymentsReused ?? 0 }}</li>
<li>تراکنش: {{ importResult.stats?.transactionsCreated ?? 0 }}</li>
<li v-if="importResult.warnings?.length">هشدارها: {{ importResult.warnings.length }}</li> <li v-if="importResult.warnings?.length">هشدارها: {{ importResult.warnings.length }}</li>
</ul> </ul>
</div> </div>