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
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
Depends On
10Used By
No items found