vendaweb-api/src/partner/partner.service.ts

558 lines
32 KiB
TypeScript
Raw Normal View History

2025-01-27 20:44:27 +00:00
/*
https://docs.nestjs.com/providers#services
*/
import { Injectable } from '@nestjs/common';
import { connectionOptions } from 'src/configs/typeorm.config';
import { Estparceiro } from 'src/domain/entity/tables/estparceiro.entity';
import { CreatePaymentPartner } from 'src/domain/models/create-payment-partner.model';
import { Customer } from 'src/domain/models/customer.model';
import { Partner } from 'src/domain/models/partner.model';
import { CustomerService } from 'src/sales/customer/customer.service';
import { Connection } from 'typeorm';
@Injectable()
export class PartnerService {
constructor(
private readonly customerService: CustomerService,
) { }
async getPartners(type: string, cpf: string, name: string) {
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
const sql = 'SELECT estparceiro.id as "id" ' +
' ,CASE WHEN estparceiro.tipo = \'M\' THEN \'MESTRE JURUNENSE\' ' +
' WHEN estparceiro.tipo = \'P\' THEN \'PARCEIRO\' ' +
' WHEN estparceiro.tipo = \'B\' THEN \'BELLA OBRA\' ' +
' ELSE \'NÃO INFORMADO\' END as "type" ' +
' ,estparceiro.cpf as "cpf" ' +
' ,estparceiro.nome as "name" ' +
' ,estparceiro.telefone as "phone" ' +
' ,estcategoriaparceiro.descricao as "category" ' +
` ,estparceiro.dtcadastro as "createDate" ` +
` ,func_cad.usuariobd as "userCreate" ` +
` ,estparceiro.dtalteracao as "updateDate" ` +
` ,func_alt.usuariobd as "userUpdate" ` +
' FROM estparceiro, estcategoriaparceiro, pcempr func_cad, pcempr func_alt ' +
' WHERE estparceiro.codcategoria = estcategoriaparceiro.id (+) ' +
' AND estparceiro.codfunccadastro = func_cad.matricula (+) ' +
' AND estparceiro.codfuncalteracao = func_alt.matricula (+) ';
let whereSql = ` AND ( estparceiro.tipo = '${type}' OR '${type}' = 'T' ) `;
if (cpf != null && cpf.length >= 2) {
whereSql += ` AND REGEXP_REPLACE(estparceiro.cpf, '[^0-9]', '') = REGEXP_REPLACE('${cpf}', '[^0-9]', '') `;
}
if (name != null && name.length >= 3) {
whereSql += ` AND estparceiro.nome like '${name}'||'%' `;
}
try {
const partners = await queryRunner.query(sql + whereSql);
return partners;
} catch (error) {
throw error;
} finally {
await queryRunner.release();
await connection.close();
}
}
async getPartner(campo: string) {
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
try {
const sql = ` SELECT estparceiro.id as "id" ` +
` ,estparceiro.nome as "name" ` +
` ,estparceiro.cpf as "cpf" ` +
` ,estparceiro.tipo as "type" ` +
` ,estparceiro.rg as "rg" ` +
` ,estparceiro.regprofissional as "professionalNumber" ` +
` ,estparceiro.telefone as "phone" ` +
` ,estparceiro.email as "email" ` +
` ,estparceiro.chavepix as "pixKey" ` +
` ,estparceiro.compradorpj as "buyer" ` +
` ,estparceiro.codcli as "customerId" ` +
` ,estparceiro.codusur as "sellerId" ` +
` ,estparceiro.banco as "bank" ` +
` ,estparceiro.agencia as "agencia" ` +
` ,estparceiro.conta as "conta" ` +
` ,estparceiro.cep as "zipCode" ` +
` ,estparceiro.endereco as "address" ` +
` ,estparceiro.numero as "number" ` +
` ,estparceiro.complemento as "complement" ` +
` ,estparceiro.bairro as "neighborhood" ` +
` ,estparceiro.cidade as "city" ` +
` ,estparceiro.estado as "state" ` +
` ,estparceiro.codcategoria as "categoryId" ` +
` ,estparceiro.codusurparceiro as "sellerIdPartner" ` +
` ,estparceiro.codpraca as "placeId" ` +
` ,estparceiro.codcategoria as "categoryId" ` +
` ,estparceiro.observacao as "observer1" ` +
` ,estparceiro.observacao2 as "observer2" ` +
` ,estparceiro.codIbge as "ibgeCode" ` +
` ,estparceiro.perccomissao as "commission" ` +
` ,estparceiro.dtcadastro as "createDate" ` +
` ,func_cad.usuariobd as "userCreate" ` +
` ,estparceiro.dtalteracao as "updateDate" ` +
` ,func_alt.usuariobd as "userUpdate" ` +
' FROM estparceiro, pcempr func_cad, pcempr func_alt ' +
` WHERE REGEXP_REPLACE(estparceiro.cpf, '[^0-9]', '') = REGEXP_REPLACE(:1, '[^0-9]', '') ` +
` AND estparceiro.codfunccadastro = func_cad.matricula (+) ` +
` AND estparceiro.codfuncalteracao = func_alt.matricula (+) `;
const partner = await queryRunner.manager.query(sql, [campo]);
return partner[0];
} catch (error) {
console.log('Erro ao consultar parceiro.');
throw error;
} finally {
await queryRunner.release();
await connection.close();
}
}
async createOrUpdatePartner(data: Partner) {
// let estParceiro = await this.getPartner(data.cpf);
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
let estParceiro = await queryRunner.manager.findOne(Estparceiro, {
cpf: data.cpf,
});
const rca = await queryRunner.query("SELECT PCUSUARI.CODUSUR, PCUSUARI.ROWID as \"rid\" FROM PCUSUARI WHERE REGEXP_REPLACE(CPF, '[^0-9]', '') = REGEXP_REPLACE(:1, '[^0-9]', '')",
[data.cpf]);
await queryRunner.startTransaction();
try {
let id = 1;
if (estParceiro != null) {
id = estParceiro.id;
} else {
const queryId = await queryRunner.query('SELECT ESSPARCEIRO.NEXTVAL AS "id" FROM DUAL');
if (queryId.length > 0) {
id = queryId[0].id;
}
}
if (estParceiro == null) {
estParceiro = new Estparceiro();
estParceiro.codfunccadastro = data.userId;
estParceiro.dtcadastro = new Date();
}
estParceiro.id = id;
estParceiro.agencia = data.agencia;
estParceiro.bairro = data.neighborhood;
estParceiro.banco = data.bank;
estParceiro.cep = data.zipCode;
estParceiro.codibge = data.ibgeCode;
estParceiro.chavepix = data.pixKey;
estParceiro.cidade = data.city.toUpperCase();
estParceiro.codcli = data.customerId;
estParceiro.codusur = data.sellerId;
estParceiro.conta = data.conta;
estParceiro.cpf = data.cpf;
estParceiro.email = data.email;
estParceiro.endereco = data.address;
estParceiro.estado = data.state;
estParceiro.nome = data.name.toUpperCase();
estParceiro.numero = data.number;
estParceiro.complemento = data.complement;
estParceiro.observacao = data.observer1;
estParceiro.observacao2 = data.observer2;
// estParceiro.orgaoexp = data.orgaoexp;
estParceiro.rg = data.rg;
estParceiro.regprofissional = data.professionalNumber;
estParceiro.telefone = data.phone;
estParceiro.tipo = data.type;
estParceiro.compradorPj = data.buyer ? 'S' : 'N';
estParceiro.codcli = data.customerId;
estParceiro.codusur = data.sellerId;
estParceiro.codcategoria = data.categoryId;
estParceiro.codpraca = data.placeId;
estParceiro.perccomissao = data.commission;
estParceiro.codfuncalteracao = data.userId;
estParceiro.dtalteracao = new Date();
if (rca !== null && rca.length > 0) {
estParceiro.codusurparceiro = rca[0].CODUSUR;
await queryRunner.manager.save(estParceiro);
}
if (rca == null || rca.length == 0) {
const idSellerPartner = await queryRunner.query(`SELECT NVL(MAX(CODUSUR),20000) + 1 as "id" FROM PCUSUARI WHERE CODUSUR BETWEEN 20000 AND 30000`);
estParceiro.codusurparceiro = idSellerPartner[0].id;
await queryRunner.manager.save(estParceiro);
const sqlCreateRCA = "INSERT INTO PCUSUARI ( CODUSUR, NOME, TIPOVEND, PERCENT2, ENDERECO, CIDADE, ESTADO, CEP, " +
" TELEFONE1, CPF, CI, BLOQUEIO, DTINICIO, DTNASC, BAIRRO, CODSUPERVISOR, EMAIL, " +
" PROXNUMPED, CODFILIAL, PROXNUMPEDFORCA, BLOQCOMIS, CODDISTRIB, ENDERECO2, AREAATUACAO, TIPOCOMISSAO, " +
" USADEBCREDRCA, PROXNUMPEDWEB, TIPOPESSOA, PERMITEADIANTCOMISSAO, CPFAUX, CODCIDADE, PCUSUARI.NUMBANCO, " +
" PCUSUARI.NUMAGENCIA, PCUSUARI.NUMCCORRENTE ) " +
" SELECT :1, ESTPARCEIRO.NOME, 'P', 0, SUBSTR(ESTPARCEIRO.ENDERECO,1,40), ESTPARCEIRO.CIDADE, ESTPARCEIRO.ESTADO, " +
" ESTPARCEIRO.CEP, ESTPARCEIRO.telefone, ESTPARCEIRO.CPF, ESTPARCEIRO.RG, " +
" 'N', TRUNC(SYSDATE) - 1, NULL, SUBSTR(ESTPARCEIRO.BAIRRO,1,25), 5, ESTPARCEIRO.EMAIL, " +
" TO_NUMBER(:2||'0001'), '99', TO_NUMBER(:3||'0001'), " +
" 'N', '1', NULL, NULL, 'P', 'N', TO_NUMBER(:4||'0001'), 'F', 'N', " +
" TO_CHAR(REGEXP_REPLACE(ESTPARCEIRO.CPF,'[^0-9]', ''), '00000000000000'), NULL, " +
" ESTPARCEIRO.BANCO, ESTPARCEIRO.AGENCIA, ESTPARCEIRO.CONTA " +
" FROM ESTPARCEIRO " +
" WHERE ESTPARCEIRO.id = :5";
await queryRunner.query(sqlCreateRCA, [idSellerPartner[0].id, idSellerPartner[0].id,
idSellerPartner[0].id, idSellerPartner[0].id, id]);
}
await queryRunner.commitTransaction();
const customer = await queryRunner.query("SELECT PCCLIENT.CODCLI FROM PCCLIENT WHERE REGEXP_REPLACE(CGCENT, '[^0-9]', '') = REGEXP_REPLACE(:1, '[^0-9]', '')",
[data.cpf]);
if (customer == null || customer.length == 0) {
const newCustomer = new Customer(null,
data.name,
data.name,
data.cpf,
'M',
'',
data.email,
data.zipCode,
data.address,
data.number,
data.complement,
data.neighborhood,
data.city,
data.state,
true,
data.phone,
null,
null,
data.place,
data.sellerId,
data.ibgeCode,
null,
null
);
const resultCustomer = await this.customerService.createCustomer(newCustomer);
const textCustomer = JSON.stringify(resultCustomer);
if (textCustomer.indexOf('customerId') >= 0) {
const customer = JSON.parse(textCustomer);
await queryRunner.startTransaction();
estParceiro.codcli = customer.customerId;
await queryRunner.manager.save(estParceiro);
await queryRunner.commitTransaction();
}
} else {
await queryRunner.startTransaction();
estParceiro.codcli = customer[0].CODCLI;
await queryRunner.manager.save(estParceiro);
await queryRunner.commitTransaction();
}
data.id = id;
return data;
} catch (error) {
if ( queryRunner.isTransactionActive) {
await queryRunner.rollbackTransaction();
}
console.log(error);
throw error;
} finally {
await queryRunner.release();
await connection.close();
}
}
async getPayment(partnerId: number, type: number, month: string, year: string) {
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
try {
const dataApuracao = '01/' + month + '/' + year;
console.log(type);
const sql = `SELECT
EXTRATO.CODPARCEIRO as "partnerId"
,ESTPARCEIRO.NOME as "name"
,ESTPARCEIRO.TELEFONE as "phone"
,EXTRATO.NOMETIPOPARCEIRO as "type"
,ESTPARCEIRO.CPF as "document"
,ESTPARCEIRO.CHAVEPIX as "pixKey"
,EXTRATO.TIPOPARCEIRO as "partnerType"
,sum(case when tipomovimento = 'VENDA' then VLTOTAL else 0 end) as "saleValue"
,sum(case when tipomovimento = 'DEVOLUCAO' then VLTOTAL else 0 end) "devolValue"
,sum(case when SEQ = 1 then extrato.vlsaldo else 0 end) as "previusBalance"
,sum(EXTRATO.VALORCOMISSAO) "commissionValue"
,sum(case when tipomovimento = 'DEPOSITO' then VALORGERADO else 0 end) as "paidValue"
,sum(case when tipomovimento = 'CREDITO' then VALORGERADO else 0 end) as "creditValue"
,SUM(SUM(VLSALDO))
OVER(PARTITION BY EXTRATO.CODPARCEIRO ORDER BY EXTRATO.CODPARCEIRO) as "balance"
FROM ( SELECT 1 AS SEQ,
'6' CODFILIAL,
'SALDO INICIAL' AS tipomovimento,
esvextratoparceiro.tipoparceiro ,
TO_DATE (:1, 'DD/MM/YYYY') DATAVENDA,
NULL AS NUMNOTA,
NULL AS CODUSUR,
NULL AS CLIENTE,
esvextratoparceiro.descricaotipo AS NOMETIPOPARCEIRO,
estparceiro.id CODPARCEIRO,
estparceiro.nome NOMEPARCEIRO,
NULL AS VLTOTAL,
NULL AS PERCCOMISSAO,
NULL AS PERCDESCONTO,
NULL AS VALORCOMISSAO,
NULL AS PERCENTUAL,
NULL AS VALORGERADO,
NULL AS VALORPAGO,
NULL AS DATAPAGTO,
NULL AS TIPOPAGAMENTO,
SUM (esvextratoparceiro.vlsaldo) vlsaldo
FROM esvextratoparceiro, estparceiro
WHERE esvextratoparceiro.codparceiro = estparceiro.id
AND esvextratoparceiro.data < TO_DATE(:2, 'DD/MM/YYYY')
GROUP BY estparceiro.id, estparceiro.nome, estparceiro.tipo, esvextratoparceiro.tipoparceiro, esvextratoparceiro.descricaotipo
UNION ALL
SELECT 2 SEQ,
esvextratoparceiro.codfilial,
esvextratoparceiro.tipomovimento,
esvextratoparceiro.tipoparceiro,
esvextratoparceiro.data,
esvextratoparceiro.numnota,
esvextratoparceiro.nomevendedor,
esvextratoparceiro.cliente,
esvextratoparceiro.descricaotipo,
esvextratoparceiro.codparceiro,
esvextratoparceiro.nomeparceiro,
esvextratoparceiro.vltotal,
esvextratoparceiro.perccomissao,
esvextratoparceiro.percentual_desconto,
esvextratoparceiro.vlcomissao,
esvextratoparceiro.perccomissao,
esvextratoparceiro.valorgerado,
esvextratoparceiro.valorpago,
esvextratoparceiro.dtpagto,
esvextratoparceiro.tipopagto,
esvextratoparceiro.vlsaldo
FROM esvextratoparceiro
WHERE esvextratoparceiro.data BETWEEN TO_DATE(:3, 'DD/MM/YYYY')
AND last_day(TO_DATE(:4, 'DD/MM/YYYY'))) extrato, ESTPARCEIRO
WHERE EXTRATO.CODPARCEIRO = ESTPARCEIRO.ID
AND ( EXTRATO.CODPARCEIRO = :5 OR :6 = -1 )
AND ( EXTRATO.TIPOPARCEIRO = :7 OR :8 = 99 )
GROUP BY
EXTRATO.CODPARCEIRO
,ESTPARCEIRO.NOME
,ESTPARCEIRO.TELEFONE
,EXTRATO.TIPOPARCEIRO
,EXTRATO.NOMETIPOPARCEIRO
,ESTPARCEIRO.CPF
,ESTPARCEIRO.CHAVEPIX
,EXTRATO.TIPOPARCEIRO
ORDER BY extrato.CODPARCEIRO`;
const data = await queryRunner.query(sql,
[dataApuracao, dataApuracao, dataApuracao, dataApuracao,
partnerId, partnerId, type, type]);
// const sql = `SELECT ` +
// ` ESVCOMISSAOPARCEIRO.CODPARCEIRO as "partnerId" ` +
// ` ,ESVCOMISSAOPARCEIRO.NOMEPARCEIRO as "name" ` +
// ` ,ESVCOMISSAOPARCEIRO.TELEFONE as "phone" ` +
// ` ,ESVCOMISSAOPARCEIRO.TIPOPARCEIRO as "typePartner" ` +
// ` ,ESVCOMISSAOPARCEIRO.DESCRICAOTIPO as "type" ` +
// ` ,SUM(ESVCOMISSAOPARCEIRO.VLTOTAL) as "saleValue" ` +
// ` ,SUM(ESVCOMISSAOPARCEIRO.VLCOMISSAO) as "comissionValue" ` +
// ` ,(NVL((SELECT sum(ESTSALDOPARCEIRO.VALOR) FROM ESTSALDOPARCEIRO ` +
// ` WHERE ESTSALDOPARCEIRO.CODPARCEIRO = ESVCOMISSAOPARCEIRO.CODPARCEIRO ` +
// ` AND ESTSALDOPARCEIRO.DTVENC BETWEEN TO_DATE(:1, 'DD/MM/YYYY') ` +
// ` AND LAST_DAY(TO_DATE(:2, 'DD/MM/YYYY'))),0)) as "prevValue" ` +
// ` ,NVL((SELECT SUM(ESTPAGTOPARCEIRO.VLPAGTO) FROM ESTPAGTOPARCEIRO ` +
// ` WHERE ESTPAGTOPARCEIRO.CODPARCEIRO = ESVCOMISSAOPARCEIRO.CODPARCEIRO ` +
// ` AND ESTPAGTOPARCEIRO.MES = :3 ` +
// ` AND ESTPAGTOPARCEIRO.ANO = :4),0) as "paymentValue" ` +
// ` ,( SUM(ESVCOMISSAOPARCEIRO.VLCOMISSAO) + ` +
// ` NVL((SELECT SUM(ESTSALDOPARCEIRO.VALOR) FROM ESTSALDOPARCEIRO ` +
// ` WHERE ESTSALDOPARCEIRO.CODPARCEIRO = ESVCOMISSAOPARCEIRO.CODPARCEIRO ` +
// ` AND ESTSALDOPARCEIRO.DTVENC BETWEEN TO_DATE(:5, 'DD/MM/YYYY') ` +
// ` AND LAST_DAY(TO_DATE(:6, 'DD/MM/YYYY'))),0) - ` +
// ` NVL((SELECT SUM(ESTPAGTOPARCEIRO.VLPAGTO) FROM ESTPAGTOPARCEIRO ` +
// ` WHERE ESTPAGTOPARCEIRO.CODPARCEIRO = ESVCOMISSAOPARCEIRO.CODPARCEIRO ` +
// ` AND ESTPAGTOPARCEIRO.MES = :7 ` +
// ` AND ESTPAGTOPARCEIRO.ANO = :8),0) ) as "valueForPayment" ` +
// ` FROM ESVCOMISSAOPARCEIRO ` +
// ` WHERE ESVCOMISSAOPARCEIRO.DTSAIDA BETWEEN :9 AND LAST_DAY(:10) ` +
// ` AND ( ESVCOMISSAOPARCEIRO.CODPARCEIRO = :11 OR :12 = -1 ) ` +
// ` AND ( ESVCOMISSAOPARCEIRO.TIPOPARCEIRO = :13 OR :14 = 99 ) ` +
// ` GROUP BY ESVCOMISSAOPARCEIRO.CODPARCEIRO, ESVCOMISSAOPARCEIRO.TIPOPARCEIRO, ` +
// ` ESVCOMISSAOPARCEIRO.DESCRICAOTIPO, ESVCOMISSAOPARCEIRO.NOMEPARCEIRO, ESVCOMISSAOPARCEIRO.TELEFONE `;
return data;
} catch (error) {
console.log(error);
} finally {
await queryRunner.release();
await connection.close();
}
}
async createPayment(createPayments: CreatePaymentPartner[]) {
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
try {
for (const createPayment of createPayments) {
const date = new Date(createPayment.dueDate);
const day = ('00' + date.getDate()).slice(-2);
const month = ('00' + ( date.getMonth() + 1 )).slice(-2);
const year = date.getFullYear();
const dueDate = day + '/' + month + '/' + year;
console.log('data de vencimento: ' + dueDate);
console.log(JSON.stringify(createPayment));
await queryRunner
.query("BEGIN ESK_VENDA.GERAR_COMISSAO_PARCEIROS(:1, :2, :3, :4, :5); END;",
[createPayment.partnerId, createPayment.month, createPayment.year,
dueDate, createPayment.userId]);
}
} finally {
await queryRunner.release();
await connection.close();
}
}
async getExtractPartner(partnerId: number, start: Date, end: Date) {
const connection = new Connection(connectionOptions);
await connection.connect();
const queryRunner = connection.createQueryRunner();
await queryRunner.connect();
const dateStart = ( "00" + start.getDate().toString()).slice(-2) + '/' + ("00" + ((start.getMonth() + 1).toString())).slice(-2) + '/' + start.getFullYear();
const dateEnd = ( "00" + end.getDate().toString()).slice(-2) + '/' + ("00" + ((end.getMonth() + 1).toString())).slice(-2) + '/' + end.getFullYear();
try {
const sql = `SELECT EXTRATO."seq"
,EXTRATO."store"
,EXTRATO."type"
,EXTRATO."typePartner"
,EXTRATO."dateSale"
,EXTRATO."number"
,EXTRATO."seller"
,EXTRATO."customer"
,EXTRATO."descryptionTypePartner"
,EXTRATO."partnerId"
,EXTRATO."namePartner"
,EXTRATO."valueSale"
,EXTRATO."pecentCommission"
,EXTRATO."percentOff"
,EXTRATO."valueCommission"
,EXTRATO."percent"
,EXTRATO."valueCreate"
,EXTRATO."valuePaid"
,EXTRATO."datePaid"
,EXTRATO."paidType"
,SUM(SUM(VLSALDO))
OVER(ORDER BY EXTRATO."dateSale", EXTRATO."store", EXTRATO."number") as "balance"
FROM
(
SELECT 1 as "seq"
,'6' as "store"
,'SALDO INICIAL' as "type"
,CASE WHEN ESTPARCEIRO.TIPO = 'M' THEN 1 ELSE 2 END as "typePartner"
,TO_DATE(:1, 'DD/MM/YYYY') as "dateSale"
,NULL as "number"
,NULL as "seller"
,NULL as "customer"
,NULL as "descryptionTypePartner"
,ESTPARCEIRO.ID as "partnerId"
,ESTPARCEIRO.NOME as "namePartner"
,NULL as "valueSale"
,NULL as "pecentCommission"
,NULL as "percentOff"
,NULL as "valueCommission"
,NULL as "percent"
,NULL as "valueCreate"
,NULL as "valuePaid"
,NULL as "datePaid"
,NULL as "paidType"
,SUM(ESVEXTRATOPARCEIRO.VLSALDO) VLSALDO
FROM ESVEXTRATOPARCEIRO, ESTPARCEIRO
WHERE ESVEXTRATOPARCEIRO.CODPARCEIRO = :2
AND ESVEXTRATOPARCEIRO.CODPARCEIRO = ESTPARCEIRO.ID
AND ESVEXTRATOPARCEIRO.DATA < TO_DATE(:3, 'DD/MM/YYYY')
GROUP BY ESTPARCEIRO.ID, ESTPARCEIRO.NOME, ESTPARCEIRO.TIPO
UNION ALL
SELECT 2 as "seq"
,ESVEXTRATOPARCEIRO.codfilial as "store"
,ESVEXTRATOPARCEIRO.TIPOMOVIMENTO as "type"
,ESVEXTRATOPARCEIRO.TIPOPARCEIRO as "typePartner"
,ESVEXTRATOPARCEIRO.DATA as "dateSale"
,ESVEXTRATOPARCEIRO.NUMNOTA as "number"
,ESVEXTRATOPARCEIRO.NOMEVENDEDOR as "seller"
,ESVEXTRATOPARCEIRO.cliente as "customer"
,ESVEXTRATOPARCEIRO.DESCRICAOTIPO "descryptionTypePartner"
,ESVEXTRATOPARCEIRO.CODPARCEIRO as "partnerId"
,ESVEXTRATOPARCEIRO.NOMEPARCEIRO as "namePartner"
,ESVEXTRATOPARCEIRO.VLTOTAL as "valueSale"
,ESVEXTRATOPARCEIRO.PERCCOMISSAO as "pecentCommission"
,ESVEXTRATOPARCEIRO.PERCENTUAL_DESCONTO "percentOff"
,ESVEXTRATOPARCEIRO.VLCOMISSAO as "valueCommission"
,ESVEXTRATOPARCEIRO.PERCCOMISSAO as "percent"
,ESVEXTRATOPARCEIRO.VALORGERADO as "valueCreate"
,ESVEXTRATOPARCEIRO.VALORPAGO as "valuePaid"
,ESVEXTRATOPARCEIRO.DTPAGTO as "datePaid"
,ESVEXTRATOPARCEIRO.TIPOPAGTO as "paidType"
,ESVEXTRATOPARCEIRO.VLSALDO
FROM ESVEXTRATOPARCEIRO
WHERE ESVEXTRATOPARCEIRO.CODPARCEIRO = :4
AND ESVEXTRATOPARCEIRO.DATA BETWEEN TO_DATE(:5, 'DD/MM/YYYY') AND TO_DATE(:6, 'DD/MM/YYYY')
) EXTRATO
GROUP BY EXTRATO."seq"
,EXTRATO."store"
,EXTRATO."type"
,EXTRATO."typePartner"
,EXTRATO."dateSale"
,EXTRATO."number"
,EXTRATO."seller"
,EXTRATO."customer"
,EXTRATO."descryptionTypePartner"
,EXTRATO."partnerId"
,EXTRATO."namePartner"
,EXTRATO."valueSale"
,EXTRATO."pecentCommission"
,EXTRATO."percentOff"
,EXTRATO."valueCommission"
,EXTRATO."percent"
,EXTRATO."valueCreate"
,EXTRATO."valuePaid"
,EXTRATO."datePaid"
,EXTRATO."paidType"
ORDER BY EXTRATO."seq", EXTRATO."dateSale", EXTRATO."number" `;
const movs = await queryRunner.manager.query(sql, [ dateStart, partnerId, dateStart,
partnerId, dateStart, dateEnd ]);
return movs;
} catch (error) {
throw error;
} finally {
await queryRunner.release();
await connection.close();
}
}
}