dbo.ln_cliente_cuits_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@cliente int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
select * from ln_cliente_cuits
*/

CREATE OR ALTER PROCEDURE dbo.ln_cliente_cuits_  
@cliente int = 2046807993
AS
BEGIN
  SET NOCOUNT ON;
  declare @contraparte int 
  declare @cuit varchar(20)
  declare @tipo_persona char(1)
  declare @tipo varchar(100)
  declare @de   varchar(10)
  
  declare @socios table (id_socios  int,  
                         ultimo   char(1),
          cuit_persona  varchar(20), 
          dni_persona  varchar(20),
          nombre_persona varchar(200), 
          cargo_codigo  varchar(3), 
          cargo_nombre  varchar(100),
          desde   varchar(7),
          hasta   varchar(7),
          estado   bit, 
          modified   datetime, 
          created   datetime, 
          fecha_modificacion varchar(10))
  declare @accionistas table (id_acc  int,  
           cuit_persona  varchar(20), 
           dni_persona  varchar(20),
           nombre_persona varchar(200), 
           cantidad   int, 
           monto   decimal(12,2),
           porcentaje  decimal(12,2),
           desde   varchar(7),
           hasta   varchar(7),
           estado   bit, 
           fecha_modificacion varchar(10))
        
  declare @vinculaciones table (cuit_vinculada varchar(20), 
                                nombre_persona varchar(200),
           nombre         varchar(2000), 
           desde          varchar(20),  
           hasta    varchar(20), 
           detalle   varchar(2000))
           

/* Borra los registros del cliente */
  delete from ln_cliente_cuits where cliente = @cliente 
/* Carga todos los registros del cliente */

  insert into ln_cliente_cuits   (cliente, 
          contraparte , 
          id_padron,
          cuit,
          nombre_persona,
          tipo,
          cargo,
          fecha_carga
          )
  select ln_contrapartes.cliente as cliente,
  ln_contrapartes.contraparte as contraparte, 
  ln_contrapartes.id_padron as id_padron, 
  padrones.identificacion as identificacion, 
  padrones.nombre_persona as nombre_persona, 
  'CUIT CONSULTADO' as tipo, 
  null as cargo, 
  null as fecha_carga 
  from LN_contrapartes 
  inner join padrones on padrones.id_padron = LN_contrapartes.id_padron
  where cliente = @cliente 

  
  DECLARE C_cursor  CURSOR FOR
    select contraparte, cuit 
      from ln_cliente_cuits 
     where cliente = @cliente
       and tipo = 'CUIT CONSULTADO'

  OPEN C_cursor 
  FETCH NEXT FROM C_Cursor INTO @contraparte, @cuit 
  WHILE @@fetch_status = 0
  BEGIN 
   if (@cuit like '3%') 
    begin
     set @tipo_persona = 'j'
     set @tipo = 'DIRECTIVOS'
     set @de = '' 
    end 
    else 
    begin
     set @tipo_persona = 'f'
     set @tipo = 'VINCULACION'
     set @de = ' DE ' 
    end 
   
   delete from @socios
   insert into @socios exec backend_obtener_socios null, @cuit, 1, @tipo_persona
   insert into ln_cliente_cuits (cliente, contraparte, cuit, nombre_persona, tipo, cargo, fecha_carga,nacionalidad)  
   select  @cliente, @contraparte, cuit_persona, nombre_persona, 
     @tipo, cargo_nombre+@de, fecha_modificacion,
     upper(country_name) as nacionalidad
     from @socios
     left join DATOS_PERSONAS on datos_personas.c01_cuit = cuit_persona and DATOS_PERSONAS.visible = 1
     left join country on country.codigo_ifx = DATOS_PERSONAS.pai_codigo_nacionalidad
     where ultimo = 'S'
    
   delete from @accionistas
   insert into @accionistas exec backend_obtener_accionistas @cuit, 1
   insert into ln_cliente_cuits (cliente, contraparte, cuit, nombre_persona, tipo, cargo, fecha_carga,porcentaje,nacionalidad)  
   select  @cliente, @contraparte, cuit_persona, nombre_persona, 
     'ACCIONISTA', 'ACCIONISTA', fecha_modificacion, porcentaje,
     upper(country_name) as nacionalidad
     from @accionistas
     left join DATOS_PERSONAS on datos_personas.c01_cuit = cuit_persona and DATOS_PERSONAS.visible = 1
     left join country on country.codigo_ifx = DATOS_PERSONAS.pai_codigo_nacionalidad

   delete from @accionistas
   insert into @accionistas exec backend_obtener_accionistas_de @cuit, 1
   insert into ln_cliente_cuits (cliente, contraparte, cuit, nombre_persona, tipo, cargo, fecha_carga,porcentaje,nacionalidad)  
   select  @cliente, @contraparte, cuit_persona, nombre_persona, 
     'VINCULACION', 'ACCIONISTA DE', fecha_modificacion, porcentaje,
     upper(country_name) as nacionalidad
     from @accionistas
     left join DATOS_PERSONAS on datos_personas.c01_cuit = cuit_persona and DATOS_PERSONAS.visible = 1
     left join country on country.codigo_ifx = DATOS_PERSONAS.pai_codigo_nacionalidad

   delete from @vinculaciones
   insert into @vinculaciones exec obtener_vinculaciones @cuit
   insert into ln_cliente_cuits (cliente, contraparte, cuit, nombre_persona, tipo, cargo,nacionalidad)  
   select  @cliente, @contraparte, cuit_vinculada, nombre_persona, 
     'VINCULACION', nombre,    
     upper(country_name) as nacionalidad
     from @vinculaciones
     left join DATOS_PERSONAS on datos_personas.c01_cuit = cuit_vinculada and DATOS_PERSONAS.visible = 1
     left join country on country.codigo_ifx = DATOS_PERSONAS.pai_codigo_nacionalidad
     where isnull(nombre,'') != ''
    
   FETCH NEXT FROM C_Cursor INTO @contraparte, @cuit 

  END  
  CLOSE C_cursor
  DEALLOCATE C_cursor
 
  select 'ok' as respuesta 
END 

GO

Used By

No items found