quarta-feira, 14 de março de 2012

DICA - Como validar o campo chave de acesso com 44 caracteres

Produto: Totvs Gestão de Estoque, Compras e Faturamento Versão: 11.40

Processo do Sistema: Compras

SubProcesso: Movimentação

Sintoma

Como Validar o campo Chave de Acesso com 44 caracteres e obrigar o preenchimento do campo TMOV.CHAVEACESSONFE apenas quando o tipo de documento for de NF-e e CT-e.

Causas

Obrigar o usuário a preencher o campo chave de acesso do movimento com 44 caracteres e obrigar o preenchimento do apenas quando o tipo de documento for de NF-e e CTe.

Solução

Para banco de dados SQL

1 - CRIAR UMA FÓRMULA PARA O CAMPO CHAVE DE ACESSO DO MOVIMENTO

CÓDIGO:CHAVE

TEXTO: TABMOV ('CHAVEACESSONFE' , 'S')

2 - CRIAR UMA CONSULTA SQL PARA VALIDAÇÃO DE '44' CARACTERES DO TIPO 'NUMERAL'

CÓDIGO: VALIDACHAVE

TEXTO: SELECT 1 AS RESULTADO FROM GCOLIGADA

WHERE CODCOLIGADA = 1

AND ISNUMERIC (:FRM_CHAVE) = 1

AND LEN(RTRIM(:FRM_CHAVE))=44

3 - CRIAR UMA FÓRMULA DE CONSISTÊNCIA (INCLUIR A MESMA NOS PARÂMETROS DO TIPO DE MOVIMENTO | ETAPA MOV-OUTROS DADOS)

CÓDIGO: X

TITULO: CHAVE DE ACESSO NÃO É VALIDA

TEXTO:

EXECSQL ('VALIDACHAVE');

SE TABMOV ('CODTDO' , 'S') = 'XX' OU TABMOV ('CODTDO' , 'S') = 'YY'

ENTAO SE RESULTSQL ('VALIDACHAVE','RESULTADO') = 1

ENTAO 1

SENAO 0

FIMSE

SENAO 1

FIMSE

OBS: Onde consta XX deverá ser informado o tipo de documento de nota fiscal eletrônica e onde existe o YY deverá ser informado o tipo de documento de conhecimento de transporte eletrônico.

Informações Adicionais

Para utilizar a consulta em Oracle será necerrário criar a função ISNUMERIC e alterar o LEN para LENGTH.

Comando para criar a função ISNUMERIC

create or replace function isnumeric(p_value in varchar2) return number

  as

    l_ret number;

  begin

    -- Try to cast to a number

    begin

      l_ret := to_number(p_value);

      -- if the line above worked then just reset to 1

      l_ret := 1;

    exception

      when others then

        -- Something, anything, went wrong

        l_ret := 0;

    end;

    -- Return

    return l_ret;

end isnumeric;

Data de Produção do Documento: 28/03/2012

2 comentários:

  1. De que adianta o usuário digitar 44 caracteres se a integridade da informação não é verificada?

    Temos muitos transtornos por conta dessa ineficiente forma de controle!

    ResponderExcluir
    Respostas
    1. A Chave de Acesso da Nota Fiscal eletrônica é representada por uma sequencia de 44 caracteres numéricos, representados com as seguintes informações:
      Código da UF (2 caracteres)
      AAMM da emissão (4 caracteres)
      CNPJ do Emitente (14 caracteres)
      Modelo (2 caracteres)
      Série (3 caracteres)
      Número da NF-e (9 caracteres)
      Forma de Emissão da NF-e (1 caracter)
      Código Numérico (8 caracteres)
      DV (1 caracter)

      Sua composição está relacionada a vários campos dispersos no layout da NF-e, a campos específicos de identificação da empresa emitente, como o campo Código Numérico e a campos calculados, como o DV.

      Validar toda a composição da chave de acesso na inclusão de um movimento não é possível devido ao campo Código Numérico, que não sabemos o conteúdo que será enviado pelo emitente da NF-e. Validar os demais campos requer uma fórmula de consistência complexa, que poderia comprometer a performance da inclusão de movimento.

      Nosso objetivo com a publicação do documento de ‘DICA - Como validar o campo chave de acesso com 44 caracteres’ é tentar minimizar os erros de digitação por parte dos usuários, quando não se tem um leitor de códigos de barras.

      Se esta sugestão de validação da chave de acesso não atende as necessidades de sua empresa, sugerimos conhecer nossa oferta TOTVS Colaboração, no qual o movimento de entrada referente a uma NF-e de compra, pode ser criado com base no arquivo XML da NF-e recebido do fonecedor. Com esta solução, vários campos do movimento, inclusive a chave de acesso, serão preenchidos automaticamente através da leitura do arquivo XML da NF-e. Para conhecer detalhes sobre esse processo, leia o documento http://totvsconnect.blogspot.com.br/2011/08/como-fazer-nota-fiscal-de-entrada.html . Caso tenha interesse entre em contato com seu EAR.

      Excluir

RSS Reader