From c11166b365303306a8ba903352918c2796f7cebc Mon Sep 17 00:00:00 2001 From: ahasani194 Date: Sat, 30 May 2026 19:05:56 +0330 Subject: [PATCH] some update --- .vscode/settings.json | 6 +- src/common/constants/translates/enums.ts | 2 +- .../response-mapping.interceptor.ts | 4 +- .../dto/sales-invoices-filter.dto.ts | 4 +- .../sales-invoices/sales-invoices.service.ts | 6 +- .../utils/sales-invoice-tsp.utils.ts | 66 +++++++++++-------- 6 files changed, 49 insertions(+), 39 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6d3c5ad..3a2194a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,9 +9,8 @@ "editor.formatOnSave": true }, "[typescript]": { - "editor.defaultFormatter": "vscode.typescript-language-features" + "editor.defaultFormatter": "esbenp.prettier-vscode" }, - "editor.formatOnSave": true, "cSpell.words": [ "ARVANCLOUD", "autoincrement", @@ -27,5 +26,6 @@ "setm", "spro", "sstid" - ] + ], + "editor.formatOnSave": true } diff --git a/src/common/constants/translates/enums.ts b/src/common/constants/translates/enums.ts index 38e3b08..047b875 100644 --- a/src/common/constants/translates/enums.ts +++ b/src/common/constants/translates/enums.ts @@ -137,7 +137,7 @@ export default { SUN: 'سان', }, TspProviderResponseStatus: { - [TspProviderResponseStatus.SUCCESS]: 'موفق', + [TspProviderResponseStatus.SUCCESS]: 'تایید شده', [TspProviderResponseStatus.FAILURE]: 'ناموفق', [TspProviderResponseStatus.NOT_SEND]: 'ارسال نشده', [TspProviderResponseStatus.QUEUED]: 'در صف ارسال', diff --git a/src/common/interceptors/response-mapping.interceptor.ts b/src/common/interceptors/response-mapping.interceptor.ts index 528ea5d..acf5393 100644 --- a/src/common/interceptors/response-mapping.interceptor.ts +++ b/src/common/interceptors/response-mapping.interceptor.ts @@ -95,7 +95,7 @@ export class ResponseMappingInterceptor implements NestInterceptor { meta = { totalRecords: total, totalPages: Math.max(1, Math.ceil(total / perPage)), - page, + page: parseInt(page), perPage, } break @@ -188,7 +188,7 @@ export class ResponseMappingInterceptor implements NestInterceptor { meta = { totalRecords: total, totalPages: Math.max(1, Math.ceil(total / perPage)), - page, + page: parseInt(page), perPage, } } diff --git a/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts b/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts index 2b75bd0..af31e5b 100644 --- a/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts +++ b/src/modules/pos/sales-invoices/dto/sales-invoices-filter.dto.ts @@ -47,8 +47,8 @@ export class SalesInvoicesFilterDto { @ApiPropertyOptional() @IsOptional() - @IsString() - code?: string + @IsNumber() + invoice_number?: number @ApiPropertyOptional() @IsOptional() diff --git a/src/modules/pos/sales-invoices/sales-invoices.service.ts b/src/modules/pos/sales-invoices/sales-invoices.service.ts index f2b20f6..d05399e 100644 --- a/src/modules/pos/sales-invoices/sales-invoices.service.ts +++ b/src/modules/pos/sales-invoices/sales-invoices.service.ts @@ -163,10 +163,8 @@ export class SalesInvoicesService { }, } - if (query.code?.trim()) { - where.code = { - contains: query.code.trim(), - } + if (query.invoice_number) { + where.invoice_number = parseInt(query.invoice_number + '') } if (query.invoice_date_from || query.invoice_date_to) { diff --git a/src/modules/tspProviders/utils/sales-invoice-tsp.utils.ts b/src/modules/tspProviders/utils/sales-invoice-tsp.utils.ts index 2f6d5f5..0f2c18a 100644 --- a/src/modules/tspProviders/utils/sales-invoice-tsp.utils.ts +++ b/src/modules/tspProviders/utils/sales-invoice-tsp.utils.ts @@ -287,17 +287,17 @@ export async function buildCorrectionPayload( customer: invoice.customer && invoice.customer.type !== 'UNKNOWN' ? { - type: invoice.customer.type, - legal_info: invoice.customer.legal ?? undefined, - individual_info: invoice.customer.individual ?? undefined, - } + type: invoice.customer.type, + legal_info: invoice.customer.legal ?? undefined, + individual_info: invoice.customer.individual ?? undefined, + } : { - type: 'UNKNOWN', - unknown_info: { - name: unknown_customer?.name || '', - economic_code: unknown_customer?.economic_code || '', + type: 'UNKNOWN', + unknown_info: { + name: unknown_customer?.name || '', + economic_code: unknown_customer?.economic_code || '', + }, }, - }, } } @@ -420,7 +420,16 @@ export async function buildOriginalPayload( throw new NotFoundException('فاکتور مورد نظر یافت نشد.') } - const { pos, id, invoice_number, invoice_date, total_amount, discount_amount, tax_amount, settlement_type } = invoice + const { + pos, + id, + invoice_number, + invoice_date, + total_amount, + discount_amount, + tax_amount, + settlement_type, + } = invoice const { business_activity: ba } = pos.complex const unknown_customer = (invoice.unknown_customer || {}) as Record @@ -453,17 +462,17 @@ export async function buildOriginalPayload( customer: invoice.customer && invoice.customer.type !== 'UNKNOWN' ? { - type: invoice.customer.type, - legal_info: invoice.customer.legal ?? undefined, - individual_info: invoice.customer.individual ?? undefined, - } + type: invoice.customer.type, + legal_info: invoice.customer.legal ?? undefined, + individual_info: invoice.customer.individual ?? undefined, + } : { - type: 'UNKNOWN', - unknown_info: { - name: unknown_customer?.name || '', - economic_code: unknown_customer?.economic_code || '', + type: 'UNKNOWN', + unknown_info: { + name: unknown_customer?.name || '', + economic_code: unknown_customer?.economic_code || '', + }, }, - }, items: invoice.items.map(item => ({ invoice_item_id: item.id, quantity: Number(item.quantity), @@ -478,9 +487,7 @@ export async function buildOriginalPayload( good_id: item.good_id, service_id: item.service_id, good_snapshot: item.good_snapshot, - gold_type_payload: isGoldTypePayload(item.payload) - ? item.payload - : undefined + gold_type_payload: isGoldTypePayload(item.payload) ? item.payload : undefined, })), } } @@ -512,7 +519,6 @@ export async function onResult( provider_request_payload: result['provider_request_payload'] ? JSON.parse(JSON.stringify(result['provider_request_payload'])) : undefined, - provider_response: JSON.parse(JSON.stringify(result.provider_response)), status: result.status, received_at: result.received_at || new Date().toISOString(), message: resultMessage @@ -525,12 +531,19 @@ export async function onResult( tax_id: result['tax_id'] ? result['tax_id'] : undefined, }, }, + error_message: result.error_message || undefined, } - if (result.hasError) { - attemptUpdatedData.error_message = result.error_message + if (result.provider_response) { + attemptUpdatedData.provider_response = JSON.parse( + JSON.stringify(result.provider_response), + ) + } + if (result.validation_errors) { attemptUpdatedData.validation_errors = JSON.parse( JSON.stringify(result.validation_errors), ) + } + if (result.fiscal_warnings) { attemptUpdatedData.fiscal_warnings = JSON.parse( JSON.stringify(result.fiscal_warnings), ) @@ -562,7 +575,6 @@ export async function onResult( } } - function isGoldTypePayload(value: unknown): value is goldTypePayload { - return typeof value === 'object' && value !== null && !Array.isArray(value); + return typeof value === 'object' && value !== null && !Array.isArray(value) }