dbo.ARBA_relacionar_id_padron

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

CREATE OR ALTER PROCEDURE dbo.ARBA_relacionar_id_padron
AS
BEGIN

 SET NOCOUNT ON

 DECLARE @p_id_arba int
 DECLARE @p_id_padron int
 DECLARE @p_arba_cuit varchar(11)
 DECLARE @p_arba_n_doc varchar(10)
 DECLARE @p_arba_razon_s varchar(120)
 DECLARE @p_arba_cuit_or_n_doc varchar(25) -- 11 + 4 + 10 [@cuit+' OR '+@n_doc]

 -- cursor con lista id_arba para procesar
 DECLARE cursor_arba CURSOR FOR
  SELECT  id_arba, cuit, numero_documento, razon_social FROM Arba WHERE id_padron IS NULL
 
 OPEN cursor_arba

 FETCH cursor_arba INTO @p_id_arba, @p_arba_cuit, @p_arba_n_doc, @p_arba_razon_s

 WHILE (@@FETCH_STATUS = 0)
 BEGIN
 
  PRINT 'FETCH id_arba '+CAST(@p_id_arba as varchar(20))
  PRINT '  ['+CAST(@p_arba_cuit as varchar(20))+', "'+CAST(@p_arba_razon_s as varchar(150))+'", '+CAST(@p_arba_n_doc as varchar(20))+']'
  
  SET @p_arba_razon_s = REPLACE(@p_arba_razon_s,'"','""')
  IF (@p_arba_n_doc = '' OR @p_arba_n_doc = '00000000') SET @p_arba_n_doc = NULL;

  PRINT '  1. CONTAINS(padrones.*,arba_cuit)'
  -- CONTAINS(padrones.*,arba_cuit)
  SET @p_id_padron = (SELECT id_padron FROM padrones WHERE CONTAINS(*,@p_arba_cuit) GROUP BY id_padron HAVING count(*)=1)
  IF (@p_id_padron IS NOT NULL) 
   GOTO Update_id_padron;
 
  PRINT '  2. CONTAINS(padrones.*,arba_cuit OR arba_num_doc) AND CONTAINS(padrones.nombre_persona,arba_razon_social)'
  -- CONTAINS(padrones.*,arba_cuit OR arba_num_doc) AND CONTAINS(padrones.nombre_persona,arba_razon_social)
  SET @p_arba_cuit_or_n_doc = @p_arba_cuit;
  IF (@p_arba_n_doc IS NOT NULL) SET @p_arba_cuit_or_n_doc = @p_arba_cuit_or_n_doc + ' OR ' + @p_arba_n_doc;
  SET @p_arba_razon_s = '"'+@p_arba_razon_s+'"';

  SET @p_id_padron = (SELECT id_padron FROM padrones WHERE CONTAINS(*,@p_arba_cuit_or_n_doc) AND CONTAINS(nombre_persona,@p_arba_razon_s) GROUP BY id_padron HAVING count(*)=1)
  IF (@p_id_padron IS NOT NULL) 
   GOTO Update_id_padron;
 
-- PRINT '  3. padrones.numero = arba_cuit OR padrones.identificacion = arba_cuit'
-- -- padrones.numero = arba_cuit OR padrones.identificacion = arba_cuit 
-- SET @p_id_padron = (SELECT id_padron FROM padrones WHERE numero = @p_arba_cuit OR identificacion = @p_arba_cuit GROUP BY id_padron HAVING count(*)=1)
-- IF (@p_id_padron IS NOT NULL) 
-- GOTO Update_id_padron;
--
-- -- padrones.cuerpo_clave = arba_num_doc
-- IF (@p_arba_n_doc IS NOT NULL) 
-- BEGIN
-- PRINT '  4. padrones.cuerpo_clave = arba_num_doc'
-- SET @p_id_padron = (SELECT id_padron FROM padrones WHERE cuerpo_clave = @p_arba_n_doc GROUP BY id_padron HAVING count(*)=1)
-- IF (@p_id_padron IS NOT NULL) 
-- GOTO Update_id_padron;
-- END
--
-- PRINT '  5. padrones.numero LIKE %arba_cuit%'
-- -- padrones.numero LIKE %arba_cuit%
-- SET @p_id_padron = (SELECT id_padron FROM padrones WHERE numero LIKE '%'+@p_arba_cuit+'%' GROUP BY id_padron HAVING count(*)=1)
-- IF (@p_id_padron IS NOT NULL) 
-- GOTO Update_id_padron;
--
-- PRINT '  6. padrones.identificacion LIKE %arba_cuit%'
-- -- padrones.identificacion LIKE %arba_cuit%
-- SET @p_id_padron = (SELECT id_padron FROM padrones WHERE identificacion LIKE '%'+@p_arba_cuit+'%' GROUP BY id_padron HAVING count(*)=1)
-- IF (@p_id_padron IS NOT NULL) 
-- GOTO Update_id_padron;
--
-- -- padrones.cuerpo_clave LIKE %arba_num_doc%
-- IF (@p_arba_n_doc IS NOT NULL) 
-- BEGIN
-- PRINT '  7. padrones.cuerpo_clave LIKE %arba_num_doc%'
-- SET @p_id_padron = (SELECT id_padron FROM padrones WHERE cuerpo_clave LIKE '%'+@p_arba_n_doc+'%' GROUP BY id_padron HAVING count(*)=1)
-- IF (@p_id_padron IS NOT NULL) 
-- GOTO Update_id_padron;
-- END

  Update_id_padron:
  IF (@p_id_padron IS NOT NULL) 
  BEGIN
   PRINT '  >>> Update_id_padron: ' + CAST(@p_id_padron as varchar(20))
   UPDATE Arba SET id_padron = @p_id_padron, modified=GETDATE(), modified_by=0 WHERE id_arba = @p_id_arba;
  END
  ELSE PRINT '  ...No se encontro en padrones'

  FETCH cursor_arba INTO @p_id_arba, @p_arba_cuit, @p_arba_n_doc, @p_arba_razon_s;
 END

 CLOSE cursor_arba
 DEALLOCATE cursor_arba

END

GO

Depends On

2

Used By

No items found