Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
7| Name | Data Type | Length | Description |
|---|---|---|---|
| @w_username | char | 20 | |
| @w_accion | char | 1 | |
| @w_grupo | int | 4 | |
| @w_prov_cuit | char | 20 | |
| @w_sub_cuit | char | 20 | |
| @w_min | int | 4 | |
| @ip | varchar | 50 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
select * from uso_ws_claro
update lN_contrapartes set vigencia_hasta = '2019-09-30' where contraparte = 182
select * from ln_contrapartes where contraparte = 182
select dateadd(minute,(-20),getdate())
select * from clientes where cli_codigo = 8907
exec [WS_subcontratistas] 'amx','A',null,null,null,'200'
exec [WS_subcontratistas] 'sistemas','T', 1
exec [WS_subcontratistas_agb2] 'wspelaez','S', null,'30710637527','30710637527'
exec [WS_subcontratistas] 'wspelaez','S', null,'30710637527','30710637527'
exec [WS_subcontratistas] 'wspelaez','S', null,'30561265255','30561265255'
exec [WS_subcontratistas] 'wspelaez','S', null,'30716843587','30716843587'
exec [WS_subcontratistas] 'wspelaez','S', null,'30698482253','30698482253'
exec [WS_subcontratistas] 'wspelaez','S', null,'30502414719','30502414719'
"usuario" => 'wspelaez',
"password" => 'AmxIngreso#ws',
"cuit_contratista" => '30710637527',
"cuit_subcontratista" => '30710637527'
select * from users where username = 'r6080'
select * from clientes where cli_codigo = 70756
select * from Uso_WS_Claro
*/
CREATE OR ALTER PROCEDUREdbo.WS_subcontratistas
/* 18/06/2020:
Trae las execpciones de la contraparte que estamos viendo
o la cargada en otra contraparte de ese id_padron, cliente,
ya que en el sistema viejo las excepciones eran al CUIT,
sin importar de cuantos contratistas era subcontratista */
@w_username char(20),
@w_accion char(1), --> T=Todos, S=Subcontratista/Contratista, A=Actualizados
--> 'T'
@w_grupo integer = null, --> devuelve todos los subcontratistas vigentes de un nro de grupo (de 50 registros)
-- (1=los registros 1 a 50, 2=los registros del 51 al 100....)
--> 'S'
@w_prov_cuit char(20) = null, --> prov_cuit no nulo y sub_cuit nulo, todos los subcontratistas vigentes de una contraparte
@w_sub_cuit char(20) = null, --> prov_cuit nulo y sub_cuit no nulo, todos las contrapartes/subcontratista donde aparece vigente el subcontratista
--> prov_cuit no nulo y sub_cuit no nulo, los datos de esa contraparte/subcontratista vigente
--> 'A'
@w_min int = null --> si se piden los actualizados desde hace cuantos minutos
,@ip varchar(50) = null
AS
BEGIN
--Del Proveedor-Contratista Directo:
--1. Razón Social / Apellido y Nombre del Proveedor-Contratista Directo.
--2. CUIT del Proveedor-Contratista Directo.
--3. LED (Puntaje de Score)
--4. Aprobado por Excepcion
--5. Nivel de Riesgo (Aprobado para Operar / No Aprobado para Operar)
--6. Area para donde trabaja el Proveedor-Contratista Directo (NULO)
--Del Subcontratista vinculado al Proveedor-Contratista Directo:
--1. Razón Social / Apellido y Nombre del Subcontratista.
--2. CUIT del Subcontratista
--3. Tipo de Subcontratista: Servicio o Material.
--4. Estado del Subcontratista: Si esta Aprobado, Desaprobado o en Gesti¢n.
--5. Aprobado por Excepcion.
--6. Vigencia: Desde / Hasta.
declare @Respuesta table ( nro_registro integer,
nombre_contratista varchar(200),
cuit_contratista varchar(20),
led varchar(10),
nivel_de_riesgo varchar(100),
excepcion_contratista varchar(100),
areas varchar(100),
nombre_subcontratista varchar(200),
cuit_subcontratista varchar(20),
tipo varchar(100),
score_subcontratista varchar(100),
excepcion_subcontratista varchar(100),
vigencia_desde date,
vigencia_hasta date)
declare @W_cli_codigo integer = null
declare @WS_contraparte integer = null
declare @WS_padre integer = null
declare @WS_prov_cuit varchar(13) = null
declare @WS_prov_nombre varchar(250) = null
declare @WS_sub_nombre varchar(70) = null
declare @WS_sub_cuit varchar(13) = null
declare @WS_sub_tipo varchar(100) = null
declare @WS_fecha_desde date = null
declare @WS_fecha_hasta date = null
declare @WS_score_fide varchar(20) = null
declare @WS_score_etico varchar(20) = null
declare @WS_score_calidad varchar(20) = null
declare @WS_homologacion varchar(25) = null
declare @W_Tipo_Empresa CHAR(10) = null
declare @WS_Tipo varchar(70) = null
declare @WS_Score varchar(20) = null
declare @W_Area CHAR(2000) = null
declare @W_Excepcion_padre CHAR(100) = null
declare @W_Excepcion_Sub CHAR(100) = null
declare @W_Total INTEGER = null
declare @w_desde INTEGER = null, @w_hasta INTEGER = null
declare @cont_sub varchar(20)
declare @minutos datetime = dateadd(minute, (@w_min*(-1)), getdate())
set @W_Cli_Codigo = 0
select distinct top 1 @W_Cli_Codigo = usuarios_productos.cliente
from users
left join usuarios_productos on usuarios_productos.user_id = users.user_id
where users.username = @w_Username
and usuarios_productos.id_producto in (select producto from productos where sigla in ('LN','LCS'))
and users.active_user = 'Y'
and usuarios_productos.activo = 1
if (@w_accion = 'A')
begin
set @w_prov_cuit = 'Actual 21'
set @w_sub_cuit = '0'
end
if (@w_accion = 'T')
begin
set @w_prov_cuit = 'Todos'
set @w_sub_cuit = @w_grupo
end
insert into Uso_WS_Claro VALUES (getdate(), @w_username, @w_prov_cuit, @W_sub_cuit,@ip)
if (@W_cli_codigo = 0)
begin
SELECT '1' as nro_registro,
'CLIENTE NO AUTORIZADO A USAR ESTE SERVICIO' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'CLIENTE NO AUTORIZADO A USAR ESTE SERVICIO' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
return
end
SET @W_Total = 0
if (@w_accion = 'S')
begin
select @w_prov_cuit = (ltrim(rtrim(fidelitas.dbo.fn_StripCharacters(@w_prov_cuit, '^a-z0-9'))))
select @w_sub_cuit = (ltrim(rtrim(fidelitas.dbo.fn_StripCharacters(@w_sub_cuit, '^a-z0-9'))))
if (@w_prov_cuit = '') set @w_prov_cuit = null
if (@w_sub_cuit = '') set @w_sub_cuit = null
SET @W_desde = 1
SET @W_hasta = 9999999
if (@w_prov_cuit is null and @w_sub_cuit is null)
begin
SELECT '1' as nro_registro,
'NO ES CONTRATISTA' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
return
end
if (@w_prov_cuit is null and @w_sub_cuit is not null) --> un subcontratista en todos los contratistas que aparece
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND subc.identificacion = @w_sub_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_sub_cuit
order by 4,6
end
if (@w_prov_cuit is not null and @w_sub_cuit is null) --> todos los subcontratistas de un contratista
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND padre.identificacion = @w_prov_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_prov_cuit
order by 4,6
end
if (@w_prov_cuit is not null and @w_sub_cuit is not null) --> un contratista/subcontratista
/*select @w_prov_cuit,@w_sub_cuit, @W_Cli_Codigo as AA*/
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND padre.identificacion = @w_prov_cuit
AND subc.identificacion = @w_sub_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_prov_cuit
-- Traigo siempre los datos del contratista, para poder mostrarlos en caso que No exista el subcontratista
order by 4,6
end
end
if (@w_accion = 'T') --> vamos por todos o un grupo
begin
set @w_prov_cuit = null
set @w_sub_cuit = null
if (@w_grupo = 0) set @w_grupo = null
IF @W_Grupo IS NULL
begin
SET @W_desde = 1
SET @W_hasta = 9999999
end
ELSE
begin
SET @W_hasta = @W_Grupo * 50
SET @W_desde = @W_hasta - 49
end
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join ln_familias on ln_familias.familia = f.familia
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
order by 4,6
end
if (@w_accion = 'A') --> vamos por todos o un grupo
begin
set @w_prov_cuit = null
set @w_sub_cuit = null
SET @W_desde = 1
SET @W_hasta = 9999999
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
left join LN_excepciones e on --e.contraparte = ln_contrapartes.contraparte
(e.contraparte = ln_contrapartes.contraparte or
(isnull(e.cliente,0) = LN_contrapartes.cliente and
isnull(e.id_padron,0) = LN_contrapartes.id_padron))
left join LN_excepciones be on --be.contraparte = b.contraparte
(be.contraparte = b.contraparte or
(isnull(be.cliente,0) = b.cliente and
isnull(be.id_padron,0) = b.id_padron))
WHERE LN_contrapartes.cliente = @W_cli_codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND (ln_contrapartes.created >= @minutos or ln_contrapartes.modified >= @minutos or
e.created >= @minutos or e.modified >= @minutos or
be.created >= @minutos or be.modified >= @minutos)
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
left join LN_excepciones e on (e.contraparte = ln_contrapartes.contraparte or
(isnull(e.cliente,0) = LN_contrapartes.cliente and
isnull(e.id_padron,0) = LN_contrapartes.id_padron))
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND (ln_contrapartes.created >= @minutos or ln_contrapartes.modified >= @minutos or
e.created >= @minutos or e.modified >= @minutos)
order by 4,6
end
OPEN Subcontratistas
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
WHILE @@FETCH_STATUS = 0
begin
SET @W_Total = @W_Total + 1
IF @W_Total < @W_desde
begin
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
CONTINUE
end
IF @W_Total > @W_hasta
BREAK
SET @WS_Score_etico = NULL
SET @WS_Score_calidad= NULL
SET @WS_Score_Fide = NULL
SET @WS_homologacion = NULL
SET @W_excepcion_padre = NULL
SET @W_excepcion_sub = NULL
/*
select @WS_Score_Fide = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_COMERCIAL')
select @WS_Score_etico = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_CALIDAD')
select @WS_Score_calidad = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_ETICO')
*/
select @WS_homologacion = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @ws_contraparte
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'HOMOLOG')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
if @WS_homologacion = 'APROBADO'
begin
/* 05/12/2023: Agregado el control de los documentos del subcontratista */
declare @doc_vencida int = 0
declare @doc_pendiente int = 0
if (@cont_sub = 'subcontratista')
begin
select @doc_vencida = count(*)
from ln_docs
inner join ln_gestiones on ln_gestiones.contraparte = ln_docs.contraparte
where ln_docs.contraparte = @ws_contraparte and aplica = 1
AND LN_gestiones.vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
AND ln_docs.estado_doc not in('V')
AND ln_docs.vencimiento_carga <= getdate()
select @doc_pendiente = count(*)
from ln_docs
inner join ln_gestiones on ln_gestiones.contraparte = ln_docs.contraparte
where ln_docs.contraparte = @ws_contraparte and aplica = 1
AND LN_gestiones.vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
AND ln_docs.estado_doc not in('V')
AND ln_docs.vencimiento_carga > getdate()
if (@doc_pendiente > 0)
begin
set @WS_homologacion = 'DOCUMENTACION PENDIENTE'
end
if (@doc_vencida > 0)
begin
set @WS_homologacion = 'DESAPROBADO DOC NO PRESENTADA'
end
end
end
/**/
/* lo pasamos arriba, porque primero tiene que ver si esta Desaprobado
Si esta desaprobado, gana al documentacion pendiente o vencida
if (@doc_pendiente = 0 and @doc_vencida = 0)
begin
select @WS_homologacion = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @ws_contraparte
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'HOMOLOG')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
end
*/
select @WS_Score = convert(int, valor_numerico )
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @WS_padre
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'SCORE_FINAL')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
--select @WS_Score as score
if (@WS_Score < -100 or @WS_Score is null)
select @WS_Score = convert(int, valor_numerico )
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @WS_padre
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'VALOR_FINAL_ANTERIOR')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
declare @WS_Score_texto varchar(100) = null
select @WS_Score_texto = texto_largo from LN_cliente_nivel
where cliente = @w_cli_codigo
and LN_cliente_nivel.desde <= @WS_Score
and LN_cliente_nivel.hasta > @WS_Score
select @W_excepcion_padre = iif (ln_excepciones.tipo_excepcion = 'V', 'APROBADO POR EXCEPCION',
iif(ln_excepciones.tipo_excepcion = 'R', 'RECHAZADO POR EXCEPCION', 'SIN EXCEPCION'))
from LN_contrapartes
inner join LN_excepciones on (LN_excepciones.contraparte = LN_contrapartes.contraparte or
(isnull(LN_excepciones.cliente,0) = LN_contrapartes.cliente and
isnull(LN_excepciones.id_padron,0) = LN_contrapartes.id_padron))
where LN_contrapartes.contraparte = @WS_padre
and LN_excepciones.estado = 1
and LN_excepciones.vigencia >= GETDATE()
order by ln_excepciones.created desc
select @W_excepcion_sub = iif (ln_excepciones.tipo_excepcion = 'V', 'APROBADO POR EXCEPCION',
iif(ln_excepciones.tipo_excepcion = 'R', 'RECHAZADO POR EXCEPCION', 'SIN EXCEPCION'))
from LN_contrapartes
inner join LN_excepciones on (LN_excepciones.contraparte = LN_contrapartes.contraparte or
(isnull(LN_excepciones.cliente,0) = LN_contrapartes.cliente and
isnull(LN_excepciones.id_padron,0) = LN_contrapartes.id_padron))
where LN_contrapartes.contraparte = @WS_contraparte
and LN_excepciones.estado = 1
and LN_excepciones.vigencia >= GETDATE()
order by ln_excepciones.created desc
IF @cont_sub = 'subcontratista' and @WS_homologacion IS NULL
begin
SET @WS_homologacion = 'GESTION'
if @w_excepcion_sub IS NOT NULL
set @W_Excepcion_Sub = null
end
insert into @respuesta values ( @W_total,
rtrim(@ws_prov_nombre),
rtrim(@WS_prov_cuit),
@ws_score,
rtrim(@WS_Score_texto),
rtrim(@W_Excepcion_padre),
null,
rtrim(@WS_sub_nombre),
rtrim(@WS_sub_cuit),
rtrim(@WS_sub_tipo),
rtrim(@WS_homologacion),
rtrim(@W_Excepcion_sub),
@WS_fecha_desde,
@WS_fecha_hasta)
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
end
Close Subcontratistas
Deallocate Subcontratistas
if (@w_accion = 'S')
begin
if (@w_prov_cuit is not null and @w_sub_cuit is not null) --> un contratista/subcontratista
begin
if exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit and cuit_subcontratista = @w_sub_cuit)
SELECT '1' as nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,'0',isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
where cuit_contratista = @w_prov_cuit
and cuit_subcontratista = @w_sub_cuit
if not exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, 'NO ES CONTRATISTA' as nombre_contratista,
rtrim(@w_prov_cuit) as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
if not exists (select * from @Respuesta where cuit_subcontratista = @w_sub_cuit)
and exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
rtrim(@w_sub_cuit) as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
FROM @Respuesta
where cuit_contratista = @w_prov_cuit
and cuit_subcontratista = @w_prov_cuit
end
if (@w_prov_cuit is not null and @w_sub_cuit is null) --> todos los subcontratistas de un contratista
if not exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, 'NO ES CONTRATISTA' as nombre_contratista,
@w_prov_cuit as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
else
SELECT nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
if (@w_prov_cuit is null and @w_sub_cuit is not null) --> un subcontratista en todos los contratistas que aparece
if not exists (select * from @Respuesta where cuit_subcontratista = @w_sub_cuit)
SELECT '1' as nro_registro, '' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
@w_sub_cuit as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
else
SELECT nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
end
if (@w_accion = 'A' or @W_accion = 'T')
SELECT nro_registro ,
upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
END
GO
GO
/*
select * from uso_ws_claro
update lN_contrapartes set vigencia_hasta = '2019-09-30' where contraparte = 182
select * from ln_contrapartes where contraparte = 182
select dateadd(minute,(-20),getdate())
select * from clientes where cli_codigo = 8907
exec [WS_subcontratistas] 'amx','A',null,null,null,'200'
exec [WS_subcontratistas] 'sistemas','T', 1
exec [WS_subcontratistas_agb2] 'wspelaez','S', null,'30710637527','30710637527'
exec [WS_subcontratistas] 'wspelaez','S', null,'30710637527','30710637527'
exec [WS_subcontratistas] 'wspelaez','S', null,'30561265255','30561265255'
exec [WS_subcontratistas] 'wspelaez','S', null,'30716843587','30716843587'
exec [WS_subcontratistas] 'wspelaez','S', null,'30698482253','30698482253'
exec [WS_subcontratistas] 'wspelaez','S', null,'30502414719','30502414719'
"usuario" => 'wspelaez',
"password" => 'AmxIngreso#ws',
"cuit_contratista" => '30710637527',
"cuit_subcontratista" => '30710637527'
select * from users where username = 'r6080'
select * from clientes where cli_codigo = 70756
select * from Uso_WS_Claro
*/
CREATE OR ALTER PROCEDUREdbo.WS_subcontratistas
/* 18/06/2020:
Trae las execpciones de la contraparte que estamos viendo
o la cargada en otra contraparte de ese id_padron, cliente,
ya que en el sistema viejo las excepciones eran al CUIT,
sin importar de cuantos contratistas era subcontratista */
@w_username char(20),
@w_accion char(1), --> T=Todos, S=Subcontratista/Contratista, A=Actualizados
--> 'T'
@w_grupo integer = null, --> devuelve todos los subcontratistas vigentes de un nro de grupo (de 50 registros)
-- (1=los registros 1 a 50, 2=los registros del 51 al 100....)
--> 'S'
@w_prov_cuit char(20) = null, --> prov_cuit no nulo y sub_cuit nulo, todos los subcontratistas vigentes de una contraparte
@w_sub_cuit char(20) = null, --> prov_cuit nulo y sub_cuit no nulo, todos las contrapartes/subcontratista donde aparece vigente el subcontratista
--> prov_cuit no nulo y sub_cuit no nulo, los datos de esa contraparte/subcontratista vigente
--> 'A'
@w_min int = null --> si se piden los actualizados desde hace cuantos minutos
,@ip varchar(50) = null
AS
BEGIN
--Del Proveedor-Contratista Directo:
--1. Razón Social / Apellido y Nombre del Proveedor-Contratista Directo.
--2. CUIT del Proveedor-Contratista Directo.
--3. LED (Puntaje de Score)
--4. Aprobado por Excepcion
--5. Nivel de Riesgo (Aprobado para Operar / No Aprobado para Operar)
--6. Area para donde trabaja el Proveedor-Contratista Directo (NULO)
--Del Subcontratista vinculado al Proveedor-Contratista Directo:
--1. Razón Social / Apellido y Nombre del Subcontratista.
--2. CUIT del Subcontratista
--3. Tipo de Subcontratista: Servicio o Material.
--4. Estado del Subcontratista: Si esta Aprobado, Desaprobado o en Gesti¢n.
--5. Aprobado por Excepcion.
--6. Vigencia: Desde / Hasta.
declare @Respuesta table ( nro_registro integer,
nombre_contratista varchar(200),
cuit_contratista varchar(20),
led varchar(10),
nivel_de_riesgo varchar(100),
excepcion_contratista varchar(100),
areas varchar(100),
nombre_subcontratista varchar(200),
cuit_subcontratista varchar(20),
tipo varchar(100),
score_subcontratista varchar(100),
excepcion_subcontratista varchar(100),
vigencia_desde date,
vigencia_hasta date)
declare @W_cli_codigo integer = null
declare @WS_contraparte integer = null
declare @WS_padre integer = null
declare @WS_prov_cuit varchar(13) = null
declare @WS_prov_nombre varchar(250) = null
declare @WS_sub_nombre varchar(70) = null
declare @WS_sub_cuit varchar(13) = null
declare @WS_sub_tipo varchar(100) = null
declare @WS_fecha_desde date = null
declare @WS_fecha_hasta date = null
declare @WS_score_fide varchar(20) = null
declare @WS_score_etico varchar(20) = null
declare @WS_score_calidad varchar(20) = null
declare @WS_homologacion varchar(25) = null
declare @W_Tipo_Empresa CHAR(10) = null
declare @WS_Tipo varchar(70) = null
declare @WS_Score varchar(20) = null
declare @W_Area CHAR(2000) = null
declare @W_Excepcion_padre CHAR(100) = null
declare @W_Excepcion_Sub CHAR(100) = null
declare @W_Total INTEGER = null
declare @w_desde INTEGER = null, @w_hasta INTEGER = null
declare @cont_sub varchar(20)
declare @minutos datetime = dateadd(minute, (@w_min*(-1)), getdate())
set @W_Cli_Codigo = 0
select distinct top 1 @W_Cli_Codigo = usuarios_productos.cliente
from users
left join usuarios_productos on usuarios_productos.user_id = users.user_id
where users.username = @w_Username
and usuarios_productos.id_producto in (select producto from productos where sigla in ('LN','LCS'))
and users.active_user = 'Y'
and usuarios_productos.activo = 1
if (@w_accion = 'A')
begin
set @w_prov_cuit = 'Actual 21'
set @w_sub_cuit = '0'
end
if (@w_accion = 'T')
begin
set @w_prov_cuit = 'Todos'
set @w_sub_cuit = @w_grupo
end
insert into Uso_WS_Claro VALUES (getdate(), @w_username, @w_prov_cuit, @W_sub_cuit,@ip)
if (@W_cli_codigo = 0)
begin
SELECT '1' as nro_registro,
'CLIENTE NO AUTORIZADO A USAR ESTE SERVICIO' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'CLIENTE NO AUTORIZADO A USAR ESTE SERVICIO' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
return
end
SET @W_Total = 0
if (@w_accion = 'S')
begin
select @w_prov_cuit = (ltrim(rtrim(fidelitas.dbo.fn_StripCharacters(@w_prov_cuit, '^a-z0-9'))))
select @w_sub_cuit = (ltrim(rtrim(fidelitas.dbo.fn_StripCharacters(@w_sub_cuit, '^a-z0-9'))))
if (@w_prov_cuit = '') set @w_prov_cuit = null
if (@w_sub_cuit = '') set @w_sub_cuit = null
SET @W_desde = 1
SET @W_hasta = 9999999
if (@w_prov_cuit is null and @w_sub_cuit is null)
begin
SELECT '1' as nro_registro,
'NO ES CONTRATISTA' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
return
end
if (@w_prov_cuit is null and @w_sub_cuit is not null) --> un subcontratista en todos los contratistas que aparece
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND subc.identificacion = @w_sub_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_sub_cuit
order by 4,6
end
if (@w_prov_cuit is not null and @w_sub_cuit is null) --> todos los subcontratistas de un contratista
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND padre.identificacion = @w_prov_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_prov_cuit
order by 4,6
end
if (@w_prov_cuit is not null and @w_sub_cuit is not null) --> un contratista/subcontratista
/*select @w_prov_cuit,@w_sub_cuit, @W_Cli_Codigo as AA*/
begin
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND padre.identificacion = @w_prov_cuit
AND subc.identificacion = @w_sub_cuit
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND padre.identificacion = @w_prov_cuit
-- Traigo siempre los datos del contratista, para poder mostrarlos en caso que No exista el subcontratista
order by 4,6
end
end
if (@w_accion = 'T') --> vamos por todos o un grupo
begin
set @w_prov_cuit = null
set @w_sub_cuit = null
if (@w_grupo = 0) set @w_grupo = null
IF @W_Grupo IS NULL
begin
SET @W_desde = 1
SET @W_hasta = 9999999
end
ELSE
begin
SET @W_hasta = @W_Grupo * 50
SET @W_desde = @W_hasta - 49
end
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join ln_familias on ln_familias.familia = f.familia
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
order by 4,6
end
if (@w_accion = 'A') --> vamos por todos o un grupo
begin
set @w_prov_cuit = null
set @w_sub_cuit = null
SET @W_desde = 1
SET @W_hasta = 9999999
DECLARE Subcontratistas CURSOR FOR
SELECT 'subcontratista',
ln_contrapartes.contraparte,
ln_contrapartes.id_padre,
padre.identificacion,
padre.nombre_persona,
subc.identificacion,
subc.nombre_persona,
ln_familias.nombre_familia,
ln_contrapartes.vigencia_desde,
ln_contrapartes.vigencia_hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join ln_contrapartes b on b.contraparte = LN_contrapartes.id_padre
inner join LN_gestiones c on c.contraparte = b.contraparte
inner join padrones subc on subc.id_padron = ln_contrapartes.id_padron
inner join padrones padre on padre.id_padron = b.id_padron
inner join LN_contraparte_familias f on f.contraparte = LN_contrapartes.contraparte
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.id_padre and f2.familia not in (189,195))
inner join ln_familias on ln_familias.familia = f.familia
left join LN_excepciones e on --e.contraparte = ln_contrapartes.contraparte
(e.contraparte = ln_contrapartes.contraparte or
(isnull(e.cliente,0) = LN_contrapartes.cliente and
isnull(e.id_padron,0) = LN_contrapartes.id_padron))
left join LN_excepciones be on --be.contraparte = b.contraparte
(be.contraparte = b.contraparte or
(isnull(be.cliente,0) = b.cliente and
isnull(be.id_padron,0) = b.id_padron))
WHERE LN_contrapartes.cliente = @W_cli_codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
AND LN_contrapartes.subcontratista = 1
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND b.activo = 1 and b.servicio_contratado=47
AND c.vigente = 1
AND c.desde <= getdate() AND c.hasta >= getdate()
AND (ln_contrapartes.created >= @minutos or ln_contrapartes.modified >= @minutos or
e.created >= @minutos or e.modified >= @minutos or
be.created >= @minutos or be.modified >= @minutos)
and b.id_padron != ln_contrapartes.id_padron
union
SELECT 'contratista',
ln_contrapartes.contraparte,
ln_contrapartes.contraparte,
padre.identificacion,
padre.nombre_persona,
padre.identificacion,
padre.nombre_persona,
'contratista' as nombre_familia,
--(select top 1 nombre_familia from ln_familias where cliente = @w_cli_codigo and subfamilia = 1 order by len(nombre_familia) desc) as nombre_familia,
ln_gestiones.desde,
ln_gestiones.hasta
FROM LN_contrapartes
inner join LN_gestiones on LN_gestiones.contraparte = ln_contrapartes.contraparte
inner join padrones padre on padre.id_padron = LN_contrapartes.id_padron
left join LN_excepciones e on (e.contraparte = ln_contrapartes.contraparte or
(isnull(e.cliente,0) = LN_contrapartes.cliente and
isnull(e.id_padron,0) = LN_contrapartes.id_padron))
inner join LN_contraparte_familias f2 on (f2.contraparte = LN_contrapartes.contraparte and f2.familia not in (189,195))
WHERE LN_contrapartes.cliente = @W_Cli_Codigo
AND LN_contrapartes.activo = 1 AND LN_contrapartes.servicio_contratado = 47
AND LN_contrapartes.subcontratista = 0
AND LN_gestiones.vigente in (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
AND (ln_contrapartes.created >= @minutos or ln_contrapartes.modified >= @minutos or
e.created >= @minutos or e.modified >= @minutos)
order by 4,6
end
OPEN Subcontratistas
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
WHILE @@FETCH_STATUS = 0
begin
SET @W_Total = @W_Total + 1
IF @W_Total < @W_desde
begin
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
CONTINUE
end
IF @W_Total > @W_hasta
BREAK
SET @WS_Score_etico = NULL
SET @WS_Score_calidad= NULL
SET @WS_Score_Fide = NULL
SET @WS_homologacion = NULL
SET @W_excepcion_padre = NULL
SET @W_excepcion_sub = NULL
/*
select @WS_Score_Fide = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_COMERCIAL')
select @WS_Score_etico = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_CALIDAD')
select @WS_Score_calidad = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
where contraparte = @ws_contraparte
and indicador = (select indicador from ln_indicadores where clave_indicador = 'CTRL_ETICO')
*/
select @WS_homologacion = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @ws_contraparte
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'HOMOLOG')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
if @WS_homologacion = 'APROBADO'
begin
/* 05/12/2023: Agregado el control de los documentos del subcontratista */
declare @doc_vencida int = 0
declare @doc_pendiente int = 0
if (@cont_sub = 'subcontratista')
begin
select @doc_vencida = count(*)
from ln_docs
inner join ln_gestiones on ln_gestiones.contraparte = ln_docs.contraparte
where ln_docs.contraparte = @ws_contraparte and aplica = 1
AND LN_gestiones.vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
AND ln_docs.estado_doc not in('V')
AND ln_docs.vencimiento_carga <= getdate()
select @doc_pendiente = count(*)
from ln_docs
inner join ln_gestiones on ln_gestiones.contraparte = ln_docs.contraparte
where ln_docs.contraparte = @ws_contraparte and aplica = 1
AND LN_gestiones.vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
AND ln_docs.estado_doc not in('V')
AND ln_docs.vencimiento_carga > getdate()
if (@doc_pendiente > 0)
begin
set @WS_homologacion = 'DOCUMENTACION PENDIENTE'
end
if (@doc_vencida > 0)
begin
set @WS_homologacion = 'DESAPROBADO DOC NO PRESENTADA'
end
end
end
/**/
/* lo pasamos arriba, porque primero tiene que ver si esta Desaprobado
Si esta desaprobado, gana al documentacion pendiente o vencida
if (@doc_pendiente = 0 and @doc_vencida = 0)
begin
select @WS_homologacion = case valor_numerico when 1 then 'APROBADO' else 'DESAPROBADO' end
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @ws_contraparte
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'HOMOLOG')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
end
*/
select @WS_Score = convert(int, valor_numerico )
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @WS_padre
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'SCORE_FINAL')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
--select @WS_Score as score
if (@WS_Score < -100 or @WS_Score is null)
select @WS_Score = convert(int, valor_numerico )
from ln_contraparte_indicadores
inner join ln_gestiones on ln_gestiones.contraparte = ln_contraparte_indicadores.contraparte
where ln_contraparte_indicadores.contraparte = @WS_padre
and ln_contraparte_indicadores.indicador = (select indicador from ln_indicadores where clave_indicador = 'VALOR_FINAL_ANTERIOR')
and ln_contraparte_indicadores.visible = 1
AND LN_gestiones.vigente IN (1)
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()-10
and ln_contraparte_indicadores.gestion = ln_gestiones.gestion
declare @WS_Score_texto varchar(100) = null
select @WS_Score_texto = texto_largo from LN_cliente_nivel
where cliente = @w_cli_codigo
and LN_cliente_nivel.desde <= @WS_Score
and LN_cliente_nivel.hasta > @WS_Score
select @W_excepcion_padre = iif (ln_excepciones.tipo_excepcion = 'V', 'APROBADO POR EXCEPCION',
iif(ln_excepciones.tipo_excepcion = 'R', 'RECHAZADO POR EXCEPCION', 'SIN EXCEPCION'))
from LN_contrapartes
inner join LN_excepciones on (LN_excepciones.contraparte = LN_contrapartes.contraparte or
(isnull(LN_excepciones.cliente,0) = LN_contrapartes.cliente and
isnull(LN_excepciones.id_padron,0) = LN_contrapartes.id_padron))
where LN_contrapartes.contraparte = @WS_padre
and LN_excepciones.estado = 1
and LN_excepciones.vigencia >= GETDATE()
order by ln_excepciones.created desc
select @W_excepcion_sub = iif (ln_excepciones.tipo_excepcion = 'V', 'APROBADO POR EXCEPCION',
iif(ln_excepciones.tipo_excepcion = 'R', 'RECHAZADO POR EXCEPCION', 'SIN EXCEPCION'))
from LN_contrapartes
inner join LN_excepciones on (LN_excepciones.contraparte = LN_contrapartes.contraparte or
(isnull(LN_excepciones.cliente,0) = LN_contrapartes.cliente and
isnull(LN_excepciones.id_padron,0) = LN_contrapartes.id_padron))
where LN_contrapartes.contraparte = @WS_contraparte
and LN_excepciones.estado = 1
and LN_excepciones.vigencia >= GETDATE()
order by ln_excepciones.created desc
IF @cont_sub = 'subcontratista' and @WS_homologacion IS NULL
begin
SET @WS_homologacion = 'GESTION'
if @w_excepcion_sub IS NOT NULL
set @W_Excepcion_Sub = null
end
insert into @respuesta values ( @W_total,
rtrim(@ws_prov_nombre),
rtrim(@WS_prov_cuit),
@ws_score,
rtrim(@WS_Score_texto),
rtrim(@W_Excepcion_padre),
null,
rtrim(@WS_sub_nombre),
rtrim(@WS_sub_cuit),
rtrim(@WS_sub_tipo),
rtrim(@WS_homologacion),
rtrim(@W_Excepcion_sub),
@WS_fecha_desde,
@WS_fecha_hasta)
FETCH NEXT FROM Subcontratistas into @cont_sub,
@WS_contraparte,
@WS_padre,
@WS_prov_cuit,
@ws_prov_nombre,
@WS_sub_cuit,
@WS_sub_nombre,
@WS_sub_tipo,
@WS_fecha_desde,
@WS_fecha_hasta
end
Close Subcontratistas
Deallocate Subcontratistas
if (@w_accion = 'S')
begin
if (@w_prov_cuit is not null and @w_sub_cuit is not null) --> un contratista/subcontratista
begin
if exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit and cuit_subcontratista = @w_sub_cuit)
SELECT '1' as nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,'0',isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
where cuit_contratista = @w_prov_cuit
and cuit_subcontratista = @w_sub_cuit
if not exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, 'NO ES CONTRATISTA' as nombre_contratista,
rtrim(@w_prov_cuit) as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
if not exists (select * from @Respuesta where cuit_subcontratista = @w_sub_cuit)
and exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
rtrim(@w_sub_cuit) as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
FROM @Respuesta
where cuit_contratista = @w_prov_cuit
and cuit_subcontratista = @w_prov_cuit
end
if (@w_prov_cuit is not null and @w_sub_cuit is null) --> todos los subcontratistas de un contratista
if not exists (select * from @Respuesta where cuit_contratista = @w_prov_cuit)
SELECT '1' as nro_registro, 'NO ES CONTRATISTA' as nombre_contratista,
@w_prov_cuit as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'' as nombre_subcontratista,
'' as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
else
SELECT nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
if (@w_prov_cuit is null and @w_sub_cuit is not null) --> un subcontratista en todos los contratistas que aparece
if not exists (select * from @Respuesta where cuit_subcontratista = @w_sub_cuit)
SELECT '1' as nro_registro, '' as nombre_contratista,
'' as cuit_contratista,
'' as led,
'' as nivel_de_riesgo,
'' as excepcion_contratista,
'' as areas,
'NO ES SUBCONTRATISTA' as nombre_subcontratista,
@w_sub_cuit as cuit_subcontratista,
'' as tipo,
'' as score_subcontratista,
'' as excepcion_subcontratista,
'' as vigencia_desde,
'' as vigencia_hasta
else
SELECT nro_registro, upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
end
if (@w_accion = 'A' or @W_accion = 'T')
SELECT nro_registro ,
upper(isnull(nombre_contratista,'')) as nombre_contratista,
isnull(cuit_contratista,'') cuit_contratista,
IIF(isnull(led,'')<0,0,isnull(led,'')) as led,
upper(isnull(nivel_de_riesgo,'')) as nivel_de_riesgo,
upper(isnull(excepcion_contratista,'')) as excepcion_contratista,
isnull(areas,'') as areas,
upper(isnull(nombre_subcontratista,'')) as nombre_subcontratista,
isnull(cuit_subcontratista,'') as cuit_subcontratista,
upper(isnull(tipo,'')) as tipo,
upper(isnull(score_subcontratista,'')) as score_subcontratista,
upper(isnull(excepcion_subcontratista,'')) as excepcion_subcontratista,
isnull(convert(varchar,vigencia_desde,103),'') as vigencia_desde,
isnull(convert(varchar,vigencia_hasta,103),'') as vigencia_hasta
FROM @Respuesta
ORDER BY Nro_registro
END
GO
Depends On
13Used By
No items found