Integração DAV via Stored Procedure
Interface de Integração de Orçamento via Stored Procedure.
Í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 |
||
LOTEXT | Código externo do lote | VARCHAR | 1 | Sim | 20 |
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 |
Procedimentos para Assinatura
Os métodos de integração de DAV devem ser executados em uma sessão de banco de dados assinada.
Isso quer dizer que os comandos de integração de DAV devem ser precedidos do comando RegistraAcesso.
O método está descrito no artigo Integração de Banco via Rotinas de Importação.
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.
Alterações
Versão 5.3
- Remoção do método ASSINA_DAV.
Versão 5.2A
- Inclusão do campo LOTEXT no ENVIAITEM_DAV.
Versão 5.0G
- Inclusão do campo ORCIMP no ENVIA_DAV.
- Inclusão do campo FLGEST no ENVIAITEM_DAV.
- Substituição da função EXCLUIITEM_DAV por CANCELAITEM_DAV.
- Inclusão de comentários Procedimentos para Assinatura explicando como utilizar RegistraAcesso ao invés de ASSINA_DAV.
- Inclusão de novas colunas nos parâmetros de ConcatenaIOR.
- Bloqueio para reimpressão de DAV.