feat: implement tax switch functionality with Nama adapter

- Add DTOs for tax switch operations including payloads and results.
- Create SalesInvoiceFiscalSwitchService to handle sending and retrieving tax data.
- Implement SalesInvoiceFiscalService for managing invoice tax submissions and results persistence.
- Develop NamaTaxSwitchAdapter for interfacing with the external tax service.
- Introduce NamaTaxRequestDto and related classes for structured tax requests.
This commit is contained in:
2026-04-30 16:27:46 +03:30
parent 58a7c359d8
commit a68a7f594d
38 changed files with 2678 additions and 287 deletions
@@ -93,6 +93,7 @@ export const ModelName = {
SaleInvoiceFiscals: 'SaleInvoiceFiscals',
SaleInvoiceFiscalAttempts: 'SaleInvoiceFiscalAttempts',
SalesInvoicePayment: 'SalesInvoicePayment',
SalesInvoicePaymentTerminalInfo: 'SalesInvoicePaymentTerminalInfo',
Service: 'Service',
ServiceCategory: 'ServiceCategory'
} as const
@@ -284,6 +285,7 @@ export const PartnerScalarFieldEnum = {
name: 'name',
code: 'code',
status: 'status',
fiscal_switch_type: 'fiscal_switch_type',
logo_url: 'logo_url',
created_at: 'created_at',
updated_at: 'updated_at'
@@ -663,6 +665,21 @@ export const SalesInvoicePaymentScalarFieldEnum = {
export type SalesInvoicePaymentScalarFieldEnum = (typeof SalesInvoicePaymentScalarFieldEnum)[keyof typeof SalesInvoicePaymentScalarFieldEnum]
export const SalesInvoicePaymentTerminalInfoScalarFieldEnum = {
id: 'id',
terminal_id: 'terminal_id',
stan: 'stan',
rrn: 'rrn',
transaction_date_time: 'transaction_date_time',
customer_card_no: 'customer_card_no',
description: 'description',
created_at: 'created_at',
payment_id: 'payment_id'
} as const
export type SalesInvoicePaymentTerminalInfoScalarFieldEnum = (typeof SalesInvoicePaymentTerminalInfoScalarFieldEnum)[keyof typeof SalesInvoicePaymentTerminalInfoScalarFieldEnum]
export const ServiceScalarFieldEnum = {
id: 'id',
name: 'name',
@@ -1160,6 +1177,19 @@ export const SalesInvoicePaymentOrderByRelevanceFieldEnum = {
export type SalesInvoicePaymentOrderByRelevanceFieldEnum = (typeof SalesInvoicePaymentOrderByRelevanceFieldEnum)[keyof typeof SalesInvoicePaymentOrderByRelevanceFieldEnum]
export const SalesInvoicePaymentTerminalInfoOrderByRelevanceFieldEnum = {
id: 'id',
terminal_id: 'terminal_id',
stan: 'stan',
rrn: 'rrn',
customer_card_no: 'customer_card_no',
description: 'description',
payment_id: 'payment_id'
} as const
export type SalesInvoicePaymentTerminalInfoOrderByRelevanceFieldEnum = (typeof SalesInvoicePaymentTerminalInfoOrderByRelevanceFieldEnum)[keyof typeof SalesInvoicePaymentTerminalInfoOrderByRelevanceFieldEnum]
export const ServiceOrderByRelevanceFieldEnum = {
id: 'id',
name: 'name',