dbo.backend_procesar_socio_2024

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

17
Name Data Type Length Description
@p_cuit varchar 20
@p_cuit_socio varchar 20
@p_desde varchar 20
@p_hasta varchar 20
@p_cargo varchar 20
@p_id_socio int 4
@p_tipo_persona varchar 1
@p_ultimo varchar 1
@p_edicto tinyint 1
@p_archivo_edicto varchar 200
@p_contenido_archivo text -1
@provincia_boletin varchar 50
@fecha_publicacion varchar 20
@user_id int 4
@id_padron_empresa bigint 8
@id_padron_socio bigint 8
@id_sociedades_constituciones bigint 8

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec backend_procesar_socio '30111111118','22222222222','2023-06', NULL,'AD',NULL,'j','S','0',NULL,NULL, NULL,NULL,'94437923'
*/


-- =============================================
-- Author: <Samuel Gonzalez>
-- Create date: <18 Jul 2017>
-- modificado: <Leonel Turchetto 20/03/2019> -- el anterior se llama [backend_procesar_socio_20072023]

-- modificado: <Maria Ines Soria 20/07/2023> - Se hacen todos los controles para no dejar a una persona en distintos cargos 

-- Description: <agrega o modifica socio>
-- =============================================


CREATE OR ALTER PROCEDURE dbo.backend_procesar_socio_2024 
 -- Add the parameters for the stored procedure here
 @p_cuit varchar(20),
 @p_cuit_socio varchar(20),
 @p_desde varchar(20),
 @p_hasta varchar(20),
 @p_cargo varchar(20),
 @p_id_socio int,
 @p_tipo_persona varchar(1),
 @p_ultimo varchar(1),

 @p_edicto     tinyint,
 @p_archivo_edicto   varchar(200),
 @p_contenido_archivo  text,
 @provincia_boletin   varchar(50) = null,
 @fecha_publicacion   varchar(20) = null,

 @user_id int = null, 
 @id_padron_empresa bigint = null, 
 @id_padron_socio bigint = null,
 @id_sociedades_constituciones bigint = null

AS

