dbo.SOCIEDADES_CONSTITUCIONES_2_DATOS_PERSONAS

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>

/**

EXEC SOCIEDADES_CONSTITUCIONES_2_DATOS_PERSONAS

**/


-- =============================================
CREATE OR ALTER PROCEDURE dbo.SOCIEDADES_CONSTITUCIONES_2_DATOS_PERSONAS
 -- Add the parameters for the stored procedure here
 

AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 DECLARE @cuit    VARCHAR(50)
 DECLARE @fecha_pub   DATE
 DECLARE @nacionalidad  VARCHAR(50)
 DECLARE @estado_civil  VARCHAR(50)
 DECLARE @fecha_nac   DATE
 DECLARE @profesion   VARCHAR(50)


 DECLARE SocConst CURSOR FOR

 SELECT TOP 10000 b.cuit_int, sc.fecha_publicacion,
  IIF(LTRIM(RTRIM(sc.nacionalidad_int)) != '', sc.nacionalidad_int, null) as nacionalidad_int, 
  IIF(LTRIM(RTRIM(sc.estado_civil_int)) != '', sc.estado_civil_int, null) as estado_civil_int, 
  sc.fecha_nacimiento_int, 
  IIF(LTRIM(RTRIM(sc.profesion_int)) != '', sc.profesion_int, null) as profesion_int

 FROM sociedades_constituciones sc INNER JOIN (
  SELECT cuit_int, MAX(fecha_publicacion) as ultima
  FROM (
   select 
   cuit_int, ISNULL(fecha_publicacion, DATEFROMPARTS(1900,01,01)) AS fecha_publicacion
   from sociedades_constituciones
   where IIF(LTRIM(RTRIM(cuit_int)) != '', cuit_int, null) is not null 
  ) a
  GROUP BY cuit_int) b
 ON (sc.cuit_int = b.cuit_int AND ISNULL(sc.fecha_publicacion, DATEFROMPARTS(1900,01,01)) = b.ultima)
 WHERE (IIF(LTRIM(RTRIM(sc.cuit_int)) != '', sc.cuit_int, null) is not null 
     AND (IIF(LTRIM(RTRIM(sc.nacionalidad_int)) != '', sc.nacionalidad_int, null) is not null 
     or IIF(LTRIM(RTRIM(sc.estado_civil_int)) != '', sc.estado_civil_int, null) is not null 
     or sc.fecha_nacimiento_int is not null
     or IIF(LTRIM(RTRIM(sc.profesion_int)) != '', sc.profesion_int, null) is not null) )
 AND ISNULL(sc._datos_personas_proc, 0) = 0


 OPEN SocConst

 FETCH NEXT FROM SocConst INTO @cuit, @fecha_pub, @nacionalidad, @estado_civil, @fecha_nac, @profesion

 WHILE @@FETCH_STATUS = 0 BEGIN

  IF EXISTS (SELECT c01_cuit FROM DATOS_PERSONAS WHERE c01_cuit = @cuit) BEGIN

   /* SOLO actualizo fecha de nacimiento si no existe el dato en DATOS_PERSONAS */
   IF (@fecha_nac IS NOT NULL AND @fecha_nac != DATEFROMPARTS(1900,01,01)) BEGIN
    UPDATE DATOS_PERSONAS SET c02_fecha_nac = @fecha_nac WHERE c01_cuit = @cuit AND c02_fecha_nac IS NULL
   END

   IF (@nacionalidad IS NULL AND @estado_civil IS NULL AND @profesion IS NOT NULL)
    UPDATE DATOS_PERSONAS SET pro_codigo_profesion = @profesion WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NULL AND @estado_civil IS NOT NULL AND @profesion IS NULL)
    UPDATE DATOS_PERSONAS SET cvl_codigo = @estado_civil WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NULL AND @estado_civil IS NOT NULL AND @profesion IS NOT NULL) 
    UPDATE DATOS_PERSONAS SET cvl_codigo = @estado_civil, pro_codigo_profesion = @profesion WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NOT NULL AND @estado_civil IS NULL AND @profesion IS NULL)
    UPDATE DATOS_PERSONAS SET pai_codigo_nacionalidad = @nacionalidad WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NOT NULL AND @estado_civil IS NULL AND @profesion IS NOT NULL)
    UPDATE DATOS_PERSONAS SET pai_codigo_nacionalidad = @nacionalidad, pro_codigo_profesion = @profesion WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NOT NULL AND @estado_civil IS NOT NULL AND @profesion IS NULL)
    UPDATE DATOS_PERSONAS SET pai_codigo_nacionalidad = @nacionalidad, cvl_codigo = @estado_civil WHERE c01_cuit = @cuit

   IF (@nacionalidad IS NOT NULL AND @estado_civil IS NOT NULL AND @profesion IS NOT NULL) 
    UPDATE DATOS_PERSONAS SET pai_codigo_nacionalidad = @nacionalidad, cvl_codigo = @estado_civil, pro_codigo_profesion = @profesion WHERE c01_cuit = @cuit

  END ELSE BEGIN

   IF (@fecha_nac != DATEFROMPARTS(1900,01,01))
    INSERT INTO DATOS_PERSONAS (c01_cuit, pai_codigo_nacionalidad, cvl_codigo, pro_codigo_profesion, c02_fecha_nac, visible, created)
    VALUES (@cuit, @nacionalidad, @estado_civil, @profesion, @fecha_nac, 1, GETDATE())
   ELSE
    INSERT INTO DATOS_PERSONAS (c01_cuit, pai_codigo_nacionalidad, cvl_codigo, pro_codigo_profesion, visible, created)
    VALUES (@cuit, @nacionalidad, @estado_civil, @profesion, 1, GETDATE())

   --select @cuit as CUIT

  END

  UPDATE sociedades_constituciones SET _datos_personas_proc = 1 WHERE cuit_int = @cuit

  FETCH NEXT FROM SocConst INTO @cuit, @fecha_pub, @nacionalidad, @estado_civil, @fecha_nac, @profesion

 END

 CLOSE SocConst
 DEALLOCATE SocConst

 
END
GO

Used By

No items found