From f3d988de7a711a07fdec8a08cf5c83915551c92a Mon Sep 17 00:00:00 2001 From: ilham Date: Wed, 5 Jan 2022 13:56:28 +0700 Subject: [PATCH 1/3] add: filter ub deoisut return --- src/transaction/transaction.controller.ts | 6 ++++++ src/transaction/transaction.service.ts | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/transaction/transaction.controller.ts b/src/transaction/transaction.controller.ts index f7494cb..3bd2522 100644 --- a/src/transaction/transaction.controller.ts +++ b/src/transaction/transaction.controller.ts @@ -227,11 +227,17 @@ export class TransactionController { async findDepositReturnConfirmation( @Query('page') page: number, @Query('pageSize') pageSize: number, + @Query('start') startDate: string, + @Query('end') endDate: string, + @Query('sender') sender: string, @Request() req, ) { const data = await this.transactionService.getAllDepositReturnToUser( req.user.userId, page, + sender, + startDate, + endDate, pageSize, ); diff --git a/src/transaction/transaction.service.ts b/src/transaction/transaction.service.ts index 5ea386e..b96e9c5 100644 --- a/src/transaction/transaction.service.ts +++ b/src/transaction/transaction.service.ts @@ -1019,6 +1019,9 @@ export class TransactionService { async getAllDepositReturnToUser( user: string, page: number, + sender: string, + startDate: string, + endDate: string, pageSize?: number, ) { const baseQuery = this.transactionRepository @@ -1041,6 +1044,22 @@ export class TransactionService { 'userData.name', ]); + if (startDate && endDate) { + baseQuery.andWhere( + 'transaction.created_at between :startDate and :enDate', + { + startDate: new Date(startDate), + enDate: new Date(endDate), + }, + ); + } + + if (sender) { + baseQuery.andWhere('transaction.user = :sender', { + sender, + }); + } + const data = await baseQuery .offset(page * (pageSize || 10)) .limit(pageSize || 10) From 928e7a51ae411f32a82977f2ea5a52b52d947d4b Mon Sep 17 00:00:00 2001 From: ilham Date: Wed, 5 Jan 2022 13:57:03 +0700 Subject: [PATCH 2/3] add: filter ub deoisut return --- src/transaction/transaction.controller.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/transaction/transaction.controller.ts b/src/transaction/transaction.controller.ts index 3bd2522..69151b9 100644 --- a/src/transaction/transaction.controller.ts +++ b/src/transaction/transaction.controller.ts @@ -235,9 +235,9 @@ export class TransactionController { const data = await this.transactionService.getAllDepositReturnToUser( req.user.userId, page, - sender, - startDate, - endDate, + sender == 'null' ? null : sender, + startDate == 'null' ? null : startDate, + endDate == 'null' ? null : endDate, pageSize, ); From 68cd326ca491c5ce88acb5d157da406379a88347 Mon Sep 17 00:00:00 2001 From: ilham Date: Wed, 5 Jan 2022 14:08:29 +0700 Subject: [PATCH 3/3] add: filter deposit return --- src/transaction/transaction.controller.ts | 46 ++++++++++++----------- src/transaction/transaction.service.ts | 23 +++++++++--- 2 files changed, 42 insertions(+), 27 deletions(-) diff --git a/src/transaction/transaction.controller.ts b/src/transaction/transaction.controller.ts index 69151b9..ab90dae 100644 --- a/src/transaction/transaction.controller.ts +++ b/src/transaction/transaction.controller.ts @@ -169,27 +169,6 @@ export class TransactionController { }; } - @Get('deposit-return') - async findDepositReturn( - @Query('page') page: number, - @Query('pageSize') pageSize: number, - @Request() req, - ) { - const [data, count] = - await this.transactionService.getAllDepositReturnFromUser( - req.user.userId, - page, - pageSize, - ); - - return { - data, - count, - statusCode: HttpStatus.OK, - message: 'success', - }; - } - @Get('total-order') async findTotalOrder(@Request() req) { const data = await this.transactionService.getTotalSell(req.user); @@ -223,6 +202,31 @@ export class TransactionController { }; } + @Get('deposit-return') + async findDepositReturn( + @Query('page') page: number, + @Query('pageSize') pageSize: number, + @Query('start') startDate: string, + @Query('end') endDate: string, + @Request() req, + ) { + const [data, count] = + await this.transactionService.getAllDepositReturnFromUser( + req.user.userId, + page, + startDate == 'null' ? null : startDate, + endDate == 'null' ? null : endDate, + pageSize, + ); + + return { + data, + count, + statusCode: HttpStatus.OK, + message: 'success', + }; + } + @Get('deposit-return/confirmation') async findDepositReturnConfirmation( @Query('page') page: number, diff --git a/src/transaction/transaction.service.ts b/src/transaction/transaction.service.ts index b96e9c5..07aa5ad 100644 --- a/src/transaction/transaction.service.ts +++ b/src/transaction/transaction.service.ts @@ -3,7 +3,7 @@ import { DistributeTransactionDto } from './dto/distribute-transaction.dto'; import { OrderTransactionDto } from './dto/order-transaction.dto'; import { InjectRepository } from '@nestjs/typeorm'; import { Transactions } from './entities/transactions.entity'; -import { Connection, EntityNotFoundError, Repository } from 'typeorm'; +import { Between, Connection, EntityNotFoundError, Repository } from 'typeorm'; import { COA } from './entities/coa.entity'; import { TransactionJournal } from './entities/transaction-journal.entity'; import { CoaService } from './coa.service'; @@ -1001,19 +1001,30 @@ export class TransactionService { async getAllDepositReturnFromUser( user: string, page: number, + startDate: string, + endDate: string, pageSize?: number, ) { - return this.transactionRepository.findAndCount({ + const filter = { + user: user, + type: typeTransaction.DEPOSIT_RETURN, + }; + + if (startDate && endDate) { + filter['start'] = Between(new Date(startDate), new Date(endDate)); + } + const baseQuery = this.transactionRepository.findAndCount({ skip: page * (pageSize || 10), take: pageSize || 10, - where: { - user: user, - type: typeTransaction.DEPOSIT_RETURN, - }, + where: filter, order: { createdAt: 'DESC', }, }); + + + + return baseQuery; } async getAllDepositReturnToUser(