BEGIN

 SET NOCOUNT ON;
 
 if @provincia_boletin = '' set @provincia_boletin = null 
 if @fecha_publicacion = '' set @fecha_publicacion = null 
 
 declare @nombre_cuit varchar(200),@nombre_cuit_socio varchar(200)

    IF (@p_id_socio IS NULL) -- ALTA
  BEGIN
   IF (@p_tipo_persona = 'f')
   -- Persona FĂ­sica
   BEGIN
    if (@p_ultimo = 'S')
    begin
     -- No esta con el mismo cargo y ultimo = 'S': lo doy de alta
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S') = 0)
     BEGIN 
      INSERT INTO socios 
       (c01_cuit, c01_cuit_soc, c04_periodo_desde, c04_periodo_hasta, car_codigo, c04_ultimo, visible, created, created_by, id_padron, id_padron_socio,ids_sociedades_constituciones)
      VALUES
       (@p_cuit_socio, @p_cuit, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id, @id_padron_empresa, @id_padron_socio, @id_sociedades_constituciones)
     END
     ELSE
     BEGIN
      -- Si ya esta con el mismo cargo, y ultimo = 'S': solo actualizo el periodo desde / hasta, si ahora viene
      if (@p_desde is not null) 
       update socios set c04_periodo_desde = @p_desde, modified_by = @user_id, modified = GETDATE(), 
                         id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio),

             ids_sociedades_constituciones = 
             iif(@id_sociedades_constituciones is not null and @id_sociedades_constituciones not in (select item from dbo.DelimitedSplit8K(ids_sociedades_constituciones, ',')),
             
             socios.ids_sociedades_constituciones 
             + iif(ids_sociedades_constituciones is null, '',',') 
             + convert(varchar,@id_sociedades_constituciones), 
             
             ids_sociedades_constituciones)
             
             
        WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
      if (@p_hasta is not null) 
       update socios set c04_periodo_hasta = @p_hasta, modified_by = @user_id, modified = GETDATE(),
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio),
             
             ids_sociedades_constituciones = 
             iif(@id_sociedades_constituciones is not null and @id_sociedades_constituciones not in (select item from dbo.DelimitedSplit8K(ids_sociedades_constituciones, ',')),
             
             socios.ids_sociedades_constituciones 
             + iif(ids_sociedades_constituciones is null, '',',') 
             + convert(varchar,@id_sociedades_constituciones), 
             
             ids_sociedades_constituciones)
         WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
     END
     
     --Si esta con otro cargo, al otro cargo lo paso como ultimo = 'N', y guardo como ultimo = 'S' al nuevo
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S') != 0)
     BEGIN 
      update socios set  c04_ultimo = 'N', modified_by = @user_id, modified = GETDATE(),
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                      id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio), 

             ids_sociedades_constituciones = 
           iif(@id_sociedades_constituciones is not null and @id_sociedades_constituciones not in (select item from dbo.DelimitedSplit8K(ids_sociedades_constituciones, ',')),
             
           socios.ids_sociedades_constituciones 
           + iif(ids_sociedades_constituciones is null, '',',') 
           + convert(varchar,@id_sociedades_constituciones), 
             
           ids_sociedades_constituciones)
       WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S'

     END

     SELECT max(id_socios) AS id_socio 
       FROM socios
      WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
     
    end
    else 
    begin
    -- ultimo = 'N'
     -- No esta con el mismo cargo y ultimo = 'N': lo doy de alta
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo and visible = 1 and c04_ultimo = 'N') = 0)
     BEGIN 
      INSERT INTO socios 
       (c01_cuit, c01_cuit_soc, c04_periodo_desde, c04_periodo_hasta, car_codigo, c04_ultimo, visible, created, created_by, id_padron, id_padron_socio)
      VALUES
       (@p_cuit_socio, @p_cuit, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id, @id_padron_empresa, @id_padron_socio)
     END
     ELSE
     BEGIN
      -- Si ya esta con el mismo cargo, y ultimo = 'N': solo actualizo el periodo desde / hasta, si ahora viene
      if (@p_desde is not null) 
       update socios set c04_periodo_desde = @p_desde, modified_by = @user_id, modified = GETDATE(),
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio), 

             ids_sociedades_constituciones = 
             iif(@id_sociedades_constituciones is not null and @id_sociedades_constituciones not in (select item from dbo.DelimitedSplit8K(ids_sociedades_constituciones, ',')),
             
             socios.ids_sociedades_constituciones 
             + iif(ids_sociedades_constituciones is null, '',',') 
             + convert(varchar,@id_sociedades_constituciones), 
             
             ids_sociedades_constituciones)

        WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
      if (@p_hasta is not null) 
       update socios set c04_periodo_hasta = @p_hasta, modified_by = @user_id, modified = GETDATE(), 
                id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio), 
             
             ids_sociedades_constituciones = 
             iif(@id_sociedades_constituciones is not null and @id_sociedades_constituciones not in (select item from dbo.DelimitedSplit8K(ids_sociedades_constituciones, ',')),
             
             socios.ids_sociedades_constituciones 
             + iif(ids_sociedades_constituciones is null, '',',') 
             + convert(varchar,@id_sociedades_constituciones), 
             
             ids_sociedades_constituciones)

        WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
     END 

     SELECT max(id_socios) AS id_socio 
       FROM socios
      WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
    end

    -- Actualiza cuit y id_padrones en sociedades_constituciones 
    declare @lista_cuit      varchar(max) = null
    declare @lista_id_padron varchar(max) = null
    if (@id_sociedades_constituciones is not null)
    begin 
     select @lista_cuit = lista_cuit_integrantes, @lista_id_padron = lista_id_padron_integrantes
       from sociedades_constituciones
      where id_fide = @id_sociedades_constituciones
     
     if not exists (select * from dbo.DelimitedSplit8K(@lista_cuit, ',') where item = @p_cuit)
     begin
      update sociedades_constituciones 
         set lista_cuit_integrantes = IIF(@lista_cuit is null, @p_cuit, lista_cuit_integrantes + ',' + @p_cuit)
        where id_fide = @id_sociedades_constituciones
     end 
     if not exists (select * from dbo.DelimitedSplit8K(@lista_id_padron, ',') where item = @id_padron_socio)
     begin
      update sociedades_constituciones 
         set lista_id_padron_integrantes = IIF(@lista_id_padron is null, @id_padron_socio, lista_id_padron_integrantes + ',' + @id_padron_socio)
        where id_fide = @id_sociedades_constituciones
     end 
     update sociedades_constituciones 
      set documento_soc = IIF(@p_cuit_socio is not null, @p_cuit_socio, documento_soc),
          id_padron_sociedad = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron_sociedad)
      where id_fide = @id_sociedades_constituciones
    end
   END
   ELSE
   BEGIN
   -- Persona Juridica
    if (@p_ultimo = 'S')
    begin
     -- No esta con el mismo cargo y ultimo = 'S': lo doy de alta
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio and car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S') = 0)
     BEGIN 
      INSERT INTO socios 
       (c01_cuit, c01_cuit_soc, c04_periodo_desde, c04_periodo_hasta, car_codigo, c04_ultimo, visible, created, created_by, id_padron, id_padron_socio)
      VALUES
       (@p_cuit, @p_cuit_socio, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id, @id_padron_empresa, @id_padron_socio)
     END
     ELSE
     BEGIN
      -- Si ya esta con el mismo cargo, solo actulizo el periodo desde / hasta, si ahora viene
      if (@p_desde is not null) 
       update socios set c04_periodo_desde = @p_desde, modified_by = @user_id, modified = GETDATE(),
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
        WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
      if (@p_hasta is not null) 
       update socios set c04_periodo_hasta = @p_hasta, modified_by = @user_id, modified = GETDATE(), 
                id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
        WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
     END
     
     --Si esta con otro cargo, al otro cargo lo paso como ultimo = 'N', y guardo como ultimo = 'S' al nuevo
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S') != 0)
     BEGIN 
      update socios set c04_ultimo = 'N', modified_by = @user_id, modified = GETDATE(), 
            id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                     id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
       WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S'
     END

     SELECT max(id_socios) AS id_socio 
       FROM socios
       WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'S'
    end
    else 
    begin
    -- ultimo = 'N'
     -- No esta con el mismo cargo y ultimo = 'N': lo doy de alta
     IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo and visible = 1 and c04_ultimo = 'N') = 0)
     BEGIN 
      INSERT INTO socios 
       (c01_cuit, c01_cuit_soc, c04_periodo_desde, c04_periodo_hasta, car_codigo, c04_ultimo, visible, created, created_by, id_padron, id_padron_socio)
      VALUES
       (@p_cuit, @p_cuit_socio, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id, @id_padron_empresa, @id_padron_socio)
     END
     ELSE
     BEGIN
      -- Si ya esta con el mismo cargo, y ultimo = 'N': solo actualizo el periodo desde / hasta, si ahora viene
      if (@p_desde is not null) 
       update socios set c04_periodo_desde = @p_desde, modified_by = @user_id, modified = GETDATE(), 
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                         id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
        WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
      if (@p_hasta is not null) 
       update socios set c04_periodo_hasta = @p_hasta, modified_by = @user_id, modified = GETDATE(), 
             id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
             id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
        WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
     END
     SELECT max(id_socios) AS id_socio
       FROM socios
      WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo = @p_cargo AND visible = 1 and c04_ultimo = 'N'
     
    end
   END
   IF (@p_edicto > 0) 
   BEGIN
   set @nombre_cuit  = (select top 1 nombre_persona from padrones where identificacion = @p_cuit and habilitado = 1)
   set @nombre_cuit_socio = (select top 1 nombre_persona from padrones where identificacion = @p_cuit_socio  and habilitado = 1)
   insert into sociedades_constituciones (documento_soc, razon_social, 
     nombre_integrante, cuit_integrante, cuit_int, contenido_archivo, nombre_file, created, fuente,visible,provincia_sociedad,fecha_publicacion,created_by)
     VALUES
     (@p_cuit,@nombre_cuit,@nombre_cuit_socio,@p_cuit_socio,@p_cuit_socio,@p_contenido_archivo,'',getdate(),'CARGA BACKEND',1,@provincia_boletin,@fecha_publicacion,@user_id) 
   END


  END
 ELSE -- MODIFICACION
  BEGIN
   IF (@p_tipo_persona = 'f')
    BEGIN
     UPDATE socios SET 
      c01_cuit = @p_cuit_socio, 
      c01_cuit_soc = @p_cuit, 
      c04_periodo_desde = @p_desde, 
      c04_periodo_hasta = @p_hasta, 
      car_codigo = @p_cargo, 
      c04_ultimo = @p_ultimo, 
      visible = 1, 
      modified = GETDATE(),
      modified_by = @user_id,
      id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
      id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
     WHERE (id_socios = @p_id_socio)
    END
   ELSE
    BEGIN
     UPDATE socios SET 
      c01_cuit = @p_cuit, 
      c01_cuit_soc = @p_cuit_socio, 
      c04_periodo_desde = @p_desde, 
      c04_periodo_hasta = @p_hasta, 
      car_codigo = @p_cargo, 
      c04_ultimo = @p_ultimo, 
      visible = 1, 
      modified = GETDATE(),
      modified_by = @user_id, 
      id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
      id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
     WHERE (id_socios = @p_id_socio)
    END
    
   -- Si lo estoy poniendo como S:
   if (@p_ultimo = 'S' and @p_tipo_persona = 'f')
   begin
    --Si esta con otro cargo, al otro cargo lo paso como ultimo = 'N'
    IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S') != 0)
    BEGIN 
     update socios set c04_ultimo = 'N', modified_by = @user_id, modified = GETDATE(), 
           id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                 id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
      WHERE c01_cuit = @p_cuit_socio AND c01_cuit_soc = @p_cuit AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S'

    END
   end
   if (@p_ultimo = 'S' and @p_tipo_persona = 'j')
   begin
    --Si esta con otro cargo, al otro cargo lo paso como ultimo = 'N'
    IF ((SELECT COUNT(*) FROM socios WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S') != 0)
    BEGIN 
     update socios set c04_ultimo = 'N', modified_by = @user_id, modified = GETDATE(),
           id_padron = IIF(@id_padron_empresa is not null, @id_padron_empresa, id_padron),
                 id_padron_socio = IIF(@id_padron_socio is not null, @id_padron_socio, id_padron_socio)
      WHERE c01_cuit = @p_cuit AND c01_cuit_soc = @p_cuit_socio AND car_codigo != @p_cargo AND visible = 1 and c04_ultimo = 'S'
    END
   end
     


   IF (@p_edicto > 0) 
   BEGIN
   set @nombre_cuit  = (select top 1 nombre_persona from padrones where identificacion = @p_cuit and habilitado = 1)
   set @nombre_cuit_socio = (select top 1 nombre_persona from padrones where identificacion = @p_cuit_socio  and habilitado = 1)
   insert into sociedades_constituciones (documento_soc, razon_social, 
     nombre_integrante, cuit_integrante, cuit_int, contenido_archivo, nombre_file, created, fuente,visible,provincia_sociedad,fecha_publicacion,created_by)
     VALUES
     (@p_cuit,@nombre_cuit,@nombre_cuit_socio,@p_cuit_socio,@p_cuit_socio,@p_contenido_archivo,'',getdate(),'CARGA BACKEND',1,@provincia_boletin,@fecha_publicacion,@user_id) 
   END

   SELECT @p_id_socio AS id_socio -- Verifico el Ășltimo modificado.
  END
END

GO

Used By

No items found