Ejemplo de selecciones
A sessão a seguir traz exemplos de Selects para integração e envio dos dados do banco de dados para o servidor do Demander.
São referências com a estrutura básica pronta, onde deve-se acertar o nome das tabelas de origem e as regras de negócios.
Vamos pegar como exemplo a tabela 02 - Vendedores o campo, VENDEDOR.CODVENDEDOR (é o campo no ERP, que vai ser enviado para o Demander), AS codigo(é o nome para identificar o campo. É uma boa prática identificar os campos para facilitar algum suporte.)
SELECT
‘02’ AS IDENTIFICADOR,
VENDEDOR.CODVENDEDOR AS codigo,
VENDEDOR.NOMEVENDEDOR AS nome,
AS IMEI,
VENDEDOR.EMAIL AS email,
‘1’ AS codTipoUsuario,
‘0’ AS numPedidoAtual,
‘0’ AS numPedidoInicial,
‘0’ AS numPedidoFinal,
‘1’ AS ativo,
VENDEDOR.TABELAPRO AS listaDePreco,
AS gruposProdutos,
AS ocultarGruposDeProduto,
AS saldoFlex,
AS senhaAtual,
AS senhaNova,
AS segmentosRelacionados,
AS filiais
FROM VENDEDOR
WHERE
VENDEDOR.EMAIL <> OR
VENDEDOR.EMAIL IS NOT NULL AND
EXTRACT(YEAR FROM VENDEDOR.DATAALTERACAO) || ‘-’ ||
right(‘00’ || EXTRACT(MONTH FROM VENDEDOR.DATAALTERACAO),2) || ‘-’ ||
right(‘00’ || EXTRACT(DAY FROM VENDEDOR.DATAALTERACAO),2) >=
SUBSTRING(‘[datahora]’ FROM 1 FOR 10)
SELECT
‘03’ AS IDENTIFICADOR,
CODCIDADENFE AS codigo,
NOMECIDADE AS descricao,
CODESTADO AS uf,
‘1’ AS ativo
FROM TABCIDADES
SELECT
‘04’ AS IDENTIFICADOR,
CONDPGTO.CODCONDICAO AS codigo,
CONDPGTO.NOMECONDICAO AS descricao,
AS naoUtilizado,
AS naoUtilizado,
1 AS ativo,
AS valorMinimoPedido,
AS percJurosDesconto,
AS bloqueiaUsoDemander,
AS bloqueiaUsoPedidoLa,
AS bloqueiaUsoPedidoWeb
FROM CONDPGTO
SELECT
‘06’ AS IDENTIFICADOR,
FORMAPGTO.CODFORMA AS codigo,
FORMAPGTO.NOMEFORMA AS descricao,
‘1’ AS ativo,
AS valorMinimoPedido,
AS percJurosDesconto
FROM FORMAPGTO
SELECT
‘07’ AS IDENTIFICADOR,
CODGRUPO AS codigo,
NOMEGRUPO AS descricao,
‘1’ AS ativo,
AS codGrupoPai
FROM GRUPO
SELECT
‘08’ AS IDENTIFICADOR,
CODMARCA AS codigo,
DESCRICAOMARCA AS descricao,
‘1’ AS ativo
FROM PRODUTOMARCAS
SELECT
‘09’ AS IDENTIFICADOR,
CODLISTA AS codigo,
’LISTA ’ || CODLISTA AS descricao,
‘1’ AS ativo,
AS codFilialUnidade
FROM LISTAPRE
GROUP BY CODLISTA
Tabela 13 - Preço dos Produtos por Lista / Tabela de Preço
Sección titulada «Tabela 13 - Preço dos Produtos por Lista / Tabela de Preço»SELECT
‘13’ AS IDENTIFICADOR,
LISTAPRE.CODPRODUTO AS codProduto,
LISTAPRE.CODLISTA AS codListaPreco,
PRODUTO.UNIDADE AS unidade,
AS qtdeEmbalagem,
LISTAPRE.PRECOVENDA AS valor,
CASE WHEN LISTAPRE.DESCONTOMAX < 0
THEN 0 ELSE LISTAPRE.DESCONTOMAX END AS percDescontoMaximo,
AS permiteVendaFracionaria,
AS promocaoValor ,
AS promocaoDataInicio,
AS promocaoDataFim,
AS lancamentoAte,
AS multiplosPermitidosPorEmbalagem,
AS valorIpiPorUnidade,
AS opcoesDePrecoPreFixado,
AS precoTravado,
AS codCliente,
AS pesoBruto,
AS pesoLiquido,
AS cubagem
FROM LISTAPRE INNER JOIN PRODUTO ON
LISTAPRE.CODPRODUTO = PRODUTO.CODPRODUTO
SELECT
‘15’ AS IDENTIFICADOR,
PRODUTO.CODPRODUTO AS codigo,
(
SELECT FIRST 1 GRUPO.CODGRUPO FROM GRUPOSUB, GRUPO
WHERE GRUPOSUB.CODGRUPO = GRUPO.CODGRUPO AND GRUPOSUB.CODGRUPOSUB = PRODUTO.CODGRUPOSUB
) AS codGrupoProduto,
PRODUTO.CODMARCA AS codMarca,
PRODUTO.APRESENTACAO AS descricao,
’ ’ AS saldoEstoque,
PRODUTO.UNIDADE AS unidadeVenda,
’ ’ AS precoVenda,
’ ’ AS permiteDesconto,
’ ’ AS naoUtilizado,
’ ’ AS naoUtilizado,
’ ’ AS codTamanho,
’ ’ AS naoUtilizado,
’ ’ AS naoUtilizado,
’ ’ AS naoUtilizado,
’ ’ AS naoUtilizado,
’ ’ AS naoUtilizado,
’ ’ AS campoLivre1,
’ ’ AS campoLivre2,
’ ’ AS campoLivre3,
‘1’ AS ativo,
’ ’ AS quantidadeMinima,
’ ’ AS referencia,
’ ’ AS controlePorLote,
’ ’ AS codNCM,
’ ’ AS precoPauta,
’ ’ AS observacao,
’ ’ AS observacaoLojaVirtual,
’ ’ AS dataEstoque,
’ ’ AS segmentosRelacionados,
’ ’ AS codProdutoPrincipal,
’ ’ AS descProdutoPrincipal,
’ ’ AS codSegmentoGrade,
’ ’ AS codTipoGradeVariacao1,
’ ’ AS codTipoGradeVariacao2,
’ ’ AS codTipoGradeVariacao3,
’ ’ AS codTipoGradeVariacao4
FROM PRODUTO
SELECT
‘18’ AS IDENTIFICADOR,
CLIENTE.CODCLIENTE AS codigo,
CLIENTE.NUMEROCPF AS cpfCNPJ,
CLIENTE.CODCONDICAO AS codCondicaoPagamento,
AS codFormaPagamento,
AS codRegiao,
AS codVendedor,
CLIENTE.CODLISTAPRECO AS codListaPreco,
TABCIDADES.CODCIDADENFE AS codCidade,
AS codFilial,
CLIENTE.RAZAOSOCIAL AS nomeRazao,
CLIENTE.NOMECLIENTE AS nomeFantasia,
CLIENTE.PESSOA AS tipoPessoa,
AS intervaloVisitas,
AS rgIE,
AS telefone1,
AS telefone2,
AS emailComprador,
AS emailNfe,
AS emailFinanceiro,
AS contato,
CLIENTE.ENDERECO AS endereco,
CLIENTE.BAIRRO AS bairro,
CLIENTE.CODIGOPOSTAL AS cep,
CLIENTE.ESTADO AS uf,
CLIENTE.OBSERVACAO AS observacao,
AS ativo,
AS bloqueado,
CLIENTE.LOGNUMERO AS numero,
AS complemento,
AS latitude,
AS longitude,
AS bloqueiaFilialUnidade,
AS bloqueiaListaPreco,
AS bloqueiaCondPagamento,
AS bloqueiaFormaPagamento,
AS inscricaoEstadualPessoaFisica,
AS idCliente,
AS codTipoClienteTributario,
AS vendedoresRelacionados,
AS prospecto,
AS idAlteracaoERP,
AS percAcordoComercial,
AS codTransportadora,
AS codTransportadoraRedespacho,
AS dataNascimento,
AS segmentosRelacionados,
AS cro,
AS percentualDescontoMaximo
FROM CLIENTE LEFT JOIN TABCIDADES ON TABCIDADES.NOMECIDADE = CLIENTE.CIDADE
WHERE
CASE COALESCE(TRIM(CLIENTE.NUMEROCGCMF),*) || COALESCE(TRIM(CLIENTE.NUMEROCPF), *)
WHEN THEN 0
WHEN ‘0000000000000000000000000’ THEN 0
ELSE 1 END = 1
SELECT
‘19’ as Identificador,
MCLIRECB.CHAVENFPRESTACAO as codigo,
MCLIRECB.NUMPRESTACAO as numParcela,
COALESCE(TRIM(CLIENTE.NUMEROCGCMF),*) || COALESCE(TRIM(CLIENTE.NUMEROCPF), *) as cnpjcpf,
CAST((EXTRACT(YEAR FROM MCLIRECB.DATACOMPROVANTE) || ‘-’ || EXTRACT(MONTH FROM MCLIRECB.DATACOMPROVANTE) || ‘-’ || EXTRACT(DAY
FROM MCLIRECB.DATACOMPROVANTE)) AS VARCHAR(10)) AS dataEmissao,
CAST((EXTRACT(YEAR FROM MCLIRECB.DATAVENCIMENTO) || ‘-’ || EXTRACT(MONTH FROM MCLIRECB.DATAVENCIMENTO) || ‘-’ || EXTRACT(DAY
FROM MCLIRECB.DATAVENCIMENTO)) AS VARCHAR(10)) AS dataVencimento,
COALESCE(MCLIRECB.SERIE, *) || COALESCE(MCLIRECB.CODCOBRANCA, *) as tipoTitulo,
MCLIRECB.TOTPRESTACAO as valor,
‘0’ as quitado,
‘1’ as ativo,
as valorMultaJuros,
MCLIRECB.CODCLIENTE AS cliente
FROM MCLIRECB, CLIENTE
WHERE
MCLIRECB.CODCLIENTE = CLIENTE.CODCLIENTE AND
CASE COALESCE(TRIM(CLIENTE.NUMEROCGCMF),*) || COALESCE(TRIM(CLIENTE.NUMEROCPF), *)
WHEN THEN 0
WHEN ‘0000000000000000000000000’ THEN 0
ELSE 1 END = 1
Exclusão de Títulos (Enviar antes da tabela 19, para que os titulos sejam excluidos)
Sección titulada «Exclusão de Títulos (Enviar antes da tabela 19, para que os titulos sejam excluidos)»SELECT FIRST 1 ‘Comando|19|Excluir|Todos|’ FROM VENDEDOR
SELECT
‘20’ AS IDENTIFICADOR,
CLIENTEROTA.CODROTEIRO AS codigo,
CLIENTE.CODVENDEDOR AS codVendedor,
ROTEIRO.CODROTEIRO AS descricao,
‘1’ AS ativo
FROM CLIENTEROTA INNER JOIN ROTEIRO ON ROTEIRO.CODROTEIRO = CLIENTEROTA.CODROTEIRO
INNER JOIN CLIENTE ON CLIENTE.CODCLIENTE = CLIENTEROTA.CODCLIENTE
WHERE
CASE COALESCE(TRIM(CLIENTE.NUMEROCGCMF),*) || COALESCE(TRIM(CLIENTE.NUMEROCPF), *)
WHEN THEN 0
WHEN ‘0000000000000000000000000’ THEN 0
ELSE 1 END = 1
SELECT
‘21’ AS IDENTIFICADOR,
CLIENTEROTA.CODROTEIRO AS codRota,
CLIENTE.NUMEROCPF AS cpfCNPJCliente,
CLIENTE.CODCLIENTE AS codCliente,
CLIENTEROTA.SEQUENCIAROTA AS posicao,
CLIENTE.CODVENDEDOR AS codVendedor,
‘1’ AS ativo
FROM CLIENTEROTA INNER JOIN ROTEIRO ON ROTEIRO.CODROTEIRO = CLIENTEROTA.CODROTEIRO
INNER JOIN CLIENTE ON CLIENTE.CODCLIENTE = CLIENTEROTA.CODCLIENTE
WHERE
CASE COALESCE(TRIM(CLIENTE.NUMEROCGCMF),*) || COALESCE(TRIM(CLIENTE.NUMEROCPF), *)
WHEN THEN 0
WHEN ‘0000000000000000000000000’ THEN 0
ELSE 1 END = 1