dbo.Imperium_Verificar_Documento

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@p_doc_id bigint 8
@p_reemplazo tinyint 1
@p_user_id int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.Imperium_Verificar_Documento
 -- Add the parameters for the stored procedure here
 @p_doc_id         bigint = NULL,
 @p_reemplazo        tinyint = 0,
 @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_user_id > 0) begin

  declare @estado varchar(1), @fecha_vigencia datetime
  select @estado = estado_doc, @fecha_vigencia = fecha_vigencia from led_docs where doc_id = @p_doc_id

  if (@estado = 'I' or @estado = 'V') begin

   if (@p_reemplazo > 0) begin
    /* Como está aprobando un doc de reemplazo hay que propagar la fecha de vigencia del reemplazo y no la del original */
    select @fecha_vigencia = led_docs_aux.fecha_vigencia from led_docs inner join led_docs_aux
          on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
    where led_docs.doc_id = @p_doc_id
   end


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

   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,
     @cliente = led_docs.cliente

   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

   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)+': Documento verificado por el usuario '+@nya
      
   update led_docs set estado_doc = 'V',
        status_doc = 'V',
        compliance_doc = 'V',
        fecha_vigencia = @fecha_vigencia,
        verificado = GETDATE(),
        verificado_por = @p_user_id,
        doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
        aprobacion_parcial = 0,
        parcial_actualizado = 0,
        reapertura_por_alta = 0
   where doc_id = @p_doc_id

   
   --- Trazabilidad
   /*
    INSERT INTO trazabilidad
    (texto, cliente, accion, id_plataforma, contraparte, user_id, created, doc_id)
    VALUES
    (@log, @cliente, 'APROBACION_TOTAL_IMPERIUM', 'IMPERIUM', @contratista, @p_user_id, GETDATE(), @p_doc_id)
    */

    
   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  @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) = 'Aprobacion Total del documento' +
             ' - 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) */

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




   -- 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 estado_doc = 'V',
         status_doc = 'V',
         compliance_doc = 'V',
         fecha_vigencia = @fecha_vigencia,
         verificado = GETDATE(),
         verificado_por = @p_user_id,
         doc_log = convert(varchar(max),doc_log)+char(13)+char(10)+@log,
         aprobacion_parcial = 0,
         parcial_actualizado = 0,
         reapertura_por_alta = 0
    where led_seccion = @secc
    and contratista = @contratista
    and periodo = @periodo
    and doc_id_lista = @tipo_doc

   end

   if (@p_reemplazo > 0) begin

    /* Actualizo el reemplazo */
    update led_docs_aux set estado_doc = 'V',
         compliance_doc = 'V',
         verificado = GETDATE(),
         verificado_por = @p_user_id,
         doc_log = convert(varchar(max),led_docs_aux.doc_log)+char(13)+char(10)+@log,
         aprobacion_parcial = 0,
         parcial_actualizado = 0,
         reapertura_por_alta = 0
    from led_docs_aux 
    inner join led_docs on (led_docs.doc_id = led_docs_aux.doc_id and led_docs.doc_version = led_docs_aux.doc_version)
    where led_docs.doc_id = @p_doc_id

   end

  end

 end
 
END
GO

Used By

No items found