dbo.led_amx_a_informix

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@seccion varchar 100
@fecha_char varchar 10

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec led_amx_a_informix 'contrapartes','1901-01-01'
exec led_amx_a_informix 'familias','1901-01-01'
exec led_amx_a_informix 'documentos','1901-01-01'
*/

CREATE OR ALTER PROCEDURE dbo.led_amx_a_informix
@seccion    varchar(100), 
@fecha_char varchar(10) = null 

/* Cuits en LED de AMX (cliente 5546348) 
   Recorro todos las tablas para registros creados o modificados en las fechas solicitadas */


AS
BEGIN
  SET NOCOUNT ON;
  declare @fecha date
  declare @cliente     int
  declare @cuit        varchar(20)
  declare @contraparte int
  declare @familia     varchar(100)

  if (@fecha_char = '' or @fecha_char is null) 
  begin 
    set @fecha = convert(date, getdate()) 
  end
  else 
  begin
    set @fecha = CONVERT(date, @fecha_char)
  end 

  /* Cuits en led */
  if (@seccion = 'contrapartes')
  begin
      select LN_contrapartes.cliente as cliente, clientes.cli_codigo as cli_codigo, 
             padrones.identificacion as cuit, 
             padrones.nombre_persona as nombre,
             LN_contrapartes.country_code as pais, 
             LN_contrapartes.contraparte as contraparte, 
             IIF (ln_contrapartes.activo=1,'ACTIVO','INACTIVO') as estado
        from LN_contrapartes 
       inner join padrones on LN_contrapartes.id_padron = padrones.id_padron  
       inner join clientes on clientes.cliente = LN_contrapartes.cliente          
       where Ln_contrapartes.cliente = 5546348 -- Cliente AMX
         and (convert(date,LN_contrapartes.created) >= @fecha or convert(date,LN_contrapartes.modified)>= @fecha)
  end 
  
  /* Familia */
  if (@seccion = 'familias') 
  /*
    Si una empresa se cargó o modificó un registro en familias, y tiene una o mas activas, tomo todas las familias activas
    Si a una empresa se paso a inactiva una familia, se pasa ese dato
    */

    begin
      select distinct clientes.cli_codigo as cli_codigo, 
             padrones.identificacion as cuit, 
             LN_contrapartes.country_code as pais, 
             ln_contraparte_familias.familia as cod_familia, 
             ln_familias.nombre_familia as familia,
             case nombre_familia
                when 'ESTRATEGICO' then 'PE'
                when 'CRITICO EMPRESA' then 'PCE'
                when 'CRITICO P. FISICA' then 'PCF'
                when 'NO CRITICO EMPRESA' then 'PNCE'
                when 'NO CRITICO P. FISICA' then 'PNCF'
                when 'OTRO OPERADOR' then 'OTR'
                when 'CONTROL INGRESO' then 'CON'
                when 'REPUESTOS EMPRESAS' then 'RE'
                when 'REPUESTOS PERSONAS FISICAS' then 'RF'
                when 'EVENTUAL' then 'EVE'
                when 'PARAGUAY CRITICO EMPRESA' then 'E2CE'
                when 'PARAGUAY CRITICO P. FISICA' then 'E2CF'
                when 'PARAGUAY NO CRITICO EMPRESA' then 'E2NCE'
                when 'PARAGUAY NO CRITICO P. FISICA' then 'E2NCF'
                when 'PARAGUAY CRITICO EMPRESA S/D.E.' then 'E2CE2'
                when 'PARAGUAY CRITICO FISICA S/D.E.' then 'E2CF2'
                when 'URUGUAY CRITICO EMPRESA' then ' ECE'
                when 'URUGUAY CRITICO P. FISICA' then 'ECF'
                when 'URUGUAY NO CRITICO EMPRESA' then 'ENCE'
                when 'URUGUAY NO CRITICO P. FISICA' then 'ENCF'
                when 'URUGUAY CRITICO EMPRESA S/D.E.' then 'ECE2'
                when 'URUGUAY CRITICO FISICA S/D.E.' then 'ECF2'
                end as cod_familia,
                'ACTIVO' as estado,
                familias.cant as cant_familias
       from LN_contrapartes 
      inner join padrones on LN_contrapartes.id_padron = padrones.id_padron  
      inner join clientes on clientes.cliente = LN_contrapartes.cliente            
      inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = LN_contrapartes.contraparte   
      inner join ln_familias on ln_familias.familia = ln_contraparte_familias.familia --and ln_familias.cliente = Ln_contrapartes.cliente 
      inner join (select contraparte, count(*) as cant from LN_contraparte_familias where activo = 1 group by contraparte) familias 
                  on familias.contraparte = ln_contrapartes.contraparte
      where Ln_contrapartes.cliente = 5546348 -- Cliente AMX
        and 
        (
          (convert(date, ln_contraparte_familias.created) >= @fecha or 
           convert(date, ln_contraparte_familias.modified) >= @fecha)
        or 
          familias.cant > 1
        )
        and ln_contraparte_familias.activo = 1 

      union  

      select distinct clientes.cli_codigo as cli_codigo, 
             padrones.identificacion as cuit, 
             LN_contrapartes.country_code as pais, 
             ln_contraparte_familias.familia as cod_familia, 
             ln_familias.nombre_familia as familia,
             case nombre_familia
                when 'ESTRATEGICO' then 'PE'
                when 'CRITICO EMPRESA' then 'PCE'
                when 'CRITICO P. FISICA' then 'PCF'
                when 'NO CRITICO EMPRESA' then 'PNCE'
                when 'NO CRITICO P. FISICA' then 'PNCF'
                when 'OTRO OPERADOR' then 'OTR'
                when 'CONTROL INGRESO' then 'CON'
                when 'REPUESTOS EMPRESAS' then 'RE'
                when 'REPUESTOS PERSONAS FISICAS' then 'RF'
                when 'EVENTUAL' then 'EVE'
                when 'PARAGUAY CRITICO EMPRESA' then 'E2CE'
                when 'PARAGUAY CRITICO P. FISICA' then 'E2CF'
                when 'PARAGUAY NO CRITICO EMPRESA' then 'E2NCE'
                when 'PARAGUAY NO CRITICO P. FISICA' then 'E2NCF'
                when 'PARAGUAY CRITICO EMPRESA S/D.E.' then 'E2CE2'
                when 'PARAGUAY CRITICO FISICA S/D.E.' then 'E2CF2'
                when 'URUGUAY CRITICO EMPRESA' then ' ECE'
                when 'URUGUAY CRITICO P. FISICA' then 'ECF'
                when 'URUGUAY NO CRITICO EMPRESA' then 'ENCE'
                when 'URUGUAY NO CRITICO P. FISICA' then 'ENCF'
                when 'URUGUAY CRITICO EMPRESA S/D.E.' then 'ECE2'
                when 'URUGUAY CRITICO FISICA S/D.E.' then 'ECF2'
                end as cod_familia,
                'INACTIVO' as estado,
                0 as cant_familias
       from LN_contrapartes 
      inner join padrones on LN_contrapartes.id_padron = padrones.id_padron  
      inner join clientes on clientes.cliente = LN_contrapartes.cliente            
      inner join ln_contraparte_familias on ln_contraparte_familias.contraparte = LN_contrapartes.contraparte   
      inner join ln_familias on ln_familias.familia = ln_contraparte_familias.familia --and ln_familias.cliente = Ln_contrapartes.cliente 
      inner join (select contraparte, count(*) as cant from LN_contraparte_familias where activo = 1 group by contraparte) familias 
                  on familias.contraparte = ln_contrapartes.contraparte
      where Ln_contrapartes.cliente = 5546348 -- Cliente AMX
        and 
        (
          (convert(date, ln_contraparte_familias.created) >= @fecha or 
           convert(date, ln_contraparte_familias.modified) >= @fecha)
        )
        and ln_contraparte_familias.activo = 0 
    end 

  /* Documentos */
  if (@seccion = 'documentos')
    begin
    select padrones.identificacion as cuit, 
           LN_tipos_doc.nombre_tipo_doc as documento,
           iif(LN_docs.estado_doc in('I','V'),'SI','NO') as presento
        from LN_contrapartes 
      inner join padrones on LN_contrapartes.id_padron = padrones.id_padron        
      inner join LN_docs  on LN_docs.contraparte = LN_contrapartes.contraparte and LN_docs.cliente = Ln_contrapartes.cliente   
      inner join LN_tipos_doc on LN_tipos_doc.tipo_doc = LN_docs.tipo_doc
      inner join LN_gestiones on LN_gestiones.contraparte = LN_docs.contraparte 
      where Ln_contrapartes.cliente = 5546348 -- Cliente AMX
        and LN_gestiones.desde <= GETDATE()
        and LN_gestiones.hasta >= GETDATE()
        --and LN_docs.estado_doc IN ('V', 'R') 
        and (convert(date, LN_docs.created) >= @fecha or 
             convert(date, LN_docs.modified) >= @fecha)
    end 
END 
GO

Used By

No items found