Skip to content

Commit

Permalink
wip: transacao
Browse files Browse the repository at this point in the history
  • Loading branch information
yxuo committed Feb 28, 2024
1 parent 056e64d commit 5298c80
Show file tree
Hide file tree
Showing 55 changed files with 938 additions and 356 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export class BqTransacao {
export class BigqueryTransacao {
id: number;
data: Date;
hora: number;
Expand All @@ -7,8 +7,10 @@ export class BqTransacao {
datetime_captura: Date;
modo: string;
id_consorcio: string;
/** Nome do consórcio */
consorcio: string;
id_operadora: string;
/** Nome da operadora */
operadora: string;
servico: string;
sentido: string;
Expand Down
2 changes: 1 addition & 1 deletion src/bigquery/interfaces/bq-find-transacao-by.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ export interface IBqFetchTransacao {
limit?: number;
offset?: number;
getToday?: boolean;
previousDays?: boolean;
previousDaysOnly?: boolean;
}
3 changes: 3 additions & 0 deletions src/bigquery/interfaces/bq-get-week-transacao-by.interface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export interface IBqGetWeekTransacao {
cpfCnpj: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ import { Provider } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import { BigqueryService } from 'src/bigquery/bigquery.service';
import { SettingsService } from 'src/settings/settings.service';
import { BqTransacaoRepositoryService } from './bq-transacao.repository.service';
import { BigqueryTransacaoRepository } from './bigquery-transacao.repository';
import { ConfigService } from '@nestjs/config';
import { resolve } from 'path';
import { config } from 'dotenv';
import { BigqueryEnvironment } from 'src/settings/enums/bigquery-env.enum';
import { SettingEntity } from 'src/settings/entities/setting.entity';

describe('BqTransacaoRepositoryService', () => {
describe('BigqueryTransacaoRepositoryService', () => {
let settingsService: SettingsService;
let bqTransacaoRepository: BqTransacaoRepositoryService;
let bqTransacaoRepository: BigqueryTransacaoRepository;
const mockBqGoogleCredentials = () => ({
'google.clientApiType': process.env.GOOGLE_CLIENT_API_TYPE,
'google.clientApiProjectId': process.env.GOOGLE_CLIENT_API_PROJECT_ID,
Expand Down Expand Up @@ -51,14 +51,14 @@ describe('BqTransacaoRepositoryService', () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
BigqueryService,
BqTransacaoRepositoryService,
BigqueryTransacaoRepository,
settingsServiceMock,
configServiceMock,
],
}).compile();

settingsService = module.get(SettingsService);
bqTransacaoRepository = module.get(BqTransacaoRepositoryService);
bqTransacaoRepository = module.get(BigqueryTransacaoRepository);
});

afterEach(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ import { TRIntegrationTypeMap } from 'src/ticket-revenues/maps/ticket-revenues.m
import { isCpfOrCnpj } from 'src/utils/cpf-cnpj';
import { QueryBuilder } from 'src/utils/query-builder/query-builder';
import { BQSInstances, BigqueryService } from '../bigquery.service';
import { BqTransacao } from '../entities/transacao.bq-entity';
import { BigqueryTransacao } from '../entities/transacao.bigquery-entity';
import { IBqFetchTransacao } from '../interfaces/bq-find-transacao-by.interface';
import { BqTsansacaoTipoIntegracaoMap } from '../maps/bq-transacao-tipo-integracao.map';
import { BqTransacaoTipoPagamentoMap } from '../maps/bq-transacao-tipo-pagamento.map';
import { BqTransacaoTipoTransacaoMap } from '../maps/bq-transacao-tipo-transacao.map';

@Injectable()
export class BqTransacaoRepositoryService {
private logger: Logger = new Logger('BqTransacaoRepositoryService', {
export class BigqueryTransacaoRepository {
private logger: Logger = new Logger('BigqueryTransacaoRepository', {
timestamp: true,
});

Expand All @@ -25,14 +25,15 @@ export class BqTransacaoRepositoryService {

public async findTransacaoBy(
filter?: IBqFetchTransacao,
): Promise<BqTransacao[]> {
const transacoes: BqTransacao[] = (await this.fetchTransacao(filter)).data;
): Promise<BigqueryTransacao[]> {
const transacoes: BigqueryTransacao[] = (await this.fetchTransacao(filter))
.data;
return transacoes;
}

private async fetchTransacao(
args?: IBqFetchTransacao,
): Promise<{ data: BqTransacao[]; countAll: number }> {
): Promise<{ data: BigqueryTransacao[]; countAll: number }> {
const qArgs = await this.getQueryArgs(args);
const query =
`
Expand Down Expand Up @@ -80,7 +81,7 @@ export class BqTransacaoRepositoryService {

const count: number = queryResult[0].count;
// Remove unwanted keys and remove last item (all null if empty)
let transacoes: BqTransacao[] = queryResult.map((i) => {
let transacoes: BigqueryTransacao[] = queryResult.map((i) => {
delete i.status;
delete i.count;
return i;
Expand Down Expand Up @@ -147,7 +148,7 @@ export class BqTransacaoRepositoryService {
`DATE(t.datetime_processamento) <= DATE('${endDate}')`,
);
}
if (args?.previousDays === true) {
if (args?.previousDaysOnly === true) {
queryBuilder.pushAND(
'DATE(t.datetime_processamento) > DATE(t.datetime_transacao)',
);
Expand Down Expand Up @@ -202,8 +203,8 @@ export class BqTransacaoRepositoryService {
/**
* Convert id or some values into desired string values
*/
private mapBqTransacao(transacoes: BqTransacao[]): BqTransacao[] {
return transacoes.map((item: BqTransacao) => {
private mapBqTransacao(transacoes: BigqueryTransacao[]): BigqueryTransacao[] {
return transacoes.map((item: BigqueryTransacao) => {
const tipo_transacao = item.tipo_transacao;
const tipo_pagamento = item.tipo_pagamento;
const tipo_integracao = item.tipo_integracao;
Expand Down
27 changes: 27 additions & 0 deletions src/bigquery/services/bigquery-transacao.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { Injectable, Logger } from '@nestjs/common';
import { nextFriday } from 'date-fns';
import { getPaymentWeek } from 'src/utils/payment-date-utils';
import { BigqueryTransacao } from '../entities/transacao.bigquery-entity';
import { BigqueryTransacaoRepository } from '../repositories/bigquery-transacao.repository';

@Injectable()
export class BigqueryTransacaoService {
private logger: Logger = new Logger('BigqueryTransacaoService', {
timestamp: true,
});

constructor(
private readonly bigqueryTransacaoRepository: BigqueryTransacaoRepository,
) {}

/**
* Get data from current payment week (from thu to wed)
*/
public async getTransacaoOfCurrentWeek(): Promise<BigqueryTransacao[]> {
const paymentWeek = getPaymentWeek(nextFriday(new Date()));
return this.bigqueryTransacaoRepository.findTransacaoBy({
startDate: paymentWeek.startDate,
endDate: paymentWeek.endDate,
});
}
}
69 changes: 69 additions & 0 deletions src/cnab/dto/save-cliente-favorecido.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
import { IsNotEmpty, ValidateIf } from 'class-validator';

function isCreate(object: SaveClienteFavorecidoDto): boolean {
return object.id_cliente_favorecido === undefined;
}

export class SaveClienteFavorecidoDto {
id_cliente_favorecido?: number;

@ValidateIf(isCreate)
@IsNotEmpty()
nome?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
cpf_cnpj?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
cod_banco?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
agencia?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
dv_agencia?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
conta_corrente?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
dv_conta_corrente?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
logradouro?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
numero?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
complemento?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
bairro?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
cidade?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
cep?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
complemento_cep?: string;

@ValidateIf(isCreate)
@IsNotEmpty()
uf?: string;
}
26 changes: 0 additions & 26 deletions src/cnab/entities/detalhe-a.entity.ts

This file was deleted.

13 changes: 0 additions & 13 deletions src/cnab/entities/detalhe-b.entiy.ts

This file was deleted.

26 changes: 0 additions & 26 deletions src/cnab/entities/header-arquivo.entity.ts

This file was deleted.

18 changes: 0 additions & 18 deletions src/cnab/entities/header-lote.entity.ts

This file was deleted.

21 changes: 0 additions & 21 deletions src/cnab/entities/item-transacao.entity.ts

This file was deleted.

6 changes: 0 additions & 6 deletions src/cnab/entities/transacao-cliente-item.entity.ts

This file was deleted.

8 changes: 8 additions & 0 deletions src/cnab/entity/cliente-favorecido.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,12 @@ export class ClienteFavorecido extends EntityHelper {

@Column({ type: String, unique: false, nullable: true, length: 2 })
uf: string;

public getLogInfo(showName?: boolean): string {
if (showName === undefined) {
showName = false;
}
const response = `#${this.cpf_cnpj}` + showName ? ` '${this.nome}'` : '';
return response;
}
}
Loading

0 comments on commit 5298c80

Please sign in to comment.