Integração DAV via Stored Procedure

De TotaliWiki
Revisão de 13h44min de 8 de dezembro de 2010 por Petters (discussão | contribs) (Assinatura de DAV)

Ir para: navegação, pesquisa

Interface de Integração de Orçamento via Stored Procedure:


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.


Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio Coluna Retorno?
CODEXT Código Externo NUMBER 15,0 Sim
CODSER Série Padrão para a Venda CHAR 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
1 - INTERSYS
2 - ADVANCE
3 - SARAIVA
ASSINA Assinatura do Registro VARCHAR 256 Sim
NUMPED Número da DAV ou Pré-Venda CHAR 8 Sim Sim

ENVIAITEM_DAV

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.

Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio 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.

Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio 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.

Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio 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.

Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio 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.

Parâmetro Significado Tipo Tamanho Aceita Nulo Default Domínio 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: 0 - TOTALL 1 - INTERSYS 2 - ADVANCE 3 - SARAIVA

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,
                 '',
                 :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,
                 '',
                 :CodigoEmpresa,
                 path_ttsegur)
  FROM tt_cfg

5. Gravar Item da DAV.