Mudanças entre as edições de "Integração DAV via Stored Procedure"

De TotaliWiki
Ir para: navegação, pesquisa
m (ENVIA_DAV)
Linha 1: Linha 1:
Interface de Integração de Orçamento via Stored Procedure:
+
Existem duas versões para integração de DAV via banco de dados.
 
+
== Conceito ==
+
 
+
O processo de integração de pré-venda (DAVs) via stored procedure serve para que sistemas parceiros similares ao Totall Order possam enviar DAVs para serem resgatadas pelo Commerce Checkout. <BR/>
+
A imagem abaixo ilustra o uso das stored procedures para enviar um pedido de venda para o banco de dados.
+
 
+
[[Imagem:Pre-venda.png]]
+
 
+
== ENVIA_DAV ==
+
 
+
Método responsável pela inserção ou atualização de uma DAV ou Pré-venda.
+
Quando o orçamento é novo ele não ficará disponível para ser vendido enquanto não for executado o método VALIDA_DAV.
+
Caso alguma inconsistência seja verificada o método gerará exceção.
+
Para PostgreSQL foi implementado como uma função que retorna o campo NUMPED.
+
No Oracle deve-se chamar como Stored Procedure passando os valores por parâmetro e pegando o retorno no parâmetro NUMPED.
+
+
  
 
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
 
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Versão do PAF-ECF''
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Versão do Banco de Dados''
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Link''
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
 
|-
 
|-
||CODEXT
+
|2010
||Código Externo
+
|5.0F
||NUMBER
+
|[[Integração DAV via Stored Procedure (PAF-ECF 2010)]]
||15,0
+
||Sim
+
||
+
||
+
||
+
 
|-
 
|-
||CODSER
+
|2011
||Série Padrão para a Venda
+
|5.0G
||CHAR
+
|[[Integração DAV via Stored Procedure (PAF-ECF 2011)]]
||2
+
||Sim
+
||
+
||
+
||
+
|-
+
||DOCNFP
+
||Documento p/ NFP
+
||VARCHAR2
+
||15
+
||Sim
+
||
+
||
+
||
+
|-
+
||DATAPR
+
||Data de aprovação
+
||DATE
+
||7
+
||Sim
+
||
+
||
+
||
+
|-
+
||CODFIL
+
||Filial
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||TIPPED
+
||Tipo de Pedido/OS
+
||CHAR
+
||1
+
||
+
||'0' 
+
||O - DAV
+
P - Pré-Venda
+
||
+
|-
+
||CLIEXT
+
||Código externo do Cliente
+
||VARCHAR
+
||20
+
||
+
||
+
||
+
||
+
|-
+
||VLRTOT
+
||Valor Total
+
||NUMBER
+
||12,2
+
||
+
||
+
||
+
||
+
|-
+
||VLRPAR
+
||Valor da Parcela
+
||NUMBER
+
||12,2
+
||
+
||
+
||
+
||
+
|-
+
||VLRDES
+
||Valor do Desconto/Acréscimo
+
||NUMBER
+
||12,2
+
||
+
||
+
||
+
||
+
|-
+
||QTDPAR
+
||Qtd. de Parcelas
+
||NUMBER
+
||5,0
+
||
+
||
+
||
+
||
+
|-
+
||FILFAT
+
||Filial. End. Fatura
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMFAT
+
||Núm. End. Fatura
+
||NUMBER
+
||4,0
+
||
+
||
+
||
+
||
+
|-
+
||FILENT
+
||Filial. End. Entrega
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMENT
+
||Núm. End. Entrega
+
||NUMBER
+
||4,0
+
||
+
||
+
||
+
||
+
|-
+
||FILCOB
+
||Filial. End Cobrança
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMCOB
+
||Núm. End Cobrança
+
||NUMBER
+
||4,0
+
||
+
||
+
||
+
||
+
|-
+
||DATVAL
+
||Validade
+
||DATE
+
||7
+
||
+
||
+
||
+
||
+
|-
+
||DATPRI
+
||1º Parcela
+
||DATE
+
||7
+
||
+
||
+
||
+
||
+
|-
+
||APEVEN
+
||Apelido Vendedor
+
||VARCHAR
+
||10
+
||
+
||
+
||
+
||
+
|-
+
||PLANO
+
||Plano
+
||CHAR
+
||9
+
||
+
||
+
||
+
||
+
|-
+
||DESPRE
+
||Descrição da Tabela de Preços (se nulo utiliza VAREJO)
+
||VARCHAR
+
||30
+
||Sim
+
||
+
||
+
||
+
|-
+
||RESERV
+
||Reserva?
+
||VARCHAR2
+
||1
+
||
+
||'F' 
+
||
+
||
+
|-
+
||EMIDES
+
||Frete pelo Emitente?
+
||VARCHAR2
+
||1
+
||
+
||'F' 
+
||
+
||
+
|-
+
||PESLIQ
+
||Peso Líquido
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||PESBRU
+
||Peso Bruto
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||VLRSEG
+
||Valor do Seguro
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||VLRFRE
+
||Valor do Frete
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||SINAL
+
||Sinal ou Entrada
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||OBSERV
+
||Observações de venda
+
||VARCHAR2
+
||4000
+
||Sim
+
||
+
||
+
||
+
|-
+
||NUMBLO
+
||Número do Bloco
+
||VARCHAR2
+
||8
+
||Sim
+
||
+
||
+
||
+
|-
+
||OBSORC
+
||Observação Orçamento
+
||VARCHAR2
+
||4000
+
||Sim
+
||
+
||
+
||
+
|-
+
||DATSEG
+
||2º Parcela
+
||DATE
+
||7
+
||Sim
+
||
+
||
+
||
+
|-
+
||APROVA
+
||Tipo Aprovação
+
||CHAR
+
||1
+
||
+
||'A'
+
||A - Aprovado
+
E - Em Aprovação
+
||
+
|-
+
||APRCLI
+
||Aprovação Cliente
+
||CHAR
+
||1
+
||
+
||'1'
+
||1 - Aprovado
+
A - Em Aberto
+
 
