diff --git a/src/components/PargarRetryModal.vue b/src/components/PargarRetryModal.vue index fe09432..db9b0ec 100644 --- a/src/components/PargarRetryModal.vue +++ b/src/components/PargarRetryModal.vue @@ -73,7 +73,7 @@ const items = computed(() => { { label: 'نوع', value: detail.value?.type }, { label: 'مقدار', value: detail.value?.amount }, { label: 'شرح', value: detail.value?.desc }, - { label: 'وضعیت', value: pargarStatusLabel(detail.value?.sync_status, detail.value?.pargar_ref) }, + { label: 'وضعیت', value: pargarStatusLabel(detail.value?.sync_status, detail.value?.pargar_ref, detail.value?.desc) }, { label: 'کد پرگار', value: detail.value?.pargar_ref } ] }) diff --git a/src/pages/menuPages/accounting/components/PargarMobileDetailSheet.vue b/src/pages/menuPages/accounting/components/PargarMobileDetailSheet.vue index f69f1d8..9d5e2d9 100644 --- a/src/pages/menuPages/accounting/components/PargarMobileDetailSheet.vue +++ b/src/pages/menuPages/accounting/components/PargarMobileDetailSheet.vue @@ -29,7 +29,7 @@ - + diff --git a/src/pages/menuPages/accounting/components/PargarMobileListItem.vue b/src/pages/menuPages/accounting/components/PargarMobileListItem.vue index 5761441..2b92f1f 100644 --- a/src/pages/menuPages/accounting/components/PargarMobileListItem.vue +++ b/src/pages/menuPages/accounting/components/PargarMobileListItem.vue @@ -35,7 +35,7 @@ const createdAtLabel = computed(() => props.item.created_at ? toJalali(props.item.created_at) : '-' ) const statusText = computed(() => - pargarStatusLabel(props.item.sync_status, props.item.pargar_ref) + pargarStatusLabel(props.item.sync_status, props.item.pargar_ref, props.item.desc) ) const statusClass = computed(() => { const text = statusText.value diff --git a/src/pages/menuPages/accounting/components/pargarTable.vue b/src/pages/menuPages/accounting/components/pargarTable.vue index f668848..094ff36 100644 --- a/src/pages/menuPages/accounting/components/pargarTable.vue +++ b/src/pages/menuPages/accounting/components/pargarTable.vue @@ -14,7 +14,7 @@ pargarStatusLabel(r.record.sync_status, r.record.pargar_ref) + customRender: (r: any) => pargarStatusLabel(r.record.sync_status, r.record.pargar_ref, r.record.desc) }, { title: 'زمان', @@ -155,7 +155,7 @@ const infoItems = computed(() => { { label: 'مقدار', value: row.amount }, { label: 'شرح', value: row.desc }, { label: 'زمان ثبت', value: row.created_at ? toJalali(row.created_at) : '-' }, - { label: 'وضعیت', value: pargarStatusLabel(row.sync_status, row.pargar_ref) }, + { label: 'وضعیت', value: pargarStatusLabel(row.sync_status, row.pargar_ref, row.desc) }, { label: 'کد پرگار', value: row.pargar_ref || 'ثبت نشده' } ] }) diff --git a/src/pages/menuPages/accounting/utils/pargarStatus.ts b/src/pages/menuPages/accounting/utils/pargarStatus.ts index 21d5a63..d2f0b3e 100644 --- a/src/pages/menuPages/accounting/utils/pargarStatus.ts +++ b/src/pages/menuPages/accounting/utils/pargarStatus.ts @@ -1,4 +1,6 @@ -export function pargarStatusLabel(status?: string, pargarId?: string | null): string { +export function pargarStatusLabel(status?: string, pargarId?: string | null, desc?: string | null): string { + if (desc && desc.includes('اختلاف مانده')) return 'اختلاف مانده' + if (pargarId && String(pargarId).startsWith('skip:')) return 'بدون سند' if (pargarId) return 'موفق' if (status === 'failed') return 'ناموفق' if (status === 'success') return 'موفق' @@ -6,7 +8,13 @@ export function pargarStatusLabel(status?: string, pargarId?: string | null): st return 'ارسال نشده' } -export function canRetryPargar(record: { pargar_ref?: string | null; sync_status?: string }): boolean { +export function canRetryPargar(record: { + pargar_ref?: string | null + sync_status?: string + type?: string +}): boolean { + if (record.type === 'mande') return false + if (record.pargar_ref && String(record.pargar_ref).startsWith('skip:')) return false return !record.pargar_ref || record.sync_status === 'failed' } diff --git a/src/pages/menuPages/configuration/settingTypes.ts b/src/pages/menuPages/configuration/settingTypes.ts index a25929f..f3bc6f5 100644 --- a/src/pages/menuPages/configuration/settingTypes.ts +++ b/src/pages/menuPages/configuration/settingTypes.ts @@ -299,6 +299,8 @@ const KEY_TYPE_FALLBACK: Record = { pargar_username: 'text', pargar_password: 'text', pargar_api_token: 'text', + pargar_item_id_rial: 'number', + pargar_item_id_gold: 'number', support_messengers: 'longtext', tracking_systems: 'longtext', tracking_systems_enabled: 'switch', @@ -714,6 +716,10 @@ const KEY_HELP_FALLBACK: Record = { 'رمز عبور login API پرگار — در پنل ثبت می‌شود و به پرگار داده می‌شود.', pargar_api_token: 'توکن ثابت اختیاری برای احراز API پرگار (جایگزین توکن login).', + pargar_item_id_rial: + 'کد کالای ریال در پرگار برای اسناد واریز/برداشت ریالی. اگر خالی یا صفر باشد از کد طلا استفاده می‌شود و وزن صفر ارسال می‌شود.', + pargar_item_id_gold: + 'کد کالای طلا (کیف اصلی) در پرگار — پیش‌فرض ۱۱.', tahesab_host: 'آدرس سرور نرم‌افزار ته‌حساب در شبکه.', tahesab_port: @@ -797,6 +803,8 @@ export const KEY_LABEL_FALLBACK: Record = { sms_notif_fund_withdraw_admin: 'پیامک برداشت قلک به ادمین', sms_notif_fund_withdraw_customer: 'پیامک برداشت قلک به مشتری', sms_notif_price_trigger: 'پیامک هشدار قیمت', + pargar_item_id_rial: 'کد کالای ریال پرگار', + pargar_item_id_gold: 'کد کالای طلا پرگار', sms_notif_wallet_alert: 'پیامک هشدار اعتبار پنل پیامک', auto_active_customer: 'فعال‌سازی خودکار پس از ثبت‌نام', balance_report_exclude_customer_id: 'حذف مشتری از گزارش تراز', @@ -868,6 +876,7 @@ export const SETTING_LOCKED_KEYS = new Set([ 'tahesab_bank_account', 'tahesab_db', 'tahesab_host', 'tahesab_port', 'tahesab_token', 'tracking_systems', 'tracking_systems_enabled', 'pargar_api_token', 'pargar_password', 'pargar_username', + 'pargar_item_id_rial', 'pargar_item_id_gold', 'telegram_bot_token', 'rubika_bot_token', 'price_channel_bale_to', 'price_channel_telegram_to', 'price_channel_rubika_to', 'unit',