dbo.LN_docs_verif

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@accion varchar 20
@p_texto_rechazo varchar 500
@p_user_id int 4
@p_doc_id int 4
@p_check_user tinyint 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: LUIS J. PRENAFETA
-- Create date: 06/08/2018
-- Description: PARA LA VERIFICACION DE DOCUMENTOS LED EN BACKEND, LA COLA 
-- DE PENDIENTES DE VERIFICAR, LA ACCION DE VERIFICAR Y EL RECHAZO DE DOCUMENTO

/*
08/11/18 : Agregada la opción de realizar UNDO sobre un doc_id
El parámero check_user si es pasado en 1 verifica que
en caso de reversión, el usuario pasado en user_id
coincida con el que realizó previamente la acción de verificación/rechazo
*/


-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_docs_verif
 
 -- Add the parameters for the stored procedure here

 @accion         varchar(20),
 @p_texto_rechazo      varchar(500) = null,
 @p_user_id        int = null,
 @p_doc_id        int = null,
 @p_check_user       tinyint = 0


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 (@accion = 'PENDIENTES') BEGIN

  SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.tipo_doc,
   LN_docs.doc_version, LN_docs.estado_doc, LN_docs.doc_log, LN_docs.doc_attach,
   CONVERT(VARCHAR, LN_docs.fecha_vigencia, 103) AS fecha_vigencia,
   CONVERT(VARCHAR, LN_docs.vencimiento_carga, 103) AS vencimiento_carga,
   ISNULL(LN_tipos_doc.es_balance, 0) AS es_balance,
   CONVERT(VARCHAR(10), LN_docs.inicio_ejercicio, 103) AS inicio_ejercicio,
   CONVERT(VARCHAR(10), LN_docs.fin_ejercicio, 103) AS fin_ejercicio, gestion,
   CONVERT(VARCHAR(19),LN_docs.ingresado,121) as ingresado,
   CONVERT(VARCHAR(10),LN_docs.ingresado,103) + ' ' + CONVERT(VARCHAR(5),LN_docs.ingresado,108) as ingresado_dmy,
   CONVERT(VARCHAR(19),LN_docs.rechazado,121) as rechazado,
   CONVERT(VARCHAR(19),LN_docs.verificado_backend,121) as verificado_backend,
   CONVERT(VARCHAR(19),LN_docs.verificado_cliente,121) as verificado_cliente,
   CONVERT(VARCHAR(19),LN_docs.created,121) as created,
   CONVERT(VARCHAR(19),LN_docs.modified,121) as modified,
   LN_docs.ingresado_por, LN_docs.rechazado_por, LN_docs.verificado_backend_por,
   LN_docs.verificado_cliente_por, LN_docs.created_by, LN_docs.modified_by,
   clientes.nombre_cliente, padrones.nombre_persona, padrones.identificador,
   padrones.numero, identificadores.abreviatura, identificadores.country_code,
   padrones.identificacion,
   country.country_name, LN_contrapartes.activo, LN_contrapartes.nombre_contacto,
   LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
   LN_tipos_doc.nombre_tipo_doc,
   users1.first_name + ' ' + users1.last_name AS ingresado_por_usuario,
   users2.first_name + ' ' + users2.last_name AS rechazado_por_usuario,
   users3.first_name + ' ' + users3.last_name AS verificado_backend_por_usuario,
   users4.first_name + ' ' + users4.last_name AS verificado_cliente_por_usuario,
   users5.first_name + ' ' + users5.last_name AS created_by_usuario,
   users6.first_name + ' ' + users6.last_name AS modified_by_usuario

  FROM LN_docs
  INNER JOIN clientes ON LN_docs.cliente = clientes.cliente
  INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
  INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
  INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
  INNER JOIN country ON identificadores.country_code = country.country_code
  INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc

  LEFT OUTER JOIN users users1 ON LN_docs.ingresado_por = users1.user_id
  LEFT OUTER JOIN users users2 ON LN_docs.rechazado_por = users2.user_id
  LEFT OUTER JOIN users users3 ON LN_docs.verificado_backend_por = users3.user_id
  LEFT OUTER JOIN users users4 ON LN_docs.verificado_cliente_por = users4.user_id
  LEFT OUTER JOIN users users5 ON LN_docs.created_by = users5.user_id
  LEFT OUTER JOIN users users6 ON LN_docs.modified_by = users6.user_id
  WHERE LN_docs.estado_doc = 'I'
  AND isnull(LN_tipos_doc.es_balance, 0) = 0

  ORDER BY LN_docs.ingresado, clientes.nombre_cliente, padrones.nombre_persona, LN_tipos_doc.nombre_tipo_doc, LN_docs.doc_version

 END ELSE

  IF (@accion = 'UNDO') BEGIN

   IF (@p_doc_id > 0) BEGIN

    DECLARE @estado varchar(1)
    DECLARE @usuario_v int
    DECLARE @usuario_r int
    DECLARE @doc_log varchar(max)
    DECLARE @horario varchar(16) = CONVERT(VARCHAR(10), GETDATE(),103) + ' ' + CONVERT(VARCHAR(5), GETDATE(), 14)
    DECLARE @contraparte int 
    DECLARE @tipo_doc int 


    SELECT  @contraparte = contraparte, 
            @tipo_doc = tipo_doc,
            @estado = estado_doc,
      @usuario_v = verificado_backend_por,
      @usuario_r = rechazado_por,
      @doc_log = convert(varchar(max), doc_log)
    FROM LN_docs
    WHERE doc_id = @p_doc_id

    /* 04/06/2024: si el que lo carga en Fidelitas vuelve a PENDIENTE DE INGRESO, si es la contraparte vuelve a INGRESADO */
    declare @quien_carga char(1) = null 
    select @quien_carga = quien_carga from LN_tipos_doc_carga_verif 
     where tipo_doc = @tipo_doc and familia = (select familia from LN_contraparte_familias where contraparte = @contraparte) 
       -- 
    if (@estado = 'R' OR @estado = 'V') BEGIN

     DECLARE @continue tinyint = 0

     if (@p_check_user = 1) begin
      if (@estado = 'R' AND @usuario_r = @p_user_id)
       set @continue = 1
      else
       if (@estado = 'V' AND @usuario_v = @p_user_id)
        set @continue = 1   

     end else begin
      set @continue = 1
     end

     IF (@continue = 1) BEGIN

      DECLARE @nombre varchar(100) = null
      select @nombre = first_name + ' ' + last_name from users where user_id = @p_user_id

      update LN_docs SET
        estado_doc = iif(isnull(@quien_carga,'') = 'F','N','I'),
        verificado_backend_por = NULL,
        verificado_backend = NULL,
        rechazado = NULL,
        rechazado_por = NULL,
        modified = GETDATE(),
        modified_by = @p_user_id,
        doc_log = @doc_log + char(13) + char(10) + @horario + 
           ': Reversión de estado de documento por el usuario ' + @nombre + '. (Estado anterior ' + iif(@estado = 'V', 'VERIFICADO)', 'RECHAZADO)')
     
      where doc_id = @p_doc_id

      SELECT 0 AS result, 'Sin error' as errortext

      RETURN

     END
    END

   END

   SELECT 1 AS result, 'Reversión no realizada' as errortext

   RETURN
  END
END

GO

Used By

No items found