Projeto

Geral

Perfil

VirtualAge-ETL-SQL-padrao » Histórico » Versão 18

« Anterior - Versão 18/50 (diff) - Próximo » - Versão atual
paulo, 09/12/2022 08:58 h


Virtual Age API V1 - ETL

Índice
  1. GEOvendas
    1. GEO - Representantes
    2. GEO - Representante Gerente
    3. GEO - Municípios do Representante
    4. GEO - Municípios do ERP
    5. GEO - Clientes e Prospects
    6. GEO - Cliente Dos Representantes
    7. GEO - Marcas do Cliente
    8. GEO - Coleções
    9. GEO - Linhas de Produto
    10. GEO - Marcas
    11. GEO - Vendas
    12. GEO - Faturamento - Contrato
    13. GEO - Meta do Representante
    14. GEO - Meta do Escritório
    15. GEO - Estoque Centralizado
    16. GEO - Clientes Inadimplentes
    17. GEO - Condição de Venda
  2. Força de Vendas
    1. FV - Tabela de Preço
    2. FV - Tabela de Preço por Representante
    3. FV - Tabela de Preço - Produto
    4. FV - Tabela de Preço - Política - Desconto Comercial
    5. FV - Tabela de Preço - Política - Desconto Financeiro
    6. FV - Tabela de Preço - Política - Desconto Antecipação
    7. FV - Tabela de Preço - Política - Prazo Adicional
    8. FV - Tabela de Preço - Política - Desconto Volume
    9. FV - Tabela de Preço - Política - Preços por volume
    10. FV - Títulos Em Aberto
    11. FV - Condição de Venda
    12. FV - Cota de estoque - Por representante
    13. FV - Tipo de Nota
    14. FV - Tipo de Cobrança
    15. FV - Comissões
    16. FV - Comissões - Extrato Resumo
    17. FV - Comissões - Extrato Detalhado
    18. FV - Clientes
    19. FV - Clientes - Campos Customizados
    20. FV - Clientes - Locais de Entrega
    21. FV - Clientes - Ramos de Atividade
    22. FV - Clientes - Grupos de Cliente
    23. FV - Clientes - Condições de venda
    24. FV - Clientes - Marcas
    25. FV - Clientes - Marcas Concorrentes
    26. FV - Produtos - Gold Be
    27. FV - Produtos
    28. FV - Produtos - Grades
    29. FV - Produtos - Sortimentos
    30. FV - Produtos Skus
    31. FV - Produto - Código Reduzido
    32. FV - Produto - EAN13
    33. FV - Bloqueio de Referências
    34. FV - Pedido - Capa
    35. FV - Pedidos por Referência
    36. FV - Listagem de Pedidos - Capa
    37. FV - Listagem de Pedidos - Detalhado
    38. FV - Listagem de Pedidos - Itens
    39. FV - Listagem de Pedidos - Notas
    40. FV - Listagem de Pedidos - Observações
    41. FV - Listagem de Pedidos - Histórico
    42. FV - Estoque
    43. FV - Lote Entrega
    44. FV - Lotes de Faturamento
    45. FV - Cálculo substituição tributária
    46. FV - Grupos substituição tributária
    47. FV - Integração Valor de Frete por UF
    48. FV - Tabela de Preço SKU
    49. FV - Tabela de Preço - Política - Desconto Adicional de Lote
    50. FV - Listagem de Pedidos em Aberto - Capa
    51. FV - Listagem de Pedidos em Aberto - Detalhado
    52. FV - Listagem de Pedidos em Aberto - Itens
    53. FV - SKUs Pronta Entrega e Programado
  3. Business to Business (B2B)
    1. B2B - Produtos
    2. B2B - Produtos - Grades
    3. B2B - Produtos - Grade Fechada
    4. B2B - Produtos - Sortimentos
    5. B2B - Produtos - Tabela de Preço
    6. B2B - Produtos - Tabela de Preço por SKU
    7. B2B - Produtos - Estoque
    8. B2B - Produtos - Pocket
    9. B2B - Pedido - Capa
    10. B2B - Pedido - Histórico
    11. B2B - Pedido - Detalhe
    12. B2B - Pedido - Itens
    13. B2B - Cliente
    14. B2B - Representantes - Clientes
    15. B2B - Clientes - Representantes
    16. B2B - Comissão por Repres/Cliente/Marca
    17. B2B - Condição de Venda
    18. B2B - Bloqueio Referências
    19. B2B - Boletos - Consulta Cliente
    20. B2B - Boletos - Listagem
    21. B2B - Boletos - Detalhado
    22. B2B - DANFE- Listagem
    23. B2B - DANFE- Itens da Nota
    24. B2B - DANFE- XML
    25. B2B - Lote de Faturamento
    26. B2B - Produto SKU - Cód. Barras
    27. B2B - Frete
    28. B2B - Espelho Nota de Devolução
    29. B2B - Produto Volume Valor por Referência
    30. B2B - Substituição Tributária
    31. B2B - Pedido - Recompra
  4. CRM
    1. CRM - Dados Cadastrais do Cliente
    2. CRM - Pesquisa por Nome de Cliente
    3. CRM - Pesquisa Avançada
    4. CRM - Lista de Pedidos do Cliente
    5. CRM - Pedido - Detalhado
    6. CRM - Pedido - Itens
    7. CRM - Pedido - NFs
    8. CRM - Informações Financeiras
    9. CRM - Informações Financeiras por Situação
    10. CRM - Informações Financeiras - Ocorrências
    11. CRM - Clientes do Grupo
    12. CRM - Lista de Pedidos Representante
    13. 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
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
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
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
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