+
2 - Reprovado 
+
||
+
|-
+
||PLACAS
+
||Placa Veículo
+
||VARCHAR2
+
||7
+
||Sim
+
||
+
||
+
||
+
|-
+
||QTD_KM
+
||Qtde KM
+
||NUMBER
+
||7,0
+
||Sim
+
||
+
||
+
||
+
|-
+
||CODSEQ
+
||Cód. Sequen. NSU
+
||NUMBER
+
||22
+
||Sim
+
||
+
||
+
||
+
|-
+
||CODEMP
+
||Código da Empresa da Retaguarda
+
||NUMBER
+
||5
+
||
+
||
+
||0 - TOTALL<BR />1 - INTERSYS<BR />2 - ADVANCE<BR />3 - SARAIVA<BR />4 - MODERNA
+
||
+
|-
+
||ASSINA
+
||Assinatura do Registro
+
||VARCHAR
+
||256
+
||Sim
+
||
+
||
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||Sim
+
||
+
||
+
||Sim
+
 
|}
 
|}
  
== ENVIAITEM_DAV ==
+
== Categorias ==
 
+
Método responsável pela inserção ou atualização de um item de DAV ou Pré-venda. Somente pode ser executado após ter sido incluso o DAV pelo método ENVIA_DAV.
+
Caso alguma inconsistência seja verificada gerará exceção.
+
 
+
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
+
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
|-
+
||CODFIL
+
||Filial da DAV
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||TIPPED
+
||Tipo Pedido/OS
+
||CHAR
+
||1
+
||
+
||'O' 
+
||O - DAV
+
P - Pré-Venda 
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||
+
||
+
||
+
||
+
|-
+
||NUMITE
+
||Item (número seqüencial por DAV)
+
||NUMBER
+
||5,0
+
||
+
||
+
||
+
||
+
|-
+
||VLRCUS
+
||Valor Total
+
||NUMBER
+
||12,2
+
||
+
||
+
||
+
||
+
|-
+
||VLRPGT
+
||Valor Total Sem Desc/Acrés
+
||NUMBER
+
||12,2
+
||
+
||
+
||
+
||
+
|-
+
||QTDITE
+
||Quantidade
+
||NUMBER
+
||12,4
+
||
+
||
+
||
+
||
+
|-
+
||VLRITE
+
||Vlr. Unitário
+
||NUMBER
+
||14,4
+
||
+
||
+
||
+
||
+
|-
+
||VLRENT
+
||Vlr. Unitário Sem desconto/Acrés.
+
||NUMBER
+
||14,4
+
||
+
||
+
||
+
||
+
|-
+
||PROEXT
+
||Código externo do Produto
+
||VARCHAR
+
||20
+
||
+
||
+
||
+
||
+
|-
+
||PROMOC
+
||Promoção
+
||CHAR
+
||1
+
||
+
||'N' 
+
||N - Não promocional no plano
+
E - Promocional no plano
+
 
