Atualização - Novas Validações no Cadastro de Clientes
Atualização - Novas Validações no Cadastro de Clientes
Estamos criando novas validações no cadastro de clientes com o propósito de reduzir erros na transmissão de notas fiscais.
Criar campo A1_VALIDA no Cadastro de clientes DA101
Nome: A1_VALIDA
Descrição: Valida Cadastro
Tipo: Inteiro
Tamanho: 1
Pasta: Notas Fiscais
Em Uso: Sim
Obrigatório: Sim
Inicializador: 1
Opção: 1=Sim;0=Não
Ordem: 999
Help:
Valida Cadastro?
1=Sim
0=Não
Se preencher com 1=SIM, o sistema não permite a liberação de pedidos caso o cliente não esteja com todas as informações aptas à emissão de notas fiscais.
Alterar a procedure SP_VALIDA_DA101 através do MANAGER, rodando o SCRIPT
--Script
CREATE OR ALTER PROCEDURE SP_VALIDA_DA101(
A1_CNPJ VARCHAR(18),
A1_IE VARCHAR(20),
A1_TIPO VARCHAR(1),
A1_PESSOA VARCHAR(1),
A1_INDIEDEST VARCHAR(1),
A1_VALIDA INTEGER,
CODIGOID INTEGER,
ID_USER VARCHAR(100),
ID_EMPRESA VARCHAR(100))
RETURNS(
RETORNO VARCHAR(555))
AS
DECLARE VARIABLE A1_CNPJ1 VARCHAR(18);
DECLARE VARIABLE BLOQ VARCHAR(50);
BEGIN
IF (COALESCE(:A1_VALIDA,1)=1) THEN
BEGIN
BLOQ = 'MESSAGEM;BROQUEAR';
END
ELSE BEGIN
BLOQ = 'MESSAGEM;LIBERAR';
END
-- VALIDA CNPJ DUPLICADO
SELECT FIRST(1)
DA101.A1_CNPJ
FROM DA101
WHERE replace(replace(REPLACE( DA101.A1_CNPJ,'.',''),'-',''),'/','') = replace(replace(REPLACE( :A1_CNPJ,'.',''),'-',''),'/','')
AND DA101.CODIGOID <> :CODIGOID
INTO :A1_CNPJ1;
IF(:A1_CNPJ1 IS NOT NULL) THEN
BEGIN
RETORNO = :BLOQ||'; CNPJ/CPF Já Cadastrado!';
SUSPEND;
END
-- VALIDA INSCRIÇÃO ESTADUAL
IF(COALESCE(:A1_TIPO,'')='4')THEN --Nunca PODE SER 4=Fornecedor
BEGIN
RETORNO = :BLOQ||'; A opção 4=Fornecedor é de uso exclusivo no cadastro de forcenedores.';
SUSPEND;
END
IF(:A1_INDIEDEST='1') THEN --1=Contribuinte ICMS (informar a IE do destinatário);
BEGIN
IF(COALESCE(:A1_IE,'ISENTO')='ISENTO')THEN --INCRIÇÃO ESTATUAL NÃO PODE SER ISENTO OU EM BRANCO
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Contribuinte de ICMS, a inscrição estadual não pode ser ISENTO ou EM BRANCO. Verifique a Inscrição estadual ou o campo Ind. Ie. Dest. na aba Notas Fiscais.';
SUSPEND;
END
IF(COALESCE(:A1_PESSOA,'')='F')THEN --PESSOA PRECISA SER JURÍDICA
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Contribuinte de ICMS, o campo PESSOA, precisa estar como J=JURÍDICA. Verifique o campo Pessoa ou o campo Ind. Ie. Dest. na aba Notas Fiscais.';
SUSPEND;
END
IF(COALESCE(:A1_TIPO,'')='5')THEN --NÃO PODE SER 5=CONSUMIDOR PF
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Contribuinte de ICMS, o campo PESSOA, precisa estar como J=JURÍDICA. Verifique o campo Pessoa ou o campo Ind. Ie. Dest. na aba Notas Fiscais.';
SUSPEND;
END
END
ELSE IF(:A1_INDIEDEST='2')THEN --2=Contribuinte isento de Inscrição no cadastro de Contribuintes do ICMS;
BEGIN
IF(COALESCE(:A1_IE,'ISENTO')<>'ISENTO')THEN --INCRIÇÃO ESTATUAL PRECISA SER ISENTO OU EM BRANCO
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Contribuinte isento de Inscrição, a inscrição estadual precisa ser preenchida com ISENTO.';
SUSPEND;
END
IF(COALESCE(:A1_PESSOA,'')='F')THEN --PESSOA PRECISA SER JURÍDICA
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Contribuinte Isento de Inscrição, o campo PESSOA, precisa estar como J=JURÍDICA. No caso de Pessoa Física, a opção correta é 9=Não Contribuinte.';
SUSPEND;
END
END
ELSE --9=Não Contribuinte, que pode ou não possuir Inscrição
BEGIN
IF(COALESCE(:A1_IE,'ISENTO')<>'ISENTO')THEN --INCRIÇÃO ESTATUAL PRECISA SER ISENTO OU EM BRANCO
BEGIN
RETORNO = :BLOQ||'; Quando a Ind. Ie. Dest. estiver preenchido como Não Contribuinte, a inscrição estadual precisa ser preenchida com ISENTO.';
SUSPEND;
END
END
SUSPEND;
END;




