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
De que adianta o usuário digitar 44 caracteres se a integridade da informação não é verificada?
ResponderExcluirTemos muitos transtornos por conta dessa ineficiente forma de controle!
A Chave de Acesso da Nota Fiscal eletrônica é representada por uma sequencia de 44 caracteres numéricos, representados com as seguintes informações:
ExcluirCó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.