dbo.LN_docs_backend

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

8
Name Data Type Length Description
@accion varchar 50
@p_doc_id int 4
@p_estado_doc varchar 1
@p_user_id int 4
@p_id_externo int 4
@p_inicio_ejercicio date 3
@p_fin_ejercicio date 3
@p_plataforma varchar 10

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: LUIS J. PRENAFETA
-- Create date: 06/04/2020
-- Description: CONSULTA PARA OBTENER LOS DOCUMENTOS LED QUE DEBE CARGAR FIDELITAS DESDE BACKEND (PENDIENTES, VERIFICADOS, RECHAZADOS)

/*

exec LN_docs_backend 'documentos',null,'N',null,null,null,null,10

*/


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

 @accion         varchar(50) = 'documentos',
 @p_doc_id        int = NULL,
 @p_estado_doc       varchar(1) = 'N',
 @p_user_id        int = NULL,
 @p_id_externo       int = NULL,
 @p_inicio_ejercicio      date = NULL,
 @p_fin_ejercicio      date = NULL,
 @p_plataforma       varchar(10) = '10,47'

AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 DECLARE @usuario varchar(100) = ''
 DECLARE @timestamp varchar(16) = CONVERT(VARCHAR(10),GETDATE(),103)+' '+CONVERT(VARCHAR(5),GETDATE(),14)

 DECLARE @contraparte INT

 
 if (@p_user_id IS NOT NULL)
  SELECT @usuario = ISNULL(first_name,'')+' '+ISNULL(last_name,'') from users where user_id = @p_user_id

 IF (@accion = 'documentos') BEGIN

  SELECT distinct LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.created, LN_docs.es_balance, LN_docs.estado_doc,
    LN_docs.fecha_vigencia, CONVERT(VARCHAR(10),LN_docs.vencimiento_carga,103) as vencimiento_carga, LN_docs.ingresado, LN_docs.ingresado_por, LN_docs.tipo_doc,
    LN_tipos_doc.nombre_tipo_doc, clientes.nombre_cliente, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
    padrones.identificador, padrones.numero, identificadores.abreviatura, identificadores.country_code, country.country_name,
    LN_docs.ingresado_por, LN_docs.verificado_backend_por, LN_docs.rechazado_por,
    CONVERT(VARCHAR(10),LN_docs.inicio_ejercicio,103) as inicio_ejercicio,
    CONVERT(VARCHAR(10),LN_docs.fin_ejercicio,103) as fin_ejercicio,
    CONVERT(VARCHAR(10),LN_docs.created,103) AS creado,
    CONVERT(VARCHAR(10),LN_docs.fecha_vigencia,103) AS vigencia,
    CONVERT(VARCHAR(10),LN_docs.ingresado,103)+' '+CONVERT(VARCHAR(5),LN_docs.ingresado,14) AS ingresado_dmy,
    CONVERT(VARCHAR(10),LN_docs.verificado_backend,103)+' '+CONVERT(VARCHAR(5),LN_docs.verificado_backend,14) AS verificado_dmy,
    CONVERT(VARCHAR(10),LN_docs.rechazado,103)+' '+CONVERT(VARCHAR(5),LN_docs.rechazado,14) AS rechazado_dmy,
    users.first_name + ' ' + users.last_name as ingresado_por_usuario,
    users1.first_name + ' ' + users1.last_name as verificado_por_usuario,
    users2.first_name + ' ' + users2.last_name as rechazado_por_usuario,ln_demo.integ_carga,ln_demo.integ_rech,ln_demo.integ_verif,convert(varchar(20),ln_contrapartes.created,103) as fecha_alta,
    informes.informe,
    case
        when informes.estado_informe = 'I' then 'Ingresado'
        when informes.estado_informe = 'A' then 'No calificado'
        when informes.estado_informe = 'X' then 'Carga Comercial'
        when informes.estado_informe = 'T' then 'Aceptado'
        when informes.estado_informe = 'P' then 'En gestión'
        when informes.estado_informe = 'W' then 'En espera'
        when informes.estado_informe = 'M' then 'A Completar'
        when informes.estado_informe = 'E' then 'En proceso'
        when informes.estado_informe = 'F' then 'Finalizado'
        when informes.estado_informe = 'K' then 'Aprobado'
        when informes.estado_informe = 'R' then 'En revisión'
        when informes.estado_informe = 'C' then 'Cancelado'
        when informes.estado_informe = 'N' then 'Anulado'
       end as nombre_estado_informe 

  FROM LN_docs inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
  inner join LN_tipos_doc on LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
  inner join clientes on LN_contrapartes.cliente = clientes.cliente
  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_gestiones on (LN_docs.contraparte = LN_gestiones.contraparte and LN_docs.gestion = LN_gestiones.gestion)

  inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
  INNER JOIN dbo.DelimitedSplit8K(@p_plataforma, ',') exceptuados ON LN_contrapartes.servicio_contratado = convert(int,exceptuados.Item)        
  inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia 
  inner join LN_set_tipo_doc on (LN_familias.set_doc = LN_set_tipo_doc.set_doc and LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc)
  inner join LN_tipos_doc_carga_verif on (LN_docs.cliente = LN_tipos_doc_carga_verif.cliente and LN_docs.tipo_doc = LN_tipos_doc_carga_verif.tipo_doc)
  left join ln_demo on (ln_docs.contraparte=ln_demo.contraparte and ln_docs.gestion=ln_demo.gestion) 

  /*inner*/ left join informes on (ln_demo.informe=informes.informe and informes.estado_informe in ('A','P','W','E','M','R')) 
  

  left outer join users on LN_docs.ingresado_por = users.user_id
  left outer join users users1 on LN_docs.verificado_backend_por = users1.user_id
  left outer join users users2 on LN_docs.rechazado_por = users2.user_id

  WHERE LN_tipos_doc_carga_verif.quien_carga = 'F'
  AND LN_docs.estado_doc = @p_estado_doc
  AND LN_docs.aplica = 1
  AND LN_gestiones.desde <= GETDATE()
  AND LN_gestiones.hasta >= GETDATE()
  AND LN_contrapartes.activo = 1
  /*and ln_contrapartes.servicio_contratado in (@p_plataforma) */
  and ln_contrapartes.servicio_contratado in (47)
        and ln_contrapartes.cliente not in (3920694,592432729)
  --ORDER BY LN_docs.vencimiento_carga

 END


 IF (@accion = 'detalle') BEGIN

  if (@p_doc_id is not null) begin

   SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.gestion, LN_docs.cliente, LN_docs.created, ISNULL(LN_docs.es_balance,0) as es_balance, LN_docs.estado_doc,
     LN_docs.fecha_vigencia, CONVERT(VARCHAR(10),LN_docs.vencimiento_carga,103) as vencimiento_carga, LN_docs.ingresado, LN_docs.ingresado_por, LN_docs.tipo_doc,
     LN_tipos_doc.nombre_tipo_doc, clientes.nombre_cliente, padrones.nombre_persona, padrones.identificacion, padrones.id_padron,
     padrones.identificador, padrones.numero, identificadores.abreviatura, identificadores.country_code, country.country_name,
     LN_docs.ingresado_por, LN_docs.verificado_backend_por, LN_docs.rechazado_por, LN_docs.doc_log,
     case
      when LN_docs.estado_doc = 'N' then 'Pendiente'
      when LN_docs.estado_doc = 'I' then 'Ingresado'
      when LN_docs.estado_doc = 'R' then 'Rechazado'
      when LN_docs.estado_doc = 'V' then 'Verificado'
      else '?'
     end as estado_documento,
     CASE 
      WHEN LN_docs.estado_doc = 'N' THEN 'text-info'
      WHEN LN_docs.estado_doc = 'I' THEN 'text-warning'
      WHEN LN_docs.estado_doc = 'R' THEN 'text-danger'
      WHEN LN_docs.estado_doc = 'V' THEN 'text-success'
     END AS class_estado,
     CASE 
      WHEN LN_docs.estado_doc = 'N' THEN 'cloud-upload fa-cloud-upload-alt'
      WHEN LN_docs.estado_doc = 'I' THEN 'exclamation'
      WHEN LN_docs.estado_doc = 'R' THEN 'times'
      WHEN LN_docs.estado_doc = 'V' THEN 'check'
     END AS icon_estado,
     CONVERT(VARCHAR(10),LN_docs.created,103) AS creado,
     CONVERT(VARCHAR(10),LN_docs.fecha_vigencia,103) AS vigencia,
     CONVERT(VARCHAR(10),LN_docs.ingresado,103)+' '+CONVERT(VARCHAR(5),LN_docs.ingresado,14) AS ingresado_dmy,
     CONVERT(VARCHAR(10),LN_docs.verificado_backend,103)+' '+CONVERT(VARCHAR(5),LN_docs.verificado_backend,14) AS verificado_dmy,
     CONVERT(VARCHAR(10),LN_docs.rechazado,103)+' '+CONVERT(VARCHAR(5),LN_docs.rechazado,14) AS rechazado_dmy,
     CONVERT(VARCHAR(10),LN_docs.inicio_ejercicio,103) AS inicio_ejercicio,
     CONVERT(VARCHAR(10),LN_docs.fin_ejercicio,103) AS fin_ejercicio,
     LN_docs.id_externo, balances_contables.ruta_archivo, balances_contables.ejercicio, 
     balances_contables.periodo, balances_contables.bal_manifestacion, balances_contables.moneda,
     users.first_name + ' ' + users.last_name as ingresado_por_usuario,
     users1.first_name + ' ' + users1.last_name as verificado_por_usuario,
     users2.first_name + ' ' + users2.last_name as rechazado_por_usuario,
     convert(varchar, LN_docs.cliente) + '/' + convert(varchar, LN_docs.contraparte) + '/' + convert(varchar, LN_docs.gestion) as docpath

   FROM LN_docs inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
   inner join LN_tipos_doc on LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
   inner join clientes on LN_contrapartes.cliente = clientes.cliente
   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_gestiones on (LN_docs.contraparte = LN_gestiones.contraparte
          and LN_docs.gestion = LN_gestiones.gestion)

   inner join LN_contraparte_familias on LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
   inner join LN_familias on LN_contraparte_familias.familia = LN_familias.familia
   inner join LN_set_tipo_doc on (LN_familias.set_doc = LN_set_tipo_doc.set_doc
           and LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc)
   inner join LN_tipos_doc_carga_verif on (LN_docs.cliente = LN_tipos_doc_carga_verif.cliente
             and LN_docs.tipo_doc = LN_tipos_doc_carga_verif.tipo_doc)

   left outer join users on LN_docs.ingresado_por = users.user_id
   left outer join users users1 on LN_docs.verificado_backend_por = users1.user_id
   left outer join users users2 on LN_docs.rechazado_por = users2.user_id

   left outer join balances_contables on LN_docs.id_externo = balances_contables.id_balance

   WHERE LN_tipos_doc_carga_verif.quien_carga = 'F'
   AND LN_docs.doc_id = @p_doc_id
   AND LN_gestiones.desde <= GETDATE()
   AND LN_gestiones.hasta >= GETDATE()

  end

 END

 
 IF (@accion = 'enviar') BEGIN
  
  if (@p_doc_id is not null AND (@p_estado_doc = 'I' OR @p_estado_doc = 'V')) begin

   SELECT @contraparte = contraparte FROM LN_docs WHERE doc_id = @p_doc_id

   if (@p_estado_doc = 'I') begin

    UPDATE LN_docs SET estado_doc = @p_estado_doc,
         ingresado = GETDATE(),
         ingresado_por = @p_user_id,
         doc_log = ISNULL(CONVERT(VARCHAR(MAX),doc_log),'')+CHAR(13)+CHAR(10)+@timestamp+': Documento ingresado por '+@usuario,
         modified = GETDATE(),
         modified_by = @p_user_id
    WHERE doc_id = @p_doc_id

   end else
   begin

    UPDATE LN_docs SET estado_doc = @p_estado_doc,
         ingresado = GETDATE(),
         ingresado_por = @p_user_id,
         verificado_backend = GETDATE(),
         verificado_backend_por = @p_user_id,
         doc_log = ISNULL(CONVERT(VARCHAR(MAX),doc_log),'')+CHAR(13)+CHAR(10)+@timestamp+': Documento ingresado por '+@usuario+CHAR(13)+CHAR(10)+@timestamp+': Documento verificado por '+@usuario,
         modified = GETDATE(),
         modified_by = @p_user_id
    WHERE doc_id = @p_doc_id

   end

   exec LN_contrapartes_queue_ 'insert',NULL,@contraparte

  end

 END


 IF (@accion = 'actualizar_balance') BEGIN

  if (@p_doc_id is not null AND @p_id_externo is not null) begin

   SELECT @contraparte = contraparte FROM LN_docs WHERE doc_id = @p_doc_id

   update LN_docs set id_externo = @p_id_externo, 
        inicio_ejercicio = @p_inicio_ejercicio,
        fin_ejercicio = @p_fin_ejercicio,
        fecha_vigencia = @p_fin_ejercicio,
        modified = GETDATE(), 
        modified_by = @p_user_id 
   where doc_id = @p_doc_id

   exec LN_contrapartes_queue_ 'insert',NULL,@contraparte

  end

 END


 IF (@accion = 'no_aplica') BEGIN

  if (@p_doc_id is not null) begin

   UPDATE LN_docs SET
    aplica = 0,
    user_id_aplica = @p_user_id,
    fecha_aplica = CONVERT(SMALLDATETIME, GETDATE())
   WHERE doc_id = @p_doc_id

   SELECT @contraparte = contraparte FROM LN_docs WHERE doc_id = @p_doc_id
   exec LN_contrapartes_queue_ 'insert',NULL,@contraparte


  end
 END
 IF (@accion = 'aplica') BEGIN

  if (@p_doc_id is not null) begin

   UPDATE LN_docs SET
    aplica = 1,
    user_id_aplica = @p_user_id,
    fecha_aplica = CONVERT(SMALLDATETIME, GETDATE())
   WHERE doc_id = @p_doc_id

   SELECT @contraparte = contraparte FROM LN_docs WHERE doc_id = @p_doc_id
   exec LN_contrapartes_queue_ 'insert',NULL,@contraparte

  end

 END


END
GO

Used By

No items found