Adicionar SQL

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      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.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    essoaReprClienteVAEntity 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

Adicionar SQL

FV - Produtos - Grades

Documentação: Produtos - Grades

Adicionar SQL

FV - Produtos - Sortimentos

Documentação: Produtos - Sortimentos

Adicionar SQL

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

Adicionar SQL

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

Adicionar SQL

FV - Listagem de Pedidos - Detalhado

Documentação: Listagem de Pedidos - Detalhado

Adicionar SQL

FV - Listagem de Pedidos - Itens

Documentação: Listagem de Pedidos - Itens

Adicionar SQL

FV - Listagem de Pedidos - Notas

Documentação: Listagem de Pedidos - Notas

Adicionar SQL

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

Adicionar SQL

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

Adicionar SQL

B2B - Produtos - Grades

Documentação: Produtos - Grades

Adicionar SQL

B2B - Produtos - Grade Fechada

Documentação: Produtos - Grade Fechada

Adicionar SQL

B2B - Produtos - Sortimentos

Documentação: Produtos - Sortimentos

Adicionar SQL

B2B - Produtos - Tabela de Preço

Documentação: Produtos - Tabela de Preço

Adicionar SQL

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

Adicionar SQL

B2B - Pedido - Histórico

Documentação: Pedido - Histórico

Adicionar SQL

B2B - Pedido - Detalhe

Documentação: Pedido - Detalhe

Adicionar SQL

B2B - Pedido - Itens

Documentação: Pedido - Itens

Adicionar SQL

B2B - Cliente

Documentação: Cliente

Adicionar SQL

B2B - Representantes - Clientes

Documentação: Representantes - Clientes

Adicionar SQL

B2B - Clientes - Representantes

Documentação: Clientes - Representantes

Adicionar SQL

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

Adicionar SQL

CRM - Pesquisa por Nome de Cliente

Documentação: Pesquisa por Nome de Cliente

Adicionar SQL

CRM - Pesquisa Avançada

Documentação: Pesquisa Avançada

Adicionar SQL

CRM - Lista de Pedidos do Cliente

Documentação: Lista de Pedidos do Cliente

Adicionar SQL

CRM - Pedido - Detalhado

Documentação: Pedido - Detalhado

Adicionar SQL

CRM - Pedido - Itens

Documentação: Pedido - Itens

Adicionar SQL

CRM - Pedido - NFs

Documentação: Pedido - NFs

Adicionar SQL

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