dbo.OBRASSOCIALES_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 OBRASSOCIALES_2_DATOS_PERSONAS

**/

-- =============================================
CREATE OR ALTER PROCEDURE dbo.OBRASSOCIALES_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;

 DECLARE @cuit      varchar(50)
 DECLARE @fecha      varchar(50)
 DECLARE @fecha_nac     date
 DECLARE @sexo      varchar(1)
 DECLARE @cuit_persona    varchar(50)

    DECLARE OBRASSOC CURSOR FOR
 
 /*select AAA.cuilRelacionado as cuit,
 
  /*datefromparts(right(convert(varchar(10),AAA.FechaNacimiento),4),
  substring(convert(varchar(10),AAA.FechaNacimiento),4,2),
  left(convert(varchar(10),AAA.FechaNacimiento),2)) as fecha_nac,*/

 
  AAA.FechaNacimiento as fecha_nac,
  left(AAA.CodSexo, 1) as sexo,
  DATOS_PERSONAS.c01_cuit
  FROM
  (select top 10000 cuilRelacionado, FechaNacimiento, CodSexo
  from ObrasSociales
  where ISNULL(_datos_personas_proc, 0) = 0
  --and iif(LTRIM(RTRIM(FechaNacimiento)) != '', FechaNacimiento, NULL) is not null
  group by cuilRelacionado, FechaNacimiento, CodSexo) AAA
  LEFT OUTER JOIN DATOS_PERSONAS ON AAA.cuilRelacionado = DATOS_PERSONAS.c01_cuit
  WHERE DATOS_PERSONAS.c02_fecha_nac IS NULL
  --order by AAA.FechaNacimiento */


 select top 100000
  ObrasSociales.cuilRelacionado as cuit, 
  ObrasSociales.FechaNacimiento as fecha_nac, 
  left(ObrasSociales.CodSexo, 1) as sexo,
  DATOS_PERSONAS.c01_cuit
 from ObrasSociales
 LEFT OUTER JOIN DATOS_PERSONAS 
 ON ObrasSociales.cuilRelacionado = DATOS_PERSONAS.c01_cuit
 where ISNULL(ObrasSociales._datos_personas_proc, 0) = 0
 and DATOS_PERSONAS.c02_fecha_nac IS NULL
 group by ObrasSociales.cuilRelacionado, 
  ObrasSociales.FechaNacimiento, 
  ObrasSociales.CodSexo,
  DATOS_PERSONAS.c01_cuit





 OPEN OBRASSOC

 FETCH NEXT FROM OBRASSOC INTO @cuit, @fecha, @sexo, @cuit_persona

 WHILE @@FETCH_STATUS = 0 BEGIN

  SET @fecha = ltrim(rtrim(convert(varchar(10), @fecha)))

  SET @fecha_nac = NULL

  if (LEN(@fecha) = 10) begin

   if (CHARINDEX('-', @fecha, 1) = 5)
    SET @fecha_nac = datefromparts(LEFT(convert(varchar(10),@fecha),4),
         substring(convert(varchar(10),@fecha),6,2),
         RIGHT(convert(varchar(10),@fecha),2))
   else
    if (CHARINDEX('/', @fecha, 1) = 3)
     SET @fecha_nac = datefromparts(right(convert(varchar(10),@fecha),4),
          substring(convert(varchar(10),@fecha),4,2),
          left(convert(varchar(10),@fecha),2))
    
  end

  IF (@fecha_nac IS NOT NULL) BEGIN   
   IF (@fecha_nac > DATEFROMPARTS(1900,01,01)) BEGIN 

    IF (@cuit_persona IS NOT NULL) BEGIN

     UPDATE DATOS_PERSONAS SET c02_fecha_nac = @fecha_nac
     WHERE c01_cuit = @cuit AND c02_fecha_nac IS NULL

    END
  
    ELSE BEGIN

     INSERT INTO DATOS_PERSONAS (c01_cuit, c02_fecha_nac)
     VALUES (@cuit, @fecha_nac)

    END

    if not exists (select cuit from padrones_sexo_update where cuit = @cuit) begin
     insert into padrones_sexo_update (cuit, sexo) values (@cuit, @sexo)
    end

   END
  END

  UPDATE ObrasSociales SET _datos_personas_proc = 1 WHERE cuilRelacionado = @cuit

  FETCH NEXT FROM OBRASSOC INTO @cuit, @fecha, @sexo, @cuit_persona
 END

 CLOSE OBRASSOC
 DEALLOCATE OBRASSOC

END
GO

Used By

No items found