mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
get previuos transaction from database
This commit is contained in:
parent
95303c30e0
commit
1fdd2e1014
@ -9,12 +9,7 @@ import { User } from './User'
|
||||
|
||||
@ObjectType()
|
||||
export class Transaction {
|
||||
constructor(
|
||||
transaction: dbTransaction,
|
||||
user: User,
|
||||
linkedUser: User | null = null,
|
||||
previuosBalance: Decimal = new Decimal(0),
|
||||
) {
|
||||
constructor(transaction: dbTransaction, user: User, linkedUser: User | null = null) {
|
||||
this.id = transaction.id
|
||||
this.user = user
|
||||
this.previous = transaction.previous
|
||||
@ -52,7 +47,10 @@ export class Transaction {
|
||||
this.linkId = transaction.contribution
|
||||
? transaction.contribution.contributionLinkId
|
||||
: transaction.transactionLinkId || null
|
||||
this.previousBalance = previuosBalance.toDecimalPlaces(2, Decimal.ROUND_DOWN)
|
||||
this.previousBalance =
|
||||
(transaction.previousTransaction &&
|
||||
transaction.previousTransaction.balance.toDecimalPlaces(2, Decimal.ROUND_DOWN)) ||
|
||||
new Decimal(0)
|
||||
}
|
||||
|
||||
@Field(() => Int)
|
||||
|
||||
@ -286,14 +286,12 @@ export class TransactionResolver {
|
||||
}
|
||||
|
||||
// transactions
|
||||
userTransactions.forEach((userTransaction, idx) => {
|
||||
userTransactions.forEach((userTransaction) => {
|
||||
const linkedUser =
|
||||
userTransaction.typeId === TransactionTypeId.CREATION
|
||||
? communityUser
|
||||
: involvedUsers.find((u) => u.id === userTransaction.linkedUserId)
|
||||
const previousBalance =
|
||||
idx < userTransactions.length - 1 ? userTransactions[idx + 1].balance : new Decimal(0)
|
||||
transactions.push(new Transaction(userTransaction, self, linkedUser, previousBalance))
|
||||
transactions.push(new Transaction(userTransaction, self, linkedUser))
|
||||
})
|
||||
logger.debug(`TransactionTypeId.CREATION: transactions=${transactions}`)
|
||||
|
||||
|
||||
@ -2,7 +2,6 @@ import { EntityRepository, Repository } from '@dbTools/typeorm'
|
||||
import { Transaction } from '@entity/Transaction'
|
||||
|
||||
import { Order } from '@enum/Order'
|
||||
import { TransactionTypeId } from '@enum/TransactionTypeId'
|
||||
|
||||
@EntityRepository(Transaction)
|
||||
export class TransactionRepository extends Repository<Transaction> {
|
||||
@ -11,22 +10,15 @@ export class TransactionRepository extends Repository<Transaction> {
|
||||
limit: number,
|
||||
offset: number,
|
||||
order: Order,
|
||||
onlyCreation?: boolean,
|
||||
): Promise<[Transaction[], number]> {
|
||||
const query = this.createQueryBuilder('userTransaction')
|
||||
.leftJoinAndSelect(
|
||||
'userTransaction.contribution',
|
||||
'contribution',
|
||||
'userTransaction.id = contribution.transactionId',
|
||||
'userTransaction.previousTransaction',
|
||||
'transaction',
|
||||
'userTransaction.previous = transaction.id',
|
||||
)
|
||||
.where('userTransaction.userId = :userId', { userId })
|
||||
|
||||
if (onlyCreation) {
|
||||
query.andWhere('userTransaction.typeId = :typeId', {
|
||||
typeId: TransactionTypeId.CREATION,
|
||||
})
|
||||
}
|
||||
|
||||
return query
|
||||
.orderBy('userTransaction.balanceDate', order)
|
||||
.limit(limit)
|
||||
|
||||
@ -55,12 +55,7 @@ const virtualLinkTransaction = (
|
||||
contribution: null,
|
||||
...defaultModelFunctions,
|
||||
}
|
||||
return new Transaction(
|
||||
linkDbTransaction,
|
||||
user,
|
||||
null,
|
||||
previousBalance.toDecimalPlaces(2, Decimal.ROUND_DOWN),
|
||||
)
|
||||
return new Transaction(linkDbTransaction, user)
|
||||
}
|
||||
|
||||
const virtualDecayTransaction = (
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user