Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
8| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_accion | varchar | 20 | |
| @p_cliente | int | 4 | |
| @p_id_padron | int | 4 | |
| @p_familia | int | 4 | |
| @p_desde | date | 3 | |
| @p_hasta | date | 3 | |
| @p_contraparte | int | 4 | |
| @p_user_id | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 02/07/2020
-- Description: Desde Backend LED - Para Servicio Imperium altas y updates en las tablas de Contratistas
-- =============================================
-- exec [LN_alta_Contratistas] 3920694,6019247, 206,'2020-06-03','2099-12-31',134579, 94437923
create OR ALTER PROCEDURE dbo.LN_alta_Contratistas_revisar_agb
@p_accion varchar(20),
@p_cliente int,
@p_id_padron int,
@p_familia int,
@p_desde date,
@p_hasta date,
@p_contraparte int,
@p_user_id int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @p_contratista int = null
if @p_desde is null set @p_desde = GETDATE()
if @p_hasta is null set @p_hasta = '2099-12-31'
DECLARE @tipo_contratista int = null
select @tipo_contratista = id_imperium from ln_familias
where cliente = @p_cliente
and servicio_contratado = 73
and familia = @p_familia
and visible = 1
DECLARE @periodo_adelantado INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(GETDATE())) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(GETDATE())), 2))
DECLARE @periodo_vencido INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(DATEADD(MONTH,-1,GETDATE()))) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(DATEADD(MONTH,-1,GETDATE()))), 2))
if (@p_accion = 'insert')
begin
-- Led_contratistas
if not exists (select * from led_contratistas
where cliente = @p_cliente
and id_padron = @p_id_padron
and contratista_1 = contratista)
begin
INSERT INTO led_contratistas
(cliente, estado_contratista, tipo_contratista, id_padron, created, user_id)
values (@p_cliente, 'A', @tipo_contratista,
@p_id_padron, GETDATE(), @p_user_id)
SELECT @p_contratista = @@IDENTITY
update led_contratistas set contratista_1 = contratista
where contratista = @p_contratista
end
else
begin
SELECT @p_contratista = contratista
from led_contratistas
where cliente = @p_cliente
and id_padron = @p_id_padron
and contratista_1 = contratista
end
update ln_contrapartes set id_imperium = @p_contratista
where contraparte = @p_contraparte
end
if (@p_accion = 'insert' or @p_accion = 'update')
begin
declare @emailcontra varchar(150)
declare @userimperium int
declare @actualizar bit = 0
declare @nombrecontacto varchar(150)
declare @usuarioexistente int=0
declare @password varchar(30)
/*
select @p_contratista = id_imperium,@emailcontra=email_contacto
from LN_contrapartes
where contraparte = @p_contraparte
*/
select @p_contratista=LN_contrapartes.id_imperium,@emailcontra=LN_contrapartes.email_contacto,
@userimperium=led_contratistas.user_id,
@actualizar= iif(ltrim(rtrim(ln_contrapartes.email_contacto)) = ltrim(rtrim(users.username)),0,1),
@nombrecontacto=ln_contrapartes.nombre_contacto,@password=ln_contrapartes.clave
from LN_contrapartes inner join led_contratistas on LN_contrapartes.id_imperium=led_contratistas.contratista_1
inner join users on led_contratistas.user_id=users.user_id
where contraparte = @p_contraparte
select @usuarioexistente = user_id from users where (username = @emailcontra or email = @emailcontra)
/* SI EL USUARIO NO EXISTE HAY QUE DARLO DE ALTA */
if(@actualizar = 1 and @usuarioexistente = 0)
begin
-- update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@userimperium
DECLARE @ok char(1)
DECLARE @p_rand int
DECLARE @p_rand_char varchar(120)
DECLARE @i int
set @ok = 'N'
--select @ok
WHILE (@ok = 'N')
BEGIN
set @i = @i + 1
set @p_rand = ROUND(((999999999 - 1) * RAND() + 1), 0)
set @p_rand_char = convert(varchar(120),newid())
if (select count(*) from users where user_id = @p_rand or cookie_id = @p_rand_char) = 0
begin
insert into users (user_id, cookie_id, username, active_user, email, user_created,first_name,password)
values (@p_rand, @p_rand_char, @emailcontra, 'Y', @emailcontra, getdate(),@nombrecontacto,@password)
set @ok = 'S'
--select @ok
end
END
--update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@userimperium
if (@ok='S')
begin
update led_contratistas set user_id= @p_rand where contratista =@p_contratista AND CONTRATISTA = contratista_1
-- select * from users where user_id= @p_rand
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@usuarioexistente)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@usuarioexistente,23437828)
END TRY
BEGIN CATCH
END CATCH
end
end
/* SI EL USURIO YA EXISTE LE ACTUALIZAMOS LOS DATOS */
if(@actualizar = 1 and @usuarioexistente > 0)
begin
update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@usuarioexistente
update led_contratistas set user_id= @usuarioexistente where contratista = contratista_1 and contratista = @p_contratista
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@usuarioexistente)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@usuarioexistente,23437828)
END TRY
BEGIN CATCH
END CATCH
end
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@p_user_id)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@p_user_id,23437828)
END TRY
BEGIN CATCH
END CATCH
if (select activo from LN_contrapartes where contraparte = @p_contraparte) = 0
begin
update led_contratistas
set estado_contratista = 'N', tipo_contratista = @tipo_contratista
where cliente = @p_cliente
and contratista = @p_contratista
and contratista_1 = @p_contratista
update led_contratista_multi
set activo = 0
where contratista = @p_contratista
and contratista_1 = @p_contratista
end
else
begin
update led_contratistas
set estado_contratista = 'A', tipo_contratista = @tipo_contratista
where cliente = @p_cliente
and contratista = @p_contratista
and contratista_1 = @p_contratista
-- Led_contratistas_multi
if not exists (select * from led_contratista_multi
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0)
begin
insert into led_contratista_multi(
contratista,id,tipo_contratista,id_dep,descripcion,
vigencia_desde,vigencia_hasta,tipo_contratista_principal,contratista_1,cliente,
activo,created,created_by)
values (@p_contratista,1, @tipo_contratista, '0', null,
@p_desde, @p_hasta, null, @p_contratista, @p_cliente,
1, getdate(), @p_user_id)
end
else
begin
if (select tipo_contratista from led_contratista_multi
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0) != @tipo_contratista
begin
update led_contratista_multi
set activo = 0, modified = GETDATE(), modified_by = @p_user_id
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep > 0
end
update led_contratista_multi
set activo = 1, modified = GETDATE(), modified_by = @p_user_id, tipo_contratista = @tipo_contratista
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0
end
-- Led_contratistas_periodo
if not exists (select * from Led_contratista_periodo
where contratista = @p_contratista
and periodo = @periodo_vencido)
begin
INSERT INTO Led_contratista_periodo
(contratista, periodo, tipo_alta, fecha_afectacion)
values
(@p_contratista, @periodo_vencido, null, GETDATE())
end
if (select ACCESO_ci from clientes where cliente = @p_cliente) = 1
AND exists(SELECT *
FROM led_tipos_doc
inner join led_cliente_contratista on led_tipos_doc.tipo_doc = led_cliente_contratista.tipo_doc
WHERE led_cliente_contratista.tipo_contratista = @tipo_contratista
AND led_cliente_contratista.cliente = @p_cliente
AND led_tipos_doc.modalidad = 'A'
AND ci_killer = 1)
begin
if not exists (select * from Led_contratista_periodo
where contratista = @p_contratista
and periodo = @periodo_adelantado)
begin
INSERT INTO Led_contratista_periodo
(contratista, periodo, tipo_alta, fecha_afectacion)
values
(@p_contratista, @periodo_adelantado, null, GETDATE())
end
end
end
end
END
GO
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 02/07/2020
-- Description: Desde Backend LED - Para Servicio Imperium altas y updates en las tablas de Contratistas
-- =============================================
-- exec [LN_alta_Contratistas] 3920694,6019247, 206,'2020-06-03','2099-12-31',134579, 94437923
create OR ALTER PROCEDURE dbo.LN_alta_Contratistas_revisar_agb
@p_accion varchar(20),
@p_cliente int,
@p_id_padron int,
@p_familia int,
@p_desde date,
@p_hasta date,
@p_contraparte int,
@p_user_id int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @p_contratista int = null
if @p_desde is null set @p_desde = GETDATE()
if @p_hasta is null set @p_hasta = '2099-12-31'
DECLARE @tipo_contratista int = null
select @tipo_contratista = id_imperium from ln_familias
where cliente = @p_cliente
and servicio_contratado = 73
and familia = @p_familia
and visible = 1
DECLARE @periodo_adelantado INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(GETDATE())) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(GETDATE())), 2))
DECLARE @periodo_vencido INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(DATEADD(MONTH,-1,GETDATE()))) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(DATEADD(MONTH,-1,GETDATE()))), 2))
if (@p_accion = 'insert')
begin
-- Led_contratistas
if not exists (select * from led_contratistas
where cliente = @p_cliente
and id_padron = @p_id_padron
and contratista_1 = contratista)
begin
INSERT INTO led_contratistas
(cliente, estado_contratista, tipo_contratista, id_padron, created, user_id)
values (@p_cliente, 'A', @tipo_contratista,
@p_id_padron, GETDATE(), @p_user_id)
SELECT @p_contratista = @@IDENTITY
update led_contratistas set contratista_1 = contratista
where contratista = @p_contratista
end
else
begin
SELECT @p_contratista = contratista
from led_contratistas
where cliente = @p_cliente
and id_padron = @p_id_padron
and contratista_1 = contratista
end
update ln_contrapartes set id_imperium = @p_contratista
where contraparte = @p_contraparte
end
if (@p_accion = 'insert' or @p_accion = 'update')
begin
declare @emailcontra varchar(150)
declare @userimperium int
declare @actualizar bit = 0
declare @nombrecontacto varchar(150)
declare @usuarioexistente int=0
declare @password varchar(30)
/*
select @p_contratista = id_imperium,@emailcontra=email_contacto
from LN_contrapartes
where contraparte = @p_contraparte
*/
select @p_contratista=LN_contrapartes.id_imperium,@emailcontra=LN_contrapartes.email_contacto,
@userimperium=led_contratistas.user_id,
@actualizar= iif(ltrim(rtrim(ln_contrapartes.email_contacto)) = ltrim(rtrim(users.username)),0,1),
@nombrecontacto=ln_contrapartes.nombre_contacto,@password=ln_contrapartes.clave
from LN_contrapartes inner join led_contratistas on LN_contrapartes.id_imperium=led_contratistas.contratista_1
inner join users on led_contratistas.user_id=users.user_id
where contraparte = @p_contraparte
select @usuarioexistente = user_id from users where (username = @emailcontra or email = @emailcontra)
/* SI EL USUARIO NO EXISTE HAY QUE DARLO DE ALTA */
if(@actualizar = 1 and @usuarioexistente = 0)
begin
-- update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@userimperium
DECLARE @ok char(1)
DECLARE @p_rand int
DECLARE @p_rand_char varchar(120)
DECLARE @i int
set @ok = 'N'
--select @ok
WHILE (@ok = 'N')
BEGIN
set @i = @i + 1
set @p_rand = ROUND(((999999999 - 1) * RAND() + 1), 0)
set @p_rand_char = convert(varchar(120),newid())
if (select count(*) from users where user_id = @p_rand or cookie_id = @p_rand_char) = 0
begin
insert into users (user_id, cookie_id, username, active_user, email, user_created,first_name,password)
values (@p_rand, @p_rand_char, @emailcontra, 'Y', @emailcontra, getdate(),@nombrecontacto,@password)
set @ok = 'S'
--select @ok
end
END
--update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@userimperium
if (@ok='S')
begin
update led_contratistas set user_id= @p_rand where contratista =@p_contratista AND CONTRATISTA = contratista_1
-- select * from users where user_id= @p_rand
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@usuarioexistente)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@usuarioexistente,23437828)
END TRY
BEGIN CATCH
END CATCH
end
end
/* SI EL USURIO YA EXISTE LE ACTUALIZAMOS LOS DATOS */
if(@actualizar = 1 and @usuarioexistente > 0)
begin
update users set username = @emailcontra,email=@emailcontra,first_name=null,last_name=@nombrecontacto,active_user='Y' where user_id=@usuarioexistente
update led_contratistas set user_id= @usuarioexistente where contratista = contratista_1 and contratista = @p_contratista
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@usuarioexistente)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@usuarioexistente,23437828)
END TRY
BEGIN CATCH
END CATCH
end
BEGIN TRY
insert into led_contratista_usuarios (contratista,user_id)
values (@p_contratista,@p_user_id)
END TRY
BEGIN CATCH
END CATCH
BEGIN TRY
insert into users_by_group (user_id,group_id)
values (@p_user_id,23437828)
END TRY
BEGIN CATCH
END CATCH
if (select activo from LN_contrapartes where contraparte = @p_contraparte) = 0
begin
update led_contratistas
set estado_contratista = 'N', tipo_contratista = @tipo_contratista
where cliente = @p_cliente
and contratista = @p_contratista
and contratista_1 = @p_contratista
update led_contratista_multi
set activo = 0
where contratista = @p_contratista
and contratista_1 = @p_contratista
end
else
begin
update led_contratistas
set estado_contratista = 'A', tipo_contratista = @tipo_contratista
where cliente = @p_cliente
and contratista = @p_contratista
and contratista_1 = @p_contratista
-- Led_contratistas_multi
if not exists (select * from led_contratista_multi
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0)
begin
insert into led_contratista_multi(
contratista,id,tipo_contratista,id_dep,descripcion,
vigencia_desde,vigencia_hasta,tipo_contratista_principal,contratista_1,cliente,
activo,created,created_by)
values (@p_contratista,1, @tipo_contratista, '0', null,
@p_desde, @p_hasta, null, @p_contratista, @p_cliente,
1, getdate(), @p_user_id)
end
else
begin
if (select tipo_contratista from led_contratista_multi
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0) != @tipo_contratista
begin
update led_contratista_multi
set activo = 0, modified = GETDATE(), modified_by = @p_user_id
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep > 0
end
update led_contratista_multi
set activo = 1, modified = GETDATE(), modified_by = @p_user_id, tipo_contratista = @tipo_contratista
where contratista = @p_contratista
and contratista_1 = @p_contratista
and id_dep = 0
end
-- Led_contratistas_periodo
if not exists (select * from Led_contratista_periodo
where contratista = @p_contratista
and periodo = @periodo_vencido)
begin
INSERT INTO Led_contratista_periodo
(contratista, periodo, tipo_alta, fecha_afectacion)
values
(@p_contratista, @periodo_vencido, null, GETDATE())
end
if (select ACCESO_ci from clientes where cliente = @p_cliente) = 1
AND exists(SELECT *
FROM led_tipos_doc
inner join led_cliente_contratista on led_tipos_doc.tipo_doc = led_cliente_contratista.tipo_doc
WHERE led_cliente_contratista.tipo_contratista = @tipo_contratista
AND led_cliente_contratista.cliente = @p_cliente
AND led_tipos_doc.modalidad = 'A'
AND ci_killer = 1)
begin
if not exists (select * from Led_contratista_periodo
where contratista = @p_contratista
and periodo = @periodo_adelantado)
begin
INSERT INTO Led_contratista_periodo
(contratista, periodo, tipo_alta, fecha_afectacion)
values
(@p_contratista, @periodo_adelantado, null, GETDATE())
end
end
end
end
END
GO
Depends On
9Used By
No items found