From cb50119f56df6bb1c70e31ea41fb4af739b85ec4 Mon Sep 17 00:00:00 2001 From: adonis Date: Tue, 21 Jul 2026 13:26:04 +0330 Subject: [PATCH] fix pargar bugs 2 --- src/api/pargar.ts | 12 +++++ src/pages/menuPages/customers/base/index.vue | 52 +++++++++++++++++++- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/api/pargar.ts b/src/api/pargar.ts index 16e7efd..680140a 100644 --- a/src/api/pargar.ts +++ b/src/api/pargar.ts @@ -35,6 +35,18 @@ export const registerCustomerInPargar = async (customerId: number) => `/admin/customer/${customerId}/pargar/register` ) +export interface PargarSyncWalletResult { + ok: boolean + message: string + result?: { + documents: { applied: number; skipped: number; errors: string[]; logs: number[] } + mande: { applied: boolean; gold_delta?: number; rial_delta?: number; message: string } + } +} + +export const syncCustomerWalletFromPargar = async (customerId: number) => + await useAxios.post(`/admin/customer/${customerId}/pargar/sync-wallet`) + export interface PanelOnlyCustomer { id: number name: string diff --git a/src/pages/menuPages/customers/base/index.vue b/src/pages/menuPages/customers/base/index.vue index b668a25..6a5feab 100644 --- a/src/pages/menuPages/customers/base/index.vue +++ b/src/pages/menuPages/customers/base/index.vue @@ -158,6 +158,20 @@ title="کد حسابداری" :value="accountingCodeValue" /> +
+ + دریافت مانده از پرگار + +
{ return '-' }) +const pargarSyncLoading = ref(false) +const walletPanelDesktop = ref<{ reload?: () => void } | null>(null) +const walletPanelMobile = ref<{ reload?: () => void } | null>(null) + +const pargarWalletSyncVisible = computed( + () => + pargarEnabledSetting.value && + accountingProviderSetting.value === 'pargar' && + isValidAccountingCode(userInfo.value?.pargar_account_id) +) + +async function syncPargarWallet() { + if (!userInfo.value?.id) return + pargarSyncLoading.value = true + try { + const res = await syncCustomerWalletFromPargar(userInfo.value.id) + message.success(res.message || 'مانده از پرگار اعمال شد') + walletPanelDesktop.value?.reload?.() + walletPanelMobile.value?.reload?.() + refreshTransactionTable() + } catch (e: unknown) { + const msg = + (e as { response?: { data?: { message?: string } } })?.response?.data?.message || + 'اعمال مانده از پرگار ناموفق بود' + message.warning(msg) + } finally { + pargarSyncLoading.value = false + } +} + //submit user async function ok() { formRef.value?.validateFields().then(async () => {