Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
5| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cliente | int | 4 | |
| @p_user_id | int | 4 | |
| @p_servicio | int | 4 | |
| @p_lista_usuario | varchar | -1 | |
| @p_user_by | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 16/06/2020
-- Description: Graba restricciones de paises para usuarios
-- Se manda la lista de los permitidos, entonces busca los que no estan en la lista,
-- esos son los que hay que restringir
-- =============================================
/*
exec [usuarios_restricciones_paises] 5546348, 852844375,47,
'AR,UY', 1
select * from usuarios_restricciones where cliente = 5546348
*/
CREATE OR ALTER PROCEDURE dbo.usuarios_restricciones_paises
@p_cliente int,
@p_user_id int,
@p_servicio int,
@p_lista_usuario varchar(max),
@p_user_by int
AS
BEGIN
SET NOCOUNT ON;
declare @paises_a_restringir table (pais varchar(10))
insert into @paises_a_restringir
select country_code
from cliente_paises
where cliente = @p_cliente
and activo = 1
and servicio_contratado = @p_servicio
and not exists (select item from dbo.DelimitedSplit8K(@p_lista_usuario, ',') b
where b.item = cliente_paises.country_code )
-- Si ya estaba la restriccion, graba fecha de modificacion
update usuarios_restricciones
set modified = getdate(), modified_by = @p_user_by
where cliente = @p_cliente
and user_id = @p_user_id
and servicio_contratado = @p_servicio
and familia is null
and indicador is null
and pais_servicio in (select pais from @paises_a_restringir)
-- Si no estaba la restriccion la graba
insert into usuarios_restricciones (cliente, user_id, servicio_contratado, pais_servicio, created, created_by)
select @p_cliente, @p_user_id, @p_servicio, pais, getdate(), @p_user_by
from @paises_a_restringir a
where not exists (select * from usuarios_restricciones ur
where ur.cliente = @p_cliente
and ur.user_id = @p_user_id
and ur.servicio_contratado = @p_servicio
and ur.indicador is null
and ur.familia is null
and ur.pais_servicio = a.pais)
-- Borra los registros de paises restringidos, que ahora no se quieren restringir
delete from usuarios_restricciones
where cliente = @p_cliente
and user_id = @p_user_id
and servicio_contratado = @p_servicio
and indicador is null
and familia is null
and pais_servicio not in (select pais from @paises_a_restringir)
END
GO
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 16/06/2020
-- Description: Graba restricciones de paises para usuarios
-- Se manda la lista de los permitidos, entonces busca los que no estan en la lista,
-- esos son los que hay que restringir
-- =============================================
/*
exec [usuarios_restricciones_paises] 5546348, 852844375,47,
'AR,UY', 1
select * from usuarios_restricciones where cliente = 5546348
*/
CREATE OR ALTER PROCEDURE dbo.usuarios_restricciones_paises
@p_cliente int,
@p_user_id int,
@p_servicio int,
@p_lista_usuario varchar(max),
@p_user_by int
AS
BEGIN
SET NOCOUNT ON;
declare @paises_a_restringir table (pais varchar(10))
insert into @paises_a_restringir
select country_code
from cliente_paises
where cliente = @p_cliente
and activo = 1
and servicio_contratado = @p_servicio
and not exists (select item from dbo.DelimitedSplit8K(@p_lista_usuario, ',') b
where b.item = cliente_paises.country_code )
-- Si ya estaba la restriccion, graba fecha de modificacion
update usuarios_restricciones
set modified = getdate(), modified_by = @p_user_by
where cliente = @p_cliente
and user_id = @p_user_id
and servicio_contratado = @p_servicio
and familia is null
and indicador is null
and pais_servicio in (select pais from @paises_a_restringir)
-- Si no estaba la restriccion la graba
insert into usuarios_restricciones (cliente, user_id, servicio_contratado, pais_servicio, created, created_by)
select @p_cliente, @p_user_id, @p_servicio, pais, getdate(), @p_user_by
from @paises_a_restringir a
where not exists (select * from usuarios_restricciones ur
where ur.cliente = @p_cliente
and ur.user_id = @p_user_id
and ur.servicio_contratado = @p_servicio
and ur.indicador is null
and ur.familia is null
and ur.pais_servicio = a.pais)
-- Borra los registros de paises restringidos, que ahora no se quieren restringir
delete from usuarios_restricciones
where cliente = @p_cliente
and user_id = @p_user_id
and servicio_contratado = @p_servicio
and indicador is null
and familia is null
and pais_servicio not in (select pais from @paises_a_restringir)
END
GO
Used By
No items found