dbo.backend_procesar_socio_mis

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

14
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

SQL Script

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


-- =============================================
-- Author: <Samuel Gonzalez>
-- modificado: <Leonel Turchetto 20/03/2019>
-- modificado: <Maria Ines Soria 20/07/2023> - Se hacen todos los controles para no dejar a una persona en distintos cargos 
-- Create date: <18 Jul 2017>
-- Description: <agrega o modifica socio>
-- =============================================


CREATE OR ALTER PROCEDURE dbo.backend_procesar_socio_mis 
 -- 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 

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)
      VALUES
       (@p_cuit_socio, @p_cuit, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id)
     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()
        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()
         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()
       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)
      VALUES
       (@p_cuit_socio, @p_cuit, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id)
     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()
        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()
        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
   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)
      VALUES
       (@p_cuit, @p_cuit_socio, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id)
     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()
        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()
        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()
       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)
      VALUES
       (@p_cuit, @p_cuit_socio, @p_desde, @p_hasta, @p_cargo, @p_ultimo, 1, GETDATE(), @user_id)
     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()
        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()
        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
     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
     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()
      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()
      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

Depends On

2

Used By

No items found