VirtualAge-ETL-SQL-padrao » Histórico » Versão 48
« Anterior -
Versão 48/50
(diff) -
Próximo » -
Versão atual
paulo, 31/05/2023 14:12 h
Virtual Age API V1 - ETL¶
Índice- GEOvendas
- GEO - Representantes
- GEO - Representante Gerente
- GEO - Municípios do Representante
- GEO - Municípios do ERP
- GEO - Clientes e Prospects
- GEO - Cliente Dos Representantes
- GEO - Marcas do Cliente
- GEO - Coleções
- GEO - Linhas de Produto
- GEO - Marcas
- GEO - Vendas
- GEO - Faturamento - Contrato
- GEO - Meta do Representante
- GEO - Meta do Escritório
- GEO - Estoque Centralizado
- GEO - Clientes Inadimplentes
- GEO - Condição de Venda
- Força de Vendas
- FV - Tabela de Preço
- FV - Tabela de Preço por Representante
- FV - Tabela de Preço - Produto
- FV - Tabela de Preço - Política - Desconto Comercial
- FV - Tabela de Preço - Política - Desconto Financeiro
- FV - Tabela de Preço - Política - Desconto Antecipação
- FV - Tabela de Preço - Política - Prazo Adicional
- FV - Tabela de Preço - Política - Desconto Volume
- FV - Tabela de Preço - Política - Preços por volume
- FV - Títulos Em Aberto
- FV - Condição de Venda
- FV - Cota de estoque - Por representante
- FV - Tipo de Nota
- FV - Tipo de Cobrança
- FV - Comissões
- FV - Comissões - Extrato Resumo
- FV - Comissões - Extrato Detalhado
- FV - Clientes
- FV - Clientes - Campos Customizados
- FV - Clientes - Locais de Entrega
- FV - Clientes - Ramos de Atividade
- FV - Clientes - Grupos de Cliente
- FV - Clientes - Condições de venda
- FV - Clientes - Marcas
- FV - Clientes - Marcas Concorrentes
- FV - Produtos - Gold Be
- FV - Produtos
- FV - Produtos - Grades
- FV - Produtos - Sortimentos
- FV - Produtos Skus
- FV - Produto - Código Reduzido
- FV - Produto - EAN13
- FV - Bloqueio de Referências
- FV - Pedido - Capa
- FV - Pedidos por Referência
- FV - Listagem de Pedidos - Capa
- FV - Listagem de Pedidos - Detalhado
- FV - Listagem de Pedidos - Itens
- FV - Listagem de Pedidos - Notas
- FV - Listagem de Pedidos - Observações
- FV - Listagem de Pedidos - Histórico
- FV - Estoque
- FV - Lote Entrega
- FV - Lotes de Faturamento
- FV - Cálculo substituição tributária
- FV - Grupos substituição tributária
- FV - Integração Valor de Frete por UF
- FV - Tabela de Preço SKU
- FV - Tabela de Preço - Política - Desconto Adicional de Lote
- FV - Listagem de Pedidos em Aberto - Capa
- FV - Listagem de Pedidos em Aberto - Detalhado
- FV - Listagem de Pedidos em Aberto - Itens
- FV - SKUs Pronta Entrega e Programado
- Business to Business (B2B)
- B2B - Produtos
- B2B - Produtos - Grades
- B2B - Produtos - Grade Fechada
- B2B - Produtos - Sortimentos
- B2B - Produtos - Tabela de Preço
- B2B - Produtos - Tabela de Preço por SKU
- B2B - Produtos - Estoque
- B2B - Produtos - Pocket
- B2B - Pedido - Capa
- B2B - Pedido - Histórico
- B2B - Pedido - Detalhe
- B2B - Pedido - Itens
- B2B - Cliente
- B2B - Representantes - Clientes
- B2B - Clientes - Representantes
- B2B - Comissão por Repres/Cliente/Marca
- B2B - Condição de Venda
- B2B - Bloqueio Referências
- B2B - Boletos - Consulta Cliente
- B2B - Boletos - Listagem
- B2B - Boletos - Detalhado
- B2B - DANFE- Listagem
- B2B - DANFE- Itens da Nota
- B2B - DANFE- XML
- B2B - Lote de Faturamento
- B2B - Produto SKU - Cód. Barras
- B2B - Frete
- B2B - Espelho Nota de Devolução
- B2B - Produto Volume Valor por Referência
- B2B - Substituição Tributária
- B2B - Pedido - Recompra
- CRM
- CRM - Dados Cadastrais do Cliente
- CRM - Pesquisa por Nome de Cliente
- CRM - Pesquisa Avançada
- CRM - Lista de Pedidos do Cliente
- CRM - Pedido - Detalhado
- CRM - Pedido - Itens
- CRM - Pedido - NFs
- CRM - Informações Financeiras
- CRM - Informações Financeiras por Situação
- CRM - Informações Financeiras - Ocorrências
- CRM - Clientes do Grupo
- CRM - Lista de Pedidos Representante
- CRM - Lista de Clientes do Itinerário
GEO - Representantes¶
Documentação: Representantes
select
'1' as codEmpresa
, rep.cdpessoa as codRepres
, rep.nmpessoa as nome
, regexp_replace(pt.nrtelefone, '[^0-9]', '', 'g') as telefone
, pm.dsemail as email
, pe.nmlogradouro as endereco
, pe.dsbairro as bairro
, pe.cdcep as CEP
, pe.NMMUNICIPIO as Cidade
, pe.ufsigla as UF
, coalesce(im.codibge,'1200351') as codIBGE --definir um codIbge padrão com o cliente para quando for NULL
, case when (rep.ininativo = 'TRUE') then 0 else 1 end as situacao
, null as CodRepresAgrupador
, null as telefone2
, null as telefone3
, null as codigoAdministrador
, null as cnpj
, null as codAgrupadorEscritorio
, null as flagAgrupadorMaster
, null as percComissa
, null as codigoPessoaFisica
, rep.nmpessoa as nomePessoaFisica
, null as senhaAPi
, null as Origem
, rep.nmpessoa as fantasia
, null as empresaIntegracaoPedido
, null as marcas
, null as flagPermiteVendaPorFamilia
from representantevaentity rep
left join
pessoaenderecovaentity pe
on pe.cdpessoa = rep.cdpessoa
left join
vpesconsultavaentity vpc
on vpc.cdpessoa = rep.cdpessoa
left join
etlcidade im
on UPPER(im.siglaUF) = UPPER(pe.ufsigla)
and (
(REPLACE(REPLACE(UPPER(im.nome), ' ', ''), '''', '') = REPLACE(REPLACE(UPPER(pe.nmmunicipio), ' ', ''), '''', ''))
OR (REPLACE(REPLACE(UPPER(im.nome), ' ', ''), '''', 'O') = REPLACE(REPLACE(UPPER(pe.nmmunicipio), ' ', ''), '''', ''))
)
left join
pessoatelefonevaentity pt
on pt.cdpessoa = rep.cdpessoa and pt.inpadrao = 'TRUE'
left join
pessoaemailvaentity pm
on pm.cdpessoa = rep.cdpessoa and pm.inpadrao = 'TRUE'
GEO - Representante Gerente¶
Documentação: Representante Gerente
Adicionar SQL
GEO - Municípios do Representante¶
Documentação: Municípios do Representante
Adicionar SQL
GEO - Municípios do ERP¶
Documentação: Municípios do ERP
Adicionar o sql
GEO - Clientes e Prospects¶
Documentação: Clientes e Prospects
select
'1' codEmpresa
, COALESCE(im.codibge, '4127403') as codIBGE --CONFIRMAR COM O CLIENTE UM IBGE PADRÃO
, p.cdpessoa as codCliente
, 1 as tipo /* 1 - Cliente, 2 - Prospect*/
, p.nmpessoa as nome
, (case when (p.ininativo = 'TRUE') then 0 else 1 end) as situacao
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') as codRepres1
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 1), '0') as codRepres2
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 2), '0') as codRepres3
, regexp_replace(pt.nrtelefone, '[^0-9]', '', 'g') as telefone
, pm.dsemail as email
, pe.nmlogradouro as endereco
, pe.dsbairro as bairro
, pe.cdcep as CEP
, (case when v.dataCadastro is null then p.dtcadastro else v.dataCadastro end) as dataCadastro
, coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) as cnpjCpf
, pmc.dsemail as emailCobranca
, pe.dsbairro as nomeDistritoBairro
, pts.nrtelefone as celular
, pj.nrinscestl as inscricaoEstadual
, pe.nrlogradouro as enderecoNumero
, pe.dscomplemento as complemento
, null as IndicePontualidade
, null as telefone2
, null as telefoneCobranca
, case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end as grupoCliente
, case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end as codClientePrincipal
, null as situacaoEdt
, (select pg.nmpessoa from pessoavaentity pg where pg.cdempresa = vpc.cdempresacad and pg.cdpessoa = vpc.cdcoligador) as nomeGrupoCliente
, (case when coalesce(titulos_em_atraso,0) > 0 then 1 else 0 end) as flagInadimplente
, (pe.cdmunicipio || ' - ' || pe.nmmunicipio) as cidade
, pe.ufsigla as uf
, pj.nmfantasia as nomeFantasia
, null as ramoAtividade
, null as dataPrimeiraCompra
, null as dataUltimaCompra
, null as maiorCompra
, null as maiorAcumulado
, null as codClienteERP
, null as codRamoAtividade
, null as limiteCredito
, null as ultimoFaturamento
, null as dataReativacao
, null as codSitCreditoERP
, null as descSitCreditoERP
, null as motivoInativo
, null as diasVencimentoTitulo
, null as socios
, null as cidadeGrupoCliente
, null as classificacaoERP
, null as instagram
, null as facebook
, null as marcasLiberadas
, pmc.dsemail as emailNfe
FROM pessoavaentity p
inner join
pessoaenderecovaentity pe
on pe.cdempresa = p.cdempresa and pe.cdpessoa = p.cdpessoa
inner join
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
LEFT join
ETLCidade im
on im.codCidade = pe.cdMunicipio
LEFT join
pessoatelefonevaentity pt
on pt.cdempresa = p.cdempresa
AND pt.cdpessoa = p.cdpessoa
AND pt.id = ( SELECT MIN(pt2.id)
FROM pessoatelefonevaentity pt2
WHERE pt.cdempresa = pt2.cdempresa
AND pt.cdpessoa = pt2.cdpessoa
)
left join
pessoaemailvaentity pm
on pm.cdempresa = p.cdempresa
and pm.cdpessoa = p.cdpessoa
and pm.inpadrao = 'TRUE'
left join
pessoaemailvaentity pmc
on pmc.cdempresa = p.cdempresa
and pmc.cdpessoa = p.cdpessoa
and pmc.cdtipoemail = 3 -- CONFIRMAR QUAL TIPO DE E-MAIL É O EMAIL DE NFE/COBRANCA
left join
pessoatelefonevaentity pts
on pts.cdempresa = p.cdempresa
and pts.cdpessoa = p.cdpessoa
and pts.cdtipofone = 4 -- CONFIRMAR COM O CLIENTE QUAL É O CÓDIGO DO TELEFONE CELULAR
left join
pessoajuridicavaentity pj
on pj.cdempresa = p.cdempresa
and pj.cdpessoa = p.cdpessoa
left join
(select codcliente::int as codcliente
, codempresa::int as codempresa
, count(*) as titulos_em_atraso
from etltitulo
where situacao = '1'
and (dataVencimento::date + 28) < (current_date) -- CONFIRMAR COM O CLIENTE QUANTOS DIAS CONSIDERA INADIMPLENTE
group by codcliente
, codempresa having sum(valor) > 3000) as inad -- CONFIRMAR COM O CLIENTE SE INADIMPLENTE É ACIMA DE 3 MIL REAIS DEVENDO
on inad.codcliente = p.cdpessoa
and inad.codempresa = p.cdempresa
left join
(SELECT v.cdcliente, MIN(v.dtpedido) as dataCadastro FROM vendavaentity v GROUP BY v.cdcliente) as v
on v.cdcliente = p.cdpessoa
where vpc.incliente = 'TRUE'
AND coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') is not null
and coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) is not null
AND pe.cdcep <> '99999999'
AND length(coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj)) >= 14 -- CONFIRMAR COM O CLIENTE SE É PARA PUXAR SÓ CNPJ
GEO - Cliente Dos Representantes¶
Documentação: Cliente Dos Representantes
select '1' codempresa,
cdpessoa,
cdrepresentant
from pessoareprclientevaentity
GEO - Marcas do Cliente¶
Documentação: Marcas do Cliente
Adicionar SQL
GEO - Coleções¶
Documentação: Coleções
select
'1' as codEmpresa
, cdclassificacao as codColecao
, dsclassificacao as nome
FROM produtoclassificacaovaentity
where cdtipoclass = 300 -- CONFIRMAR CÓDIGO DE COLEÇÃO COM O CLIENTE
group by cdclassificacao
, dsclassificacao
order by dsclassificacao
GEO - Linhas de Produto¶
Documentação: Linhas de Produto
select
'1' as codEmpresa
, cdclassificacao as codLinha
, dsclassificacao as nome
FROM produtoclassificacaovaentity
where cdtipoclass = 300 -- CONFIRMAR CÓDIGO DE LINHA COM O CLIENTE
group by cdclassificacao
, dsclassificacao
order by dsclassificacao
GEO - Marcas¶
Documentação: Marcas
select
'1' as codEmpresa
, cdclassificacao as codMarca
, dsclassificacao as nome
FROM produtoclassificacaovaentity
where cdtipoclass = 300 -- CONFIRMAR CÓDIGO DE MARCA COM O CLIENTE
group by cdclassificacao
, dsclassificacao
order by dsclassificacao
GEO - Vendas¶
Documentação: Vendas
select
'1' as codEmpresa
, v.colecao as codColecao
, v.dtpedido as dataReferencia
, v.codlinha as codLinha
, v.codRepres as codRepres
, v.codcliente as codCliente
, v.codibge as codIBGE
, v.uf as UF
, sum(v.valorBruto) as valorBruto
, sum(v.valorliquido) as valorLiquido
, sum(v.valorDesconto) as valorDesconto
, sum(v.valorComissao) as valorComissao
, sum(v.prazomedioxvalor) as prazoMedioXValor
, sum(v.qtsolicitada) as quantidade
, v.nomeCliente as nomeCliente
, v.cdpedido as codPedido
, null as codProduto
, null as campoCoringa1
, null as campoCoringa2
, null as campoCoringa3
, v.dataprevfaturamento as dataPrevFaturamento
, null as nomeDistritoBairro
, v.grupocliente as grupoCliente
, null as valorRentabilidade
, null as dataUltFaturamento
, null as valorFaturado
, null as valorSaldo
, v.codMarca as codMarca
, v.nomegrupocliente as nomeGrupoCliente
, v.dtemissao as dataEmissao
, null as codRepresAgrupador
, null as flagPolitica
, null as codTabPreco
, null as qtdeItens
, null as qtdeEmQuilos
, null as cidadeGrupoCliente
, null as campoCoringa4
, null as campoCoringa5
, null as campoCoringa6
, null as situacaoPedido
, null as dataUltimaNF
, null as numeroUltimaNF
, null as pedidoCliente
, null as pedidoRepresentante
, null as percComissaoAtendente
FROM (
select '1' as codEmpresa
, coalesce((select pc.cdclassificacao from produtoclassificacaovaentity pc where pc.cdproduto = vi.cdproduto and pc.cdtipoclass = 300 limit 1), 'SEM COLECAO') as colecao
, cast(v.dtpedido as date)
, '99999' as codlinha
, v.cdrepresentant as codRepres
, v.cdcliente as codCliente
, CASE WHEN im.codibge = '99999999' or im.codibge is null THEN '4211900' ELSE im.codibge END as codIBGE
, pe.ufsigla as uf
, ROUND(CAST ((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario AS numeric) ,4) AS valorBruto
, ROUND(CAST (((((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario) * ((100 - v.prDesconto) / 100) ) * ((100 - vi.prDesconto) / 100)) AS numeric), 4) AS valorLiquido --virtual age corta o desconto pela metade quanto é meia nota
, ROUND(CAST (((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario) - ((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario) * ((100 - v.prDesconto) / 100) AS numeric), 4) AS valorDesconto
, ROUND(CAST((ROUND(CAST(((((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario) * ((100 - v.prDesconto) / 100) ) * ((100 - vi.prDesconto) / 100)) AS numeric), 4)) * ((v.prComissaoFat + v.prComissaoRec) / 100) AS numeric), 4) AS valorComissao
, ROUND(CAST (((((vi.qtSolicitada + vi.qtextra - vi.qtCancelada) * vi.vlUnitario) * ((100 - v.prDesconto) / 100) ) * ((100 - vi.prDesconto) / 100)) * (v.nrprzmedio) AS numeric), 4) AS prazomedioxvalor
, (vi.qtSolicitada + vi.qtextra - (COALESCE(vi.qtCancelada, 0))) AS qtSolicitada
, null cdproduto
, vi.cdPedido cdPedido
, p.nmpessoa nomeCliente
, v.cdpedido codPedido
, vi.cdproduto as codProduto
, null coringa1
, null coringa2
, null coringa3
, cast(v.dtprevbaixa as date) dataprevfaturamento
, null as nomeDistrito
, vpc.cdcoligador as grupoCliente
, 0.0 as valorRentabilidade
, null dtaUltimoFaturamento
, null valorFaturado
, null as valorSaldo
, '99999' as codMarca
, coalesce((select pg.nmpessoa from pessoavaentity pg where pg.cdempresa = vpc.cdempresacad and pg.cdpessoa = vpc.cdcoligador),'Sem Grupo') as nomeGrupoCliente
, cast(v.dtpedido as date) dtEmissao
, null codRepresAgrupador
, null flagPolitica
from
vendaitemvaentity vi
left join
vendavaentity v
on v.cdempresa = vi.cdempresa
and v.cdpedido = vi.cdpedido
left join
pessoavaentity p
on p.cdpessoa = v.cdcliente
and p.cdempresa = v.cdempresa
left join
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
left join
pessoaenderecovaentity pe
on pe.cdpessoa = p.cdpessoa and pe.nrsequencia = ( select min(pen.nrsequencia)
from pessoaenderecovaentity pen
where pe.cdpessoa = pen.cdpessoa)
LEFT join
ETLCidade im
on im.codCidade = pe.cdMunicipio
where v.tpsituacao not in (6) --remove os cancelados
and vpc.incliente = 'TRUE'
AND cast(v.dtpedido as date) >= current_date - 365
) v
group by v.colecao
, v.dtpedido
, v.codlinha
, v.codcliente
, v.codRepres
, v.codibge
, v.uf
, v.nomeCliente
, v.cdpedido
, v.dataprevfaturamento
, v.grupocliente
, v.nomegrupocliente
, v.codMarca
, v.dtemissao
Incremental:
select
'1' as codEmpresa
, v.cdPedido cdPedido
FROM vendavaentity v
WHERE cast(v.dtpedido as date) >= current_date - 365
GROUP BY v.cdPedido
GEO - Faturamento - Contrato¶
Documentação: Faturamento - Contrato
Adicionar SQL
GEO - Meta do Representante¶
Documentação: Meta do Representante
Adicionar SQL
GEO - Meta do Escritório¶
Documentação: Meta do Escritório
Adicionar SQL
GEO - Estoque Centralizado¶
Documentação: Estoque Centralizado
SELECT
'1' as codEmpresa
, grupo.cdnivel as codigoProduto
, cdtamanho as seqTamanho
, grade.cdCor as seqSortimento
, COALESCE(colecao.cdclassificacao, '99999') as colecao
, (CASE WHEN inf.tpProduto = '0' OR inf.tpProduto is null then 0 ELSE 1 end) as estoqueLimitado
, sum(estoque.quantidadeEstoque + estoque.quantidadeOP - estoque.quantidadeVenda + estoque.quantidadeTransacao) as quantidade
, grade.dstamanho as codTamanho
, grade.cdgrade as codGrade
, null as deposito
, COALESCE(colecao.dsclassificacao, 'SEM COLECAO') as nomeColecao
, null as dataProduto
, GREATEST(SUM(estoque.quantidadeEstoque + estoque.quantidadeOP - estoque.quantidadeVenda + estoque.quantidadeTransacao), 0) as quantidadeProntaEntrega
, grade.cdCor as codCorBase
, grupo.dsNivel as nomeReferencia
, dscor as nomeCor
, null as ean13
, null as visualQuantidadeProduto
, null as visualQuantidadeProducao
, cdtamanho as seqOrdenacaoTamanho
FROM SaldoProdutoVAEntity estoque
INNER JOIN
ProdutoGradeVAEntity grade
ON grade.cdProduto::VARCHAR = estoque.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto::VARCHAR = estoque.codProduto
LEFT JOIN
ProdutoInfVAEntity inf
on inf.cdProduto::VARCHAR = estoque.codProduto
LEFT JOIN
produtoclassificacaovaentity colecao
on grupo.cdProduto = colecao.cdProduto
and colecao.cdtipoclass = 1 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA COLEÇÃO COM O CLIENTE
WHERE COALESCE(inf.ininativo, 'FALSE') = 'FALSE'
AND (
(COALESCE(colecao.cdclassificacao, '99999') in (#COLECOES) AND '-1' in (#REFERENCES))
OR (grupo.cdnivel in (#REFERENCES))
)
GROUP BY grupo.cdnivel
, cdtamanho
, grade.cdCor
, COALESCE(colecao.cdclassificacao, '99999')
, (CASE WHEN inf.tpProduto = '0' OR inf.tpProduto is null then 0 ELSE 1 end)
, grade.dstamanho
, grade.cdgrade
, COALESCE(colecao.dsclassificacao, 'SEM COLECAO')
, grade.cdCor
, grupo.dsNivel
, dscor
GEO - Clientes Inadimplentes¶
Documentação: Clientes Inadimplentes
Adicionar SQL
GEO - Condição de Venda¶
Documentação: Não tem ainda
select
'1' as codEmpresa
, codCondPagto as codPagamento
, nome as nome
, quantidade as qtdeParcelas
, round(CAST(prazoMedio as numeric),2) as prazoMedio
, situacao as situacao
, 0 as Parcelamento
, null as Acrescimo
, null as Desconto
FROM ETLCondPagto
Força de Vendas¶
FV - Tabela de Preço¶
Documentação: Tabela de Preço
select
'1' as codEmpresa
, codTabelaPreco as codTabela
, descricao as descricao
, null as dataMinimaFaturamento
, null as dataMaximaFaturamento
, null as percDescontoShowRoom
, null as dataVigenciaInicial
, null as dataVigenciaFinal
, null as codColecao
, null as codSegmento
, null as codTabelaPrecoPrincipal
, null as desconsiderarDescAcr
, null as codEmpresaDestino
, null as currency
, null as codTipoPedido
FROM ETLtabelapreco
WHERE codEmpresa = :p1
AND codTabelaPreco = :p2
FV - Tabela de Preço por Representante¶
Documentação: Tabela de Preço por Representante
Adicionar SQL
FV - Tabela de Preço - Produto¶
Documentação: Tabela de Preço - Produto
select
'1' as codEmpresa
, preco.codTabelaPreco as codTabela
, grupo.cdNivel as codProduto
, grade.cdGrade as codGrade
, preco.preco as preco
, grade.cdCor as seqSortimento
, null as itemAtivo
, grade.cdTamanho as seqTamanho
, produto.dsProduto as descricaoProd
, null as vlrUnitarioAnterior
, grade.cdTamanho as seqTamanho
, null as permiteBonificacao
, null as flagOferta
, null as codigoCaixaGoldBe
FROM ETLProdutoTabelaPreco preco
LEFT OUTER JOIN
ProdutoGradeVAEntity grade
ON preco.codProduto = grade.cdProdutoStr
INNER JOIN
etltabelapreco tab
ON tab.codTabelapreco = preco.codtabelapreco
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = grade.cdProduto
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProduto = grupo.cdProduto
WHERE preco.codEmpresa = :p1
AND preco.codTabelaPreco = :p2
AND preco.preco IS NOT NULL
AND grupo.cdNivel <> ''
GROUP BY preco.codTabelaPreco
, grupo.cdNivel
, grade.cdGrade
, preco.preco
, grade.cdCor
, grade.cdTamanho
, produto.dsProduto
FV - Tabela de Preço - Política - Desconto Comercial¶
Documentação: Tabela de Preço - Política - Desconto Comercial
Adicionar SQL
FV - Tabela de Preço - Política - Desconto Financeiro¶
Documentação: Tabela de Preço - Política - Desconto Financeiro
Adicionar SQL
FV - Tabela de Preço - Política - Desconto Antecipação¶
Documentação: Tabela de Preço - Política - Desconto Antecipação
Adicionar SQL
FV - Tabela de Preço - Política - Prazo Adicional¶
Documentação: Tabela de Preço - Política - Prazo Adicional
Adicionar SQL
FV - Tabela de Preço - Política - Desconto Volume¶
Documentação: Tabela de Preço - Política - Desconto Volume
Adicionar SQL
FV - Tabela de Preço - Política - Preços por volume¶
Documentação: Tabela de Preço - Política - Preços por volume
Adicionar SQL
FV - Títulos Em Aberto¶
Documentação: Títulos Em Aberto
select
titulo.titulo as titulo
, titulo.notaFiscal as notaFiscal
, titulo.dataEmissao as dataEmissao
, titulo.dataVencimento as dataVecto
, titulo.valor as valor
, titulo.nomePortador as nomePortador
, titulo.codCliente as codCliente
, pessoa.nmPessoa as nomeCliente
, null as codgrupocliente
, null as moeda
FROM ETLTitulo titulo
LEFT OUTER JOIN
PessoaVAEntity pessoa
ON CAST(pessoa.cdPessoa as text) = titulo.codCliente
WHERE cast((select rep.cdrepresentant
from pessoareprclientevaentity rep
where rep.cdempresa = pessoa.cdempresa
and rep.cdpessoa = pessoa.cdpessoa limit 1) as text) = :p2
AND ((titulo.codCliente = :p3) OR (:p3 IS NULL))
and situacao= '1'
FV - Condição de Venda¶
Documentação: Condição de Venda
select
'1' as codEmpresa
, codCondPagto as codPagamento
, nome as nome
, quantidade as qtdeParcelas
, round(CAST(prazoMedio as numeric),2) as prazoMedio
, situacao as situacao
, 0 as Parcelamento
, null as Acrescimo
, null as Desconto
FROM ETLCondPagto
FV - Cota de estoque - Por representante¶
Documentação: Cota de estoque - Por representante
Adicionar SQL
FV - Tipo de Nota¶
Documentação: Tipo de Nota
Adicionar SQL
FV - Tipo de Cobrança¶
Documentação: Tipo de Cobrança
Adicionar SQL
FV - Comissões¶
Documentação: Comissões
Adicionar SQL
FV - Comissões - Extrato Resumo¶
Documentação: Comissões - Extrato Resumo
Adicionar SQL
FV - Comissões - Extrato Detalhado¶
Documentação: Comissões - Extrato Detalhado
Adicionar SQL
FV - Clientes¶
Documentação: Clientes
select
'1' as codEmpresa
, pessoa.cdPessoa as codCliente
, (CASE
WHEN TRIM(COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)) = ''
THEN pessoa.cdPessoa::text
ELSE COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)
END) as cnpj
, COALESCE(pessoaJuridica.nmfantasia, pessoa.nmpessoa) as nomeFantasia
, pessoa.nmpessoa as razaoSocial
, (CASE WHEN (pessoa.ininativo = 'TRUE') THEN 0 ELSE 1 END) as situacao
, regexp_replace(telefone.nrtelefone, '[^0-9]', '', 'g') as telefone
, email.dsEmail as email
, emailNFE.dsEmail as emailNFE
, im.codibge as codIBGE
, endereco.nmLogradouro as endereco
, endereco.nrLogradouro as enderecoNumero
, endereco.dsbairro as bairro
, endereco.cdcep as cep
, pessoa.dtinclusao as dataCadastro
, pessoaJuridica.nrInscEstl as inscricaoEstadual
, null as inscricaoSUFRAMA
, 0 as flagConsumidorFinal
, emailNFE.dsemail as cobrancaEmail
, null as cobrancaContato
, regexp_replace(telefone.nrTelefone, '[^0-9]', '', 'g') as cobrancaTelefone
, null as comprasEmail
, null as comprasContato
, null as comprasTelefone
, null as avaliacaoRepres
, regexp_replace(telefone2.nrTelefone, '[^0-9]', '', 'g') as celular
, null as fax
, null as flagClienteFiel
, null as endComplemento
, null as dataUltimaCompra
, null as codTransportadora
, null as codCondPagto
, null as flagSimplesNacional
, null as codTabPreco
, null as percDesconto
, null as codGerente
, null as inscricaoMunicipal
, null as codRamoAtividade
, (case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end) as codGrupoCliente
, null as dataFundacao
, null as limiteCredito
, null as limiteCreditoDisponivel
, null as percDescontoGrupo
, null as classificacaoCurva
, null as obs
, null as ListCodRepres
, null as midiasSociais
, null as msgDashboard
, null as latitude
, null as longitude
, null as latitudeISF
, null as longitudeISF
, null as atualizadoCoordPor
, null as cfop
, null as codTranspRedespacho
, null as codPortador
, null as codTipoCob
, null as valorPedidosEmAberto
, null as valorTitulosEmAberto
, (case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end) as codGrupoCliente
, null as codTipoFatur
, null as instagram
, null as facebook
, null as validarCamposCustomizados
, null as lembreteAprovacaoPedido
, null as grupoClienteCalculoST
FROM PessoaVAEntity pessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
AND endereco.id = ( select min(id)
from pessoaenderecovaentity
where cdempresa = pessoa.cdempresa
and cdpessoa = pessoa.cdpessoa)
INNER JOIN
VPESConsultaVAEntity vpc
ON vpc.cdPessoa = pessoa.cdPessoa
LEFT join
ETLCidade im
on im.codCidade = endereco.cdMunicipio
LEFT JOIN
PessoaTelefoneVAEntity telefone
ON telefone.cdEmpresa = pessoa.cdEmpresa
AND telefone.cdPessoa = pessoa.cdPessoa
AND telefone.id = ( select min(id)
from pessoatelefonevaentity
where cdempresa = telefone.cdempresa
and cdpessoa = telefone.cdpessoa
and inpadrao = 'TRUE')
LEFT JOIN
PessoaTelefoneVAEntity telefone2
ON telefone2.cdEmpresa = pessoa.cdEmpresa
AND telefone2.cdPessoa = pessoa.cdPessoa
AND telefone2.id = (select min(id)
from pessoatelefonevaentity
where cdempresa = telefone2.cdempresa
and cdpessoa = telefone2.cdpessoa
and cdtipofone = 2) -- CONFIRMAR CD TIPO CELULAR
LEFT JOIN
PessoaEmailVAEntity email
ON email.cdEmpresa = pessoa.cdEmpresa
AND email.cdPessoa = pessoa.cdPessoa
AND email.id = ( select min(id)
from pessoaemailvaentity
where cdpessoa = email.cdpessoa
and cdempresa = email.cdempresa
and inpadrao = 'TRUE')
LEFT JOIN
PessoaEmailVAEntity emailNFE
ON emailNFE.cdEmpresa = pessoa.cdEmpresa
AND emailNFE.cdPessoa = pessoa.cdPessoa
AND emailNFE.id = ( select min(id)
from pessoaemailvaentity
where cdpessoa = emailNFE.cdpessoa
and cdempresa = emailNFE.cdempresa
and cdtipoemail = 4) -- CONFIRMAR CD TIPO EMAIL COBRANCA/NFE
LEFT JOIN
pessoajuridicavaentity pessoaJuridica
ON pessoaJuridica.cdEmpresa = pessoa.cdEmpresa
AND pessoaJuridica.cdPessoa = pessoa.cdPessoa
LEFT JOIN
pessoafisicavaentity pessoaFisica
ON pessoaFisica.cdEmpresa = pessoa.cdEmpresa
AND pessoaFisica.cdPessoa = pessoa.cdPessoa
WHERE vpc.inCliente = 'TRUE'
AND length(CASE
WHEN TRIM(COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)) = ''
THEN pessoa.cdPessoa::text
ELSE COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)
END) >= 14 -- Para puxar apenas clientes jurídicos
AND 1 = (SELECT 1
FROM pessoaReprClienteVAEntity rep
WHERE rep.cdEmpresa = pessoa.cdEmpresa
AND rep.cdPessoa = pessoa.cdPessoa
AND CAST(rep.cdRepresentant AS TEXT) = :p2
LIMIT 1
)
GROUP BY pessoa.cdPessoa
, (CASE
WHEN TRIM(COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)) = ''
THEN pessoa.cdPessoa::text
ELSE COALESCE(pessoaJuridica.nrCnpj, pessoaFisica.nrCpf)
END)
, COALESCE(pessoaJuridica.nmfantasia, pessoa.nmpessoa)
, pessoa.nmpessoa
, (CASE WHEN (pessoa.ininativo = 'TRUE') THEN 0 ELSE 1 END)
, regexp_replace(telefone.nrtelefone, '[^0-9]', '', 'g')
, email.dsEmail
, emailNFE.dsEmail
, im.codibge
, endereco.nmLogradouro
, endereco.nrLogradouro
, endereco.dsbairro
, endereco.cdcep
, pessoa.dtinclusao
, pessoaJuridica.nrInscEstl
, emailNFE.dsemail
, regexp_replace(telefone.nrTelefone, '[^0-9]', '', 'g')
, regexp_replace(telefone2.nrTelefone, '[^0-9]', '', 'g')
, (case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end)
FV - Clientes - Campos Customizados¶
Documentação: Clientes - Campos Customizados
Adicionar SQL
FV - Clientes - Locais de Entrega¶
Documentação: Clientes - Locais de Entrega
Adicionar SQL
FV - Clientes - Ramos de Atividade¶
Documentação: Clientes - Ramos de Atividade
Adicionar SQL
FV - Clientes - Grupos de Cliente¶
Documentação: Clientes - Grupos de Cliente
Adicionar SQL
FV - Clientes - Condições de venda¶
Documentação: Clientes - Condições de venda
Adicionar SQL
FV - Clientes - Marcas¶
Documentação: Clientes - Marcas
Adicionar SQL
FV - Clientes - Marcas Concorrentes¶
Documentação: Clientes - Marcas Concorrentes
Adicionar SQL
FV - Produtos¶
Documentação: Produtos
select
grupo.cdNivel as codReferencia
, grupo.dsNivel as descricao
, COALESCE(ETIQUETA.cdclassificacao, '99999') as codEtiqueta
, COALESCE(ETIQUETA.dsclassificacao, 'SEM ETIQUETA') as nomeEtiqueta
, COALESCE(LINHA.cdclassificacao, '99999') as codLinha
, COALESCE(LINHA.dsclassificacao, 'SEM LINHA') as nomeLinha
, COALESCE(TIPOPECA.cdclassificacao, '99999') as codTipoPeca
, COALESCE(TIPOPECA.dsclassificacao, 'SEM TIPO PECA') as nomeTpoPeca
, COALESCE(MODELO.cdclassificacao, '99999') as codTipoModelo
, COALESCE(MODELO.dsclassificacao, 'SEM MODELO') as nomeTipoModelo
, null as opcoesVenda
, grupo.cdNivel as codReferProvisoria
, null as flagSortimentoCor
, null as flagEstoqueLimitado
, null as flagSortimentoCorTamanho
, null as flagSortimentoAutomatico
, null as aliquotaIpi
, null as flagNaoAplicaDesconto
, COALESCE(colecao.cdclassificacao, '99999') as codColecao
, null as qtdeQuilosPadrao
, null as cubagem
, COALESCE(colecao.dsclassificacao, 'SEM COLECAO') as nomeColecao
, null as estacaoColecao
, COALESCE(FAMILIA.cdclassificacao, '99999') as codFamilia
, COALESCE(FAMILIA.dsclassificacao, 'SEM FAMILIA') as nomeFamilia
, null as divisorLote
, null as divisorBrinde
, null as codReferImagem
, null as agrupadorEstoqueData
, COALESCE(MARCA.cdclassificacao, '99999') as codMarca
, COALESCE(MARCA.dsclassificacao, 'SEM MARCA') as nomeMarca
, null as peso
, null as codArtigoPai
, null as flagGradeFechada
, null as codReferenciaCorTamanho
, null as dataLimiteFatur
, null as qtdDiasMinFaturamento
, null as dataVencimentoProduto
, null as especificacoesTecnicas
, COALESCE(GENERO.cdclassificacao, '99999') as codGenero
, COALESCE(GENERO.dsclassificacao, 'SEM GENERO') as nomeGenero
, null as composicaoProduto
, null as descricaoPesquisa
, null as flagReferenciaCalcadista
, null as dataEntrega
, null as grupoProdutoCalculoST
, null as flagMultiplicadorUnico
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProdutoStr = preco.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON prinf.cdProduto = produto.cdProduto
LEFT OUTER JOIN
produtoclassificacaovaentity colecao
on grupo.cdProduto = colecao.cdProduto
and colecao.cdtipoclass = 1 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA COLEÇÃO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity ETIQUETA
on grupo.cdProduto = ETIQUETA.cdProduto
and ETIQUETA.cdtipoclass = 2 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA ETIQUETA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity LINHA
on grupo.cdProduto = LINHA.cdProduto
and LINHA.cdtipoclass = 3 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA LINHA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity TIPOPECA
on grupo.cdProduto = TIPOPECA.cdProduto
and TIPOPECA.cdtipoclass = 4 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA TIPO DE PEÇA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity MODELO
on grupo.cdProduto = MODELO.cdProduto
and MODELO.cdtipoclass = 5 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA MODELO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity MARCA
on grupo.cdProduto = MARCA.cdProduto
and MARCA.cdtipoclass = 6 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA MARCA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity GENERO
on grupo.cdProduto = GENERO.cdProduto
and GENERO.cdtipoclass = 7 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA GENERO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity FAMILIA
on grupo.cdProduto = FAMILIA.cdProduto
and FAMILIA.cdtipoclass = 8 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA FAMILIA COM O CLIENTE
WHERE ((preco.codTabelaPreco IN (#TABPRECOS)) OR (#TABPRECOSNULL IS NULL))
AND (colecao.cdClassificacao IN (#COLECOES) OR (#COLECOESNULL IS NULL))
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND ((grupo.cdNivel = :p2) or (:p2 is null))
AND coalesce(produto.inBloqueio, 0) = 0
AND grupo.cdNivel <> ''
GROUP BY grupo.cdNivel
, grupo.dsNivel
, COALESCE(ETIQUETA.cdclassificacao, '99999')
, COALESCE(ETIQUETA.dsclassificacao, 'SEM ETIQUETA')
, COALESCE(LINHA.cdclassificacao, '99999')
, COALESCE(LINHA.dsclassificacao, 'SEM LINHA')
, COALESCE(TIPOPECA.cdclassificacao, '99999')
, COALESCE(TIPOPECA.dsclassificacao, 'SEM TIPO PECA')
, COALESCE(MODELO.cdclassificacao, '99999')
, COALESCE(MODELO.dsclassificacao, 'SEM MODELO')
, COALESCE(colecao.cdclassificacao, '99999')
, COALESCE(colecao.dsclassificacao, 'SEM COLECAO')
, COALESCE(FAMILIA.cdclassificacao, '99999')
, COALESCE(FAMILIA.dsclassificacao, 'SEM FAMILIA')
, COALESCE(MARCA.cdclassificacao, '99999')
, COALESCE(MARCA.dsclassificacao, 'SEM MARCA')
, COALESCE(GENERO.cdclassificacao, '99999')
, COALESCE(GENERO.dsclassificacao, 'SEM GENERO')
FV - Produtos - Grades¶
Documentação: Produtos - Grades
select
grupo.cdNivel as codReferencia
, grade.cdGrade as codGrade
, grade.cdTamanho as seqTamanho
, grade.cdTamanho as seqOrdenacao
, grade.dsTamanho as codTamanho
, '1' as qtdPalito
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProdutoStr = preco.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON prinf.cdProduto = produto.cdProduto
INNER JOIN
ProdutoGradeVAEntity grade
ON grade.cdProduto = produto.cdProduto
WHERE ((preco.codTabelaPreco IN (#TABPRECOS)) OR (#TABPRECOSNULL IS NULL))
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND coalesce(produto.inBloqueio, 0) = 0
AND ((grupo.cdnivel in (#REFERENCIAS)) OR (#REFERSNULL IS NULL))
GROUP BY grupo.cdNivel
, grade.cdGrade
, grade.cdTamanho
, grade.dsTamanho
FV - Produtos - Sortimentos¶
Documentação: Produtos - Sortimentos
select
grupo.cdnivelcompleto as codReferencia
, grade.cdCor as codSortimento
, grade.dsCor as descricao
, grade.cdCor as codCorBase
, '#FFFFFF' as rgb
, null as loteEntrega
, 1 as itemAtivo
, null as percentualSortimento
, null as flagEstoqueLimitado
, COALESCE(FAMILIA.cdclassificacao, '99999') as codFamilia
, COALESCE(FAMILIA.dsclassificacao, 'SEM FAMILIA') as nomeFamilia
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProdutoStr = preco.codProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON prinf.cdProduto = produto.cdProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
INNER JOIN
ProdutoGradeVAEntity grade
ON grade.cdProduto = produto.cdProduto
LEFT OUTER JOIN
produtoclassificacaovaentity FAMILIA
on grupo.cdProduto = FAMILIA.cdProduto
and FAMILIA.cdtipoclass = 8 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA FAMILIA COM O CLIENTE
WHERE ((preco.codTabelaPreco IN (#TABPRECOS)) OR (#TABPRECOSNULL IS NULL))
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND COALESCE(produto.inBloqueio, 0) = 0
GROUP BY grupo.cdnivelcompleto
, grade.cdCor
, grade.dsCor
, COALESCE(FAMILIA.cdclassificacao, '99999')
, COALESCE(FAMILIA.dsclassificacao, 'SEM FAMILIA')
FV - Produtos Skus¶
Documentação: Produtos Skus
Adicionar SQL
FV - Produto - Código Reduzido¶
Documentação: Produto - Código Reduzido
Adicionar SQL
FV - Produto - EAN13¶
Documentação: Produto - EAN13
SELECT
grupo.cdNivel as codReferencia
, codBarras.cdBarraPrd as EAN
, null as seqSortimento
, null as seqTamanho
, null as nomeRef
, null as nomeSort
FROM ProdutoCdBarrasVAEntity codBarras
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = codBarras.cdProduto
WHERE ((grupo.cdNivel = :p2) OR (:p2 IS NULL))
FV - Bloqueio de Referências¶
Documentação: Bloqueio de Referências
Adicionar SQL
FV - Pedido - Capa¶
Documentação: Pedido - Capa
Adicionar SQL
FV - Pedidos por Referência¶
Documentação: Pedidos por Referência
Adicionar SQL
FV - Listagem de Pedidos - Capa¶
Documentação: Listagem de Pedidos - Capa
select
'1' as codEmpresa
, VENDAS.codCliente as codCliente
, VENDAS.nomeCliente as nomeCliente
, VENDAS.codRepres as codRepres
, VENDAS.pedAutomacao as pedAutomacao
, VENDAS.codPedido as codPedido
, VENDAS.dtEmissao as dataEmissao
, VENDAS.dataprevfaturamento as dataPrevFat
, VENDAS.situacao as situacao
, VENDAS.situacaoEdt as situacaoEdt
, SUM(VENDAS.valorBruto) as valorBruto
, SUM(VENDAS.valorLiquido) as valorLiquido
, SUM(VENDAS.valorSaldo) as valorSaldo
, SUM(VENDAS.quantidade) as qtdePedLiquida
, null as motivo
, null as pedidoCliente
, null as pedidoRepresentante
, null as percComissao
, null as usuarioDigitacao
, null as valorComissao
, null as percDescGeral
, null as valorDesconto
, null as nomeColecao
, null as codTipoNota
, null as currency
, null as tipoNota
, null as motivoQuarentenaPedidos
, null as atendente
, null as tabPrecoPedido
, null as situacaoWorkFlow
FROM (
SELECT pedido.cdCliente AS codCliente
, pessoa.nmpessoa AS nomeCliente
, pedido.cdRepresentant AS codRepres
, pedido.cdPedido AS pedAutomacao
, pedido.cdEmpresa || '/' ||pedido.cdPedido AS codPedido
, pedido.dtPedido AS dtEmissao
, pedido.dtprevbaixa AS dataprevfaturamento
, pedido.tpSituacao situacao
, CASE pedido.tpSituacao WHEN 4 THEN 'FATURADO'
WHEN 6 THEN 'CANCELADO'
WHEN 1 THEN 'EM ANDAMENTO'
WHEN 2 THEN 'LIBERADO PARA FATURAMENTO'
WHEN 3 THEN 'PARCIALMENTE FATURADO'
WHEN 5 THEN 'BLOQUEADO'
WHEN 7 THEN 'EM COMPOSIÇÃO'
WHEN 8 THEN 'EM ANÁLISE' ELSE 'OUTRA SITUAÇÃO' END AS situacaoEdt
, SUM((pedidoItem.qtSolicitada - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) AS valorBruto
, SUM((pedidoItem.qtSolicitada - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) * ((100 - pedidoItem.prDesconto) / 100) AS valorLiquido
, SUM(((pedidoItem.qtSolicitada + pedidoItem.qtextra - pedidoItem.qtatendida - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) * ((100 - pedidoItem.prDesconto) / 100)) AS valorSaldo
, SUM(pedidoItem.qtSolicitada - pedidoItem.qtcancelada) quantidade
FROM VendaVAEntity pedido
INNER JOIN
PessoaVAEntity pessoa
ON pessoa.cdPessoa = pedido.cdCliente
INNER JOIN
VPESConsultaVAEntity vpc
ON vpc.cdPessoa = pessoa.cdPessoa
INNER JOIN
VendaItemVAEntity pedidoItem
ON pedidoItem.cdempresa = pedido.cdempresa
AND pedidoItem.cdPedido = pedido.cdPedido
WHERE vpc.inCliente = 'TRUE'
AND (pedido.dtPedido >= :p1) AND (pedido.dtpedido <= :p2)
AND ((CAST(pedido.cdRepresentant as text) = :p3) OR (:p3 IS NULL))
AND ((CAST(pedido.cdCliente as text) = :p4) OR (:p4 IS NULL))
AND ((select pc.cdclassificacao
from produtoclassificacaovaentity pc
where pc.cdproduto = pedidoItem.cdproduto
and pc.cdtipoclass = 101 -- CONFIRMAR COM O CLIENTE O CÓDIGO DA COLEÇÃO
limit 1) in (#COLECOES) OR (#COLECAONULL IS NULL)
)
GROUP BY pedido.cdEmpresa
, pedido.cdCliente
, pessoa.nmpessoa
, pedido.cdRepresentant
, pedido.cdPedido
, pedido.dtPedido
, pedido.dtprevbaixa
, pedido.tpSituacao
, pedido.prDesconto
, pedidoItem.prDesconto
) VENDAS
GROUP BY VENDAS.codCliente
, VENDAS.nomeCliente
, VENDAS.codRepres
, VENDAS.pedAutomacao
, VENDAS.codPedido
, VENDAS.dtEmissao
, VENDAS.dataprevfaturamento
, VENDAS.situacao
, VENDAS.situacaoEdt
FV - Listagem de Pedidos - Detalhado¶
Documentação: Listagem de Pedidos - Detalhado
select
VENDAS.dataEmissao as dataEmissao
, VENDAS.dataPrevFaturamento as dataPrevFatur
, VENDAS.situacaoEdt as situacaoEdt
, VENDAS.codCliente as codCliente
, VENDAS.nomeCliente as nomeCliente
, VENDAS.municipio as cidadeCliente
, VENDAS.uf as ufCliente
, VENDAS.inscricaoEstadual as inscEstadual
, VENDAS.cnpjCpf as cnpjCliente
, VENDAS.codRepres as codRepres
, VENDAS.percComissao as percComissao
, VENDAS.codTabPreco as codTabPreco
, VENDAS.nomeTabPreco as nomeTabPreco
, VENDAS.codpgto as codCondVenda
, VENDAS.nomecodpgto as nomeCondVenda
, null as codTranspDespacho
, null as nomeTranspDespacho
, VENDAS.tipoFreteTranspDespacho as tipoFreteTranspDespacho
, null as codTranspRedespacho
, null as nomeTranspRedespacho
, null as tipoFreteTranspRedespacho
, '1' as codTipoNota
, 'NORMAL' as nomeTipoNota
, null as observacao
, SUM(VENDAS.valorBruto) as valorBruto
, SUM(VENDAS.valorLiquido) as valorLiquido
, SUM(VENDAS.valorSaldo) as valorSaldo
, 0 as percDesconto1
, 0 as percDesconto2
, 0 as percDesconto3
, 0 as percDesconto4
, 0 as percDesconto5
, VENDAS.nomeCli as fantasia
, VENDAS.email as emailCliente
, VENDAS.nrPedidoCliente as pedidoCliente
, null as pedidoRepresentante
FROM
(SELECT pedido.dtPedido as dataEmissao
, pedido.dtPrevBaixa as dataPrevFaturamento
, CASE pedido.tpSituacao WHEN 4 THEN 'FATURADO'
WHEN 6 THEN 'CANCELADO'
WHEN 1 THEN 'EM ANDAMENTO'
WHEN 2 THEN 'LIBERADO PARA FATURAMENTO'
WHEN 3 THEN 'PARCIALMENTE FATURADO'
WHEN 5 THEN 'BLOQUEADO'
WHEN 7 THEN 'EM COMPOSIÇÃO'
WHEN 8 THEN 'EM ANÁLISE' ELSE 'OUTRA OUTRA SITUAÇÃO' END AS situacaoEdt
, pedido.cdCliente codCliente
, pessoa.nmPessoa nomeCliente
, endereco.nmMunicipio municipio
, endereco.ufSigla uf
, pessoaJuridica.nrInscEstl AS inscricaoEstadual
, pessoaJuridica.nrCnpj cnpjCpf
, pedido.cdrepresentant AS codRepres
, COALESCE(pedido.prComissaoFat, 0) + COALESCE(pedido.prComissaoRec, 0) AS percComissao
, pedido.cdTabpreco as codTabPreco
, tabPreco.descricao nomeTabPreco
, pedido.cdCondpgto codpgto
, condPagto.nome nomecodpgto
, CASE pedido.cdTransport WHEN 0 THEN null ELSE pedido.cdTransport END
, CASE pedido.cdTransport WHEN 0 THEN null ELSE pedido.nmTransport END
, CASE pedido.tpFrete WHEN 1 THEN 'EMITENTE'
WHEN 2 THEN 'DESTINATÁRIO'
WHEN 3 THEN 'POR TERCEIRO'
WHEN 4 THEN 'SEM FRETE' ELSE 'OUTROS' END AS tipoFreteTranspDespacho
, SUM((pedidoItem.qtSolicitada - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) AS valorBruto
, SUM((pedidoItem.qtSolicitada - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) * ((100 - pedidoItem.prDesconto) / 100) AS valorLiquido
, SUM(((pedidoItem.qtSolicitada + pedidoItem.qtextra - pedidoItem.qtatendida - pedidoItem.qtcancelada) * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) * ((100 - pedidoItem.prDesconto) / 100)) AS valorSaldo
, pessoa.nmPessoa as nomeCli
, email.dsemail as email
, pedido.nrPedidoCliente nrPedidoCliente
FROM VendaVAEntity pedido
INNER JOIN
PessoaVAEntity pessoa
ON pessoa.cdPessoa = pedido.cdCliente
INNER JOIN
VPESConsultaVAEntity vpc
ON vpc.cdPessoa = pessoa.cdPessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
AND endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = pessoa.cdempresa and cdpessoa = pessoa.cdpessoa)
LEFT OUTER JOIN
ETLTabelaPreco tabPreco
ON tabPreco.codTabelaPreco = CAST(pedido.cdTabPreco as text)
LEFT OUTER JOIN
ETLCondPagto condPagto
ON condPagto.codEmpresa = CAST(pedido.cdEmpresa as text)
AND condPagto.codCondPagto = CAST(pedido.cdCondPgto as text)
INNER JOIN
VendaItemVAEntity pedidoItem
ON pedidoItem.cdempresa = pedido.cdempresa
AND pedidoItem.cdPedido = pedido.cdPedido
LEFT OUTER JOIN
PessoaEmailVAEntity email
ON email.cdEmpresa = pessoa.cdEmpresa
AND email.cdPessoa = pessoa.cdPessoa
AND email.inPadrao = 'TRUE'
LEFT OUTER JOIN
PessoaJuridicaVAEntity pessoaJuridica
ON pessoaJuridica.cdEmpresa = pessoa.cdEmpresa
AND pessoaJuridica.cdPessoa = pessoa.cdPessoa
WHERE CAST(pedido.cdEmpresa || '/' || pedido.cdPedido as text) = :p1
GROUP BY pedido.dtPedido
, pedido.dtPrevBaixa
, pedido.tpSituacao
, pedido.cdCliente
, pessoa.nmPessoa
, endereco.nmMunicipio
, endereco.ufSigla
, pessoaJuridica.nrInscEstl
, pessoaJuridica.nrCnpj
, pedido.cdrepresentant
, COALESCE(pedido.prComissaoFat, 0)
, COALESCE(pedido.prComissaoRec, 0)
, pedido.cdTabpreco
, tabPreco.descricao
, pedido.cdCondpgto
, condPagto.nome
, pedido.cdTransport
, pedido.nmTransport
, pedido.tpFrete
, pessoa.nmPessoa
, email.dsemail
, pedido.nrPedidoCliente
, pedido.prDesconto
, pedidoItem.prDesconto
, pedido.cdPedido
, pedido.cdEmpresa) VENDAS
GROUP BY VENDAS.dataEmissao
, VENDAS.dataPrevFaturamento
, VENDAS.situacaoEdt
, VENDAS.codCliente
, VENDAS.nomeCliente
, VENDAS.municipio
, VENDAS.uf
, VENDAS.inscricaoEstadual
, VENDAS.cnpjCpf
, VENDAS.codRepres
, VENDAS.percComissao
, VENDAS.codTabPreco
, VENDAS.nomeTabPreco
, VENDAS.codpgto
, VENDAS.nomecodpgto
, VENDAS.tipoFreteTranspDespacho
, VENDAS.nomeCli
, VENDAS.email
, VENDAS.nrPedidoCliente
FV - Listagem de Pedidos - Itens¶
Documentação: Listagem de Pedidos - Itens
select
row_number() OVER (ORDER BY item.cdProduto) as codItem
, item.cdProduto as codProduto
, produto.dsProduto as nomeProduto
, item.qtSolicitada as qtdePedida
, item.qtCancelada as qtdeSaldo
, item.qtAtendida as qtdeFaturado
, item.qtCancelada as qtdeCancelada
, item.vlUnitario as valorUnitarioBruto
, (CASE item.qtSolicitada WHEN 0 THEN 0 ELSE ((item.qtSolicitada - item.qtcancelada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100)) / item.qtSolicitada) END) as valorUnitarioLiquido
, (item.qtSolicitada * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) - (item.qtCancelada * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) as valorTotal
, null as codReferencia
, null as seqTamanho
, null as seqSortimento
FROM VendaItemVAEntity item
LEFT OUTER JOIN
VendaVAEntity pedido
ON item.cdEmpresa = pedido.cdEmpresa
AND item.cdPedido = pedido.cdPedido
LEFT OUTER JOIN
ProdutoVAEntity produto
ON produto.cdProduto = item.cdProduto
WHERE CAST(pedido.cdEmpresa || '/' || item.cdPedido as text) = :p1
FV - Listagem de Pedidos - Notas¶
Documentação: Listagem de Pedidos - Notas
select
nota.dataEmissao as dataEmissao
, nota.numeroNF as numeroNF
, CASE nota.situacao WHEN 'G' THEN 'GERADA'
WHEN 'A' THEN 'AUTORIZADA'
WHEN 'C' THEN 'CANCELADA'
WHEN 'I' THEN 'INUTILIZADA'
WHEN 'D' THEN 'DENEGADA'
WHEN 'E' THEN 'EMITIDA' ELSE 'OUTROS' END as situacao
, nota.valorLiquido as valorLiquido
, nota.codTransp as codTransp
, null as nomeTransp
, null as codRedespacho
, null as nomeRedespacho
, nota.chaveNFE as chaveNFE
, null as qtdeFaturado
FROM ETLPedidoNotaFiscal nota
INNER JOIN
VPesConsultaVAEntity vpc
ON CAST(vpc.cdPessoa as text) = nota.codTransp
WHERE CAST(nota.codEmpresa || '/' || nota.codPedido as text) = :p1
AND vpc.inTransport = 'TRUE'
WHERE CodPedido = :p1
FV - Listagem de Pedidos - Observações¶
Documentação: Listagem de Pedidos - Observações
Adicionar SQL
FV - Listagem de Pedidos - Histórico¶
Documentação: Listagem de Pedidos - Histórico
Adicionar SQL
FV - Estoque¶
Documentação: Estoque
Adicionar SQL
FV - Lote Entrega¶
Documentação: Lote Entrega
Adicionar SQL
FV - Lotes de Faturamento¶
Documentação: Lotes de Faturamento
Adicionar SQL
FV - Cálculo substituição tributária¶
Documentação: Cálculo substituição tributária
Adicionar SQL
FV - Grupos substituição tributária¶
Documentação: Grupos substituição tributária
Adicionar SQL
FV - Integração Valor de Frete por UF¶
Documentação: Integração Valor de Frete por UF
Adicionar SQL
FV - Tabela de Preço SKU¶
Documentação: Tabela de Preço SKU
SELECT
'1' as codEmpresa
, preco.codTabelaPreco as codTabPreco
, grupo.cdNivel as codReferencia
, grade.cdGrade as codGrade
, preco.preco as vlrUnitario
, grade.cdCor as seqSortimento
, null as itemAti
, grade.cdTamanho as seqTamanho
, produto.dsProduto as descrProdu
, null as vlrUnitarioAnterior
, grade.cdTamanho as seqTamanho
, null as permiteBonificacao
, null as flagOferta
FROM ETLProdutoTabelaPreco preco
LEFT OUTER JOIN
ProdutoGradeVAEntity grade
ON preco.codProduto = grade.cdProdutoStr
INNER JOIN
etltabelapreco tab
ON tab.codTabelapreco = preco.codtabelapreco
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = grade.cdProduto
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProduto = grupo.cdProduto
WHERE preco.codEmpresa = :p1
AND preco.codTabelaPreco = :p2
AND preco.preco IS NOT NULL
AND grupo.cdNivel <> ''
GROUP BY preco.codTabelaPreco
, grupo.cdNivel
, grade.cdGrade
, preco.preco
, grade.cdCor
, grade.cdTamanho
, produto.dsProduto
FV - Tabela de Preço - Política - Desconto Adicional de Lote¶
Documentação: Tabela de Preço - Política - Desconto Adicional de Lote
Adicionar SQL
FV - Listagem de Pedidos em Aberto - Capa¶
Documentação: Listagem de Pedidos em Aberto - Capa
Adicionar SQL
FV - Listagem de Pedidos em Aberto - Detalhado¶
Documentação: Listagem de Pedidos em Aberto - Detalhado
Adicionar SQL
FV - Listagem de Pedidos em Aberto - Itens¶
Documentação: Listagem de Pedidos em Aberto - Itens
Adicionar SQL
FV - SKUs Pronta Entrega e Programado¶
Documentação: SKUs Pronta Entrega e Programado
Adicionar SQL
Business to Business¶
B2B - Produtos¶
Documentação: Produtos
select
grupo.cdNivel as codReferencia
, grupo.dsNivel as NomeReferencia
, COALESCE(ETIQUETA.cdclassificacao, '99999') as codEtiqueta
, COALESCE(ETIQUETA.dsclassificacao, 'SEM ETIQUETA') as nomeEtiqueta
, COALESCE(LINHA.cdclassificacao, '99999') as codLinha
, COALESCE(LINHA.dsclassificacao, 'SEM LINHA') as nomeLinha
, COALESCE(TIPOPECA.cdclassificacao, '99999') as codTipoPeca
, COALESCE(TIPOPECA.dsclassificacao, 'SEM TIPO PECA') as nomeTpoPeca
, COALESCE(MODELO.cdclassificacao, '99999') as codTipoModelo
, COALESCE(MODELO.dsclassificacao, 'SEM MODELO') as nomeTipoModelo
, null as precoUnitario
, null as GradesAtivas
, grupo.cdNivel as codReferenciaProvisoria
, null as descricao
, null as descricaoHTML
, null as qtdeEmbarquePadrao
, null as genero
, null as keywords
, null as composicao
, null as precoSugerido
, null as flagGradeFechada
, null as unidMedida
, null as codGrupo
, null as percentualIPI
, null as grupo_st
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProdutoStr = preco.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON prinf.cdProduto = produto.cdProduto
LEFT OUTER JOIN
produtoclassificacaovaentity colecao
on grupo.cdProduto = colecao.cdProduto
and colecao.cdtipoclass = 1 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA COLEÇÃO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity ETIQUETA
on grupo.cdProduto = ETIQUETA.cdProduto
and ETIQUETA.cdtipoclass = 2 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA ETIQUETA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity LINHA
on grupo.cdProduto = LINHA.cdProduto
and LINHA.cdtipoclass = 3 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA LINHA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity TIPOPECA
on grupo.cdProduto = TIPOPECA.cdProduto
and TIPOPECA.cdtipoclass = 4 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA TIPO DE PEÇA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity MODELO
on grupo.cdProduto = MODELO.cdProduto
and MODELO.cdtipoclass = 5 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA MODELO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity MARCA
on grupo.cdProduto = MARCA.cdProduto
and MARCA.cdtipoclass = 6 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA MARCA COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity GENERO
on grupo.cdProduto = GENERO.cdProduto
and GENERO.cdtipoclass = 7 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA GENERO COM O CLIENTE
LEFT OUTER JOIN
produtoclassificacaovaentity FAMILIA
on grupo.cdProduto = FAMILIA.cdProduto
and FAMILIA.cdtipoclass = 8 -- CONFIRMAR O CÓDIGO DE CLASSIFICAÇÃO DA FAMILIA COM O CLIENTE
WHERE preco.codTabelaPreco IN ('#TABPRECO')
AND (colecao.cdClassificacao = :p2)
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND (grupo.cdNivel in (#REFERENCIAS) or COALESCE(#REFERENCIAS_TODAS,'0') = COALESCE('','0'))
AND coalesce(produto.inBloqueio, 0) = 0
AND grupo.cdNivel <> ''
GROUP BY grupo.cdNivel
, grupo.dsNivel
, COALESCE(ETIQUETA.cdclassificacao, '99999')
, COALESCE(ETIQUETA.dsclassificacao, 'SEM ETIQUETA')
, COALESCE(LINHA.cdclassificacao, '99999')
, COALESCE(LINHA.dsclassificacao, 'SEM LINHA')
, COALESCE(TIPOPECA.cdclassificacao, '99999')
, COALESCE(TIPOPECA.dsclassificacao, 'SEM TIPO PECA')
, COALESCE(MODELO.cdclassificacao, '99999')
, COALESCE(MODELO.dsclassificacao, 'SEM MODELO')
B2B - Produtos - Grades¶
Documentação: Produtos - Grades
select
grupo.cdNivel as codReferencia
, grade.cdGrade as codGrade
, grade.cdTamanho as seqTamanho
, grade.cdTamanho as seqOrdenacao
, grade.dsTamanho as codTamanho
, null as pesoPeca
, null as nomeGrade
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProdutoStr = preco.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON prinf.cdProduto = produto.cdProduto
INNER JOIN
ProdutoGradeVAEntity grade
ON grade.cdProduto = produto.cdProduto
WHERE preco.codTabelaPreco IN ('#TABPRECO')
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND coalesce(produto.inBloqueio, 0) = 0
AND (grupo.cdnivel in (#REFERENCIAS) or COALESCE(#REFERENCIAS_TODAS,'0') = COALESCE('','0'))
B2B - Produtos - Grade Fechada¶
Documentação: Produtos - Grade Fechada
Adicionar SQL
B2B - Produtos - Sortimentos¶
Documentação: Produtos - Sortimentos
select
grupo.cdNivel as codReferencia
, grade.cdCor as codSortimento
, grade.dsCor as descricao
, grade.cdCor as codCorBase
, '#FFFFFF' as codRGBCorBase
, null as ordem
, null as pocket
, null as estampa
FROM ETLProdutoTabelaPreco preco
INNER JOIN
ProdutoVAEntity produto
ON CAST(produto .cdProduto AS text) = preco.codProduto
LEFT OUTER JOIN
ProdutoInfVAEntity prinf
ON CAST(prinf.cdProduto AS text) = preco.codProduto
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = produto.cdProduto
INNER JOIN
ProdutoGradeVAEntity grade
ON grade.cdProduto = produto.cdProduto
WHERE preco.codTabelaPreco IN ('#TABPRECO')
AND colecao.cdClassificacao = :p2
AND COALESCE(prinf.ininativo, 'FALSE') = 'FALSE'
AND coalesce(produto.inBloqueio, 0) = 0
AND (LTRIM(RTRIM(grupo.cdnivel)) in (#REFERENCIAS) or COALESCE(#REFERENCIAS_TODAS,'0') = COALESCE('','0'))
GROUP BY grupo.cdNivel
, grade.cdCor
, grade.dsCor
B2B - Produtos - Tabela de Preço¶
Documentação: Produtos - Tabela de Preço
select
'1' as codEmpresa
, preco.codTabelaPreco as codTabela
, grupo.cdNivel as codProduto
, grade.cdGrade as codGrade
, preco.preco as preco
, null as preco_sugerido
FROM ETLProdutoTabelaPreco preco
LEFT OUTER JOIN
ProdutoGradeVAEntity grade
ON CAST(preco.codProduto AS text) = CAST(grade.cdProduto AS text)
INNER JOIN
etltabelapreco tab
ON tab.codTabelapreco = preco.codtabelapreco
INNER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdProduto = grade.cdProduto
INNER JOIN
ProdutoVAEntity produto
ON produto.cdProduto = grupo.cdProduto
WHERE preco.codTabelaPreco in ('#TABPRECO')
AND preco.preco IS NOT NULL
AND grupo.cdNivel <> ''
GROUP BY preco.codTabelaPreco
, grupo.cdNivel
, grade.cdGrade
, preco.preco
B2B - Produtos - Tabela de Preço por SKU¶
Documentação: Produtos - Tabela de Preço por SKU
Adicionar SQL
B2B - Produtos - Estoque¶
Documentação: Produtos - Estoque
Adicionar SQL
B2B - Produtos - Pocket¶
Documentação: Produtos - Pocket
Adicionar SQL
B2B - Pedido - Capa¶
Documentação: Pedido - Capa
select
uuid.uuid as codPedidoLoja
, pedido.cdPedido as codPedido
, CASE pedido.tpSituacao
WHEN 4 THEN '45'
WHEN 6 THEN '98'
WHEN 1 THEN '40'
WHEN 2 THEN '45'
WHEN 3 THEN '43'
WHEN 5 THEN '40'
WHEN 7 THEN '40'
WHEN 8 THEN '40'
ELSE '40'
END as situacao
FROM VendaVAEntity pedido
INNER JOIN
etlpedidouuid uuid
ON uuid.codpedido = cast(pedido.cdPedido as varchar)
WHERE pedido.cdEmpresa = 1
AND uuid.uuid in (#PEDIDOS_LOJA)
B2B - Pedido - Histórico¶
Documentação: Pedido - Histórico
select
pedido.cdPedido as NumeroErp
, pedido.dtPedido as Data
, CASE pedido.tpSituacao
WHEN 4 THEN '45'
WHEN 6 THEN '98'
WHEN 1 THEN '40'
WHEN 2 THEN '45'
WHEN 3 THEN '40'
WHEN 5 THEN '40'
WHEN 7 THEN '40'
WHEN 8 THEN '40'
ELSE '40'
END as Situacao
, null as FormaPagamento
, SUM(pedidoItem.qtSolicitada * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) as Total
, null as codcliente
, pessoa.nrcpfcnpj as cliCnpj
, null as nomecliente
FROM VendaItemVAEntity pedidoItem
INNER JOIN
VendaVAEntity pedido
ON pedidoItem.cdempresa = pedido.cdempresa AND pedidoItem.cdPedido = pedido.cdPedido
LEFT JOIN
PessoaVAEntity pessoa
ON pessoa.cdPessoa = pedido.cdCliente
WHERE pedido.tpSituacao NOT IN (6)
AND CAST(pedido.cdempresa as TEXT) = :p1
AND CAST(pessoa.nrcpfcnpj as TEXT) = :p2
GROUP BY pedido.cdPedido,
pedido.dtPedido,
pedido.tpSituacao,
pedido.prDesconto,
pessoa.nrcpfcnpj
order by pedido.dtPedido desc
B2B - Pedido - Detalhe¶
Documentação: Pedido - Detalhe
select
pedido.cdPedido as NumeroErp
, pedido.dtPedido as Data
, CASE pedido.tpSituacao
WHEN 4 THEN '45'
WHEN 6 THEN '98'
WHEN 1 THEN '40'
WHEN 2 THEN '45'
WHEN 3 THEN '40'
WHEN 5 THEN '40'
WHEN 7 THEN '40'
WHEN 8 THEN '40'
ELSE '40'
END as Situacao
, null as FormaPagamento
, SUM(pedidoItem.qtSolicitada * pedidoItem.vlUnitario) * ((100 - pedido.prDesconto) / 100) as Total
, SUM(pedidoItem.qtSolicitada * pedidoItem.vlUnitario) as TotalBruto
, pedido.observacoes as Observacoes
FROM VendaItemVAEntity pedidoItem
INNER JOIN
VendaVAEntity pedido
ON pedidoItem.cdempresa = pedido.cdempresa
AND pedidoItem.cdPedido = pedido.cdPedido
LEFT JOIN
PessoaVAEntity pessoa
ON pessoa.cdPessoa = pedido.cdCliente
LEFT JOIN
VPESConsultaVAEntity vpc
ON vpc.cdPessoa = pessoa.cdPessoa
LEFT JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdPessoa = pessoa.cdPessoa
AND endereco.nrSequencia = 1
LEFT join
vendaclassificacaovaentity colecao
on pedido.cdempresa = colecao.cdempresa
and pedido.cdPedido = colecao.cdpedido
and colecao.cdtipoclass = 2
LEFT join
vendaclassificacaovaentity segmento
on pedido.cdempresa = segmento.cdempresa
and pedido.cdPedido = segmento.cdpedido
and segmento.cdtipoclass = 1
WHERE pedido.tpSituacao NOT IN (6)
AND vpc.inCliente = 'TRUE'
AND CAST(pedido.cdempresa as TEXT) = :p1
AND CAST(pessoa.nrcpfcnpj as TEXT) = :p2
AND CAST(pedido.cdPedido as TEXT) = :p3
GROUP BY pedido.cdPedido
, pedido.dtPedido
, pedido.tpSituacao
, pedido.prDesconto
, pessoa.nrcpfcnpj
, pedido.observacoes
B2B - Pedido - Itens¶
Documentação: Pedido - Itens
select
row_number() OVER (ORDER BY grupo.cdNivel) as CodItem
, grupo.cdNivel as CodProduto
, grupo.dsNivel as NomeProduto
, sum(item.qtSolicitada) as QtdePedida
, sum(item.qtSolicitada - item.qtCancelada - item.qtAtendida) as QtdeSaldo
, sum(item.qtAtendida) as QtdeFaturado
, sum(item.qtCancelada) as QtdeCancelado
, item.vlUnitario as ValorUnitarioBruto
, CASE sum(item.qtSolicitada)
WHEN 0 THEN 0
ELSE sum(item.qtSolicitada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100)) / sum(item.qtSolicitada)
END as ValorUnitarioLiquido
, (sum(item.qtSolicitada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) - (sum(item.qtCancelada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) as ValorTotal
, grupo.cdNivel as CodReferencia
, grade.dsTamanho as SeqTamanho
, grade.cdCor as SeqSortimento
, null as QtdeReservado
FROM VendaItemVAEntity item
LEFT JOIN
VendaVAEntity pedido
ON item.cdEmpresa = pedido.cdEmpresa
AND item.cdPedido = pedido.cdPedido
LEFT JOIN
ProdutoVAEntity produto
ON produto.cdProduto = item.cdProduto
LEFT JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdproduto = produto.cdproduto
LEFT JOIN
produtogradevaentity grade
ON grade.cdproduto = produto.cdproduto
WHERE CAST(item.cdPedido as text) = :p1
group by grupo.cdNivel
, grupo.dsNivel
, item.vlUnitario
, item.prDesconto
, pedido.prDesconto
, grade.dsTamanho
B2B - Cliente¶
Documentação: Cliente
select
select
coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) as cnpj
, pj.nmfantasia as nomeFantasia
, pm.dsemail as email
, pe.cdcep as cep
, pe.nmlogradouro as endereco
, pe.nrlogradouro as enderecoNumero
, pe.dscomplemento as complemento
, pe.dsbairro as bairro
, COALESCE(im.codibge, '4127403') as codIBGE --CONFIRMAR COM O CLIENTE UM IBGE PADRÃO
, regexp_replace(pt.nrtelefone, '[^0-9]', '', 'g') as telefone
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') as codRepres1
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 1), '0') as codRepres2
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 2), '0') as codRepres3
, p.cdpessoa as codCliente
, (case when (p.ininativo = 'TRUE') then 0 else 1 end) as flagAtivoParaLoja
, 1 as flagIsRepresentanteB2B
, p.nmpessoa as razaoSocial
, null as emailRepres
, pj.nrinscestl as inscricaoEstadual
, pe.ufsigla as siglaUF
, null as nomeUF
, null as populacao
, null as ipc
, case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end as codGrupoCli
, (select pg.nmpessoa from pessoavaentity pg where pg.cdempresa = vpc.cdempresacad and pg.cdpessoa = vpc.cdcoligador) as nomeGrupoCli
, null as salarioBase
, null as limiteCredito
, null as codCondPagto
, null as codTransportadora
, null as descontoPadrao
, null as pais
, (case when coalesce(titulos_em_atraso,0) > 0 then 1 else 0 end) as inadimplente
, null as cliente_novo_crm
, pts.nrtelefone as fax
, pts.nrtelefone as celular
, pmc.dsemail as emailNfe
, null as telefoneCompras
, null as telefoneCobranca
, null as facebook
, null as instagram
, null as dataFundacao
, null as marcasLiberadas
, null as tipoFaturamento
, null as regime_st
FROM pessoavaentity p
inner join
pessoaenderecovaentity pe
on pe.cdempresa = p.cdempresa and pe.cdpessoa = p.cdpessoa
inner join
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
LEFT join
ETLCidade im
on im.codCidade = pe.cdMunicipio
LEFT join
pessoatelefonevaentity pt
on pt.cdempresa = p.cdempresa
AND pt.cdpessoa = p.cdpessoa
AND pt.id = ( SELECT MIN(pt2.id)
FROM pessoatelefonevaentity pt2
WHERE pt.cdempresa = pt2.cdempresa
AND pt.cdpessoa = pt2.cdpessoa
)
left join
pessoaemailvaentity pm
on pm.cdempresa = p.cdempresa
and pm.cdpessoa = p.cdpessoa
and pm.inpadrao = 'TRUE'
left join
pessoaemailvaentity pmc
on pmc.cdempresa = p.cdempresa
and pmc.cdpessoa = p.cdpessoa
and pmc.cdtipoemail = 3 -- CONFIRMAR QUAL TIPO DE E-MAIL É O EMAIL DE NFE/COBRANCA
left join
pessoatelefonevaentity pts
on pts.cdempresa = p.cdempresa
and pts.cdpessoa = p.cdpessoa
and pts.cdtipofone = 4 -- CONFIRMAR COM O CLIENTE QUAL É O CÓDIGO DO TELEFONE CELULAR
left join
pessoajuridicavaentity pj
on pj.cdempresa = p.cdempresa
and pj.cdpessoa = p.cdpessoa
left join
(select codcliente::int as codcliente
, codempresa::int as codempresa
, count(*) as titulos_em_atraso
from etltitulo
where situacao = '1'
and (dataVencimento::date + 28) < (current_date) -- CONFIRMAR COM O CLIENTE QUANTOS DIAS CONSIDERA INADIMPLENTE
group by codcliente
, codempresa having sum(valor) > 3000) as inad -- CONFIRMAR COM O CLIENTE SE INADIMPLENTE É ACIMA DE 3 MIL REAIS DEVENDO
on inad.codcliente = p.cdpessoa
and inad.codempresa = p.cdempresa
left join
(SELECT v.cdcliente, MIN(v.dtpedido) as dataCadastro FROM vendavaentity v GROUP BY v.cdcliente) as v
on v.cdcliente = p.cdpessoa
where vpc.incliente = 'TRUE'
AND coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') is not null
and coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) is not null
AND pe.cdcep <> '99999999'
AND length(coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj)) >= 14 -- CONFIRMAR COM O CLIENTE SE É PARA PUXAR SÓ CNPJ
AND (
(coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) = replace(replace(replace(:p2,'.',''),'-',''),'/',''))
OR (cast(P.cdPessoa as varchar(14)) = :p2)
)
B2B - Representantes - Clientes¶
Documentação: Representantes - Clientes
select
coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = pessoa.cdempresa and pf.cdpessoa = pessoa.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = pessoa.cdempresa and pj.cdpessoa = pessoa.cdpessoa
), pessoa.nrcpfcnpj) as cnpj
, pessoa.nmpessoa as nomeFantasia
, email.dsemail as email
, endereco.cdcep as cep
, endereco.nmLogradouro as endereco
, endereco.nrLogradouro as enderecoNumero
, null as complemento
, endereco.dsbairro as bairro
, COALESCE(im.codibge, '4127403') as codIBGE --CONFIRMAR COM O CLIENTE UM IBGE PADRÃO
, telefone.nrtelefone as telefone
, pessoa.cdPessoa as codRepres1
, null as codRepres2
, null as codRepres3
, pessoa.cdPessoa as codCliente
, 1 as flagAtivoParaLoja
, 2 as flagIsRepresentanteB2B
, pessoa.nmpessoa as razaoSocial
, null as emailRepres
, null as inscricaoEstadual
, CASE WHEN endereco.cdcep = '99999999' THEN 'EX' ELSE UPPER(endereco.ufsigla) END as siglaUF
, CASE WHEN endereco.cdcep = '99999999' THEN 'EX' ELSE UPPER(endereco.ufsigla) END as nomeUF
, null as populacao
, null as ipc
, (case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end) as codGrupoCli
, (select pg.nmpessoa from pessoavaentity pg where pg.cdempresa = vpc.cdempresacad and pg.cdpessoa = vpc.cdcoligador) as nomeGrupoCli
FROM PessoaVAEntity pessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
and endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = endereco.cdempresa and cdpessoa = endereco.cdpessoa)
INNER JOIN
VPESConsultaVAEntity vpc
ON vpc.cdPessoa = pessoa.cdPessoa
LEFT JOIN
PessoaTelefoneVAEntity telefone
ON telefone.cdEmpresa = pessoa.cdEmpresa
AND telefone.cdPessoa = pessoa.cdPessoa
and telefone.id = (select min(id) from pessoatelefonevaentity where cdempresa = telefone.cdempresa and cdpessoa = telefone.cdpessoa and inpadrao = 'TRUE')
LEFT JOIN
PessoaEmailVAEntity email
ON email.cdEmpresa = pessoa.cdEmpresa
AND email.cdPessoa = pessoa.cdPessoa
and email.id = (select min(id) from pessoaemailvaentity where cdpessoa = email.cdpessoa and cdempresa = email.cdempresa and inpadrao = 'TRUE')
LEFT JOIN
PessoaEmailVAEntity emailNFE
ON emailNFE.cdEmpresa = pessoa.cdEmpresa
AND emailNFE.cdPessoa = pessoa.cdPessoa
and emailNFE.id = (select min(id) from pessoaemailvaentity where cdpessoa = emailNFE.cdpessoa and cdempresa = emailNFE.cdempresa and cdtipoemail = 3) -- CONFIRMAR QUAL TIPO DE E-MAIL É O EMAIL DE NFE/COBRANCA
LEFT JOIN
PessoaTelefoneVAEntity telefone2
ON telefone2.cdEmpresa = pessoa.cdEmpresa
AND telefone2.cdPessoa = pessoa.cdPessoa
and telefone2.id = (select min(id) from pessoatelefonevaentity where cdempresa = telefone2.cdempresa and cdpessoa = telefone2.cdpessoa and cdtipofone = 2) -- CONFIRMAR COM O CLIENTE QUAL É O CÓDIGO DO TELEFONE CELULAR
LEFT JOIN
pessoajuridicavaentity pessoaJuridica
ON pessoaJuridica.cdEmpresa = pessoa.cdEmpresa
AND pessoaJuridica.cdPessoa = pessoa.cdPessoa
LEFT join
ETLCidade im
on im.codCidade = endereco.cdMunicipio
WHERE vpc.inRepresent = 'TRUE'
AND pessoa.ininativo = 'FALSE'
and ((replace(replace(replace(pessoaJuridica.nrcnpj,'.',''),'-',''),'/','') = replace(replace(replace(:p2,'.',''),'-',''),'/','')) OR (cast(pessoa.cdPessoa as varchar(14)) = :p2))
B2B - Clientes - Representantes¶
Documentação: Clientes - Representantes
select
coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) as cnpj
, CASE WHEN pj.nmfantasia IS NULL OR pj.nmfantasia = '' THEN p.nmpessoa ELSE pj.nmfantasia END as nomeFantasia
--, pm.dsemail as email
, 'angela@geovendas.com'
, pe.cdcep as cep
, pe.nmlogradouro as endereco
, pe.nrlogradouro as enderecoNumero
, pe.dscomplemento as complemento
, pe.dsbairro as bairro
, COALESCE(im.codibge, '4127403') as codIBGE --CONFIRMAR COM O CLIENTE UM IBGE PADRÃO
, regexp_replace(pt.nrtelefone, '[^0-9]', '', 'g') as telefone
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') as codRepres1
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 1), '0') as codRepres2
, coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 2), '0') as codRepres3
, p.cdpessoa as codCliente
, (case when (p.ininativo = 'TRUE') then 0 else 1 end) as flagAtivoParaLoja
, 1 as flagIsRepresentanteB2B
, CASE WHEN p.nmpessoa IS NULL OR p.nmpessoa = '' THEN pj.nmfantasia ELSE p.nmpessoa END as razaoSocial
, null as emailRepres
, pj.nrinscestl as inscricaoEstadual
, pe.ufsigla as siglaUF
, null as nomeUF
, null as populacao
, null as ipc
, case when vpc.cdcoligador = '0' then null else vpc.cdcoligador end as codGrupoCli
, (select pg.nmpessoa from pessoavaentity pg where pg.cdempresa = vpc.cdempresacad and pg.cdpessoa = vpc.cdcoligador) as nomeGrupoCli
, null as salarioBase
, null as limiteCredito
, null as codCondPagto
, null as codTransportadora
, null as descontoPadrao
, null as pais
, (case when coalesce(titulos_em_atraso,0) > 0 then 1 else 0 end) as inadimplente
, null as cliente_novo_crm
, pts.nrtelefone as fax
, pts.nrtelefone as celular
, pmc.dsemail as emailNfe
, null as telefoneCompras
, null as telefoneCobranca
, null as facebook
, null as instagram
, null as dataFundacao
FROM pessoavaentity p
inner join
pessoaenderecovaentity pe
on pe.cdempresa = p.cdempresa and pe.cdpessoa = p.cdpessoa
inner join
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
LEFT join
ETLCidade im
on im.codCidade = pe.cdMunicipio
LEFT join
pessoatelefonevaentity pt
on pt.cdempresa = p.cdempresa
AND pt.cdpessoa = p.cdpessoa
AND pt.id = ( SELECT MIN(pt2.id)
FROM pessoatelefonevaentity pt2
WHERE pt.cdempresa = pt2.cdempresa
AND pt.cdpessoa = pt2.cdpessoa
)
left join
pessoaemailvaentity pm
on pm.cdempresa = p.cdempresa
and pm.cdpessoa = p.cdpessoa
and pm.inpadrao = 'TRUE'
left join
pessoaemailvaentity pmc
on pmc.cdempresa = p.cdempresa
and pmc.cdpessoa = p.cdpessoa
and pmc.cdtipoemail = 3 -- CONFIRMAR QUAL TIPO DE E-MAIL É O EMAIL DE NFE/COBRANCA
left join
pessoatelefonevaentity pts
on pts.cdempresa = p.cdempresa
and pts.cdpessoa = p.cdpessoa
and pts.cdtipofone = 4 -- CONFIRMAR COM O CLIENTE QUAL É O CÓDIGO DO TELEFONE CELULAR
left join
pessoajuridicavaentity pj
on pj.cdempresa = p.cdempresa
and pj.cdpessoa = p.cdpessoa
left join
(select codcliente::int as codcliente
, codempresa::int as codempresa
, count(*) as titulos_em_atraso
from etltitulo
where situacao = '1'
and (dataVencimento::date + 28) < (current_date) -- CONFIRMAR COM O CLIENTE QUANTOS DIAS CONSIDERA INADIMPLENTE
group by codcliente
, codempresa having sum(valor) > 3000) as inad -- CONFIRMAR COM O CLIENTE SE INADIMPLENTE É ACIMA DE 3 MIL REAIS DEVENDO
on inad.codcliente = p.cdpessoa
and inad.codempresa = p.cdempresa
left join
(SELECT v.cdcliente, MIN(v.dtpedido) as dataCadastro FROM vendavaentity v GROUP BY v.cdcliente) as v
on v.cdcliente = p.cdpessoa
where vpc.incliente = 'TRUE'
AND coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') is not null
and coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj) is not null
AND pe.cdcep <> '99999999'
AND length(coalesce(
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = p.cdempresa and pf.cdpessoa = p.cdpessoa
union
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = p.cdempresa and pj.cdpessoa = p.cdpessoa
), p.nrcpfcnpj)) >= 14 -- CONFIRMAR COM O CLIENTE SE É PARA PUXAR SÓ CNPJ
AND (
CAST(coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1), '0') AS VARCHAR(255)) = :p2
OR CAST(coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 1), '0') AS VARCHAR(255)) = :p2
OR CAST(coalesce((select rep.cdrepresentant from pessoareprclientevaentity rep where rep.cdempresa = p.cdempresa and rep.cdpessoa = p.cdpessoa limit 1 offset 2), '0') AS VARCHAR(255)) = :p2
)
B2B - Comissão por Repres/Cliente/Marca¶
Documentação: Comissão por Repres/Cliente/Marca
Adicionar SQL
B2B - Condição de Venda¶
Documentação: Condição de Venda
Adicionar SQL
B2B - Bloqueio de Referências¶
Documentação: Bloqueio Referências
Adicionar SQL
B2B - Boletos - Consulta Cliente¶
Documentação: Boletos - Consulta Cliente
Adicionar SQL
B2B - Boletos - Listagem¶
Documentação: Boletos - Listagem
Adicionar SQL
B2B - Boletos - Detalhado¶
Documentação: Boletos - Detalhado
Adicionar SQL
B2B - DANFE- Listagem¶
Documentação: DANFE- Listagem
Adicionar SQL
B2B - DANFE- Itens da Nota¶
Documentação: DANFE- Itens da Nota
Adicionar SQL
B2B - DANFE- XML¶
Documentação: DANFE- XML
Adicionar SQL
B2B - Lote de Faturamento¶
Documentação: Lote de Faturamento
Adicionar SQL
B2B - Produto SKU - Cód. Barras¶
Documentação: Produto SKU - Cód. Barras
Adicionar SQL
B2B - Espelho Nota de Devolução¶
Documentação: Frete
Adicionar SQL
B2B - Espelho Nota de Devolução¶
Documentação: Espelho Nota de Devolução
Adicionar SQL
B2B - Produto Volume Valor por Referência¶
Documentação: Produto Volume Valor por Referência
Adicionar SQL
B2B - Substituição Tributária¶
Documentação: Substituição Tributária
Adicionar SQL
B2B - Pedido - Recompra¶
Documentação: Pedido - Recompra
Adicionar SQL
CRM¶
CRM - Dados Cadastrais do Cliente¶
Documentação: Dados Cadastrais do Cliente
SELECT
pessoa.nmPessoa as nome
, repCli.cdrepresentant as codRepres
, repres.nmPessoa as nomeRepres
, endereco.nmLogradouro as endereco
, endereco.dsbairro as bairro
, endereco.nrLogradouro as numero
, endereco.dscomplemento as complemento
, endereco.cdcep as cep
, null as codAtendente
, null as nomeAtendente
, pessoa.cdPessoa as codCliente
, pessoaJuridica.nrinscestl as inscricaoEstadual
, regexp_replace(telefone.nrtelefone, '[^0-9]', '', 'g') as telefone
, endereco.ufsigla as cepuf
, im.nome as cidade
, pessoa.dtcadastro as dataCadastro
, pessoaJuridica.nmfantasia as nomeFantasia
, vpc.cdcoligador as codGrupoEconomico
, vpc.cdcoligador as nomeGrupoEconomico
, pessoaJuridica.nrCnpj as cnpjCpf
, email.dsEmail as email
, regexp_replace(telefone2.nrtelefone, '[^0-9]', '', 'g') as celular
FROM pessoavaEntity pessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
and endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = endereco.cdempresa and cdpessoa = endereco.cdpessoa)
LEFT JOIN
PessoaTelefoneVAEntity telefone
ON telefone.cdEmpresa = pessoa.cdEmpresa
AND telefone.cdPessoa = pessoa.cdPessoa
and telefone.id = (select min(id) from pessoatelefonevaentity where cdempresa = telefone.cdempresa and cdpessoa = telefone.cdpessoa) -- and inpadrao = 'TRUE')
LEFT JOIN
PessoaTelefoneVAEntity telefone2
ON telefone2.cdEmpresa = pessoa.cdEmpresa
AND telefone2.cdPessoa = pessoa.cdPessoa
and telefone2.id = (select min(id) from pessoatelefonevaentity where cdempresa = telefone2.cdempresa and cdpessoa = telefone2.cdpessoa and cdtipofone = 4)
LEFT join
ETLCidade im on im.codCidade = endereco.cdMunicipio
LEFT JOIN
PessoaEmailVAEntity email
ON email.cdEmpresa = pessoa.cdEmpresa
AND email.cdPessoa = pessoa.cdPessoa
and email.id = (select min(id) from pessoaemailvaentity where cdpessoa = email.cdpessoa and cdempresa = email.cdempresa and inpadrao = 'TRUE')
LEFT JOIN
pessoajuridicavaentity pessoaJuridica
ON pessoaJuridica.cdEmpresa = pessoa.cdEmpresa
AND pessoaJuridica.cdPessoa = pessoa.cdPessoa
LEFT JOIN
PessoaReprClienteVAEntity repCli
ON pessoa.cdPessoa = repCli.cdPessoa
LEFT JOIN
pessoavaEntity repres
ON repCli.cdRepresentant = repres.cdpessoa
LEFT JOIN
vpesconsultavaentity vpc
on vpc.cdpessoa = pessoa.cdpessoa
WHERE ((pessoaJuridica.nrCnpj = :p2) or (pessoaJuridica.nrCnpj = :p1) OR (pessoa.cdpessoa::text = :p1))
CRM - Pesquisa por Nome de Cliente¶
Documentação: Pesquisa por Nome de Cliente
SELECT
coalesce(pessoa.nrcpfcnpj,'') as cnpjCpf
, coalesce(pessoa.nmPessoa||'('||pessoa.cdpessoa||')','') as nome
, coalesce(im.nome,'') as cidade
, coalesce(endereco.ufsigla,'') as estado
, coalesce(pessoa.cdpessoa) as codCliente
, coalesce(pj.nmfantasia,'') as nomeFantasia
, coalesce(endereco.cdcep,'') as cep
FROM pessoavaEntity pessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
and endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = endereco.cdempresa and cdpessoa = endereco.cdpessoa)
LEFT join
ETLCidade im
on im.codCidade = endereco.cdMunicipio
INNER JOIN
vpesconsultavaentity vpc
on vpc.cdpessoa = pessoa.cdpessoa
INNER JOIN
pessoajuridicavaentity pj
on pj.cdempresa = pessoa.cdempresa and pj.cdpessoa = pessoa.cdpessoa
where vpc.incliente = 'TRUE'
and coalesce(
(select cpfcnpj from
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = pessoa.cdempresa and pf.cdpessoa = pessoa.cdpessoa
union all
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = pessoa.cdempresa and pj.cdpessoa = pessoa.cdpessoa
) cnpj limit 1), '') <> ''
AND ((UPPER(coalesce(pessoa.nmPessoa||'('||pessoa.cdpessoa||')','')) like UPPER(:p1))
OR (UPPER(coalesce(pessoa.nrcpfcnpj,'')) LIKE UPPER(:p1))
OR (UPPER(coalesce(im.nome,'')) LIKE UPPER(:p1))
OR (UPPER(coalesce(endereco.ufsigla,'')) LIKE UPPER(:p1))
OR (UPPER(coalesce(pj.nmfantasia,'')) LIKE UPPER(:p1))
OR (UPPER(coalesce(endereco.cdcep,'')) LIKE UPPER(:p1))
OR :p1 IS NULL)
CRM - Pesquisa Avançada¶
Documentação: Pesquisa Avançada
SELECT
coalesce(pessoa.nrcpfcnpj,'') as cnpjCpf
, coalesce(pessoa.nmPessoa||'('||pessoa.cdpessoa||')','') as nome
, coalesce(im.nome,'') as cidade
, coalesce(endereco.ufsigla,'') as estado
, coalesce(pessoa.cdpessoa) as codCliente
, coalesce(pj.nmfantasia,'') as nomeFantasia
, coalesce(endereco.cdcep,'') as cep
FROM pessoavaEntity pessoa
INNER JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = pessoa.cdEmpresa
AND endereco.cdPessoa = pessoa.cdPessoa
and endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = endereco.cdempresa and cdpessoa = endereco.cdpessoa)
LEFT join
ETLCidade im
on im.codCidade = endereco.cdMunicipio
INNER JOIN
vpesconsultavaentity vpc
on vpc.cdpessoa = pessoa.cdpessoa
INNER JOIN
pessoajuridicavaentity pj
on pj.cdempresa = pessoa.cdempresa and pj.cdpessoa = pessoa.cdpessoa
where vpc.incliente = 'TRUE'
and coalesce(
(select cpfcnpj from
(select pf.nrcpf as cpfCnpj from pessoafisicavaentity pf where pf.cdempresa = pessoa.cdempresa and pf.cdpessoa = pessoa.cdpessoa
union all
select pj.nrcnpj as cpfCnpj from pessoajuridicavaentity pj where pj.cdempresa = pessoa.cdempresa and pj.cdpessoa = pessoa.cdpessoa
) cnpj limit 1), '') <> ''
AND (
((UPPER(coalesce(pessoa.nmPessoa||'('||pessoa.cdpessoa||')','')) like UPPER(:p1)) OR (:p1 is null))
AND ((UPPER(coalesce(pj.nmfantasia,'')) LIKE UPPER(:p2)) OR (:p2 is null))
AND ((UPPER(coalesce(im.nome,'')) LIKE UPPER(:p3)) OR (:p3 is null))
AND ((UPPER(coalesce(endereco.ufsigla,'')) LIKE UPPER(:p4)) OR (:p4 is null))
AND ((UPPER(coalesce(pessoa.nrcpfcnpj,'')) LIKE UPPER(:p5)) OR (:p5 is null))
AND ((UPPER(coalesce(pessoa.cdpessoa,'')) LIKE UPPER(:p6)) OR (:p6 is null))
)
CRM - Lista de Pedidos do Cliente¶
Documentação: Lista de Pedidos do Cliente
SELECT
'1' as codEmpresa
, v.cdpedido as codPedido
, cast(v.dtpedido as date) as dataEmissao
, cast(v.dtprevbaixa as date) as dataPrevFat
, CASE v.tpSituacao
WHEN 4 THEN 'ATENDIDO'
WHEN 6 THEN 'CANCELADO'
WHEN 1 THEN 'EM ANDAMENTO'
WHEN 2 THEN 'LIBERADO PARA FATURAMENTO'
WHEN 3 THEN 'PARCIALMENTE ATENDIDO'
WHEN 5 THEN 'BLOQUEADO'
WHEN 7 THEN 'EM COMPOSIÇÃO'
WHEN 8 THEN 'EM ANÁLISE' ELSE 'OUTRA SITUAÇÃO'
END as situacaoEdt
, SUM(round(cast ((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario as numeric) ,4)) as valorTotalBruto
, SUM(round(cast (((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario) * (((100 - vi.prdesconto) / 100) * ((100 - v.prdesconto) / 100)) as numeric), 2)) as valorTotalLiquido
, SUM((vi.qtSolicitada + vi.qtextra - vi.qtatendida - vi.qtcancelada) * vi.vlUnitario) as valorSaldo
, v.cdcliente as codCliente
, p.nmpessoa as nomeCliente
FROM vendavaentity v
left join
vendaitemvaentity vi
on v.cdempresa = vi.cdempresa
and v.cdpedido = vi.cdpedido
left join
pessoavaentity p
on p.cdpessoa = v.cdcliente
left join
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
left join
vendaclassificacaovaentity tipoPed
on v.cdEmpresa = tipoPed.cdempresa
and v.cdpedido = tipoPed.cdpedido
and tipoPed.cdtipoclass = 3
where v.tpsituacao not in (6)
AND v.cdEmpresa = '1'
AND p.nrCpfcnpj = :p1
and vpc.incliente = 'TRUE'
group by
v.cdEmpresa
, v.cdpedido
, v.dtpedido
, v.dtprevbaixa
, v.tpSituacao
, v.cdcliente
, p.nmpessoa
CRM - Pedido - Detalhado¶
Documentação: Pedido - Detalhado
SELECT
cast(v.dtpedido as date) as dataEmissao
, cast(v.dtprevbaixa as date) as dataPrevFaturamento
, CASE v.tpSituacao
WHEN 4 THEN 'ATENDIDO'
WHEN 6 THEN 'CANCELADO'
WHEN 1 THEN 'EM ANDAMENTO'
WHEN 2 THEN 'LIBERADO PARA FATURAMENTO'
WHEN 3 THEN 'PARCIALMENTE ATENDIDO'
WHEN 5 THEN 'BLOQUEADO'
WHEN 7 THEN 'EM COMPOSIÇÃO'
WHEN 8 THEN 'EM ANÁLISE' ELSE 'OUTRA SITUAÇÃO'
END as situacaoEdt
, p.nrCpfcnpj as cnpjCpf
, pj.nrinscestl as inscEstadual
, v.cdcliente as codCliente
, p.nmpessoa as nomeCliente
, im.nome as cidadeCliente
, repres.cdPessoa as codRepres
, repres.nmPessoa as nomeRepres
, v.prcomissaofat + v.prcomissaorec as percComissao
, v.cdTabpreco as tabPreco
, cp.nome as nomeCondVenda
, null as tipoNF
, v.cdTransport as transpDespacho
, v.nmTransport as transpDespNome
, tpFrete as tipoFreteDespacho
, null as transpRedespacho
, null as transpRedespachoNome
, null as tipoFreteRedespacho
, SUM(round(cast ((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario as numeric) ,4)) as valorTotalBruto
, SUM(round(cast (((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario) * ((100 - v.prdesconto) / 100) as numeric), 4)) as valorTotalLiquido
, SUM((vi.qtSolicitada + vi.qtextra - vi.qtatendida - vi.qtcancelada) * vi.vlUnitario) as valorSaldo
, null as observacao
, SUM(round(cast (((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario) - ((vi.qtsolicitada - vi.qtcancelada) * vi.vlunitario) * ((100 - v.prdesconto) / 100) as numeric), 4)) as valorDesconto
, im.siglaUF as uf
, v.prdesconto as percDesconto
, null as tipoPedido
FROM vendavaentity v
LEFT JOIN
vendaitemvaentity vi
on v.cdempresa = vi.cdempresa
and v.cdpedido = vi.cdpedido
LEFT JOIN
pessoavaentity p
on p.cdpessoa = v.cdcliente
LEFT JOIN
pessoajuridicavaentity pj
ON pj.cdEmpresa = p.cdEmpresa
AND pj.cdPessoa = p.cdPessoa
LEFT JOIN
vpesconsultavaentity vpc
on vpc.cdpessoa = p.cdpessoa
LEFT JOIN
PessoaEnderecoVAEntity endereco
ON endereco.cdEmpresa = p.cdEmpresa
AND endereco.cdPessoa = p.cdPessoa
and endereco.id = (select min(id) from pessoaenderecovaentity where cdempresa = endereco.cdempresa and cdpessoa = endereco.cdpessoa)
LEFT JOIN
ETLCidade im
on UPPER(im.siglaUF) = UPPER(endereco.ufsigla)
and ((REPLACE(REPLACE(UPPER(im.nome), ' ', ''), '''', '') = REPLACE(REPLACE(UPPER(endereco.nmmunicipio), ' ', ''), '''', '')) OR (REPLACE(REPLACE(UPPER(im.nome), ' ', ''), '''', 'O') = REPLACE(REPLACE(UPPER(endereco.nmmunicipio), ' ', ''), '''', '')))
LEFT JOIN
PessoaReprClienteVAEntity repCli
ON p.id = repCli.cdPessoa
LEFT JOIN
pessoavaEntity repres
ON v.cdRepresentant = repres.cdPessoa
LEFT JOIN
ETLCondPagto cp
on cp.id = v.cdCondpgto
WHERE v.tpsituacao not in (6)
AND v.cdPedido::varchar = :p2
AND vpc.incliente = 'TRUE'
GROUP BY v.id
, p.id
, pj.id
, im.id
, repres.id
, cp.id
CRM - Pedido - Itens¶
Documentação: Pedido - Itens
SELECT
row_number() OVER (ORDER BY grupo.cdNivel) as seqItem
, grupo.cdNivel as codReferencia
, grupo.dsNivel as nomeItem
, sum(item.qtSolicitada) AS qtdePedida
, sum(item.qtSolicitada - item.qtCancelada - item.qtAtendida) AS qtdePendente
, sum(item.qtAtendida) AS qtdeFaturada
, sum(item.qtCancelada) AS qtCancelada
, item.vlUnitario AS valorUnitario
, CASE sum(item.qtSolicitada) WHEN 0 THEN 0 ELSE sum(item.qtSolicitada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100)) / sum(item.qtSolicitada) as precoUnitLiquido
, (sum(item.qtSolicitada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) - (sum(item.qtCancelada) * ((item.vlUnitario * ((100 - item.prDesconto) / 100)) * ((100 - pedido.prDesconto) / 100))) as total
FROM VendaItemVAEntity item
LEFT OUTER JOIN
VendaVAEntity pedido
ON item.cdEmpresa = pedido.cdEmpresa
AND item.cdPedido = pedido.cdPedido
LEFT OUTER JOIN
ProdutoVAEntity produto
ON produto.cdProduto = item.cdProduto
LEFT OUTER JOIN
ProdutoGrupoAdicionalVAEntity grupo
ON grupo.cdproduto = produto.cdproduto
WHERE CAST(item.cdPedido as text) = :p2
group by grupo.cdNivel
, grupo.dsNivel
, item.vlUnitario
, item.prDesconto,pedido.prDesconto
CRM - Pedido - NFs¶
Documentação: Pedido - NFs
SELECT
nota.dataEmissao as dataNF
, nota.numeroNF as numeroNF
, CASE nota.situacao
WHEN 'G' THEN 'GERADA'
WHEN 'A' THEN 'AUTORIZADA'
WHEN 'C' THEN 'CANCELADA'
WHEN 'I' THEN 'INUTILIZADA'
WHEN 'D' THEN 'DENEGADA'
WHEN 'E' THEN 'EMITIDA' ELSE 'OUTROS'
END as situacaoEdt
, nota.valorLiquido as valorTotal
, nota.codTransp as codTransportadora
, vpc.nmpessoa as nomeTransportadora
, null as codRedespacho
, null as nomeRedespacho
, nota.chaveNFE as nfeChave
, null as dataEntrega
FROM ETLPedidoNotaFiscal nota
INNER JOIN
VPesConsultaVAEntity vpc
ON CAST(vpc.cdPessoa as text) = nota.codTransp
WHERE nota.codPedido = :p2
AND vpc.inTransport = 'TRUE'
CRM - Informações Financeiras¶
Documentação: Informações Financeiras
Adicionar SQL
CRM - Informações Financeiras por Situação¶
Documentação: Informações Financeiras por Situação
Adicionar SQL
CRM - Informações Financeiras - Ocorrências¶
Documentação: Informações Financeiras - Ocorrências
Adicionar SQL
CRM - Clientes do Grupo¶
Documentação: Clientes do Grupo
Adicionar SQL
CRM - Lista de Pedidos Representante¶
Documentação: Lista de Pedidos Representante
Adicionar SQL
CRM - Lista de Clientes do Itinerário¶
Documentação: Lista de Clientes do Itinerário
Adicionar SQL