feat: add DTOs and services for tax switch integration

- Created SendBulkSaleInvoicesDto for handling bulk sale invoice requests.
- Implemented TaxSwitchSendPayloadDto and related DTOs for tax switch item payloads and results.
- Developed SalesInvoiceTaxSwitchService to manage tax switch operations, including sending and retrieving tax information.
- Added SalesInvoiceTaxService for handling sales invoice tax logic, including bulk sending and persistence of results.
- Introduced NamaTaxSwitchAdapter to interact with the tax switch service, simulating external API responses.
- Created SendBulkSalesInvoicesDto for POS module to handle bulk sales invoice requests.
This commit is contained in:
2026-04-27 22:11:05 +03:30
parent dee96b6e91
commit 58a7c359d8
68 changed files with 7896 additions and 3534 deletions
@@ -307,11 +307,6 @@ export type LicenseAccountAllocationUncheckedUpdateManyInput = {
credit_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
export type LicenseAccountAllocationNullableScalarRelationFilter = {
is?: Prisma.LicenseAccountAllocationWhereInput | null
isNot?: Prisma.LicenseAccountAllocationWhereInput | null
}
export type LicenseAccountAllocationListRelationFilter = {
every?: Prisma.LicenseAccountAllocationWhereInput
some?: Prisma.LicenseAccountAllocationWhereInput
@@ -322,6 +317,11 @@ export type LicenseAccountAllocationOrderByRelationAggregateInput = {
_count?: Prisma.SortOrder
}
export type LicenseAccountAllocationNullableScalarRelationFilter = {
is?: Prisma.LicenseAccountAllocationWhereInput | null
isNot?: Prisma.LicenseAccountAllocationWhereInput | null
}
export type LicenseAccountAllocationOrderByRelevanceInput = {
fields: Prisma.LicenseAccountAllocationOrderByRelevanceFieldEnum | Prisma.LicenseAccountAllocationOrderByRelevanceFieldEnum[]
sort: Prisma.SortOrder
@@ -355,38 +355,6 @@ export type LicenseAccountAllocationMinOrderByAggregateInput = {
credit_id?: Prisma.SortOrder
}
export type LicenseAccountAllocationCreateNestedOneWithoutAccountInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
}
export type LicenseAccountAllocationUncheckedCreateNestedOneWithoutAccountInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
}
export type LicenseAccountAllocationUpdateOneWithoutAccountNestedInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
upsert?: Prisma.LicenseAccountAllocationUpsertWithoutAccountInput
disconnect?: Prisma.LicenseAccountAllocationWhereInput | boolean
delete?: Prisma.LicenseAccountAllocationWhereInput | boolean
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput, Prisma.LicenseAccountAllocationUpdateWithoutAccountInput>, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationUncheckedUpdateOneWithoutAccountNestedInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
upsert?: Prisma.LicenseAccountAllocationUpsertWithoutAccountInput
disconnect?: Prisma.LicenseAccountAllocationWhereInput | boolean
delete?: Prisma.LicenseAccountAllocationWhereInput | boolean
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput, Prisma.LicenseAccountAllocationUpdateWithoutAccountInput>, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationCreateNestedManyWithoutLicense_activationInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutLicense_activationInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutLicense_activationInput> | Prisma.LicenseAccountAllocationCreateWithoutLicense_activationInput[] | Prisma.LicenseAccountAllocationUncheckedCreateWithoutLicense_activationInput[]
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutLicense_activationInput | Prisma.LicenseAccountAllocationCreateOrConnectWithoutLicense_activationInput[]
@@ -461,52 +429,36 @@ export type LicenseAccountAllocationUncheckedUpdateOneWithoutCreditNestedInput =
update?: Prisma.XOR<Prisma.XOR<Prisma.LicenseAccountAllocationUpdateToOneWithWhereWithoutCreditInput, Prisma.LicenseAccountAllocationUpdateWithoutCreditInput>, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutCreditInput>
}
export type LicenseAccountAllocationCreateWithoutAccountInput = {
id?: string
created_at?: Date | string
updated_at?: Date | string
license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutAccount_allocationsInput
credit?: Prisma.PartnerAccountQuotaCreditCreateNestedOneWithoutAllocationInput
export type LicenseAccountAllocationCreateNestedOneWithoutAccountInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
}
export type LicenseAccountAllocationUncheckedCreateWithoutAccountInput = {
id?: string
created_at?: Date | string
updated_at?: Date | string
license_activation_id?: string | null
credit_id?: string | null
export type LicenseAccountAllocationUncheckedCreateNestedOneWithoutAccountInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
}
export type LicenseAccountAllocationCreateOrConnectWithoutAccountInput = {
where: Prisma.LicenseAccountAllocationWhereUniqueInput
create: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
export type LicenseAccountAllocationUpdateOneWithoutAccountNestedInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
upsert?: Prisma.LicenseAccountAllocationUpsertWithoutAccountInput
disconnect?: Prisma.LicenseAccountAllocationWhereInput | boolean
delete?: Prisma.LicenseAccountAllocationWhereInput | boolean
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput, Prisma.LicenseAccountAllocationUpdateWithoutAccountInput>, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationUpsertWithoutAccountInput = {
update: Prisma.XOR<Prisma.LicenseAccountAllocationUpdateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
create: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
where?: Prisma.LicenseAccountAllocationWhereInput
}
export type LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput = {
where?: Prisma.LicenseAccountAllocationWhereInput
data: Prisma.XOR<Prisma.LicenseAccountAllocationUpdateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationUpdateWithoutAccountInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
license_activation?: Prisma.LicenseActivationUpdateOneWithoutAccount_allocationsNestedInput
credit?: Prisma.PartnerAccountQuotaCreditUpdateOneWithoutAllocationNestedInput
}
export type LicenseAccountAllocationUncheckedUpdateWithoutAccountInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
license_activation_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
credit_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
export type LicenseAccountAllocationUncheckedUpdateOneWithoutAccountNestedInput = {
create?: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
connectOrCreate?: Prisma.LicenseAccountAllocationCreateOrConnectWithoutAccountInput
upsert?: Prisma.LicenseAccountAllocationUpsertWithoutAccountInput
disconnect?: Prisma.LicenseAccountAllocationWhereInput | boolean
delete?: Prisma.LicenseAccountAllocationWhereInput | boolean
connect?: Prisma.LicenseAccountAllocationWhereUniqueInput
update?: Prisma.XOR<Prisma.XOR<Prisma.LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput, Prisma.LicenseAccountAllocationUpdateWithoutAccountInput>, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationCreateWithoutLicense_activationInput = {
@@ -611,6 +563,54 @@ export type LicenseAccountAllocationUncheckedUpdateWithoutCreditInput = {
account_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
export type LicenseAccountAllocationCreateWithoutAccountInput = {
id?: string
created_at?: Date | string
updated_at?: Date | string
license_activation?: Prisma.LicenseActivationCreateNestedOneWithoutAccount_allocationsInput
credit?: Prisma.PartnerAccountQuotaCreditCreateNestedOneWithoutAllocationInput
}
export type LicenseAccountAllocationUncheckedCreateWithoutAccountInput = {
id?: string
created_at?: Date | string
updated_at?: Date | string
license_activation_id?: string | null
credit_id?: string | null
}
export type LicenseAccountAllocationCreateOrConnectWithoutAccountInput = {
where: Prisma.LicenseAccountAllocationWhereUniqueInput
create: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
}
export type LicenseAccountAllocationUpsertWithoutAccountInput = {
update: Prisma.XOR<Prisma.LicenseAccountAllocationUpdateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
create: Prisma.XOR<Prisma.LicenseAccountAllocationCreateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedCreateWithoutAccountInput>
where?: Prisma.LicenseAccountAllocationWhereInput
}
export type LicenseAccountAllocationUpdateToOneWithWhereWithoutAccountInput = {
where?: Prisma.LicenseAccountAllocationWhereInput
data: Prisma.XOR<Prisma.LicenseAccountAllocationUpdateWithoutAccountInput, Prisma.LicenseAccountAllocationUncheckedUpdateWithoutAccountInput>
}
export type LicenseAccountAllocationUpdateWithoutAccountInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
license_activation?: Prisma.LicenseActivationUpdateOneWithoutAccount_allocationsNestedInput
credit?: Prisma.PartnerAccountQuotaCreditUpdateOneWithoutAllocationNestedInput
}
export type LicenseAccountAllocationUncheckedUpdateWithoutAccountInput = {
id?: Prisma.StringFieldUpdateOperationsInput | string
created_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
updated_at?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
license_activation_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
credit_id?: Prisma.NullableStringFieldUpdateOperationsInput | string | null
}
export type LicenseAccountAllocationCreateManyLicense_activationInput = {
id?: string
created_at?: Date | string