Usada nos Conselhos: COREN-GO
/*
$funcao:Protocolo de Certidão Valida Fase$
$descricao:Protocolo com o mesmo tipo/assunto que ainda não foi resolvido$
$contexto:IW.PROTOCOLO.SALVAR$
$autor:Junior Barros$
$data:2020-1-24$
*/
create proc sp_regra_iw_protocolo_certidao_com_processo
@Retorno int OUTPUT,
@IdInscricao int, @TipoDocumento int, @Assunto int, @EntradaDocumento bit
as
set @Retorno = 0
/*
assunto-831 : 1 - CERTIDÃO DE REGULARIDADE
*/
if @Assunto in (831) Begin
if exists(
SELECT DISTINCT
Registro.Codigo AS "ID da Inscrição",
ProcessoInfracao.[Codigo] AS "Processo ID do Processo",
Fase.[Encerramento] AS "Processo Fase de Encerramento?",
EstaFase.[MaisRecente] AS "processo fase Mais Recente"
FROM Registro
LEFT JOIN ProcessoInfracao ON Registro.Codigo = ProcessoInfracao.[Registro]
LEFT JOIN TipoProcessoInfracao ON ProcessoInfracao.[TipoProcessoInfracao] = TipoProcessoInfracao.
[Codigo]
LEFT JOIN EstaFase ON ProcessoInfracao.[Codigo] = EstaFase.[ProcessoInfracao]
LEFT JOIN Fase ON EstaFase.[Fase] = Fase.[Codigo]
WHERE
((TipoProcessoInfracao.[Codigo] = 1) AND
(Fase.[Encerramento] = 0) AND
(EstaFase.[MaisRecente] = 1) AND EstaFase.[Fase] in (300,296,298) AND
(Registro.Codigo = @IdInscricao))
) begin
set @Retorno = 1
end
end
/*
assunto-? : 2 - positiva com efeitos negativos
*/
if @Assunto in (831) Begin
if exists(
SELECT DISTINCT
Registro.Codigo AS "ID da Inscrição",
ProcessoInfracao.[Codigo] AS "Processo ID do Processo",
Fase.[Encerramento] AS "Processo Fase de Encerramento?",
EstaFase.[MaisRecente] AS "processo fase Mais Recente"
FROM Registro
LEFT JOIN ProcessoInfracao ON Registro.Codigo = ProcessoInfracao.[Registro]
LEFT JOIN TipoProcessoInfracao ON ProcessoInfracao.[TipoProcessoInfracao] = TipoProcessoInfracao.
[Codigo]
LEFT JOIN EstaFase ON ProcessoInfracao.[Codigo] = EstaFase.[ProcessoInfracao]
LEFT JOIN Fase ON EstaFase.[Fase] = Fase.[Codigo]
WHERE
((TipoProcessoInfracao.[Codigo] = 1) AND
(Fase.[Encerramento] = 0) AND
(EstaFase.[MaisRecente] = 1) AND EstaFase.[Fase] in (436) AND
(Registro.Codigo = @IdInscricao))
) begin
set @Retorno = 1
end
end
/*
assunto-? : 3 - positiva
*/
if @Assunto in (831) Begin
if exists(
SELECT DISTINCT
Registro.Codigo AS "ID da Inscrição",
ProcessoInfracao.[Codigo] AS "Processo ID do Processo",
Fase.[Encerramento] AS "Processo Fase de Encerramento?",
EstaFase.[MaisRecente] AS "processo fase Mais Recente"
FROM Registro
LEFT JOIN ProcessoInfracao ON Registro.Codigo = ProcessoInfracao.[Registro]
LEFT JOIN TipoProcessoInfracao ON ProcessoInfracao.[TipoProcessoInfracao] = TipoProcessoInfracao.
[Codigo]
LEFT JOIN EstaFase ON ProcessoInfracao.[Codigo] = EstaFase.[ProcessoInfracao]
LEFT JOIN Fase ON EstaFase.[Fase] = Fase.[Codigo]
WHERE
((TipoProcessoInfracao.[Codigo] = 1) AND
(Fase.[Encerramento] = 0) AND
(EstaFase.[MaisRecente] = 1) AND EstaFase.[Fase] in (437) AND
(Registro.Codigo = @IdInscricao))
) begin
set @Retorno = 1
end
end