Projeto

Geral

Perfil

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

« Anterior - Versão 32/50 (diff) - Próximo » - Versão atual
paulo, 13/01/2023 18:02 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

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

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