feat(bank-accounts): add transaction retrieval and update service logic

- Implemented a new endpoint to fetch transactions for a specific bank account.
- Refactored the bank account service to streamline transaction handling and balance calculations.
- Removed the bank account balance table and adjusted related logic in workflows and services.
- Enhanced transaction mapping to include references to sales and purchase records.
This commit is contained in:
2026-01-05 18:35:08 +03:30
parent fda190f902
commit b05048e62f
14 changed files with 147 additions and 1525 deletions
File diff suppressed because one or more lines are too long
@@ -391,7 +391,6 @@ export const ModelName = {
BankBranch: 'BankBranch',
BankAccount: 'BankAccount',
BankAccountTransaction: 'BankAccountTransaction',
BankAccountBalance: 'BankAccountBalance',
Inventory: 'Inventory',
InventoryBankAccount: 'InventoryBankAccount',
PosAccount: 'PosAccount',
@@ -433,7 +432,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
omit: GlobalOmitOptions
}
meta: {
modelProps: "user" | "role" | "otpCode" | "refreshToken" | "bankBranch" | "bankAccount" | "bankAccountTransaction" | "bankAccountBalance" | "inventory" | "inventoryBankAccount" | "posAccount" | "inventoryTransfer" | "inventoryTransferItem" | "bank" | "order" | "orderItem" | "customer" | "triggerLog" | "productVariant" | "product" | "productBrand" | "productCategory" | "purchaseReceipt" | "purchaseReceiptItem" | "purchaseReceiptPayments" | "salesInvoice" | "salesInvoiceItem" | "salesInvoicePayment" | "stockMovement" | "stockBalance" | "stockAdjustment" | "stockReservation" | "supplier" | "supplierLedger"
modelProps: "user" | "role" | "otpCode" | "refreshToken" | "bankBranch" | "bankAccount" | "bankAccountTransaction" | "inventory" | "inventoryBankAccount" | "posAccount" | "inventoryTransfer" | "inventoryTransferItem" | "bank" | "order" | "orderItem" | "customer" | "triggerLog" | "productVariant" | "product" | "productBrand" | "productCategory" | "purchaseReceipt" | "purchaseReceiptItem" | "purchaseReceiptPayments" | "salesInvoice" | "salesInvoiceItem" | "salesInvoicePayment" | "stockMovement" | "stockBalance" | "stockAdjustment" | "stockReservation" | "supplier" | "supplierLedger"
txIsolationLevel: TransactionIsolationLevel
}
model: {
@@ -899,72 +898,6 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
}
}
}
BankAccountBalance: {
payload: Prisma.$BankAccountBalancePayload<ExtArgs>
fields: Prisma.BankAccountBalanceFieldRefs
operations: {
findUnique: {
args: Prisma.BankAccountBalanceFindUniqueArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload> | null
}
findUniqueOrThrow: {
args: Prisma.BankAccountBalanceFindUniqueOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
findFirst: {
args: Prisma.BankAccountBalanceFindFirstArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload> | null
}
findFirstOrThrow: {
args: Prisma.BankAccountBalanceFindFirstOrThrowArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
findMany: {
args: Prisma.BankAccountBalanceFindManyArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>[]
}
create: {
args: Prisma.BankAccountBalanceCreateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
createMany: {
args: Prisma.BankAccountBalanceCreateManyArgs<ExtArgs>
result: BatchPayload
}
delete: {
args: Prisma.BankAccountBalanceDeleteArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
update: {
args: Prisma.BankAccountBalanceUpdateArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
deleteMany: {
args: Prisma.BankAccountBalanceDeleteManyArgs<ExtArgs>
result: BatchPayload
}
updateMany: {
args: Prisma.BankAccountBalanceUpdateManyArgs<ExtArgs>
result: BatchPayload
}
upsert: {
args: Prisma.BankAccountBalanceUpsertArgs<ExtArgs>
result: runtime.Types.Utils.PayloadToResult<Prisma.$BankAccountBalancePayload>
}
aggregate: {
args: Prisma.BankAccountBalanceAggregateArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.AggregateBankAccountBalance>
}
groupBy: {
args: Prisma.BankAccountBalanceGroupByArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.BankAccountBalanceGroupByOutputType>[]
}
count: {
args: Prisma.BankAccountBalanceCountArgs<ExtArgs>
result: runtime.Types.Utils.Optional<Prisma.BankAccountBalanceCountAggregateOutputType> | number
}
}
}
Inventory: {
payload: Prisma.$InventoryPayload<ExtArgs>
fields: Prisma.InventoryFieldRefs
@@ -2816,15 +2749,6 @@ export const BankAccountTransactionScalarFieldEnum = {
export type BankAccountTransactionScalarFieldEnum = (typeof BankAccountTransactionScalarFieldEnum)[keyof typeof BankAccountTransactionScalarFieldEnum]
export const BankAccountBalanceScalarFieldEnum = {
bankAccountId: 'bankAccountId',
balance: 'balance',
updatedAt: 'updatedAt'
} as const
export type BankAccountBalanceScalarFieldEnum = (typeof BankAccountBalanceScalarFieldEnum)[keyof typeof BankAccountBalanceScalarFieldEnum]
export const InventoryScalarFieldEnum = {
id: 'id',
name: 'name',
@@ -3684,7 +3608,6 @@ export type GlobalOmitConfig = {
bankBranch?: Prisma.BankBranchOmit
bankAccount?: Prisma.BankAccountOmit
bankAccountTransaction?: Prisma.BankAccountTransactionOmit
bankAccountBalance?: Prisma.BankAccountBalanceOmit
inventory?: Prisma.InventoryOmit
inventoryBankAccount?: Prisma.InventoryBankAccountOmit
posAccount?: Prisma.PosAccountOmit
@@ -58,7 +58,6 @@ export const ModelName = {
BankBranch: 'BankBranch',
BankAccount: 'BankAccount',
BankAccountTransaction: 'BankAccountTransaction',
BankAccountBalance: 'BankAccountBalance',
Inventory: 'Inventory',
InventoryBankAccount: 'InventoryBankAccount',
PosAccount: 'PosAccount',
@@ -199,15 +198,6 @@ export const BankAccountTransactionScalarFieldEnum = {
export type BankAccountTransactionScalarFieldEnum = (typeof BankAccountTransactionScalarFieldEnum)[keyof typeof BankAccountTransactionScalarFieldEnum]
export const BankAccountBalanceScalarFieldEnum = {
bankAccountId: 'bankAccountId',
balance: 'balance',
updatedAt: 'updatedAt'
} as const
export type BankAccountBalanceScalarFieldEnum = (typeof BankAccountBalanceScalarFieldEnum)[keyof typeof BankAccountBalanceScalarFieldEnum]
export const InventoryScalarFieldEnum = {
id: 'id',
name: 'name',