dbo.WS_subcontratistas_cantidad

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@w_username char 8
@pais_prov varchar 5

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec WS_subcontratistas_cantidad 'wspelaez'
exec WS_subcontratistas_cantidad 'wspelaez','AR'
exec WS_subcontratistas_cantidad 'wspelaez','PY'
exec WS_subcontratistas_cantidad 'wspelaez','UY'
*/

CREATE OR ALTER PROCEDUREdbo.WS_subcontratistas_cantidad
@w_username char(8)
, @pais_prov varchar(5) = null 
 
AS
BEGIN

 DECLARE @W_Cli_Codigo INTEGER = 0
 DECLARE @W_Cant_1    INTEGER = 0
 DECLARE @W_Cant_2    INTEGER = 0
 DECLARE @W_Cant_grupo INTEGER = 0, @Resto INTEGER = 0, @Division INTEGER = 0
 if @pais_prov = '' set @pais_prov = null
    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'))

if (@W_cli_codigo = 0)
begin
 select 0 as total_registros,
     0 as cantidad_grupos
end 
else
begin
 -- Cantidad de Subcontratistas Vigentes de la Gestión activa, que corresponden a Contratistas activos de la Gestión activa
 SELECT @W_cant_2 = COUNT(*) 
   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 LN_contraparte_familias f on f.contraparte = b.contraparte

   WHERE LN_contrapartes.cliente = @W_Cli_Codigo
  AND LN_contrapartes.activo = 1 
     AND LN_contrapartes.subcontratista = 1 
  AND LN_gestiones.vigente = 1 
  AND getdate() BETWEEN LN_contrapartes.vigencia_desde AND LN_contrapartes.vigencia_hasta
  AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
  AND b.activo = 1 
  AND c.vigente = 1 
  AND c.desde <= getdate() AND c.hasta >= getdate() 
  and LN_contrapartes.id_padre is not null 
  and f.familia not in (189,195)
  and iif(@pais_prov is not null,iif(@pais_prov=b.pais_servicio,1,0),1) = 1
  

 
 -- Cantidad de Contratistas activos de la Gestión activa  
 SELECT @W_cant_1 = COUNT(*) 
   FROM LN_contrapartes 
  inner join LN_gestiones c on c.contraparte = LN_contrapartes.contraparte
  inner join LN_contraparte_familias f on f.contraparte = c.contraparte

  
  WHERE LN_contrapartes.cliente = @W_Cli_Codigo
    AND LN_contrapartes.activo = 1 
    AND LN_contrapartes.Subcontratista = 0 
    AND c.vigente = 1 
    AND c.desde <= getdate() AND c.hasta >= getdate() 
    and f.familia not in (189,195)
    and iif(@pais_prov is not null,iif(@pais_prov=LN_contrapartes.pais_servicio,1,0),1) = 1

  
 --select  @W_Cant_1, @W_Cant_2
 SET @W_Cant_1 = @W_Cant_1 + @W_Cant_2
 
    SET @Division  = @W_Cant_1 / 50
 SET @Resto     = @W_Cant_1 - (@Division * 50)
 IF @Resto = 0 
    set @W_Cant_grupo = @Division
 ELSE
    set @W_Cant_grupo = @Division + 1

 select @W_Cant_1     as total_registros, 
     @W_Cant_grupo as cantidad_grupos, 
     @pais_prov as pais 

end 
END 
GO

Used By

No items found