From f998520d3d65847c68d082c9c3af38f0dfee2037 Mon Sep 17 00:00:00 2001 From: williamfl2007 Date: Fri, 20 Sep 2024 13:35:20 -0300 Subject: [PATCH] Ajuste sincronismo --- src/cron-jobs/cron-jobs.service.ts | 9 ++++++++- .../interfaces/sync-form-ordem.interface.ts | 1 + src/transacao-view/transacao-view.repository.ts | 15 +++++++++++---- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/cron-jobs/cron-jobs.service.ts b/src/cron-jobs/cron-jobs.service.ts index a949d745..89b1b96d 100644 --- a/src/cron-jobs/cron-jobs.service.ts +++ b/src/cron-jobs/cron-jobs.service.ts @@ -263,6 +263,7 @@ export class CronJobsService { /** * Gera na quinta, paga na sexta. */ + //TODO: GERAR PAGAMENTO SEXTA async generateRemessaEmpresa(debug?: ICronjobDebug) { const METHOD = 'generateRemessaEmpresa'; try { @@ -390,7 +391,13 @@ export class CronJobsService { const startDate = subDays(new Date(), 30); const today = new Date(); this.logger.log(`Sincronizando TransacaoViews entre ${formatDateYMD(startDate)} e ${formatDateYMD(today)}`, method); - await this.cnabService.syncTransacaoViewOrdemPgto({ dataOrdem_between: [startDate, today] }); + const consorcios:string[]=[]; + if(method === 'generateRemessaVan'){ + consorcios.push('STPC'); + consorcios.push('STPL'); + } + + await this.cnabService.syncTransacaoViewOrdemPgto({ consorcio: consorcios , dataOrdem_between: [startOfDay(startDate),endOfDay(today)] }); this.logger.log(`Trefa finalizada com sucesso.`, method); } catch (error) { this.logger.error('Erro ao executar tarefa.', error?.stack, method); diff --git a/src/transacao-view/interfaces/sync-form-ordem.interface.ts b/src/transacao-view/interfaces/sync-form-ordem.interface.ts index 84a5a6de..436a587e 100644 --- a/src/transacao-view/interfaces/sync-form-ordem.interface.ts +++ b/src/transacao-view/interfaces/sync-form-ordem.interface.ts @@ -1,5 +1,6 @@ export interface ISyncOrdemPgto { /** [startDate, endDate] */ dataOrdem_between?: [Date, Date]; + consorcio?:string[]; nomeFavorecido?: string[]; } \ No newline at end of file diff --git a/src/transacao-view/transacao-view.repository.ts b/src/transacao-view/transacao-view.repository.ts index 9de71588..a813cbc7 100644 --- a/src/transacao-view/transacao-view.repository.ts +++ b/src/transacao-view/transacao-view.repository.ts @@ -9,6 +9,7 @@ import { IPreviousDaysArgs } from './interfaces/previous-days-args'; import { ISyncOrdemPgto } from './interfaces/sync-form-ordem.interface'; import { ITransacaoView, TransacaoView } from './transacao-view.entity'; import { formatDateYMD } from 'src/utils/date-utils'; +import { endOfDay, startOfDay } from 'date-fns'; export interface TransacaoViewFindRawOptions { where: { @@ -66,10 +67,16 @@ export class TransacaoViewRepository { public async syncOrdemPgto(args?: ISyncOrdemPgto) { const METHOD = 'syncOrdemPgto'; const where: string[] = []; - if (args?.dataOrdem_between) { + if (args?.dataOrdem_between) { const [start, end] = args.dataOrdem_between.map((d) => d.toISOString()); - where.push(`DATE(tv."datetimeTransacao") BETWEEN (DATE('${start}') - INTERVAL '1 DAY') AND '${end}'`); + where.push(`DATE(tv."datetimeTransacao") BETWEEN (DATE('${start}') - INTERVAL '1 DAY') + AND '${end}'`); + } + + if(args?.consorcio){ + where.push(` it."nomeConsorcio" in('${args.consorcio.join("','")}')`) } + if (args?.nomeFavorecido?.length) { where.push(`cf.nome ILIKE ANY(ARRAY['%${args.nomeFavorecido.join("%', '%")}%'])`); } @@ -101,8 +108,8 @@ export class TransacaoViewRepository { WHERE (1=1) ${where.length ? `AND ${where.join(' AND ')}` : ''} ORDER BY tv.id ASC, ita.id DESC ) associados - WHERE id = associados.tv_id - `; + WHERE id = associados.tv_id `; + this.logger.debug('query: ' + compactQuery(query), METHOD); const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect();