dbo.Imperium_Datos_Documento

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_doc_id bigint 8
@p_contratista int 4
@p_periodo int 4
@p_tipo_doc int 4
@p_replicado bigint 8
@p_user_id int 4
@p_chequeo bit 1
@p_tiempo int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>

/*

exec Imperium_Datos_Documento 4938688085
exec Imperium_Datos_Documento 2146811461

*/


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

 @p_doc_id            bigint = null,
 @p_contratista           int = null,
 @p_periodo            int = null,
 @p_tipo_doc            int = null,
 @p_replicado           bigint = NULL, 
 @p_user_id int = null, 
 @p_chequeo bit = 0, 
 @p_tiempo  int = 30 -- minutos a tener en cuenta en el chequeo de si alguien tiene tomado ese doc

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

    -- Insert statements for procedure here

    /* AGB 16-01-2025 MODIFICO ESTO MIENTRAS VEMOS PORQUE SE LO UTILIZA DE ESTA MANERA. NO TERMINA NUNCA*/

        IF (@p_replicado IS NOT NULL)
        BEGIN
            SET @p_doc_id = @p_replicado
            SET @p_replicado = NULL
        END
    /* AGB 16-01-2025 MODIFICO ESTO MIENTRAS VEMOS PORQUE SE LO UTILIZA DE ESTA MANERA. NO TERMINA NUNCA*/



 if (@p_doc_id > 0) begin

 /* 12/02/2024: Se hace el chequeo que el documento no este siendo trabajado por otro usuario en los últimos (@p_tiempo) minutos */
 if (@p_chequeo = 1) 
 begin
  declare @p_error bit = null, @p_mensaje varchar(200) = null 
  exec [ln_docs_chequeo] 'CHEQUEO', '73', @p_doc_id, @p_user_id, @p_tiempo, @p_error output, @p_mensaje output 
  if @p_error = 1 
  begin
   select @p_error as error, @p_mensaje as mensaje 
   return 
  end 
 end 




  SELECT led_docs.doc_id, led_docs.doc_version, led_docs.cliente, clientes.nombre_cliente,
    led_docs.contratista_1, led_docs.contratista, led_docs.estado_doc,
    led_docs.led_seccion, led_docs.periodo, led_docs.fecha_tolerancia, led_docs.fecha_vigencia, 
    ISNULL(led_docs.aprobacion_parcial, 0) AS aprobacion_parcial, led_docs.status_doc, led_tipos_doc.periodicidad,
    led_docs.empleado, led_docs.vehiculo, led_docs.tipo_doc, led_tipos_doc.nombre_tipo_doc, led_tipos_doc.modalidad,
    ISNULL(led_tipos_doc.validar_cuit,0) AS validar_cuit,
    ISNULL(led_tipos_doc.validar_lista_cuil,0) AS validar_lista_cuil,
    ISNULL(led_tipos_doc.validar_lista_dominios,0) AS validar_lista_dominios,
    iif((ISNULL(led_tipos_doc.validar_cuit,0)
     + ISNULL(led_tipos_doc.validar_lista_cuil,0)
     + ISNULL(led_tipos_doc.validar_lista_dominios,0)) > 0, 1, 0) AS es_doc_lista,
    padrones.nombre_persona, padrones.identificador, padrones.numero, padrones.identificacion, 
    identificadores.abreviatura, identificadores.country_code,
    padrones_1.nombre_persona as nombre_persona_1, padrones_1.identificador as identificador_1, 
    padrones_1.numero as numero_1, padrones_1.identificacion as identificacion_1, 
    identificadores_1.abreviatura as abreviatura_1, identificadores_1.country_code as country_code_1,
    led_tipos_contratista.nombre_tipo_contratista, led_tipos_contratista_1.nombre_tipo_contratista as nombre_tipo_contratista_1,
    padrones_e.nombre_persona as nombre_persona_e, padrones_e.identificador as identificador_e, 
    padrones_e.numero as numero_e, padrones_e.identificacion as identificacion_e, 
    identificadores_e.abreviatura as abreviatura_e, identificadores_e.country_code as country_code_e,
    led_vehiculos.nombre_vehiculo, led_vehiculos.dominio, led_vehiculos.country_code as country_code_v,
    convert(varchar, led_docs.ingresado, 103)+' '+convert(varchar(5), led_docs.ingresado, 14) AS ingresado,
    led_docs.ingresado AS ingresadito,
    convert(varchar, led_docs.verificado, 103)+' '+convert(varchar(5), led_docs.verificado, 14) AS verificado,
    convert(varchar, led_docs.rechazado, 103)+' '+convert(varchar(5), led_docs.rechazado, 14) AS rechazado,
    led_docs.ingresado_por, led_docs.verificado_por, led_docs.rechazado_por, led_docs.texto_rechazo,
    isnull(users_i.first_name,'') + ' ' + isnull(users_i.last_name,'') as ingresado_por_usuario,
    isnull(users_v.first_name,'') + ' ' + isnull(users_v.last_name,'') as verificado_por_usuario,
    isnull(users_r.first_name,'') + ' ' + isnull(users_r.last_name,'') as rechazado_por_usuario,
    isnull(users_v.aliasname, isnull(users_v.first_name,'') + ' ' + isnull(users_v.last_name,'')) as aliasname_v,
    isnull(users_r.aliasname, isnull(users_r.first_name,'') + ' ' + isnull(users_r.last_name,'')) as aliasname_r,


   CASE WHEN led_docs.status_doc = 'R' THEN 'Rechazado'
     WHEN led_docs.status_doc = 'E' THEN 'Vencido'
     WHEN led_docs.status_doc = 'P' THEN 'Aprob. parcial'
     WHEN led_docs.status_doc = 'N' THEN 'No ingresado'
     WHEN led_docs.status_doc = 'I' THEN 'Ingresado'
     WHEN led_docs.status_doc = 'V' THEN 'Verificado' END AS nombre_estado,


   CASE WHEN led_docs.status_doc = 'R' THEN 1
     WHEN led_docs.status_doc = 'E' THEN 2
     WHEN led_docs.status_doc = 'P' THEN 3
     WHEN led_docs.status_doc = 'N' THEN 4
     WHEN led_docs.status_doc = 'I' THEN 5
     WHEN led_docs.status_doc = 'V' THEN 6 END AS orden_status,

     right(convert(varchar(6), led_docs.periodo),2) + '/' + left(convert(varchar(6), led_docs.periodo),4) AS periodo_my, 
     convert(varchar, led_docs.fecha_vigencia, 103) AS vigencia,
     convert(date, led_docs.fecha_vigencia) AS vigencia_amd,

     convert(varchar, led_docs.fecha_tolerancia, 103) AS plazo_carga,

   CASE WHEN led_docs.status_doc = 'R' THEN '<i class="fa fa-exclamation-circle text-rechazados"></i>'
     WHEN led_docs.status_doc = 'E' THEN '<i class="fa fa-warning text-vencidos"></i>'
     WHEN led_docs.status_doc = 'P' THEN '<i class="fa fa-exclamation text-parciales"></i>'
     WHEN led_docs.status_doc = 'N' THEN '<i class="fa fa-cloud-upload text-pendientes"></i>'
     WHEN led_docs.status_doc = 'I' THEN '<i class="fa fa-pause text-ingresados"></i>'
     WHEN led_docs.status_doc = 'V' THEN '<i class="fa fa-check text-verificados"></i>' END AS icono,

   led_docs.doc_log, led_docs.doc_id_lista, led_docs.grupo_doc, led_docs.notificacion, 
   isnull(led_docs.reapertura_por_alta, 0) as reapertura_por_alta,
   isnull(led_docs.parcial_actualizado, 0) as parcial_actualizado,

   iif(ISNULL(led_cliente_contratista.ci_killer, 0)+ISNULL(led_cliente_empleado.ci_killer, 0)+ISNULL(led_cliente_vehiculo.ci_killer, 0) > 0 AND led_tipos_doc.modalidad = 'A', 1, 0) AS ci_killer,

   convert(varchar, led_notificaciones.horario, 103)+' '+convert(varchar(5), led_notificaciones.horario, 14) AS horario_notificacion,
   led_notificaciones.texto_notificacion,

   CASE WHEN led_docs.led_seccion = 'C' THEN ISNULL(led_cliente_contratista.requiere_upload, 0)
     WHEN led_docs.led_seccion = 'E' THEN ISNULL(led_cliente_empleado.requiere_upload, 0)
     WHEN led_docs.led_seccion = 'V' THEN ISNULL(led_cliente_vehiculo.requiere_upload, 0) END AS requiere_upload,

   convert(varchar(6),led_docs.periodo)+'/'+convert(varchar,led_docs.cliente)+'/'+convert(varchar,led_docs.contratista_1)+'/' as doc_path,
   convert(varchar(6),led_docs.periodo)+'_'+convert(varchar,led_docs.cliente)+'_'+right('00000'+convert(varchar(5),led_docs.tipo_doc),5)+'_'+led_docs.led_seccion+convert(varchar,led_docs.doc_id)+'_' as preffix,

   -- Condición de próximo a vencer: verificado, periodo adelantado, killer de acceso, y dentro de las 96 horas de vencimiento en la versión 0
   -- Si hay una versión de reemplazo las mismas condiciones pero en estado ingresado o rechazado en las dos tablas
   iif(led_docs.estado_doc = 'V' AND     
     led_tipos_doc.modalidad = 'A' AND 
     led_docs.periodo = dbo.PeriodoAdelantado() AND
     (ISNULL(led_cliente_contratista.ci_killer, 0)+ISNULL(led_cliente_empleado.ci_killer, 0)+ISNULL(led_cliente_vehiculo.ci_killer, 0)) > 0 AND
     DATEDIFF(HOUR, GETDATE(), ISNULL(led_docs.fecha_vigencia, DATEFROMPARTS(2059,12,31))) <= 96 AND
     DATEDIFF(HOUR, GETDATE(), ISNULL(led_docs.fecha_vigencia, DATEFROMPARTS(2059,12,31))) >= 0, 1, 
     
     -- Else hay versión de reemplazo y se encuentra ingresada o rechazada con las mismas condiciones anteriores
     iif (led_docs.doc_version > 0 AND
      led_docs.estado_doc IN ('I','R') AND
      led_docs_aux.estado_doc IN ('I','R') AND
      led_tipos_doc.modalidad = 'A' AND 
      led_docs.periodo = dbo.PeriodoAdelantado() AND
      (ISNULL(led_cliente_contratista.ci_killer, 0)+ISNULL(led_cliente_empleado.ci_killer, 0)+ISNULL(led_cliente_vehiculo.ci_killer, 0)) > 0 AND
      DATEDIFF(HOUR, GETDATE(), ISNULL(led_docs.fecha_vigencia, DATEFROMPARTS(2059,12,31))) <= 96 AND
      DATEDIFF(HOUR, GETDATE(), ISNULL(led_docs.fecha_vigencia, DATEFROMPARTS(2059,12,31))) >= 0, 1, 0)    
     
    ) AS prox_vencer,

   led_docs.replicated_doc_id, doc_empresa.doc_id AS doc_id_padre,led_docs.cuit_found,
   LN_contrapartes.contraparte,led_tipos_doc.es_plan_de_pago 


   

  FROM led_docs
  INNER JOIN led_tipos_doc ON led_docs.tipo_doc = led_tipos_doc.tipo_doc
  INNER JOIN clientes ON led_docs.cliente = clientes.cliente
  INNER JOIN led_contratistas ON led_docs.contratista = led_contratistas.contratista
  INNER JOIN led_tipos_contratista ON led_contratistas.tipo_contratista = led_tipos_contratista.tipo_contratista
  INNER JOIN padrones ON led_contratistas.id_padron = padrones.id_padron
  INNER JOIN identificadores ON padrones.identificador = identificadores.identificador

  INNER JOIN led_contratistas led_contratistas_1 ON led_docs.contratista_1 = led_contratistas_1.contratista
  INNER JOIN led_tipos_contratista led_tipos_contratista_1 ON led_contratistas_1.tipo_contratista = led_tipos_contratista_1.tipo_contratista
  INNER JOIN padrones padrones_1 ON led_contratistas_1.id_padron = padrones_1.id_padron
  INNER JOIN identificadores identificadores_1 ON padrones_1.identificador = identificadores_1.identificador

  LEFT OUTER JOIN led_cliente_contratista ON (led_docs.cliente = led_cliente_contratista.cliente
            AND led_docs.tipo_doc = led_cliente_contratista.tipo_doc
            AND led_contratistas.tipo_contratista = led_cliente_contratista.tipo_contratista)

  LEFT OUTER JOIN users users_i on led_docs.ingresado_por = users_i.user_id
  LEFT OUTER JOIN users users_v on led_docs.verificado_por = users_v.user_id
  LEFT OUTER JOIN users users_r on led_docs.rechazado_por = users_r.user_id

  LEFT OUTER JOIN led_empleados ON led_docs.empleado = led_empleados.empleado
  LEFT OUTER JOIN padrones padrones_e ON led_empleados.id_padron = padrones_e.id_padron
  LEFT OUTER JOIN identificadores identificadores_e ON padrones_e.identificador = identificadores_e.identificador
  LEFT OUTER JOIN led_cliente_empleado ON (led_docs.cliente = led_cliente_empleado.cliente
            AND led_docs.tipo_doc = led_cliente_empleado.tipo_doc
            AND led_empleados.tipo_empleado = led_cliente_empleado.tipo_empleado)

  LEFT OUTER JOIN led_vehiculos ON led_docs.vehiculo = led_vehiculos.vehiculo
  LEFT OUTER JOIN led_cliente_vehiculo ON (led_docs.cliente = led_cliente_vehiculo.cliente
            AND led_docs.tipo_doc = led_cliente_vehiculo.tipo_doc
            AND led_vehiculos.tipo_vehiculo = led_cliente_vehiculo.tipo_vehiculo)

  LEFT OUTER JOIN led_notificaciones ON led_docs.notificacion = led_notificaciones.notificacion

  LEFT OUTER JOIN led_docs_aux ON (led_docs.doc_id = led_docs_aux.doc_id AND led_docs.doc_version = led_docs_aux.doc_version)


  LEFT OUTER JOIN led_docs doc_empresa ON (led_docs.doc_id_lista = doc_empresa.tipo_doc 
            AND led_docs.periodo = doc_empresa.periodo
            AND led_docs.contratista = doc_empresa.contratista)

  LEFT OUTER JOIN LN_contrapartes ON (led_docs.contratista_1 = LN_contrapartes.id_imperium AND LN_contrapartes.servicio_contratado = 73)

  WHERE led_docs.doc_id = @p_doc_id


 end

 else if (@p_replicado > 0) begin

  declare @inicial bigint = @p_replicado
  declare @original bigint = null
  declare @temp bigint 
  while @original is null begin
   select @temp = replicated_doc_id from led_docs where doc_id=@inicial
   if (@temp is null)
    set @original = @inicial
   else
    set @inicial = @temp
  end
  select @original AS doc_id
  
 end
 
END
GO

Used By

No items found