diff --git a/src/api/tahesab.ts b/src/api/tahesab.ts index a93c02d..9c4c838 100644 --- a/src/api/tahesab.ts +++ b/src/api/tahesab.ts @@ -131,3 +131,72 @@ export const importFromTahesab = async (customers: TahesabOnlyCustomer[]) => await useAxios.post('/admin/tahesab/customer-sync/import-from-tahesab', { customers, }) + +export interface TahesabWalletSyncResult { + ok: boolean + needs_decision?: boolean + message: string + result?: { + applied: boolean + needs_decision?: boolean + skipped?: boolean + gold_delta?: number + rial_delta?: number + app_gold?: number + app_cash?: number + tahesab_gold?: number + tahesab_cash?: number + message: string + } +} + +/** همگام‌سازی مانده یک مشتری با ته‌حساب */ +export const syncCustomerWalletFromTahesab = async ( + customerId: number, + opts?: { overwrite?: boolean; keep?: boolean; ask_if_conflict?: boolean } +) => + await useAxios.post( + `/admin/customer/${customerId}/tahesab/sync-wallet`, + { + overwrite: opts?.overwrite ?? false, + keep: opts?.keep ?? false, + ask_if_conflict: opts?.ask_if_conflict ?? true, + } + ) + +export interface TahesabBulkWalletSyncChunk { + ok: boolean + message: string + total: number + offset: number + processed: number + next_offset: number + done: boolean + success: number + changed: number + needs_decision: number + failed: number + errors: { id: number; name: string; mobile?: string; error: string }[] + decisions: { + id: number + name: string + mobile?: string + app_gold?: number + app_cash?: number + tahesab_gold?: number + tahesab_cash?: number + message: string + }[] +} + +/** یک دسته از همگام‌سازی ماندهٔ همهٔ مشتریان دارای کد ته‌حساب */ +export const syncAllWalletsFromTahesabChunk = async (params?: { + offset?: number + limit?: number + overwrite?: boolean +}) => + await useAxios.post('/admin/tahesab/wallet-sync/all', { + offset: params?.offset ?? 0, + limit: params?.limit ?? 20, + overwrite: params?.overwrite ?? false, + }) diff --git a/src/pages/menuPages/accounting/components/TahesabCustomerSync.vue b/src/pages/menuPages/accounting/components/TahesabCustomerSync.vue index d3144c6..56607cf 100644 --- a/src/pages/menuPages/accounting/components/TahesabCustomerSync.vue +++ b/src/pages/menuPages/accounting/components/TahesabCustomerSync.vue @@ -1,6 +1,8 @@