dbo.Imperium_Actualizar_Fecha_Vigencia

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_doc_id bigint 8
@p_doc_version int 4
@p_fecha_vigencia varchar 10
@p_user_id int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
exec Imperium_Actualizar_Fecha_Vigencia 1,'02/07/2020',222
*/

-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Actualizar_Fecha_Vigencia 
 -- Add the parameters for the stored procedure here
 @p_doc_id          bigint = null,
 @p_doc_version         int = 0,
 @p_fecha_vigencia        varchar(10) = null,
 @p_user_id          int = null
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 if (@p_doc_id > 0 AND @p_fecha_vigencia is not null and @p_user_id > 0) begin

 DECLARE @fecha_vigencia DATETIME
 if @p_fecha_vigencia like '__/__/____'
 begin
  set @fecha_vigencia  = DATETIMEFROMPARTS(SUBSTRING(@p_fecha_vigencia,7,4),
                SUBSTRING(@p_fecha_vigencia,4,2),
                SUBSTRING(@p_fecha_vigencia,1,2),
                23,59,59,0)
 end
 else 
 begin
  set @fecha_vigencia  = @p_fecha_vigencia + ' 23:59:59'
 end

  declare @vcuit tinyint, @vcuil tinyint, @vdom tinyint, @tipo_doc int = null, @contratista int, @periodo int

  declare @nya varchar(100)

  --select @nya = isnull(first_name, '')+' '+isnull(last_name,'') from users where user_id = @p_user_id
  select @nya = isnull(aliasname, '')  from users where user_id = @p_user_id

  declare @log varchar(200) = convert(varchar(10),getdate(),103)+' '+convert(varchar(5),getdate(),14)+': Cambio de fecha de vigencia del documento a '+@p_fecha_vigencia+' realizado por '+@nya
  
  /* Trazabilidad */
  declare @cliente int = null 
  declare @contraparte   int = null 
  declare @contratista_1 int = null 
  declare @nombre_doc varchar(500)
  declare @nombre_contratista varchar(500)
  declare @nombre_contratista_1 varchar(500)

  select  @cliente = cliente, 
    @tipo_doc = led_tipos_doc.tipo_doc,
    @nombre_doc = led_tipos_doc.nombre_tipo_doc, 
    @contratista = led_docs.contratista,
    @periodo = led_docs.periodo
  from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
  where led_docs.doc_id = @p_doc_id

  select @contratista = led_contratistas.contratista, 
      @nombre_contratista = p.nombre_persona, 
      @contratista_1 = lc.contratista, 
      @nombre_contratista_1 = p1.nombre_persona 
    from led_contratistas 
    inner join padrones p on p.id_padron = led_contratistas.id_padron 
   inner join led_contratistas lc on lc.contratista = led_contratistas.contratista_1 
   inner join padrones p1 on p1.id_padron = lc.id_padron 
   where led_contratistas.contratista = @contratista 
   
  select @contraparte = contraparte 
   from ln_contrapartes where cliente = @cliente and id_imperium = @contratista_1

  if (@contraparte is not null) 
  begin 
   declare @texto varchar(1000) = 'Cambio de fecha de vigencia del documento a ' + convert(varchar,@p_fecha_vigencia) + 
            ' - Contratista: '     + convert(varchar,@contratista_1) + 
            ' ' +  @nombre_contratista_1 + 
            ' - Sub-Contratista: ' + convert(varchar,@contratista) +  
            ' ' +  @nombre_contratista /*+ 
               ' - Período: '         + convert(varchar,@periodo) + 
                                           ' - Documento: '       + '(' + convert(varchar,@tipo_doc) + ') ' + @nombre_doc + 
                                           ' - Doc_id: '          + convert(varchar,@p_doc_id) +  
               ' - Doc_version: '     + convert(varchar,@p_doc_version) */

   exec insertar_trazabilidad 
     @texto, @cliente, 'DOCUMENTOS','BACK', @contraparte, @p_user_id, @p_doc_id, '73'
  end 
  /* */ 

  if (@p_doc_version = 0) begin

   select @vcuit = led_tipos_doc.validar_cuit,
     @vcuil = led_tipos_doc.validar_lista_cuil,
     @vdom = led_tipos_doc.validar_lista_dominios,
     @tipo_doc = led_tipos_doc.tipo_doc,
     @contratista = led_docs.contratista,
     @periodo = led_docs.periodo

   from led_docs inner join led_tipos_doc on led_docs.tipo_doc = led_tipos_doc.tipo_doc
   where led_docs.doc_id = @p_doc_id

   if (@tipo_doc is not null) begin

    update led_docs set
     fecha_vigencia = @fecha_vigencia,
     doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log
    where doc_id = @p_doc_id

    -- Verifico si hay que actualizar documentos hijos

    declare @secc varchar(1) = NULL
    set @secc = iif(@vcuit = 1, 'C', iif(@vcuil = 1, 'E', (iif(@vdom = 1, 'V', NULL))))

    if (@secc is not null) begin

     update led_docs set
      fecha_vigencia = @fecha_vigencia,
      doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log
     where led_seccion = @secc
     and contratista = @contratista
     and periodo = @periodo
     and doc_id_lista = @tipo_doc

    end

   end

  end

  else begin
   -- Sólo cambio la vigencia del reemplazo

   update led_docs_aux set
     fecha_vigencia = @fecha_vigencia,
     doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log
   where doc_id = @p_doc_id
   and doc_version = @p_doc_version

  end

 end

 
END
GO

Used By

No items found