+
Q ? Promocional para qualquer plano 
+
||
+
|-
+
||PREUNI
+
||Preço Unitário
+
||NUMBER
+
||12,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||DESMUL
+
||Sub-Estoque
+
||VARCHAR
+
||30
+
||Sim
+
||Nulo
+
||
+
||
+
|-
+
||OBSERV
+
||Observação
+
||VARCHAR2
+
||4000
+
||Sim
+
||
+
||
+
||
+
|-
+
||PERIPI
+
||% IPI ÿltima Compra
+
||NUMBER
+
||5,2
+
||Sim
+
||
+
||
+
||
+
|-
+
||ASSINA
+
||Assinatura do Registro
+
||VARCHAR
+
||256
+
||Sim
+
||
+
||
+
||
+
|}
+
 
+
 
+
== EXCLUIITEM_DAV ==
+
 
+
Método responsável pela exclusão de um item de DAV.
+
Caso não encontre o item ou o mesmo não possa ser excluído gerará uma exceção.
+
 
+
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
+
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
|-
+
||CODFIL
+
||Filial da DAV
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||TIPPED
+
||Tipo Pedido/OS
+
||CHAR
+
||1
+
||
+
||'O'
+
||O - DAV
+
P - Pré-Venda
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||
+
||
+
||
+
||
+
|-
+
||NUMITE
+
||Item (número seqüencial por DAV)
+
||NUMBER
+
||5,0
+
||
+
||
+
||
+
||
+
|}
+
 
+
== VALIDA_DAV ==
+
 
+
Método responsável pela verificação do DAV e liberação para o Checkout. Realizando validações entre o DAV e seus itens.
+
Caso a validação não gere exceção o DAV ficará disponível para ser resgatado na Venda.
+
Caso alguma inconsistência seja verificada gerará exceção.
+
 
+
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
+
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
|-
+
||CODFIL
+
||Filial da DAV
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||
+
||
+
||
+
||
+
|-
+
||TIPPED
+
||Tipo Pedido/OS
+
||CHAR
+
||1
+
||
+
||'O' 
+
||O - DAV
+
P - Pré-Venda 
+
||
+
|}
+
 
+
== CANCELA_DAV ==
+
 
+
'''Função responsável pelo cancelamento de uma DAV'''.
+
 
+
Obs.: Função não existente para Pré-Venda por obrigação do PAF.
+
Caso não seja possível o cancelamento gerará exceção.
+
 
+
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
+
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
|-
+
||CODFIL
+
||Filial da DAV
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||
+
||
+
||
+
||
+
|}
+
 
+
 
+
== ASSINA_DAV ==
+
 
+
Método serve para gravar a coluna ASSINA da TT_ORC em caso de inclusão de um novo orçamento.
+
Isto porque é necessário executar ENVIA_DAV para obter o NUMPED. E o NUMPED faz parte da assinatura.
+
 
+
{| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
+
! style="background:#efefef;" |''Parâmetro''
+
! style="background:#efefef;" |''Significado''
+
! style="background:#efefef;" |''Tipo''
+
! style="background:#efefef;" |''Tamanho''
+
! style="background:#efefef;" |''Aceita Nulo''
+
! style="background:#efefef;" |''Default''
+
! style="background:#efefef;" |''Domínio''
+
! style="background:#efefef;" |''Coluna Retorno?''
+
|-
+
||CODFIL
+
||Filial da DAV
+
||CHAR
+
||3
+
||
+
||
+
||
+
||
+
|-
+
||NUMPED
+
||Número da DAV ou Pré-Venda
+
||CHAR
+
||8
+
||
+
||
+
||
+
||
+
|-
+
||TIPPED
+
||Tipo Pedido/OS
+
||CHAR
+
||1
+
||
+
||'O' 
+
||O - DAV
+
P - Pré-Venda 
+
||
+
|-
+
||ASSINA
+
||Assinatura do Registro
+
||VARCHAR
+
||256
+
||Sim
+
||
+
||
+
||
+
|}
+
 
