Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_contratista | int | 4 | |
| @p_estado | char | 1 | |
| @p_estado_txt | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- ===============================================================
-- Author: Marita Soria
-- Create date: 30/09/2021
-- Description: Indicador de Imperium - Cumplimiento último mes
-- ===============================================================
CREATE OR ALTER PROCEDUREdbo.LN_Cumplimiento_ultimo_mes_ant
@p_contratista int,
@p_estado char(1) output,
@p_estado_txt varchar(20) output
AS
BEGIN
SET NOCOUNT ON;
-- 1) ROJO: NO PRESENTO NINGUN DOCUMENTO o Presento todo pero no presento el 931
-- (o sea, solo controlo que tenga sin presentar algún documento correspondiente al 931)
if (select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) > 0
begin
set @p_estado = 'R'
set @p_estado_txt = 'ROJO'
return
end
-- 2) VERDE: Presentación completa de los documentos del periodo, y todos los datos del 931 completos
if ((select count(*) from led_docs where contratista = @p_contratista
and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and not exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'V'
set @p_estado_txt = 'VERDE'
return
end
-- 3) NARANJA: Al 931 le falta completar algún dato
IF ((select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'N'
set @p_estado_txt = 'NARANJA'
return
end
-- 4) Cuando adeuda al menos un requerimiento pero tiene correcto el 100% el F931 --> AMARILLO
if ((select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and
(select count(*) from led_docs where contratista = @p_contratista
and tipo_doc not in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) > 0
and not exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'A'
set @p_estado_txt = 'AMARILLO'
return
end
set @p_estado = null
set @p_estado_txt = null
END
GO
GO
-- ===============================================================
-- Author: Marita Soria
-- Create date: 30/09/2021
-- Description: Indicador de Imperium - Cumplimiento último mes
-- ===============================================================
CREATE OR ALTER PROCEDUREdbo.LN_Cumplimiento_ultimo_mes_ant
@p_contratista int,
@p_estado char(1) output,
@p_estado_txt varchar(20) output
AS
BEGIN
SET NOCOUNT ON;
-- 1) ROJO: NO PRESENTO NINGUN DOCUMENTO o Presento todo pero no presento el 931
-- (o sea, solo controlo que tenga sin presentar algún documento correspondiente al 931)
if (select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) > 0
begin
set @p_estado = 'R'
set @p_estado_txt = 'ROJO'
return
end
-- 2) VERDE: Presentación completa de los documentos del periodo, y todos los datos del 931 completos
if ((select count(*) from led_docs where contratista = @p_contratista
and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and not exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'V'
set @p_estado_txt = 'VERDE'
return
end
-- 3) NARANJA: Al 931 le falta completar algún dato
IF ((select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'N'
set @p_estado_txt = 'NARANJA'
return
end
-- 4) Cuando adeuda al menos un requerimiento pero tiene correcto el 100% el F931 --> AMARILLO
if ((select count(*) from led_docs where contratista = @p_contratista
and tipo_doc in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) = 0
and
(select count(*) from led_docs where contratista = @p_contratista
and tipo_doc not in (2,1032,1033) and periodo = dbo.PeriodoVencido() and estado_doc not in ('V','X')) > 0
and not exists (select *
from led_campos_tipo_doc
left join led_campos_doc on (led_campos_doc.campo_tipo_doc = led_campos_tipo_doc.campo_tipo_doc and led_campos_doc.tipo_doc=led_campos_tipo_doc.tipo_doc)
where led_campos_doc.doc_id = (select max(doc_id) from led_docs where tipo_doc = 1033
and periodo = dbo.PeriodoVencido() and contratista_1 = @p_contratista
and estado_doc = 'V' and contratista = contratista_1)
and led_campos_tipo_doc.campo_activo = 1
and isnull(led_campos_doc.valor_numerico,0) = 0
and nombre_campo in
('028segurovidaobligatorio',
'301aportessegsoc',
'302aportesoss',
'312riesgotrabajo',
'351contribsegsocial',
'352contribobrasocial')))
begin
set @p_estado = 'A'
set @p_estado_txt = 'AMARILLO'
return
end
set @p_estado = null
set @p_estado_txt = null
END
GO
Used By
No items found