Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
6| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_contraparte | int | 4 | |
| @p_contratista | int | 4 | |
| @p_puntos | int | 4 | |
| @p_estado | char | 1 | |
| @p_estado_txt | varchar | 500 | |
| @p_color | 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
-- ===============================================================
/*
select * from led_docs where periodo = '202109' and tipo_doc in (2,1032,1033) and cliente = 2046807993
declare @p_puntos_cum int = null,
@p_estado_cum char(1) = null ,
@p_estado_txt_cum varchar(500) = null ,
@p_color_cum varchar(20) = null
exec [LN_Cumplimiento_ultimo_mes] null ,
7285,
@p_puntos_cum output,
@p_estado_cum output,
@p_estado_txt_cum output,
@p_color_cum output
select @p_puntos_cum ,
@p_estado_cum,
@p_estado_txt_cum,
@p_color_cum
*/
CREATE OR ALTER PROCEDUREdbo.LN_Cumplimiento_ultimo_mes_15102021 -- Hay que mandar como parametro contraparte, o contratista
@p_contraparte int,
@p_contratista int = null,
@p_puntos int = null output,
@p_estado char(1) = null output,
@p_estado_txt varchar(500) = null output,
@p_color varchar(20) = null output
AS
BEGIN
SET NOCOUNT ON;
declare @p_cliente int
declare @indicador int = (select indicador from ln_indicadores where clave_indicador = 'CUMPLIMIENTO_ULTIMO' and producto = 2066)
if (@p_contraparte is null)
select @p_contraparte = contraparte,
@p_cliente = cliente
from ln_contrapartes
where id_imperium = @p_contratista
and activo = 1
select @p_contratista = id_imperium,
@p_cliente = cliente
from ln_contrapartes
where contraparte = @p_contraparte
select @p_contraparte as contraparte, @p_contratista as contratista, @p_cliente as cliente, dbo.PeriodoVencido() as periodo
set @p_puntos = null
-- 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
if(DATEPART(d,getdate()) <= 7)
begin
set @p_puntos = 10
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'P'
set @p_estado_txt = 'EN ESPERA - PRINCIPIO DE MES'
set @p_color = 'cccccc'
end
return
end
else
begin
set @p_puntos = 4
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'R'
set @p_estado_txt = 'ROJO'
set @p_color = 'A72B2A'
end
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_puntos = 1
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'V'
set @p_estado_txt = 'VERDE'
set @p_color = '63b68c'
end
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_puntos = 3
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'N'
set @p_estado_txt = 'NARANJA'
set @p_color = 'FF5C1C'
end
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_puntos = 2
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'A'
set @p_estado_txt = 'AMARILLO'
set @p_color = 'FFB81C'
end
return
end
set @p_estado = null
set @p_estado_txt = null
set @p_color = null
END
GO
GO
-- ===============================================================
-- Author: Marita Soria
-- Create date: 30/09/2021
-- Description: Indicador de Imperium - Cumplimiento último mes
-- ===============================================================
/*
select * from led_docs where periodo = '202109' and tipo_doc in (2,1032,1033) and cliente = 2046807993
declare @p_puntos_cum int = null,
@p_estado_cum char(1) = null ,
@p_estado_txt_cum varchar(500) = null ,
@p_color_cum varchar(20) = null
exec [LN_Cumplimiento_ultimo_mes] null ,
7285,
@p_puntos_cum output,
@p_estado_cum output,
@p_estado_txt_cum output,
@p_color_cum output
select @p_puntos_cum ,
@p_estado_cum,
@p_estado_txt_cum,
@p_color_cum
*/
CREATE OR ALTER PROCEDUREdbo.LN_Cumplimiento_ultimo_mes_15102021 -- Hay que mandar como parametro contraparte, o contratista
@p_contraparte int,
@p_contratista int = null,
@p_puntos int = null output,
@p_estado char(1) = null output,
@p_estado_txt varchar(500) = null output,
@p_color varchar(20) = null output
AS
BEGIN
SET NOCOUNT ON;
declare @p_cliente int
declare @indicador int = (select indicador from ln_indicadores where clave_indicador = 'CUMPLIMIENTO_ULTIMO' and producto = 2066)
if (@p_contraparte is null)
select @p_contraparte = contraparte,
@p_cliente = cliente
from ln_contrapartes
where id_imperium = @p_contratista
and activo = 1
select @p_contratista = id_imperium,
@p_cliente = cliente
from ln_contrapartes
where contraparte = @p_contraparte
select @p_contraparte as contraparte, @p_contratista as contratista, @p_cliente as cliente, dbo.PeriodoVencido() as periodo
set @p_puntos = null
-- 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
if(DATEPART(d,getdate()) <= 7)
begin
set @p_puntos = 10
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'P'
set @p_estado_txt = 'EN ESPERA - PRINCIPIO DE MES'
set @p_color = 'cccccc'
end
return
end
else
begin
set @p_puntos = 4
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'R'
set @p_estado_txt = 'ROJO'
set @p_color = 'A72B2A'
end
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_puntos = 1
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'V'
set @p_estado_txt = 'VERDE'
set @p_color = '63b68c'
end
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_puntos = 3
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'N'
set @p_estado_txt = 'NARANJA'
set @p_color = 'FF5C1C'
end
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_puntos = 2
select @p_estado = texto, @p_estado_txt = texto_largo, @p_color = color_fondo
from ln_cliente_nivel where indicador = @indicador and cliente = @p_cliente and desde = @p_puntos
if @p_estado is null
begin
set @p_estado = 'A'
set @p_estado_txt = 'AMARILLO'
set @p_color = 'FFB81C'
end
return
end
set @p_estado = null
set @p_estado_txt = null
set @p_color = null
END
GO
Depends On
7Used By
No items found