jrbarros81
10/11/2019 - 11:09 AM

(Regra) Emissão de certidão para inscrição para Cnpj e Endereço validos

/*
$funcao:Certidão para Cnpj e Endereço Validos$
$descricao:Emissão de certidão para inscrição para Cnpj e Endereço validos$
$contexto:NET.PROTOCOLOCERTIDAO$
$autor:Júnior Barros$
$data:2019-10-9$
*/
create proc sp_regra_net_certidao_pj_cnpj_endreco_validos
@Retorno int OUTPUT, @Mensagem varchar(8000) OUTPUT, @IdInscricao int, @TipoDocumento int, 
@Assunto int, @EntradaDocumento bit, @CodArt int
as
set @Retorno = 0


if @EntradaDocumento = 0 and @Assunto in (900000001,900000003,27) begin

declare @tepf int
declare @tepj int


SELECT DISTINCT
    @tepf = TipoEntidade.[Pessoa Fisica]
FROM Entidade
LEFT JOIN Entidade AS Entidade_1 ON Entidade.Codigo = Entidade_1.Codigo
LEFT JOIN TipoEntidade ON Entidade_1.TipoEntidade = TipoEntidade.Codigo
LEFT JOIN Registro ON Entidade.Codigo = Registro.Entidade
WHERE
   ((TipoEntidade.[Pessoa Fisica] = 1) and (Registro.Codigo = @IdInscricao ))


if(@tepf = 1) begin

if exists(
SELECT DISTINCT
   Registro.Codigo AS "ID da Inscrição",
   PessoaFisica.Cpf AS "CPF"
FROM Entidade
LEFT JOIN Entidade AS Entidade_1 ON Entidade.Codigo = Entidade_1.Codigo
LEFT JOIN TipoEntidade ON Entidade_1.TipoEntidade = TipoEntidade.Codigo
LEFT JOIN PessoaFisica ON Entidade.Codigo = PessoaFisica.Entidade
LEFT JOIN Registro ON Entidade.Codigo = Registro.Entidade
WHERE
   ((TipoEntidade.[Pessoa Fisica] = 1) AND 
   (PessoaFisica.Cpf IS NULL) AND 
   (Registro.Codigo = @IdInscricao ))

)begin
set @Mensagem = 'Não é possível emitir Certidão pois este profissional não possui CPF cadastrado na base. 
Realize o cadastro e refaça a operação.'
set @Retorno = 1
end
end



SELECT DISTINCT
    @tepj = TipoEntidade.[Pessoa Juridica]
FROM Entidade
LEFT JOIN Entidade AS Entidade_1 ON Entidade.Codigo = Entidade_1.Codigo
LEFT JOIN TipoEntidade ON Entidade_1.TipoEntidade = TipoEntidade.Codigo
LEFT JOIN Registro ON Entidade.Codigo = Registro.Entidade
WHERE
   ((TipoEntidade.[Pessoa Juridica] = 1) and (Registro.Codigo = @IdInscricao ))

if(@tepj = 1) begin

if exists(
SELECT DISTINCT
   TipoEntidade.[Pessoa Juridica]
FROM Entidade
LEFT JOIN Entidade AS Entidade_1 ON Entidade.Codigo = Entidade_1.Codigo
LEFT JOIN TipoEntidade ON Entidade_1.TipoEntidade = TipoEntidade.Codigo
LEFT JOIN Registro ON Entidade.Codigo = Registro.Entidade
LEFT JOIN PessoaJuridica ON Entidade.Codigo = PessoaJuridica.Entidade
WHERE
   ((TipoEntidade.[Pessoa Juridica] = 1) AND 
   (Registro.Codigo = @IdInscricao ) AND 
   (LEN(PessoaJuridica.Cgc) <= 0))

)begin
set @Mensagem = 'Não é possível emitir Certidão pois esta empresa não possui CNPJ cadastrado na 
base. Realize o cadastro e refaça a operação.'
set @Retorno = 1
end

end

if(@tepf = 1 or @tepj = 1) begin

if not exists(

SELECT R.Codigo FROM REGISTRO R
LEFT JOIN Entidade E ON E.Codigo = R.Entidade
LEFT JOIN TemEndereco TE ON TE.Entidade = E.Codigo
LEFT JOIN Endereco EN ON EN.Codigo = TE.Endereco
WHERE 
(R.Codigo = @IdInscricao) and
 ((TE.Correspondencia & ~TE.Desatualizado & ~EN.Invalido) = 1) AND 
   (TE.Desatualizado = 0) AND 
   (EN.[Invalido] = 0)
)begin
set @Retorno = 1
set @Mensagem = 'Não é possível emitir Certidão pois o endereço está desatualizado ou Inválido ou não 
está marcado como Recebe Correspondência no cadastrado. 
 Atualize o cadastro e refaça a operação.'

end
end

end