feat: enhance consumer and partner middleware with Redis caching

- Added Redis caching to ConsumerMiddleware and PartnerMiddleware to improve performance by reducing database calls for consumer and partner data.
- Implemented logic to check for cached data before querying the database.
- Updated the InvoicesService to include settlement_type in the selected fields.
- Removed unnecessary console logs from CustomersService.
- Modified SalesInvoicesService to optimize query logic and improve performance.
- Updated StatisticsService to streamline data retrieval and processing.
- Created a new migration to add last_attempt_no and last_tsp_status columns to sales_invoices for better tracking of TSP attempts.
This commit is contained in:
2026-06-09 13:31:58 +03:30
parent f61100bf25
commit 47a27fb54f
19 changed files with 482 additions and 134 deletions
@@ -0,0 +1,50 @@
-- ALTER TABLE
ALTER TABLE `sales_invoices`
ADD COLUMN `last_attempt_no` INT NULL,
ADD COLUMN `last_tsp_status` ENUM(
'NOT_SEND',
'QUEUED',
'FISCAL_QUEUED',
'SEND_FAILURE',
'SUCCESS',
'FAILURE'
) NULL;
-- INDEX
CREATE INDEX `sales_invoices_pos_id_invoice_date_idx`
ON `sales_invoices` (`pos_id`, `invoice_date`);
-- BACKFILL LAST ATTEMPT
UPDATE sales_invoices si
JOIN (
SELECT invoice_id, attempt_no, status
FROM (
SELECT
invoice_id,
attempt_no,
status,
ROW_NUMBER() OVER (
PARTITION BY invoice_id
ORDER BY created_at DESC
) rn
FROM sale_invoice_tsp_attempts
) t
WHERE rn = 1
) la ON la.invoice_id = si.id
SET
si.last_attempt_no = la.attempt_no,
si.last_tsp_status = la.status;
-- SET NOT_SEND FOR NO ATTEMPTS
UPDATE sales_invoices si
LEFT JOIN sale_invoice_tsp_attempts att
ON att.invoice_id = si.id
SET
si.last_attempt_no = NULL,
si.last_tsp_status = 'NOT_SEND'
WHERE att.invoice_id IS NULL;
-- SAFETY FILL
UPDATE sales_invoices
SET last_tsp_status = 'NOT_SEND'
WHERE last_tsp_status IS NULL;
+37 -34
View File
@@ -1,63 +1,66 @@
model SalesInvoice {
id String @id @default(uuid())
code String @unique @db.VarChar(100)
total_amount Decimal @db.Decimal(15, 2)
id String @id @default(uuid())
code String @unique @db.VarChar(100)
total_amount Decimal @db.Decimal(15, 2)
invoice_number Int
invoice_date DateTime @default(now()) @db.Timestamp(0)
invoice_date DateTime @default(now()) @db.Timestamp(0)
type TspProviderRequestType
tax_id String? @unique @db.VarChar(32)
notes String? @db.Text
tax_id String? @unique @db.VarChar(32)
notes String? @db.Text
unknown_customer Json?
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
main_id String? @db.VarChar(50)
ref_id String? @unique @db.VarChar(50)
created_at DateTime @default(now()) @db.Timestamp(0)
updated_at DateTime @updatedAt @db.Timestamp(0)
main_id String? @db.VarChar(50)
ref_id String? @unique @db.VarChar(50)
customer_id String?
consumer_account_id String
pos_id String
settlement_type InvoiceSettlementType
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
last_tsp_status TspProviderResponseStatus?
last_attempt_no Int?
tsp_attempts SaleInvoiceTspAttempts[]
items SalesInvoiceItem[]
payments SalesInvoicePayment[]
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
customer Customer? @relation(fields: [customer_id], references: [id])
pos Pos @relation(fields: [pos_id], references: [id])
reference_invoice SalesInvoice? @relation("SalesInvoiceReference", fields: [ref_id], references: [id])
referenced_by SalesInvoice? @relation("SalesInvoiceReference")
consumer_account ConsumerAccount @relation(fields: [consumer_account_id], references: [id])
customer Customer? @relation(fields: [customer_id], references: [id])
pos Pos @relation(fields: [pos_id], references: [id])
reference_invoice SalesInvoice? @relation("SalesInvoiceReference", fields: [ref_id], references: [id])
referenced_by SalesInvoice? @relation("SalesInvoiceReference")
@@unique([invoice_number, pos_id])
@@index([pos_id, invoice_date])
@@index([ref_id])
@@index([tax_id])
@@index([consumer_account_id], map: "sales_invoices_consumer_account_id_fkey")
@@index([customer_id], map: "sales_invoices_customer_id_fkey")
@@index([pos_id], map: "sales_invoices_pos_id_fkey")
@@map("sales_invoices")
}
model SalesInvoiceItem {
id String @id @default(ulid())
quantity Decimal @db.Decimal(10, 0)
measure_unit_text String @db.VarChar(50)
measure_unit_code String @db.VarChar(50)
sku_code String @db.VarChar(50)
sku_vat Decimal @default(0.00) @db.Decimal(15, 2)
unit_price Decimal @default(0.00) @db.Decimal(15, 2)
total_amount Decimal @default(0.00) @db.Decimal(15, 2)
created_at DateTime @default(now()) @db.Timestamp(0)
discount Decimal @default(0.00) @db.Decimal(15, 2)
notes String? @db.Text
id String @id @default(ulid())
quantity Decimal @db.Decimal(10, 0)
measure_unit_text String @db.VarChar(50)
measure_unit_code String @db.VarChar(50)
sku_code String @db.VarChar(50)
sku_vat Decimal @default(0.00) @db.Decimal(15, 2)
unit_price Decimal @default(0.00) @db.Decimal(15, 2)
total_amount Decimal @default(0.00) @db.Decimal(15, 2)
created_at DateTime @default(now()) @db.Timestamp(0)
discount Decimal @default(0.00) @db.Decimal(15, 2)
notes String? @db.Text
payload Json?
good_snapshot Json
invoice_id String
good_id String
service_id String?
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
good Good @relation(fields: [good_id], references: [id])
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
service Service? @relation(fields: [service_id], references: [id])
discount_amount Decimal? @db.Decimal(15, 2)
tax_amount Decimal? @db.Decimal(15, 2)
good Good @relation(fields: [good_id], references: [id])
invoice SalesInvoice @relation(fields: [invoice_id], references: [id])
service Service? @relation(fields: [service_id], references: [id])
@@index([invoice_id, good_id])
@@index([good_id], map: "sales_invoice_items_good_id_fkey")
-2
View File
@@ -198,8 +198,6 @@ async function main() {
code: sku_code,
},
})
console.log(name)
console.log(sku?.id)
if (sku) {
return {
+1
View File
@@ -12,6 +12,7 @@ export const summarySelect: SalesInvoiceSelect = {
notes: true,
created_at: true,
settlement_type: true,
unknown_customer: true,
customer: {
select: {
type: true,
+11 -3
View File
@@ -20,14 +20,18 @@ export function getCurrentJalaliSeasonStart(
const date = dayjs(baseDate).calendar('jalali')
const month = date.month() + 1
const seasonStartMonth = Math.floor((month - 1) / 3) * 3 + 1
return date.month(seasonStartMonth - 1).startOf('month').startOf('day').toDate()
return date
.month(seasonStartMonth - 1)
.startOf('month')
.startOf('day')
.toDate()
}
export function getCurrentJalaliSeasonEnd(
baseDate: string | number | Date | Dayjs = dayjs(),
): Date {
return dayjs(getCurrentJalaliSeasonStart(baseDate))
.add(2, 'month')
.add(3, 'month')
.endOf('month')
.endOf('day')
.toDate()
@@ -39,7 +43,11 @@ export function getCurrentGregorianSeasonStart(
const date = dayjs(baseDate).calendar('gregory')
const month = date.month() + 1
const seasonStartMonth = Math.floor((month - 1) / 3) * 3 + 1
return date.month(seasonStartMonth - 1).startOf('month').startOf('day').toDate()
return date
.month(seasonStartMonth - 1)
.startOf('month')
.startOf('day')
.toDate()
}
export function getCurrentGregorianSeasonEnd(
@@ -1,4 +1,8 @@
export class ConsumerKeyMaker {
static middleware(token: string): string {
return `consumer:middleware:${token}`
}
static consumerInfo(consumerId: string): string {
return `consumers:${consumerId}:info`
}
+2
View File
@@ -14,6 +14,7 @@ export class RedisKeyMaker extends PartnerKeyMaker {
static pos = PosKeyMaker
static consumerInfo = ConsumerKeyMaker.consumerInfo
static consumerMiddleware = ConsumerKeyMaker.middleware
static consumerBusinessActivitiesList = ConsumerKeyMaker.consumerBusinessActivitiesList
static consumerBusinessActivityInfo = ConsumerKeyMaker.consumerBusinessActivityInfo
@@ -21,6 +22,7 @@ export class RedisKeyMaker extends PartnerKeyMaker {
static guildGoodsList = GuildKeyMaker.guildGoodsList
static posMiddleware = PosKeyMaker.middleware
static partnerMiddleware = PartnerKeyMaker.middleware
static posInfo = PosKeyMaker.info
static posMe = PosKeyMaker.me
static posGoodsList = PosKeyMaker.goodList
@@ -1,4 +1,8 @@
export class PartnerKeyMaker {
static middleware(token): string {
return `partner:middleware:${token}`
}
static partnersList(): string {
return 'partners:list'
}
+88
View File
@@ -630,6 +630,24 @@ export type EnumInvoiceSettlementTypeFilter<$PrismaModel = never> = {
not?: Prisma.NestedEnumInvoiceSettlementTypeFilter<$PrismaModel> | $Enums.InvoiceSettlementType
}
export type EnumTspProviderResponseStatusNullableFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderResponseStatus | Prisma.EnumTspProviderResponseStatusFieldRefInput<$PrismaModel> | null
in?: $Enums.TspProviderResponseStatus[] | null
notIn?: $Enums.TspProviderResponseStatus[] | null
not?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel> | $Enums.TspProviderResponseStatus | null
}
export type IntNullableFilter<$PrismaModel = never> = {
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
in?: number[] | null
notIn?: number[] | null
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null
}
export type EnumTspProviderRequestTypeWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderRequestType | Prisma.EnumTspProviderRequestTypeFieldRefInput<$PrismaModel>
in?: $Enums.TspProviderRequestType[]
@@ -650,6 +668,32 @@ export type EnumInvoiceSettlementTypeWithAggregatesFilter<$PrismaModel = never>
_max?: Prisma.NestedEnumInvoiceSettlementTypeFilter<$PrismaModel>
}
export type EnumTspProviderResponseStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderResponseStatus | Prisma.EnumTspProviderResponseStatusFieldRefInput<$PrismaModel> | null
in?: $Enums.TspProviderResponseStatus[] | null
notIn?: $Enums.TspProviderResponseStatus[] | null
not?: Prisma.NestedEnumTspProviderResponseStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.TspProviderResponseStatus | null
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
_min?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel>
_max?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel>
}
export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
in?: number[] | null
notIn?: number[] | null
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
_avg?: Prisma.NestedFloatNullableFilter<$PrismaModel>
_sum?: Prisma.NestedIntNullableFilter<$PrismaModel>
_min?: Prisma.NestedIntNullableFilter<$PrismaModel>
_max?: Prisma.NestedIntNullableFilter<$PrismaModel>
}
export type JsonFilter<$PrismaModel = never> =
| Prisma.PatchUndefined<
Prisma.Either<Required<JsonFilterBase<$PrismaModel>>, Exclude<keyof Required<JsonFilterBase<$PrismaModel>>, 'path'>>,
@@ -1341,6 +1385,13 @@ export type NestedEnumInvoiceSettlementTypeFilter<$PrismaModel = never> = {
not?: Prisma.NestedEnumInvoiceSettlementTypeFilter<$PrismaModel> | $Enums.InvoiceSettlementType
}
export type NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderResponseStatus | Prisma.EnumTspProviderResponseStatusFieldRefInput<$PrismaModel> | null
in?: $Enums.TspProviderResponseStatus[] | null
notIn?: $Enums.TspProviderResponseStatus[] | null
not?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel> | $Enums.TspProviderResponseStatus | null
}
export type NestedEnumTspProviderRequestTypeWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderRequestType | Prisma.EnumTspProviderRequestTypeFieldRefInput<$PrismaModel>
in?: $Enums.TspProviderRequestType[]
@@ -1361,6 +1412,43 @@ export type NestedEnumInvoiceSettlementTypeWithAggregatesFilter<$PrismaModel = n
_max?: Prisma.NestedEnumInvoiceSettlementTypeFilter<$PrismaModel>
}
export type NestedEnumTspProviderResponseStatusNullableWithAggregatesFilter<$PrismaModel = never> = {
equals?: $Enums.TspProviderResponseStatus | Prisma.EnumTspProviderResponseStatusFieldRefInput<$PrismaModel> | null
in?: $Enums.TspProviderResponseStatus[] | null
notIn?: $Enums.TspProviderResponseStatus[] | null
not?: Prisma.NestedEnumTspProviderResponseStatusNullableWithAggregatesFilter<$PrismaModel> | $Enums.TspProviderResponseStatus | null
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
_min?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel>
_max?: Prisma.NestedEnumTspProviderResponseStatusNullableFilter<$PrismaModel>
}
export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
in?: number[] | null
notIn?: number[] | null
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
_avg?: Prisma.NestedFloatNullableFilter<$PrismaModel>
_sum?: Prisma.NestedIntNullableFilter<$PrismaModel>
_min?: Prisma.NestedIntNullableFilter<$PrismaModel>
_max?: Prisma.NestedIntNullableFilter<$PrismaModel>
}
export type NestedFloatNullableFilter<$PrismaModel = never> = {
equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> | null
in?: number[] | null
notIn?: number[] | null
lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
not?: Prisma.NestedFloatNullableFilter<$PrismaModel> | number | null
}
export type NestedJsonFilter<$PrismaModel = never> =
| Prisma.PatchUndefined<
Prisma.Either<Required<NestedJsonFilterBase<$PrismaModel>>, Exclude<keyof Required<NestedJsonFilterBase<$PrismaModel>>, 'path'>>,
File diff suppressed because one or more lines are too long
@@ -4109,7 +4109,9 @@ export const SalesInvoiceScalarFieldEnum = {
pos_id: 'pos_id',
settlement_type: 'settlement_type',
discount_amount: 'discount_amount',
tax_amount: 'tax_amount'
tax_amount: 'tax_amount',
last_tsp_status: 'last_tsp_status',
last_attempt_no: 'last_attempt_no'
} as const
export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[keyof typeof SalesInvoiceScalarFieldEnum]
@@ -634,7 +634,9 @@ export const SalesInvoiceScalarFieldEnum = {
pos_id: 'pos_id',
settlement_type: 'settlement_type',
discount_amount: 'discount_amount',
tax_amount: 'tax_amount'
tax_amount: 'tax_amount',
last_tsp_status: 'last_tsp_status',
last_attempt_no: 'last_attempt_no'
} as const
export type SalesInvoiceScalarFieldEnum = (typeof SalesInvoiceScalarFieldEnum)[keyof typeof SalesInvoiceScalarFieldEnum]
+149 -1
View File
@@ -31,6 +31,7 @@ export type SalesInvoiceAvgAggregateOutputType = {
invoice_number: number | null
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_attempt_no: number | null
}
export type SalesInvoiceSumAggregateOutputType = {
@@ -38,6 +39,7 @@ export type SalesInvoiceSumAggregateOutputType = {
invoice_number: number | null
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_attempt_no: number | null
}
export type SalesInvoiceMinAggregateOutputType = {
@@ -59,6 +61,8 @@ export type SalesInvoiceMinAggregateOutputType = {
settlement_type: $Enums.InvoiceSettlementType | null
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_tsp_status: $Enums.TspProviderResponseStatus | null
last_attempt_no: number | null
}
export type SalesInvoiceMaxAggregateOutputType = {
@@ -80,6 +84,8 @@ export type SalesInvoiceMaxAggregateOutputType = {
settlement_type: $Enums.InvoiceSettlementType | null
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_tsp_status: $Enums.TspProviderResponseStatus | null
last_attempt_no: number | null
}
export type SalesInvoiceCountAggregateOutputType = {
@@ -102,6 +108,8 @@ export type SalesInvoiceCountAggregateOutputType = {
settlement_type: number
discount_amount: number
tax_amount: number
last_tsp_status: number
last_attempt_no: number
_all: number
}
@@ -111,6 +119,7 @@ export type SalesInvoiceAvgAggregateInputType = {
invoice_number?: true
discount_amount?: true
tax_amount?: true
last_attempt_no?: true
}
export type SalesInvoiceSumAggregateInputType = {
@@ -118,6 +127,7 @@ export type SalesInvoiceSumAggregateInputType = {
invoice_number?: true
discount_amount?: true
tax_amount?: true
last_attempt_no?: true
}
export type SalesInvoiceMinAggregateInputType = {
@@ -139,6 +149,8 @@ export type SalesInvoiceMinAggregateInputType = {
settlement_type?: true
discount_amount?: true
tax_amount?: true
last_tsp_status?: true
last_attempt_no?: true
}
export type SalesInvoiceMaxAggregateInputType = {
@@ -160,6 +172,8 @@ export type SalesInvoiceMaxAggregateInputType = {
settlement_type?: true
discount_amount?: true
tax_amount?: true
last_tsp_status?: true
last_attempt_no?: true
}
export type SalesInvoiceCountAggregateInputType = {
@@ -182,6 +196,8 @@ export type SalesInvoiceCountAggregateInputType = {
settlement_type?: true
discount_amount?: true
tax_amount?: true
last_tsp_status?: true
last_attempt_no?: true
_all?: true
}
@@ -291,6 +307,8 @@ export type SalesInvoiceGroupByOutputType = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_tsp_status: $Enums.TspProviderResponseStatus | null
last_attempt_no: number | null
_count: SalesInvoiceCountAggregateOutputType | null
_avg: SalesInvoiceAvgAggregateOutputType | null
_sum: SalesInvoiceSumAggregateOutputType | null
@@ -336,6 +354,8 @@ export type SalesInvoiceWhereInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFilter<"SalesInvoice"> | $Enums.InvoiceSettlementType
discount_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.EnumTspProviderResponseStatusNullableFilter<"SalesInvoice"> | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.IntNullableFilter<"SalesInvoice"> | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsListRelationFilter
items?: Prisma.SalesInvoiceItemListRelationFilter
payments?: Prisma.SalesInvoicePaymentListRelationFilter
@@ -366,6 +386,8 @@ export type SalesInvoiceOrderByWithRelationInput = {
settlement_type?: Prisma.SortOrder
discount_amount?: Prisma.SortOrderInput | Prisma.SortOrder
tax_amount?: Prisma.SortOrderInput | Prisma.SortOrder
last_tsp_status?: Prisma.SortOrderInput | Prisma.SortOrder
last_attempt_no?: Prisma.SortOrderInput | Prisma.SortOrder
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsOrderByRelationAggregateInput
items?: Prisma.SalesInvoiceItemOrderByRelationAggregateInput
payments?: Prisma.SalesInvoicePaymentOrderByRelationAggregateInput
@@ -401,6 +423,8 @@ export type SalesInvoiceWhereUniqueInput = Prisma.AtLeast<{
settlement_type?: Prisma.EnumInvoiceSettlementTypeFilter<"SalesInvoice"> | $Enums.InvoiceSettlementType
discount_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.EnumTspProviderResponseStatusNullableFilter<"SalesInvoice"> | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.IntNullableFilter<"SalesInvoice"> | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsListRelationFilter
items?: Prisma.SalesInvoiceItemListRelationFilter
payments?: Prisma.SalesInvoicePaymentListRelationFilter
@@ -431,6 +455,8 @@ export type SalesInvoiceOrderByWithAggregationInput = {
settlement_type?: Prisma.SortOrder
discount_amount?: Prisma.SortOrderInput | Prisma.SortOrder
tax_amount?: Prisma.SortOrderInput | Prisma.SortOrder
last_tsp_status?: Prisma.SortOrderInput | Prisma.SortOrder
last_attempt_no?: Prisma.SortOrderInput | Prisma.SortOrder
_count?: Prisma.SalesInvoiceCountOrderByAggregateInput
_avg?: Prisma.SalesInvoiceAvgOrderByAggregateInput
_max?: Prisma.SalesInvoiceMaxOrderByAggregateInput
@@ -461,6 +487,8 @@ export type SalesInvoiceScalarWhereWithAggregatesInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeWithAggregatesFilter<"SalesInvoice"> | $Enums.InvoiceSettlementType
discount_amount?: Prisma.DecimalNullableWithAggregatesFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.DecimalNullableWithAggregatesFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.EnumTspProviderResponseStatusNullableWithAggregatesFilter<"SalesInvoice"> | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.IntNullableWithAggregatesFilter<"SalesInvoice"> | number | null
}
export type SalesInvoiceCreateInput = {
@@ -479,6 +507,8 @@ export type SalesInvoiceCreateInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -509,6 +539,8 @@ export type SalesInvoiceUncheckedCreateInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -531,6 +563,8 @@ export type SalesInvoiceUpdateInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -561,6 +595,8 @@ export type SalesInvoiceUncheckedUpdateInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -587,6 +623,8 @@ export type SalesInvoiceCreateManyInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
}
export type SalesInvoiceUpdateManyMutationInput = {
@@ -605,6 +643,8 @@ export type SalesInvoiceUpdateManyMutationInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
}
export type SalesInvoiceUncheckedUpdateManyInput = {
@@ -627,6 +667,8 @@ export type SalesInvoiceUncheckedUpdateManyInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
}
export type SalesInvoiceListRelationFilter = {
@@ -675,6 +717,8 @@ export type SalesInvoiceCountOrderByAggregateInput = {
settlement_type?: Prisma.SortOrder
discount_amount?: Prisma.SortOrder
tax_amount?: Prisma.SortOrder
last_tsp_status?: Prisma.SortOrder
last_attempt_no?: Prisma.SortOrder
}
export type SalesInvoiceAvgOrderByAggregateInput = {
@@ -682,6 +726,7 @@ export type SalesInvoiceAvgOrderByAggregateInput = {
invoice_number?: Prisma.SortOrder
discount_amount?: Prisma.SortOrder
tax_amount?: Prisma.SortOrder
last_attempt_no?: Prisma.SortOrder
}
export type SalesInvoiceMaxOrderByAggregateInput = {
@@ -703,6 +748,8 @@ export type SalesInvoiceMaxOrderByAggregateInput = {
settlement_type?: Prisma.SortOrder
discount_amount?: Prisma.SortOrder
tax_amount?: Prisma.SortOrder
last_tsp_status?: Prisma.SortOrder
last_attempt_no?: Prisma.SortOrder
}
export type SalesInvoiceMinOrderByAggregateInput = {
@@ -724,6 +771,8 @@ export type SalesInvoiceMinOrderByAggregateInput = {
settlement_type?: Prisma.SortOrder
discount_amount?: Prisma.SortOrder
tax_amount?: Prisma.SortOrder
last_tsp_status?: Prisma.SortOrder
last_attempt_no?: Prisma.SortOrder
}
export type SalesInvoiceSumOrderByAggregateInput = {
@@ -731,6 +780,7 @@ export type SalesInvoiceSumOrderByAggregateInput = {
invoice_number?: Prisma.SortOrder
discount_amount?: Prisma.SortOrder
tax_amount?: Prisma.SortOrder
last_attempt_no?: Prisma.SortOrder
}
export type SalesInvoiceScalarRelationFilter = {
@@ -890,6 +940,18 @@ export type EnumInvoiceSettlementTypeFieldUpdateOperationsInput = {
set?: $Enums.InvoiceSettlementType
}
export type NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput = {
set?: $Enums.TspProviderResponseStatus | null
}
export type NullableIntFieldUpdateOperationsInput = {
set?: number | null
increment?: number
decrement?: number
multiply?: number
divide?: number
}
export type SalesInvoiceUpdateOneWithoutReferenced_byNestedInput = {
create?: Prisma.XOR<Prisma.SalesInvoiceCreateWithoutReferenced_byInput, Prisma.SalesInvoiceUncheckedCreateWithoutReferenced_byInput>
connectOrCreate?: Prisma.SalesInvoiceCreateOrConnectWithoutReferenced_byInput
@@ -978,6 +1040,8 @@ export type SalesInvoiceCreateWithoutConsumer_accountInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -1006,6 +1070,8 @@ export type SalesInvoiceUncheckedCreateWithoutConsumer_accountInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -1061,6 +1127,8 @@ export type SalesInvoiceScalarWhereInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFilter<"SalesInvoice"> | $Enums.InvoiceSettlementType
discount_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.DecimalNullableFilter<"SalesInvoice"> | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.EnumTspProviderResponseStatusNullableFilter<"SalesInvoice"> | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.IntNullableFilter<"SalesInvoice"> | number | null
}
export type SalesInvoiceCreateWithoutPosInput = {
@@ -1079,6 +1147,8 @@ export type SalesInvoiceCreateWithoutPosInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -1107,6 +1177,8 @@ export type SalesInvoiceUncheckedCreateWithoutPosInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -1155,6 +1227,8 @@ export type SalesInvoiceCreateWithoutCustomerInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -1183,6 +1257,8 @@ export type SalesInvoiceUncheckedCreateWithoutCustomerInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -1231,6 +1307,8 @@ export type SalesInvoiceCreateWithoutReferenced_byInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -1260,6 +1338,8 @@ export type SalesInvoiceUncheckedCreateWithoutReferenced_byInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -1286,6 +1366,8 @@ export type SalesInvoiceCreateWithoutReference_invoiceInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
@@ -1314,6 +1396,8 @@ export type SalesInvoiceUncheckedCreateWithoutReference_invoiceInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
@@ -1352,6 +1436,8 @@ export type SalesInvoiceUpdateWithoutReferenced_byInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -1381,6 +1467,8 @@ export type SalesInvoiceUncheckedUpdateWithoutReferenced_byInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -1413,6 +1501,8 @@ export type SalesInvoiceUpdateWithoutReference_invoiceInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -1441,6 +1531,8 @@ export type SalesInvoiceUncheckedUpdateWithoutReference_invoiceInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -1463,6 +1555,8 @@ export type SalesInvoiceCreateWithoutItemsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
consumer_account: Prisma.ConsumerAccountCreateNestedOneWithoutSales_invoicesInput
@@ -1492,6 +1586,8 @@ export type SalesInvoiceUncheckedCreateWithoutItemsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
referenced_by?: Prisma.SalesInvoiceUncheckedCreateNestedOneWithoutReference_invoiceInput
@@ -1529,6 +1625,8 @@ export type SalesInvoiceUpdateWithoutItemsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
consumer_account?: Prisma.ConsumerAccountUpdateOneRequiredWithoutSales_invoicesNestedInput
@@ -1558,6 +1656,8 @@ export type SalesInvoiceUncheckedUpdateWithoutItemsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
referenced_by?: Prisma.SalesInvoiceUncheckedUpdateOneWithoutReference_invoiceNestedInput
@@ -1579,6 +1679,8 @@ export type SalesInvoiceCreateWithoutTsp_attemptsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentCreateNestedManyWithoutInvoiceInput
consumer_account: Prisma.ConsumerAccountCreateNestedOneWithoutSales_invoicesInput
@@ -1608,6 +1710,8 @@ export type SalesInvoiceUncheckedCreateWithoutTsp_attemptsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
payments?: Prisma.SalesInvoicePaymentUncheckedCreateNestedManyWithoutInvoiceInput
referenced_by?: Prisma.SalesInvoiceUncheckedCreateNestedOneWithoutReference_invoiceInput
@@ -1645,6 +1749,8 @@ export type SalesInvoiceUpdateWithoutTsp_attemptsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
consumer_account?: Prisma.ConsumerAccountUpdateOneRequiredWithoutSales_invoicesNestedInput
@@ -1674,6 +1780,8 @@ export type SalesInvoiceUncheckedUpdateWithoutTsp_attemptsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
referenced_by?: Prisma.SalesInvoiceUncheckedUpdateOneWithoutReference_invoiceNestedInput
@@ -1695,6 +1803,8 @@ export type SalesInvoiceCreateWithoutPaymentsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemCreateNestedManyWithoutInvoiceInput
consumer_account: Prisma.ConsumerAccountCreateNestedOneWithoutSales_invoicesInput
@@ -1724,6 +1834,8 @@ export type SalesInvoiceUncheckedCreateWithoutPaymentsInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedCreateNestedManyWithoutInvoiceInput
items?: Prisma.SalesInvoiceItemUncheckedCreateNestedManyWithoutInvoiceInput
referenced_by?: Prisma.SalesInvoiceUncheckedCreateNestedOneWithoutReference_invoiceInput
@@ -1761,6 +1873,8 @@ export type SalesInvoiceUpdateWithoutPaymentsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
consumer_account?: Prisma.ConsumerAccountUpdateOneRequiredWithoutSales_invoicesNestedInput
@@ -1790,6 +1904,8 @@ export type SalesInvoiceUncheckedUpdateWithoutPaymentsInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
referenced_by?: Prisma.SalesInvoiceUncheckedUpdateOneWithoutReference_invoiceNestedInput
@@ -1814,6 +1930,8 @@ export type SalesInvoiceCreateManyConsumer_accountInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
}
export type SalesInvoiceUpdateWithoutConsumer_accountInput = {
@@ -1832,6 +1950,8 @@ export type SalesInvoiceUpdateWithoutConsumer_accountInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -1860,6 +1980,8 @@ export type SalesInvoiceUncheckedUpdateWithoutConsumer_accountInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -1885,6 +2007,8 @@ export type SalesInvoiceUncheckedUpdateManyWithoutConsumer_accountInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
}
export type SalesInvoiceCreateManyPosInput = {
@@ -1906,6 +2030,8 @@ export type SalesInvoiceCreateManyPosInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
}
export type SalesInvoiceUpdateWithoutPosInput = {
@@ -1924,6 +2050,8 @@ export type SalesInvoiceUpdateWithoutPosInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -1952,6 +2080,8 @@ export type SalesInvoiceUncheckedUpdateWithoutPosInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -1977,6 +2107,8 @@ export type SalesInvoiceUncheckedUpdateManyWithoutPosInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
}
export type SalesInvoiceCreateManyCustomerInput = {
@@ -1998,6 +2130,8 @@ export type SalesInvoiceCreateManyCustomerInput = {
settlement_type: $Enums.InvoiceSettlementType
discount_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: $Enums.TspProviderResponseStatus | null
last_attempt_no?: number | null
}
export type SalesInvoiceUpdateWithoutCustomerInput = {
@@ -2016,6 +2150,8 @@ export type SalesInvoiceUpdateWithoutCustomerInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUpdateManyWithoutInvoiceNestedInput
@@ -2044,6 +2180,8 @@ export type SalesInvoiceUncheckedUpdateWithoutCustomerInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
tsp_attempts?: Prisma.SaleInvoiceTspAttemptsUncheckedUpdateManyWithoutInvoiceNestedInput
items?: Prisma.SalesInvoiceItemUncheckedUpdateManyWithoutInvoiceNestedInput
payments?: Prisma.SalesInvoicePaymentUncheckedUpdateManyWithoutInvoiceNestedInput
@@ -2069,6 +2207,8 @@ export type SalesInvoiceUncheckedUpdateManyWithoutCustomerInput = {
settlement_type?: Prisma.EnumInvoiceSettlementTypeFieldUpdateOperationsInput | $Enums.InvoiceSettlementType
discount_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
tax_amount?: Prisma.NullableDecimalFieldUpdateOperationsInput | runtime.Decimal | runtime.DecimalJsLike | number | string | null
last_tsp_status?: Prisma.NullableEnumTspProviderResponseStatusFieldUpdateOperationsInput | $Enums.TspProviderResponseStatus | null
last_attempt_no?: Prisma.NullableIntFieldUpdateOperationsInput | number | null
}
@@ -2140,6 +2280,8 @@ export type SalesInvoiceSelect<ExtArgs extends runtime.Types.Extensions.Internal
settlement_type?: boolean
discount_amount?: boolean
tax_amount?: boolean
last_tsp_status?: boolean
last_attempt_no?: boolean
tsp_attempts?: boolean | Prisma.SalesInvoice$tsp_attemptsArgs<ExtArgs>
items?: boolean | Prisma.SalesInvoice$itemsArgs<ExtArgs>
payments?: boolean | Prisma.SalesInvoice$paymentsArgs<ExtArgs>
@@ -2173,9 +2315,11 @@ export type SalesInvoiceSelectScalar = {
settlement_type?: boolean
discount_amount?: boolean
tax_amount?: boolean
last_tsp_status?: boolean
last_attempt_no?: boolean
}
export type SalesInvoiceOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "code" | "total_amount" | "invoice_number" | "invoice_date" | "type" | "tax_id" | "notes" | "unknown_customer" | "created_at" | "updated_at" | "main_id" | "ref_id" | "customer_id" | "consumer_account_id" | "pos_id" | "settlement_type" | "discount_amount" | "tax_amount", ExtArgs["result"]["salesInvoice"]>
export type SalesInvoiceOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "code" | "total_amount" | "invoice_number" | "invoice_date" | "type" | "tax_id" | "notes" | "unknown_customer" | "created_at" | "updated_at" | "main_id" | "ref_id" | "customer_id" | "consumer_account_id" | "pos_id" | "settlement_type" | "discount_amount" | "tax_amount" | "last_tsp_status" | "last_attempt_no", ExtArgs["result"]["salesInvoice"]>
export type SalesInvoiceInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
tsp_attempts?: boolean | Prisma.SalesInvoice$tsp_attemptsArgs<ExtArgs>
items?: boolean | Prisma.SalesInvoice$itemsArgs<ExtArgs>
@@ -2220,6 +2364,8 @@ export type $SalesInvoicePayload<ExtArgs extends runtime.Types.Extensions.Intern
settlement_type: $Enums.InvoiceSettlementType
discount_amount: runtime.Decimal | null
tax_amount: runtime.Decimal | null
last_tsp_status: $Enums.TspProviderResponseStatus | null
last_attempt_no: number | null
}, ExtArgs["result"]["salesInvoice"]>
composites: {}
}
@@ -2616,6 +2762,8 @@ export interface SalesInvoiceFieldRefs {
readonly settlement_type: Prisma.FieldRef<"SalesInvoice", 'InvoiceSettlementType'>
readonly discount_amount: Prisma.FieldRef<"SalesInvoice", 'Decimal'>
readonly tax_amount: Prisma.FieldRef<"SalesInvoice", 'Decimal'>
readonly last_tsp_status: Prisma.FieldRef<"SalesInvoice", 'TspProviderResponseStatus'>
readonly last_attempt_no: Prisma.FieldRef<"SalesInvoice", 'Int'>
}
+24 -1
View File
@@ -1,5 +1,7 @@
import { RedisKeyMaker } from '@/common/utils'
import { checkAndDecodeJwtToken } from '@/common/utils/jwt-user.util'
import { PrismaService } from '@/prisma/prisma.service'
import { RedisService } from '@/redis/redis.service'
import {
ForbiddenException,
Injectable,
@@ -14,6 +16,7 @@ export class ConsumerMiddleware implements NestMiddleware {
constructor(
private prisma: PrismaService,
private jwtService: JwtService,
private redisService: RedisService,
) {}
async use(req: Request, _res: Response, next: NextFunction) {
@@ -21,7 +24,15 @@ export class ConsumerMiddleware implements NestMiddleware {
throw new ForbiddenException('شما دسترسی لازم را ندارید')
}
try {
const token = req.cookies?.accessToken
const cacheKey = RedisKeyMaker.consumerMiddleware(token)
let cachedConsumerData: unknown
try {
cachedConsumerData = await this.redisService.getJson(cacheKey)
} catch (_) {}
const tokenAccount = checkAndDecodeJwtToken(req, this.jwtService)
req.decodedToken = tokenAccount!
if (
tokenAccount?.type !== 'CONSUMER' ||
@@ -30,6 +41,16 @@ export class ConsumerMiddleware implements NestMiddleware {
throw new UnauthorizedException()
}
if (
cachedConsumerData &&
typeof cachedConsumerData === 'object' &&
'account_id' in cachedConsumerData &&
'id' in cachedConsumerData
) {
req.consumerData = cachedConsumerData as any
return next()
}
const consumerAccount = await this.prisma.consumerAccount.findUnique({
where: {
id: tokenAccount.account_id,
@@ -49,7 +70,9 @@ export class ConsumerMiddleware implements NestMiddleware {
id: consumerAccount.consumer_id,
}
req.decodedToken = tokenAccount
try {
await this.redisService.setJson(cacheKey, req.consumerData, 60 * 60)
} catch (_) {}
return next()
} catch (error) {
+1
View File
@@ -21,6 +21,7 @@ export class InvoicesService {
tax_id: true,
total_amount: true,
type: true,
settlement_type: true,
pos: {
select: {
name: true,
+24 -1
View File
@@ -1,5 +1,7 @@
import { RedisKeyMaker } from '@/common/utils'
import { checkAndDecodeJwtToken } from '@/common/utils/jwt-user.util'
import { PrismaService } from '@/prisma/prisma.service'
import { RedisService } from '@/redis/redis.service'
import {
ForbiddenException,
Injectable,
@@ -14,6 +16,7 @@ export class PartnerMiddleware implements NestMiddleware {
constructor(
private prisma: PrismaService,
private jwtService: JwtService,
private redisService: RedisService,
) {}
async use(req: Request, _res: Response, next: NextFunction) {
@@ -21,12 +24,30 @@ export class PartnerMiddleware implements NestMiddleware {
throw new ForbiddenException('شما دسترسی لازم را ندارید')
}
try {
const token = req.cookies?.accessToken
const cacheKey = RedisKeyMaker.partnerMiddleware(token)
let cachedPartnerData: unknown
try {
cachedPartnerData = await this.redisService.getJson(cacheKey)
} catch (_) {}
const tokenAccount = checkAndDecodeJwtToken(req, this.jwtService)
req.decodedToken = tokenAccount!
if (tokenAccount?.type !== 'PARTNER') {
throw new UnauthorizedException()
}
if (
cachedPartnerData &&
typeof cachedPartnerData === 'object' &&
'account_id' in cachedPartnerData &&
'id' in cachedPartnerData
) {
req.partnerData = cachedPartnerData as any
return next()
}
const partnerAccount = await this.prisma.partnerAccount.findUnique({
where: {
id: tokenAccount.account_id,
@@ -46,7 +67,9 @@ export class PartnerMiddleware implements NestMiddleware {
id: partnerAccount.partner_id,
}
req.decodedToken = tokenAccount
try {
await this.redisService.setJson(cacheKey, req.partnerData, 60 * 60)
} catch (_) {}
return next()
} catch (error) {
@@ -19,10 +19,6 @@ export class CustomersService {
id: true,
}
console.log('type', type)
console.log('type === CustomerType.LEGAL', type === CustomerType.LEGAL)
console.log('type === CustomerType.INDIVIDUAL', type === CustomerType.INDIVIDUAL)
if (type === CustomerType.LEGAL) {
where.legal = {
business_activity_id: posInfo.business_id,
@@ -201,6 +201,7 @@ export class SalesInvoicesService {
business_activity_id: posInfo.business_id,
},
},
referenced_by: null,
}
if (query.invoice_number) {
@@ -330,15 +331,16 @@ export class SalesInvoicesService {
if (query.status) {
if (query.status === TspProviderResponseStatus.NOT_SEND) {
where.tsp_attempts = {
none: {},
}
} else {
where.tsp_attempts = {
some: {
status: query.status,
where.OR = [
{
last_tsp_status: null,
},
}
{
last_tsp_status: TspProviderResponseStatus.NOT_SEND,
},
]
} else {
where.last_tsp_status = query.status
}
}
@@ -14,105 +14,98 @@ export class StatisticsService {
async findAll(posId: string, businessId: string, fromDate: Date = new Date()) {
const seasonDate = getCurrentJalaliSeasonRange(fromDate)
const [item] = await this.prisma.$queryRaw<
const rows = await this.prisma.$queryRaw<
Array<{
all_amount_sum: number | null
all_tax_sum: number | null
all_count: number | null
success_amount_sum: number | null
success_tax_sum: number | null
success_count: number | null
failure_amount_sum: number | null
failure_tax_sum: number | null
failure_count: number | null
pending_amount_sum: number | null
pending_tax_sum: number | null
pending_count: number | null
not_sended_amount_sum: number | null
not_sended_tax_sum: number | null
not_sended_count: number | null
not_original_amount_sum: number | null
not_original_tax_sum: number | null
not_original_count: number | null
all_amount_sum: number
all_tax_sum: number
all_count: number
success_amount_sum: number
success_tax_sum: number
success_count: number
failure_amount_sum: number
failure_tax_sum: number
failure_count: number
pending_amount_sum: number
pending_tax_sum: number
pending_count: number
not_sended_amount_sum: number
not_sended_tax_sum: number
not_sended_count: number
not_original_amount_sum: number
not_original_tax_sum: number
not_original_count: number
}>
>`
SELECT
SUM(si.total_amount) AS all_amount_sum,
SUM(si.tax_amount) AS all_tax_sum,
si.type,
COUNT(*) AS all_count,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.SUCCESS} THEN si.total_amount ELSE 0 END) AS success_amount_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.SUCCESS} THEN si.tax_amount ELSE 0 END) AS success_tax_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.SUCCESS} THEN 1 ELSE 0 END) AS success_count,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FAILURE} THEN si.total_amount ELSE 0 END) AS failure_amount_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FAILURE} THEN si.tax_amount ELSE 0 END) AS failure_tax_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FAILURE} THEN 1 ELSE 0 END) AS failure_count,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FISCAL_QUEUED} THEN si.total_amount ELSE 0 END) AS pending_amount_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FISCAL_QUEUED} THEN si.tax_amount ELSE 0 END) AS pending_tax_sum,
SUM(CASE WHEN la.status = ${TspProviderResponseStatus.FISCAL_QUEUED} THEN 1 ELSE 0 END) AS pending_count,
SUM(CASE WHEN la.status IS NULL THEN si.total_amount ELSE 0 END) AS not_sended_amount_sum,
SUM(CASE WHEN la.status IS NULL THEN si.tax_amount ELSE 0 END) AS not_sended_tax_sum,
SUM(CASE WHEN la.status IS NULL THEN 1 ELSE 0 END) AS not_sended_count,
SUM(CASE WHEN si.type <> ${TspProviderRequestType.ORIGINAL} THEN si.total_amount ELSE 0 END) AS not_original_amount_sum,
SUM(CASE WHEN si.type <> ${TspProviderRequestType.ORIGINAL} THEN si.tax_amount ELSE 0 END) AS not_original_tax_sum,
SUM(CASE WHEN si.type <> ${TspProviderRequestType.ORIGINAL} THEN 1 ELSE 0 END) AS not_original_count
COUNT(*) AS all_count,
COALESCE(SUM(si.total_amount), 0) AS all_amount_sum,
COALESCE(SUM(si.tax_amount), 0) AS all_tax_sum,
SUM(si.last_tsp_status = ${TspProviderResponseStatus.SUCCESS}) AS success_count,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.SUCCESS} THEN si.total_amount ELSE 0 END), 0) AS success_amount_sum,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.SUCCESS} THEN si.tax_amount ELSE 0 END), 0) AS success_tax_sum,
SUM(si.last_tsp_status = ${TspProviderResponseStatus.FAILURE}) AS failure_count,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.FAILURE} THEN si.total_amount ELSE 0 END), 0) AS failure_amount_sum,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.FAILURE} THEN si.tax_amount ELSE 0 END), 0) AS failure_tax_sum,
SUM(si.last_tsp_status = ${TspProviderResponseStatus.FISCAL_QUEUED}) AS pending_count,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.FISCAL_QUEUED} THEN si.total_amount ELSE 0 END), 0) AS pending_amount_sum,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.FISCAL_QUEUED} THEN si.tax_amount ELSE 0 END), 0) AS pending_tax_sum,
SUM(si.last_tsp_status = ${TspProviderResponseStatus.NOT_SEND}) AS not_sended_count,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.NOT_SEND} THEN si.total_amount ELSE 0 END), 0) AS not_sended_amount_sum,
COALESCE(SUM(CASE WHEN si.last_tsp_status = ${TspProviderResponseStatus.NOT_SEND} THEN si.tax_amount ELSE 0 END), 0) AS not_sended_tax_sum,
SUM(si.type <> ${TspProviderRequestType.ORIGINAL}) AS not_original_count,
COALESCE(SUM(CASE WHEN si.type <> ${TspProviderRequestType.ORIGINAL} THEN si.total_amount ELSE 0 END), 0) AS not_original_amount_sum,
COALESCE(SUM(CASE WHEN si.type <> ${TspProviderRequestType.ORIGINAL} THEN si.tax_amount ELSE 0 END), 0) AS not_original_tax_sum
FROM sales_invoices si
INNER JOIN poses p ON p.id = si.pos_id
LEFT JOIN (
SELECT att.invoice_id, att.status
FROM sale_invoice_tsp_attempts att
INNER JOIN (
SELECT invoice_id, MAX(attempt_no) AS max_attempt_no
FROM sale_invoice_tsp_attempts
GROUP BY invoice_id
) latest
ON latest.invoice_id = att.invoice_id
AND latest.max_attempt_no = att.attempt_no
) la ON la.invoice_id = si.id
WHERE si.invoice_date >= ${seasonDate.start}
AND si.invoice_date <= ${seasonDate.end}
AND si.pos_id = ${posId}
AND p.complex_id IN (
SELECT c.id FROM complexes c WHERE c.business_activity_id = ${businessId}
SELECT c.id FROM complexes c WHERE c.business_activity_id = ${businessId}
)
AND NOT EXISTS (
SELECT 1
FROM sales_invoices child
WHERE child.ref_id = si.id
)
GROUP BY si.type
`
SELECT 1
FROM sales_invoices child
WHERE child.ref_id = si.id
);
`
return ResponseMapper.single({
all: {
total_amount: Number(item?.all_amount_sum || 0),
total_tax: Number(item?.all_tax_sum),
count: Number(item?.all_count || 0),
total_amount: Number(rows[0].all_amount_sum || 0),
total_tax: Number(rows[0].all_tax_sum || 0),
count: Number(rows[0].all_count || 0),
},
success: {
total_amount: Number(item?.success_amount_sum || 0),
tax_amount: Number(item?.success_tax_sum || 0),
count: Number(item?.success_count || 0),
total_amount: Number(rows[0].success_amount_sum || 0),
total_tax: Number(rows[0].success_tax_sum || 0),
count: Number(rows[0].success_count || 0),
},
failure: {
total_amount: Number(item?.failure_amount_sum || 0),
tax_amount: Number(item?.failure_tax_sum || 0),
count: Number(item?.failure_count || 0),
total_amount: Number(rows[0].failure_amount_sum || 0),
total_tax: Number(rows[0].failure_tax_sum || 0),
count: Number(rows[0].failure_count || 0),
},
pending: {
total_amount: Number(item?.pending_amount_sum || 0),
tax_amount: Number(item?.pending_tax_sum || 0),
count: Number(item?.pending_count || 0),
total_amount: Number(rows[0].pending_amount_sum || 0),
total_tax: Number(rows[0].pending_tax_sum || 0),
count: Number(rows[0].pending_count || 0),
},
not_send: {
total_amount: Number(item?.not_sended_amount_sum || 0),
tax_amount: Number(item?.not_sended_tax_sum || 0),
count: Number(item?.not_sended_count || 0),
total_amount: Number(rows[0].not_sended_amount_sum || 0),
total_tax: Number(rows[0].not_sended_tax_sum || 0),
count: Number(rows[0].not_sended_count || 0),
},
not_original: {
total_amount: Number(item?.not_original_amount_sum || 0),
tax_amount: Number(item?.not_original_tax_sum || 0),
count: Number(item?.not_original_count || 0),
total_amount: Number(rows[0].not_original_amount_sum || 0),
total_tax: Number(rows[0].not_original_tax_sum || 0),
count: Number(rows[0].not_original_count || 0),
},
})
}