dbo.LN_alta_Contratistas_AGB

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_agb] 'UPDATE', 3920694,6019247, 206,'2020-06-03','2099-12-31',134579, 94437923
/*select * from ln_contrapartes where contraparte = 134579
select * from led_contratistas where contratista = 5792
select * from users where user_id=413617340
select * from users where email='marita1@fidelitas.com.ar'

*/


CREATE OR ALTER PROCEDURE dbo.LN_alta_Contratistas_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
 SET @p_accion = UPPER(@p_accion)

 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 @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
  left join users on led_contratistas.user_id=users.user_id
  where /*ln_contrapartes.id_padron = @p_id_padron and ln_contrapartes.cliente=@p_cliente and LN_contrapartes.servicio_contratado=73 and users.email = LN_contrapartes.email_contacto
   and */
 LN_contrapartes.contraparte = @p_contraparte
  


  select @usuarioexistente = user_id from users where (username = @emailcontra or email = @emailcontra)
/*
SELECT @p_contratista,@emailcontra,@userimperium,@nombrecontacto,@password,@p_contraparte,@usuarioexistente,@actualizar
RETURN
SELECT 'PEPE'
*/

  /*
   select * from ln_contrapartes where contraparte = 134579
  select * from led_contratistas where contratista = 5792
  --select * from users where user_id=413617340
  select * from users where email='marita1@fidelitas.com.ar'
  */


  /* 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 led_contratista_usuarios where user_id=413617340 or contratista = 5792
     BEGIN TRY
      -- delete led_contratista_usuarios where contratista = @p_contratista
      insert into led_contratista_usuarios (contratista,user_id)
      values (@p_contratista,@p_rand)
     END TRY
     BEGIN CATCH
     END CATCH
     BEGIN TRY
      insert into users_by_group (user_id,group_id)
      values (@p_rand,23437828)
     END TRY
     BEGIN CATCH
     END CATCH
    end
  end
  
  /*
   SELECT @p_contratista,@emailcontra,@userimperium,@nombrecontacto,@password,@p_contraparte,@usuarioexistente,@actualizar
   RETURN
   SELECT 'PEPE'
   */


/* SI EL USURIO YA EXISTE LE ACTUALIZAMOS LOS DATOS 
 exec LN_alta_Contratistas 'UPDATE', 3920694,6019247, 206,'2020-06-03','2099-12-31',134579, 15342812
select * from led_contratista_usuarios where user_id=413617340 or contratista = 5792
--update ln_contrapartes set modalidad_pago = 'CC' where contraparte = 134579 and cliente = 3920694
select * from users where user_id in (15342812,94437923)
select * from led_contratista_usuarios where user_id = 15342812
select * from led_contratistas where contratista in (5787,
6799,
5792,
5784)
select * from clientes where cliente = 7855254
--delete led_contratista_usuarios where user_id = 15342812

select * from users where username = 'vyaben@bayton.com.ar'
select * from users where username = 'rtroglio@bayton.com.ar'
select * from led_contratistas where user_id in (98550733,8272079)

update led_contratistas set user_id = 8272079 where contratista = 1162

select * from led_contratista_usuarios  where contratista = 1162
update led_contratista_usuarios set user_id = 8272079 where contratista = 1162
select * from users_by_group  where user_id in (98550733,8272079)
delete users_by_group  where user_id in (98550733)

*/
  
  if(@actualizar = 0 and @usuarioexistente > 0)
  
  select @actualizar,@usuarioexistente

  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
    -- delete led_contratista_usuarios where contratista = @p_contratista
    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
   -- delete led_contratista_usuarios where contratista = @p_contratista
   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

Used By

No items found