dbo.LN_alta_Contratistas_ant

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

8
Name Data Type Length Description
@p_accion varchar 20
@p_cliente int 4
@p_id_padron int 4
@p_familia int 4
@p_desde date 3
@p_hasta date 3
@p_contraparte int 4
@p_user_id int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Marita Soria
-- Create date: 02/07/2020
-- Description: Desde Backend LED - Para Servicio Imperium alta en las tablas de Contratistas
-- =============================================
-- exec [LN_alta_Contratistas] 3920694,6019247, 206,'2020-06-03','2099-12-31',134579, 94437923
CREATE OR ALTER PROCEDURE dbo.LN_alta_Contratistas_ant 
 @p_accion varchar(20),
 @p_cliente    int,
 @p_id_padron   int,
 @p_familia    int,
 @p_desde    date,
 @p_hasta    date,
 @p_contraparte          int, 
 @p_user_id    int

AS
BEGIN

 SET NOCOUNT ON;
 DECLARE @p_contratista int = null
 DECLARE @tipo_contratista int = null
 select @tipo_contratista = id_imperium from ln_familias 
  where cliente = @p_cliente 
  and servicio_contratado = 73
  and familia = @p_familia
  and visible = 1
 
 DECLARE @periodo_adelantado INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(GETDATE())) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(GETDATE())), 2))
 DECLARE @periodo_vencido    INT = CONVERT(INT, CONVERT(VARCHAR(4),YEAR(DATEADD(MONTH,-1,GETDATE()))) + RIGHT('00' + CONVERT(VARCHAR(2),MONTH(DATEADD(MONTH,-1,GETDATE()))), 2))
  
 if (@p_accion = 'insert')
 begin
  -- Led_contratistas
  INSERT INTO led_contratistas
    (cliente, estado_contratista, tipo_contratista, id_padron, created, user_id)
  values (@p_cliente, 'A', @tipo_contratista,
    @p_id_padron, GETDATE(), @p_user_id) 
  
  SELECT @p_contratista = @@IDENTITY

  update led_contratistas set contratista_1 = contratista 
   where contratista = @p_contratista

  update ln_contrapartes set id_imperium = @p_contratista
   where contraparte = @p_contraparte

  -- Led_contratistas_multi

  insert into led_contratista_multi(
     contratista,id,tipo_contratista,id_dep,descripcion,
    vigencia_desde,vigencia_hasta,tipo_contratista_principal,contratista_1,cliente,
    activo,created,created_by)
  values (@p_contratista,1, @tipo_contratista, '0', null,
    @p_desde, @p_hasta, null, @p_contratista, @p_cliente,
    1, getdate(), @p_user_id)

  -- Led_contratistas_periodo

  INSERT INTO Led_contratista_periodo 
     (contratista, periodo, tipo_alta, fecha_afectacion)
     values
     (@p_contratista, @periodo_vencido, null, GETDATE())

  if (select ACCESO_ci from clientes where cliente = @p_cliente) = 1 
   AND exists(SELECT *
      FROM led_tipos_doc 
        inner join led_cliente_contratista on led_tipos_doc.tipo_doc = led_cliente_contratista.tipo_doc
        WHERE led_cliente_contratista.tipo_contratista = @tipo_contratista
       AND led_cliente_contratista.cliente = @p_cliente
        AND led_tipos_doc.modalidad = 'A'
       AND ci_killer = 1) 
  begin
   INSERT INTO Led_contratista_periodo 
    (contratista, periodo, tipo_alta, fecha_afectacion)
    values
    (@p_contratista, @periodo_adelantado, null, GETDATE())
  end
 end 

 if (@p_accion = 'update') -- Cambio de familia 
 begin
  select @p_contratista = id_imperium 
    from LN_contrapartes
    where contraparte = @p_contraparte

  update led_contratistas 
     set tipo_contratista = @tipo_contratista
   where contratista = @p_contratista

  update led_contratista_multi 
      set tipo_contratista = @tipo_contratista,
         modified = getdate(), 
      modified_by = @p_user_id
   where contratista = @p_contratista
     and id = 1

  if not exists
     (select * from Led_contratista_periodo where contratista = @p_contratista and periodo = @periodo_vencido) 
  begin
   INSERT INTO Led_contratista_periodo 
     (contratista, periodo, tipo_alta, fecha_afectacion)
     values
     (@p_contratista, @periodo_vencido, null, GETDATE())
  end 
  if (select ACCESO_ci from clientes where cliente = @p_cliente) = 1 
   AND exists(SELECT *
      FROM led_tipos_doc 
        inner join led_cliente_contratista on led_tipos_doc.tipo_doc = led_cliente_contratista.tipo_doc
        WHERE led_cliente_contratista.tipo_contratista = @tipo_contratista
       AND led_cliente_contratista.cliente = @p_cliente
        AND led_tipos_doc.modalidad = 'A'
       AND ci_killer = 1) 
  begin
   if not exists
    (select * from Led_contratista_periodo where contratista = @p_contratista and periodo = @periodo_adelantado) 
   begin
    INSERT INTO Led_contratista_periodo 
        (contratista, periodo, tipo_alta, fecha_afectacion)
        values
        (@p_contratista, @periodo_adelantado, null, GETDATE())
   end
  end
 end 
END

GO

Used By

No items found