update migrations and create base migration. set discount and tax to sale invoices
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
TspProviderResponseStatus,
|
||||
} from 'generated/prisma/client'
|
||||
import {
|
||||
goldTypePayload,
|
||||
TspProviderCorrectionSendPayloadDto,
|
||||
TspProviderGetResponseDto,
|
||||
TspProviderOriginalResponseDto,
|
||||
@@ -169,6 +170,8 @@ export async function buildCorrectionPayload(
|
||||
invoice_number: true,
|
||||
settlement_type: true,
|
||||
tax_id: true,
|
||||
discount_amount: true,
|
||||
tax_amount: true,
|
||||
items: true,
|
||||
pos: {
|
||||
select: {
|
||||
@@ -251,7 +254,8 @@ export async function buildCorrectionPayload(
|
||||
measure_unit: item.measure_unit_code,
|
||||
sku: item.sku_code,
|
||||
sku_vat: String(item.sku_vat),
|
||||
discount: String((item.payload as Record<string, any>)?.discount || '0'),
|
||||
discount_amount: Number(item.discount_amount),
|
||||
tax_amount: Number(item.tax_amount),
|
||||
good_id: item.good_id,
|
||||
service_id: item.service_id,
|
||||
payload: item.payload,
|
||||
@@ -267,6 +271,8 @@ export async function buildCorrectionPayload(
|
||||
},
|
||||
})),
|
||||
total_amount: Number(invoice.total_amount),
|
||||
discount_amount: Number(invoice.discount_amount),
|
||||
tax_amount: Number(invoice.tax_amount),
|
||||
last_tax_id: invoice.reference_invoice!.tax_id!,
|
||||
invoice_number: invoice.invoice_number,
|
||||
id: invoice.id,
|
||||
@@ -281,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 || '',
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,6 +318,8 @@ export async function buildOriginalPayload(
|
||||
invoice_date: true,
|
||||
invoice_number: true,
|
||||
settlement_type: true,
|
||||
discount_amount: true,
|
||||
tax_amount: true,
|
||||
items: {
|
||||
select: {
|
||||
id: true,
|
||||
@@ -412,7 +420,7 @@ export async function buildOriginalPayload(
|
||||
throw new NotFoundException('فاکتور مورد نظر یافت نشد.')
|
||||
}
|
||||
|
||||
const { pos, id, invoice_number, invoice_date, total_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<string, string>
|
||||
@@ -425,6 +433,8 @@ export async function buildOriginalPayload(
|
||||
invoice_date,
|
||||
settlement_type,
|
||||
total_amount: Number(total_amount),
|
||||
tax_amount: Number(tax_amount),
|
||||
discount_amount: Number(discount_amount),
|
||||
economic_code: ba.economic_code,
|
||||
fiscal_id: ba.fiscal_id,
|
||||
template: ba.guild.invoice_template,
|
||||
@@ -443,30 +453,34 @@ 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),
|
||||
unit_price: Number(item.unit_price),
|
||||
total_amount: Number(item.total_amount),
|
||||
tax_amount: Number(tax_amount),
|
||||
discount_amount: Number(discount_amount),
|
||||
measure_unit: item.measure_unit_code,
|
||||
sku: item.sku_code,
|
||||
sku_vat: String(item.sku_vat),
|
||||
discount: String((item.payload as Record<string, any>)?.discount || '0'),
|
||||
good_id: item.good_id,
|
||||
service_id: item.service_id,
|
||||
payload: item.payload,
|
||||
good_snapshot: item.good_snapshot,
|
||||
gold_type_payload: isGoldTypePayload(item.payload)
|
||||
? item.payload
|
||||
: undefined
|
||||
})),
|
||||
}
|
||||
}
|
||||
@@ -547,3 +561,8 @@ export async function onResult(
|
||||
message: updatedAttempt.message,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function isGoldTypePayload(value: unknown): value is goldTypePayload {
|
||||
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user