diff --git a/src/views/payments/PaymentDetailView.vue b/src/views/payments/PaymentDetailView.vue
index 8895406..1c6b007 100644
--- a/src/views/payments/PaymentDetailView.vue
+++ b/src/views/payments/PaymentDetailView.vue
@@ -33,7 +33,7 @@
تخفیف
{{ toPersianDigits((payment.discount || 0).toLocaleString()) }} تومان
-
+
مبلغ قابل پرداخت
{{ toPersianDigits(payableAmount.toLocaleString()) }} تومان
@@ -120,6 +120,7 @@
v-model="trxForm.notes"
rows="3"
class="w-full text-sm"
+ maxlength="5000"
placeholder="یادداشت داخلی درباره این تراکنش…"
/>
diff --git a/src/views/payments/PaymentListView.vue b/src/views/payments/PaymentListView.vue
index dae9402..dac5efe 100644
--- a/src/views/payments/PaymentListView.vue
+++ b/src/views/payments/PaymentListView.vue
@@ -151,6 +151,7 @@
v-model="createForm.notes"
rows="3"
class="w-full text-sm"
+ maxlength="5000"
placeholder="یادداشت داخلی درباره این صورتحساب…"
/>
@@ -267,6 +268,7 @@ const onClassesSelected = () => {
if (!createForm.classes || createForm.classes.length === 0) {
createForm.amount = 0;
+ createForm.discount = 0;
return;
}
let totalFee = 0;
@@ -279,6 +281,9 @@ const onClassesSelected = () => {
if (totalFee > 0) {
createForm.amount = totalFee;
}
+ if ((createForm.discount || 0) > (createForm.amount || 0)) {
+ createForm.discount = createForm.amount || 0;
+ }
};
const resetCreateForm = () => {
diff --git a/src/views/users/UserDetailView.vue b/src/views/users/UserDetailView.vue
index 3553af7..6d5d362 100644
--- a/src/views/users/UserDetailView.vue
+++ b/src/views/users/UserDetailView.vue
@@ -158,7 +158,10 @@
- {{ toPersianDigits(data.amount?.toLocaleString()) }} تومان
+ {{ toPersianDigits(getPayableAmount(data).toLocaleString()) }} تومان
+
+ تخفیف {{ toPersianDigits((data.discount || 0).toLocaleString()) }} تومان
+
@@ -217,6 +220,7 @@ import { userApi } from '@/api/userApi';
import { courseApi } from '@/api/courseApi';
import { usePersianDate } from '@/composables/usePersianDate';
import { useToast } from '@/composables/useToast';
+import { getPayableAmount } from '@/utils/paymentAmount';
import PageHeader from '@/components/common/PageHeader.vue';
import PermissionGate from '@/components/common/PermissionGate.vue';
import StatusTag from '@/components/common/StatusTag.vue';