+
== Procedimentos para Assinatura ==
+
 
+
=== Assinatura de DAV ===
+
 
+
'''1.''' Chamar a função conecta para o código da empresa parceira na Totall:
+
 
+
SELECT Conecta(:CodigoEmpresa, path_ttsegur) AS pConecta, path_ttsegur AS pPathSegur
+
  FROM tt_cfg
+
 
+
CodigoEmpresa:<BR />
+
0 - TOTALL<BR />
+
1 - INTERSYS<BR />
+
2 - ADVANCE<BR />
+
3 - SARAIVA<BR />
+
4 - MODERNA<BR />
+
 
+
'''2.''' Gerar Hash:
+
 
+
pSenhaFixa: ÿ uma constante de segurança enviada parceiro por e-mail.
+
 
+
pHashConexao := md5(pConecta || pSenhaFixa)
+
 
+
'''3.''' Enviar a DAV:
+
 
+
SELECT ENVIA_DAV(...) as pNumped
+
  FROM dual 
+
 
+
ou
+
 
+
DECLARE
+
BEGIN
+
  ENVIA_DAV(..., pNumped);
+
END;
+
 
+
'''4.''' Gerar texto a ser criptografado:
+
 
+
SELECT ConcatenaORC(CODFIL,
+
                    TIPPED,
+
                    NUMPED,
+
                    NUMPED,
+
                    PED_EM,
+
                    VLRTOT,
+
                    CODEMP) as pTexto
+
  FROM tt_orc
+
  WHERE CODFIL = :CODFIL
+
    AND TIPPED = :TIPPED
+
    AND NUMPED = :NUMPED
+
 
+
''ÿ importante concatenar os campos da TT_ORC da forma indicada para garantir que os dados concatenados sejam idênticos aos gravados.''
+
 
+
'''5.''' Assinar os dados da DAV:
+
 
+
SELECT AssinaTab('TT_ORC'
+
                  :pTexto
+
                  :pConecta IN NUMBER,
+
                  :pHashConexao IN VARCHAR2,
+
                  <nowiki>''</nowiki>,
+
                  :CodigoEmpresa,
+
                  path_ttsegur)
+
  FROM tt_cfg;
+
 
+
'''6.''' Gravar Assinatura:
+
 
+
DECLARE
+
BEGIN
+
  ASSINA_DAV(:CODFIL,
+
              :NUMPED,
+
              :TIPPED,
+
              :ASSINA)
+
END;
+
 
+
ou
+
 
+
SELECT ASSINA_DAV(:CODFIL,
+
                  :NUMPED,
+
                  :TIPPED,
+
                  :ASSINA);
+
 
+
=== Assinatura de Item de DAV ===
+
 
+
'''1.''' Chamar a função conecta:
+
 
+
SELECT Conecta (:CodigoEmpresa, path_ttsegur) as pConecta, path_ttsegur as pPathSegur
+
  FROM tt_cfg
+
 
+
CodigoEmpresa: N ? Empresa
+
 
+
'''2.''' Gerar Hash da mesma forma como foi feita na assinatura da DAV.
+
 
+
'''3.''' Gerar texto a ser criptografado:
+
 
+
SELECT ConcatenaIOR(:CODFIL,
+
                    :TIPPED,
+
                    :NUMPED,
+
                    :NUMITE,
+
                    :COOVEN) as pTexto
+
  FROM dual
+
 
+
Parâmetro COOVEN é gravado pelo Checkout. Deve-se passar null.
+
 
+
'''4.''' Assinar os dados do item:
+
+
SELECT AssinaTab('TT_IOR',
+
                  :pTexto,
+
                  :pConecta IN NUMBER,
+
                  :pHashConexao IN VARCHAR2,
+
                  <nowiki>''</nowiki>,
+
                  :CodigoEmpresa,
+
                  path_ttsegur)
+
  FROM tt_cfg
+
 
+
'''5.''' Gravar Item da DAV.
+
 
+
 
[[Categoria:Integração]]
 
[[Categoria:Integração]]

Edição das 12h21min de 19 de setembro de 2011

Existem duas versões para integração de DAV via banco de dados.

Versão do PAF-ECF Versão do Banco de Dados Link
2010 5.0F Integração DAV via Stored Procedure (PAF-ECF 2010)
2011 5.0G Integração DAV via Stored Procedure (PAF-ECF 2011)

Categorias