Mudanças entre as edições de "Integração DAV via Stored Procedure"
| Linha 1: | Linha 1: | ||
| − | + | Interface de Integração de Orçamento via Stored Procedure (compatível com a versão PAF-ECF 2011): | |
| + | |||
| + | == Conceito == | ||
| + | |||
| + | O processo de integração de orçamentos (DAVs e Pré-vendas) via stored procedure serve para que sistemas parceiros similares ao Totall Order possam enviar DAVs para serem resgatadas pelo Commerce Checkout. <BR/> | ||
| + | |||
| + | |||
| + | A partir da versão 01.08 do PAF-ECF (2011) passam a vigorar as seguintes regras para a retaguarda: | ||
| + | * Gravação do DAV no banco de dados deve ser de forma concomitante, ou seja a cada novo item inserido deve-se gravar no banco de dados. | ||
| + | * O DAV não pode ser impresso mais de uma vez. | ||
| + | * Após impresso o DAV não pode ser alterado. | ||
| + | * Não é permitir exclusão de itens de orçamento, podendo apenas cancelar os mesmos. | ||
| + | * Não permitir alterar a quantidade de um item. | ||
| + | * Os itens cancelados precisam ser enviados para o Checkout com um campo para definir que ele foi cancelado. | ||
| + | * Não será permitido incluir novos itens de DAV se o mesmo tiver algum item vendido. | ||
| + | |||
| + | |||
| + | As imagens abaixo ilustram a principal mudança de conceito. Antes o DAV poderia ser todo criado na retaguarda para depois ser passado ao banco de dados. | ||
| + | Agora, essas duas etapas se fundiram porque o DAV precisa ser o tempo todo gravado no banco. | ||
| + | |||
| + | <gallery widths="280px" heights="180px" perrow="2"> | ||
| + | Imagem:Integracao-antes.PNG|Antes | ||
| + | Imagem:Integracao-depois.PNG|Depois | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | A imagem abaixo ilustra o uso das stored procedures para enviar um pedido de venda para o banco de dados. | ||
| + | |||
| + | [[Imagem:Pre-venda-2011.png|856px]] | ||
| + | |||
| + | == 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;" |'' | + | ! style="background:#efefef;" |''Parâmetro'' |
| − | ! style="background:#efefef;" |'' | + | ! style="background:#efefef;" |''Significado'' |
| − | ! style="background:#efefef;" |'' | + | ! 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?'' | ||
|- | |- | ||
| − | | | + | ||CODEXT |
| − | | | + | ||Código Externo |
| − | | | + | ||NUMBER |
| + | ||15,0 | ||
| + | ||Sim | ||
| + | || | ||
| + | || | ||
| + | || | ||
|- | |- | ||
| − | | | + | ||CODSER |
| − | |5. | + | ||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 | ||
| + | || | ||
| + | ||'O' | ||
| + | ||O - DAV<BR />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' | ||
| + | ||F - Falso<BR />T - Verdadeiro | ||
| + | || | ||
| + | |- | ||
| + | ||EMIDES | ||
| + | ||Frete pelo Emitente? | ||
| + | ||VARCHAR2 | ||
| + | ||1 | ||
| + | || | ||
| + | ||'F' | ||
| + | ||F - Falso<BR />T - Verdadeiro | ||
| + | || | ||
| + | |- | ||
| + | ||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<BR />E - Em Aprovação | ||
| + | || | ||
| + | |- | ||
| + | ||APRCLI | ||
| + | ||Aprovação Cliente | ||
| + | ||CHAR | ||
| + | ||1 | ||
| + | || | ||
| + | ||'1' | ||
| + | ||1 - Aprovado<BR />A - Em Aberto<BR />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 | ||
| + | || | ||
| + | || | ||
| + | ||''(solicitar a Totall)'' | ||
| + | || | ||
| + | |- | ||
| + | ||ASSINA | ||
| + | ||Assinatura do Registro | ||
| + | ||VARCHAR | ||
| + | ||256 | ||
| + | ||Sim | ||
| + | || | ||
| + | || | ||
| + | || | ||
| + | |- | ||
| + | ||NUMPED | ||
| + | ||Número da DAV ou Pré-Venda | ||
| + | ||CHAR | ||
| + | ||8 | ||
| + | ||Sim | ||
| + | || | ||
| + | || | ||
| + | ||Sim | ||
| + | |- | ||
| + | || ORCIMP | ||
| + | || Imprimiu? | ||
| + | || VARCHAR | ||
| + | || 1 | ||
| + | || | ||
| + | || 'F' | ||
| + | || F - Falso<BR />T - Verdadeiro | ||
| + | || | ||
|} | |} | ||
| + | |||
| + | == 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. | ||
| + | |||
| + | {| 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<BR/>E - Promocional no plano<BR/>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 | ||
| + | || | ||
| + | || | ||
| + | || | ||
| + | |- | ||
| + | || FLGEST | ||
| + | || Situação do Item | ||
| + | || CHAR | ||
| + | || 1 | ||
| + | || Sim | ||
| + | || | ||
| + | || A - Aberto<br />R - Reservado<br />NULL - Sistema usa o que foi mandado na TT_ORC.RESERV | ||
| + | || | ||
| + | |} | ||
| + | |||
| + | == CANCELAITEM_DAV == | ||
| + | |||
| + | Método responsável por cancelar um item de DAV. | ||
| + | Caso não encontre o item ou o mesmo não possa ser cancelado 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 == | ||
| + | |||
| + | Os parceiros que mandam a assinatura da DAV (<TT>TT_ORC</TT>) e do item de DAV (<TT>TT_IOR</TT>) devem se responsabilizar por conferir se a assinatura atual da tabela está correta antes de enviar as alterações.<BR /> | ||
| + | O PAF-ECF proíbe que se assine um registro adulterado.<BR /> | ||
| + | Para não se preocupar com isso, pode-se usar o método [[http://ttadm:8080/wiki/index.php/Integração_de_Banco_via_Rotinas_de_Importação#RegistraAcesso RegistraAcesso]] (vide [[Integração de Banco via Rotinas de Importação]]).<BR /> | ||
| + | Com esse método não é necessário utilizar o <TT>ASSINA_DAV</TT> e basta mandar <TT>null</TT> nos campos ASSINA. | ||
| + | |||
| + | |||
| + | === 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 /> | ||
| + | 5 - WALLIS<BR /> | ||
| + | 6 - BENNER<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 , | ||
| + | COOORC ) 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, | ||
| + | :ECFVEN, | ||
| + | :QTDITE, | ||
| + | :VLRITE, | ||
| + | ROUND(:VLRPGT-:VLRCUS,2), | ||
| + | :VLRPGT, | ||
| + | :FLGEST, | ||
| + | :NUMITE | ||
| + | ) as pTexto | ||
| + | FROM dual | ||
| + | |||
| + | Parâmetro COOVEN refere-se à coluna gravada pelo Checkout após venda. Deve-se passar null.<BR /> | ||
| + | Parâmetro ECFVEN refere-se à coluna gravada pelo Checkout após venda. 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. | ||
| + | |||
| + | == Impressão de DAV == | ||
| + | |||
| + | Não é permitido que o DAV/Pré-venda seja impresso mais de uma vez.<BR/> | ||
| + | Com isso, quem quiser implementar a rotina de impressão deve se preocupar em mandar o parâmetro <TT>ORCIMP = 'T'</TT> no ENVIA_DAV.<BR/> | ||
| + | No caso de uma tentativa de reimpressão o sistema deve apresentar a seguinte mensagem: | ||
| + | |||
| + | PAF Req VI item 11 - É vedada a reimpressão de DAV. | ||
== Categorias == | == Categorias == | ||
[[Categoria:Integração]] | [[Categoria:Integração]] | ||
Edição das 19h07min de 21 de novembro de 2014
Interface de Integração de Orçamento via Stored Procedure (compatível com a versão PAF-ECF 2011):
Índice
Conceito
O processo de integração de orçamentos (DAVs e Pré-vendas) via stored procedure serve para que sistemas parceiros similares ao Totall Order possam enviar DAVs para serem resgatadas pelo Commerce Checkout.
A partir da versão 01.08 do PAF-ECF (2011) passam a vigorar as seguintes regras para a retaguarda:
- Gravação do DAV no banco de dados deve ser de forma concomitante, ou seja a cada novo item inserido deve-se gravar no banco de dados.
- O DAV não pode ser impresso mais de uma vez.
- Após impresso o DAV não pode ser alterado.
- Não é permitir exclusão de itens de orçamento, podendo apenas cancelar os mesmos.
- Não permitir alterar a quantidade de um item.
- Os itens cancelados precisam ser enviados para o Checkout com um campo para definir que ele foi cancelado.
- Não será permitido incluir novos itens de DAV se o mesmo tiver algum item vendido.
As imagens abaixo ilustram a principal mudança de conceito. Antes o DAV poderia ser todo criado na retaguarda para depois ser passado ao banco de dados.
Agora, essas duas etapas se fundiram porque o DAV precisa ser o tempo todo gravado no banco.
A imagem abaixo ilustra o uso das stored procedures para enviar um pedido de venda para o banco de dados.
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 | 'O' | 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' | F - Falso T - Verdadeiro |
||
| EMIDES | Frete pelo Emitente? | VARCHAR2 | 1 | 'F' | F - Falso T - Verdadeiro |
||
| 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 | (solicitar a Totall) | |||
| ASSINA | Assinatura do Registro | VARCHAR | 256 | Sim | |||
| NUMPED | Número da DAV ou Pré-Venda | CHAR | 8 | Sim | Sim | ||
| ORCIMP | Imprimiu? | VARCHAR | 1 | 'F' | F - Falso T - Verdadeiro |
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 | |||
| FLGEST | Situação do Item | CHAR | 1 | Sim | A - Aberto R - Reservado NULL - Sistema usa o que foi mandado na TT_ORC.RESERV |
CANCELAITEM_DAV
Método responsável por cancelar um item de DAV.
Caso não encontre o item ou o mesmo não possa ser cancelado 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
Os parceiros que mandam a assinatura da DAV (TT_ORC) e do item de DAV (TT_IOR) devem se responsabilizar por conferir se a assinatura atual da tabela está correta antes de enviar as alterações.
O PAF-ECF proíbe que se assine um registro adulterado.
Para não se preocupar com isso, pode-se usar o método [RegistraAcesso] (vide Integração de Banco via Rotinas de Importação).
Com esse método não é necessário utilizar o ASSINA_DAV e basta mandar null nos campos ASSINA.
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
4 - MODERNA
5 - WALLIS
6 - BENNER
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 ,
COOORC ) 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,
:ECFVEN,
:QTDITE,
:VLRITE,
ROUND(:VLRPGT-:VLRCUS,2),
:VLRPGT,
:FLGEST,
:NUMITE
) as pTexto
FROM dual
Parâmetro COOVEN refere-se à coluna gravada pelo Checkout após venda. Deve-se passar null.
Parâmetro ECFVEN refere-se à coluna gravada pelo Checkout após venda. 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.
Impressão de DAV
Não é permitido que o DAV/Pré-venda seja impresso mais de uma vez.
Com isso, quem quiser implementar a rotina de impressão deve se preocupar em mandar o parâmetro ORCIMP = 'T' no ENVIA_DAV.
No caso de uma tentativa de reimpressão o sistema deve apresentar a seguinte mensagem:
PAF Req VI item 11 - É vedada a reimpressão de DAV.
