Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
27| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_accion | varchar | 50 | |
| @p_contraparte | int | 4 | |
| @p_informe | int | 4 | |
| @p_user_id | int | 4 | |
| @p_item_contrato | int | 4 | |
| @p_producto | smallint | 2 | |
| @p_id_tipo_informe | int | 4 | |
| @p_prioridad | tinyint | 1 | |
| @p_estado_informe | varchar | 1 | |
| @p_ingresado_por | int | 4 | |
| @p_datamanager | int | 4 | |
| @p_asignado | int | 4 | |
| @p_cliente | int | 4 | |
| @p_fecha_limite_doc | datetime | 8 | |
| @p_producto_led | int | 4 | |
| @p_fecha_comprometida | datetime | 8 | |
| @p_objeto_informe | varchar | -1 | |
| @p_familia | int | 4 | |
| @p_idioma_iso | varchar | 3 | |
| @p_fecha_inicio | datetime | 8 | |
| @p_notas_informe | varchar | -1 | |
| @p_path_archivo | varchar | 150 | |
| @p_extension_archivo | varchar | 5 | |
| @p_fecha_desde | datetime | 8 | |
| @p_fecha_hasta | datetime | 8 | |
| @p_pausa_tarea | bit | 1 | |
| @p_fecha_prox_llamado | datetime | 8 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/* SP LN_BLUE_UPD */
/*
exec [LN_Blue_UPDAGB2] 'UPD_informe',212056,100784310,793639331,null,null,1644793,5,'E'
*/
CREATE OR ALTER PROCEDURE dbo.LN_Blue_UPDAGB2
@p_accion varchar(50) = NULL,
@p_contraparte int = NULL,
@p_informe int OUTPUT,
@p_user_id int = NULL,
@p_item_contrato int = NULL,
@p_producto smallint = NULL,
@p_id_tipo_informe int = NULL,
@p_prioridad tinyint = NULL,
@p_estado_informe varchar(1) = NULL,
@p_ingresado_por int = NULL,
@p_datamanager int = NULL,
@p_asignado int = NULL,
@p_cliente int = NULL,
@p_fecha_limite_doc datetime = NULL,
@p_producto_led int = NULL,
@p_fecha_comprometida datetime = NULL,
@p_objeto_informe varchar(max) = NULL,
@p_familia int = NULL,
@p_idioma_iso varchar(3) = 'spa',
@p_fecha_inicio datetime = null,
@p_notas_informe varchar(max) = NULL,
@p_path_archivo varchar(150)= null,
@p_extension_archivo varchar(5)= null,
@p_fecha_desde datetime = null,
@p_fecha_hasta datetime = null,
@p_pausa_tarea bit = 0,
@p_fecha_prox_llamado datetime = null
AS
BEGIN
SET NOCOUNT ON;
/*
exec LN_Blue 'tareas_informe',null,100603443
exec LN_Blue2 'tareas_informe',null,100603443
exec ln_blue_UPD 'UPD_informe',198672,100615876,793639331,NULL,NULL,1645350,2,'E',793639331,NULL,NULL,2254875,NULL,NULL,'2023-03-03 12:02:00',NULL,NULL,'spa','2023-02-28 00:00:00'
exec ln_blue2 'UPD_informe',198672,100615876,793639331,NULL,NULL,1645350,2,'E',793639331,NULL,NULL,2254875,NULL,NULL,'2023-03-03 12:02:00',NULL,NULL,'spa','2023-02-28 00:00:00'
exec ln_blue_UPD 'UPD_TAREA',198672,100615878,793639331,NULL,NULL,400,NULL,'E',793639331,NULL,87455253,2254875,NULL,NULL,'2023-02-23 12:02:00',NULL,NULL,NULL,NULL
exec ln_blue2 'UPD_TAREA',198672,100615878,793639331,NULL,NULL,400,NULL,'E',793639331,NULL,87455253,2254875,NULL,NULL,'2023-02-23 12:02:00',NULL,NULL,NULL,NULL
*/
--LN_Blue_UPDAGB 'PAUSA_TAREA',201596,100643955,793639331,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2254875,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0
/* AGB DECLARAMOS VARIABLES PARA EVITAR PARAMETER SNIFFING EN LA CONFECCIÓN DEL QUERY PLAN */
DECLARE @V_accion varchar(50) = @p_accion
DECLARE @V_contraparte int = @p_contraparte
DECLARE @V_informe int = @p_informe
DECLARE @V_user_id int = @p_user_id
DECLARE @V_item_contrato int = @p_item_contrato
DECLARE @V_producto smallint = @p_producto
DECLARE @V_id_tipo_informe int = @p_id_tipo_informe
DECLARE @V_prioridad tinyint = @p_prioridad
DECLARE @V_estado_informe varchar(1) = @p_estado_informe
DECLARE @V_ingresado_por int = @p_ingresado_por
DECLARE @V_datamanager int = @p_datamanager
DECLARE @V_asignado int = @p_asignado
DECLARE @V_cliente int = @p_cliente
DECLARE @V_fecha_limite_doc datetime = @p_fecha_limite_doc
DECLARE @V_producto_led int = @p_producto_led
DECLARE @V_fecha_comprometida datetime = @p_fecha_comprometida
DECLARE @V_objeto_informe varchar (max) = @p_objeto_informe
DECLARE @V_familia int = @p_familia
DECLARE @V_idioma_iso varchar(3) = @p_idioma_iso
DECLARE @V_fecha_inicio datetime = @p_fecha_inicio
DECLARE @V_notas_informe varchar (max) = @p_notas_informe
DECLARE @V_path_archivo varchar(150) = @p_path_archivo
DECLARE @V_extension_archivo varchar(5) = @p_extension_archivo
DECLARE @V_fecha_desde datetime = @p_fecha_desde
DECLARE @V_fecha_hasta datetime = @p_fecha_hasta
DECLARE @V_pausa_tarea bit = @p_pausa_tarea
DECLARE @estado VARCHAR(1) = NULL, @estado_tarea varchar(1) = NULL
DECLARE @ahora datetime = GETDATE()
DECLARE @usuario varchar(100) = NULL
DECLARE @preffix varchar(200) = ''
DECLARE @nombre_asignado varchar(200)
DECLARE @informe int = NULL
DECLARE @tarea INT = null
DECLARE @gestion int = NULL
DECLARE @noing int = 0, @ing int = 0, @verif int = 0, @rech int = 0, @total_estado int = 0, @total_docs int = 0, @publicados int = 0
if (@V_user_id > 0)
begin
select @usuario = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_user_id
SET @preffix = '['+@usuario+' - '+convert(varchar(10),@ahora,103) + ' ' + substring(convert(varchar,@ahora,121),12,5)+']: '
end
else
begin
SET @preffix = '['+convert(varchar(10),@ahora,103) + ' ' + substring(convert(varchar,@ahora,121),12,5)+']: '
end
DECLARE @id INT = null
DECLARE @moneda varchar(3) = null
DECLARE @precio money = NULL
DECLARE @id_contrato int = NULL
DECLARE @cliente int = NULL
DECLARE @nombre_cliente varchar(200) = NULL
DECLARE @identificador varchar(10) = NULL
DECLARE @abreviatura varchar(10) = NULL
DECLARE @numero varchar(50) = NULL
DECLARE @nombre_persona varchar(200) = NULL
DECLARE @nombre varchar(50) = NULL
DECLARE @email varchar(50) = NULL
DECLARE @telefono varchar(30) = NULL
DECLARE @nombre_tipo_informe varchar(200) = NULL
DECLARE @grupo_informes varchar(50) = NULL
DECLARE @detalle_log varchar(max)
IF (@V_accion = 'UPD_FECHA_PROX_LLAMADO' )
BEGIN
UPDATE informes SET proximo_llamado=@p_fecha_prox_llamado WHERE informe=@V_informe;
RETURN;
END
IF (@V_accion = 'UPD_FECHA_COMPROMETIDA_TAREA' )
BEGIN
UPDATE informes SET fecha_comprometida=@V_fecha_comprometida WHERE informe=@V_informe;
--
RETURN;
END
if (@V_accion = 'UPD_HIST_INFORME')
BEGIN
update informes set historial_informe = convert(varchar(max),historial_informe) + '<br>' + @V_notas_informe where informe = @V_informe and informe_padre is null
END
if (@V_accion = 'UPD_INFORME_OBS')
BEGIN
update ln_contrapartes set datos_comerciales = convert(varchar(max),datos_comerciales) + char(13) + char(10) + @V_notas_informe where contraparte = @V_contraparte
update informes set notificado_fecha = getdate(),observado_por=@V_user_id where informe = @V_informe
END
if (@V_accion = 'archivo_informe')
begin
insert into archivos_informe (path_archivo,fecha_subido,subido_por,mime_type,informe)
values (@V_path_archivo,getdate(),@V_user_id,@V_extension_archivo,@V_informe)
end
if (@V_accion = 'list_archivos')
begin
select archivos_informe.*,users.last_name,users.first_name from archivos_informe inner join users on archivos_informe.subido_por=users.user_id where informe = @V_informe
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (@V_accion = 'UPD_informe') begin
DECLARE @V_idioma1 smallint = NULL
DECLARE @V_filial1 smallint = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200)
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes
from tipos_informe
where id_tipo_informe = @V_id_tipo_informe
set @id=@V_informe
declare @prioridad int = null
declare @informe_padre int = null
select @prioridad = prioridad, @informe_padre = informe_padre from informes where informe = @id and idreg=@id
if (@id IS NOT NULL) begin
DECLARE @hist1 varchar(max) = @preffix + 'Actualización del informe.'
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Asignación del informe a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Aceptación del informe.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Informe puesto en gestión.'
end
DECLARE @fecha_limite1 datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometida1 datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
UPDATE informes SET /*informe=@id, cliente=@cliente,*/
/*identificador=@identificador, numero=@numero, */
/*fecha_ingreso=@ahora, */
/*id_tipo_informe=@V_id_tipo_informe,*/
objeto_informe='INFORME GENERADO A TRAVES DE BACKEND - CARGA DE INFORMES ' + CHAR(13) + CHAR(10) + isnull(@V_objeto_informe, ''),
/*historial_informe= convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1,*/
/*
agb
ingresado_por=@V_ingresado_por,
*/
/*idioma=@V_idioma1, filial=@V_filial1, prioridad=@V_prioridad, datamanager=@V_datamanager,*/
asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @V_asignado, NULL),
estado_informe=@V_estado_informe,
fecha_asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
/* excepcion=0, excepcion_prod=0, notificar_cliente=0, precio=@precio, moneda=@moneda,*/
/*fecha_inicio = @V_fecha_inicio,*/
/* fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
*/
fecha_inicio = iif(@V_estado_informe in ('P','E'),@V_fecha_inicio,fecha_inicio),
/*fecha_iniciado = iif(@V_estado_informe in ('P','E'),@V_fecha_inicio,fecha_inicio),*/
fecha_iniciado = iif(@V_estado_informe in ('P','E') and fecha_iniciado is null,@V_fecha_inicio,fecha_iniciado),
fecha_entregado= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_aprobacion),
aprobado_por = iif(@V_estado_informe in ('F','K','N','C'),@p_user_id,aprobado_por),
/*
nombre_contacto_1=@nombre,
email_contacto_1=@email,
telefono_contacto_1=@telefono,
fecha_limite_doc=@fecha_limite1,
*/
/*fecha_comprometida=@fecha_comprometida1*/
fecha_comprometida=@V_fecha_comprometida,
modified = getdate(),
modified_by = @V_user_id
WHERE informe = @id and idreg=@id
if (@informe_padre is null and isnull(@prioridad,0) != isnull(@p_prioridad,0))
begin
update informes
set prioridad = @p_prioridad
WHERE (informe = @id and idreg=@id) or informe_padre = @id
end
DECLARE @GestionUPD int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @GestionUPD=ln_demo.gestion
from ln_demo INNER JOIN ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where LN_DEMO.informe =@id
if(@V_estado_informe in ('F','K','N','C'))
begin
update ln_demo set fecha_publicacion=getdate(),visible=1,fecha_hora_pub=getdate() where informe = @id and gestion = @GestionUPD
end
SET @V_informe = @id
/* Actualización de la tabla LED para vincular el informe al producto */
if (@V_producto_led > 0) begin
EXEC LN_demo_ 'UPDATE',@V_contraparte,@cliente,@V_producto_led,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,@id
end
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'CIERRE_TOTAL')
begin
DECLARE @servicio_contratadoCierre INT = NULL
DECLARE @InfPadreCierre int = null
DECLARE @GestionCierre int = null
DECLARE @ClienteCierre int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @servicio_contratadoCierre= ln_contrapartes.servicio_contratado,
@InfPadreCierre= informes.informe_padre,
@GestionCierre=ln_demo.gestion,
@ClienteCierre=informes.cliente
from informes
inner join ln_demo on informes.informe_padre=ln_demo.informe
inner join ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where informes.informe = @V_informe /*and estado_informe not in ('N','C','K','X')*/
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histCierre varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
/*ACTUALIZA LA TAREA */
UPDATE informes SET estado_informe=@V_estado_informe,fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*INSERTA LOG DE TAREA */
insert into informes_log (informe,horario,user_id,operacion) values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
--exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@ClienteCierre,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoCierre
/*ACTUALIZAMOS TODAS LAS TAREAS Y EL INFORME QUE HAYA QUE APROBAR */
if (@InfPadreCierre is not null )
begin
update informes set estado_informe='K',fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
from informes where (informes.informe = @InfPadreCierre or informe_padre = @InfPadreCierre ) and estado_informe not in ('N','C','K','X')
/*PUBLICAMOS EL INFORME */
UPDATE ln_demo set visible=1,fecha_publicacion=getdate(),fecha_hora_pub=getdate() where contraparte=@V_contraparte AND GESTION = @GestionCierre
--exec insertar_trazabilidad 'CIERRE Y PUBLICACION',@ClienteCierre,'CIERREINFORME','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoCierre
end
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'CANCELA_INFORME')
begin
DECLARE @servicio_contratadoCie INT = NULL
DECLARE @InfPadreCie int = null
DECLARE @GestionCie int = null
DECLARE @ClienteCie int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @servicio_contratadoCierre= ln_contrapartes.servicio_contratado,
@InfPadreCie= informes.informe_padre,
@GestionCie=ln_demo.gestion,
@ClienteCie=informes.cliente
from informes
inner join ln_demo on informes.informe=ln_demo.informe
inner join ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where informes.informe = @V_informe
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histCie varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'C') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea cancelada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
/*ACTUALIZA EL INFORME */
UPDATE informes SET estado_informe=@V_estado_informe,fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
WHERE informe = @V_informe
/*SET @V_informe = @id*/
/*INSERTA LOG DE TAREA */
insert into informes_log (informe,horario,user_id,operacion) values (@V_informe,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/*ACTUALIZAMOS TODAS LAS TAREAS Y EL INFORME QUE HAYA QUE APROBAR */
update informes set estado_informe='N',fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
from informes where (informe_padre = @V_informe )
/*PUBLICAMOS EL INFORME */
UPDATE ln_demo set visible=1,fecha_publicacion=getdate(),fecha_hora_pub=getdate() where contraparte=@V_contraparte AND GESTION = @GestionCie
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'UPD_INCIADO')
begin
UPDATE informes SET fecha_iniciado= GETDATE() WHERE informe = @V_informe and idreg=@V_informe
end
if (upper(@V_accion) = 'UPD_ESTADO')
begin
DECLARE @histupd varchar(max) = @preffix
if (@V_estado_informe = 'P') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
UPDATE informes SET
/*historial_informe=convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1, */
fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),
estado_informe=@V_estado_informe
WHERE informe = @V_informe and idreg=@V_informe
/* READY TO START analizar dependencias */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA o ANULADA */
begin
declare @triggerPadreDE int = null
declare @dependencylistDE varchar(150) = null
declare @InfPadreDE int = null
declare @idTipoIformeDE int = null
declare @idTareaDE int = null
declare @estadoTareaDE varchar(1) = null
select @idTipoIformeDE=INFP.id_tipo_informe,@idTareaDE=informes.idTarea,@estadoTareaDE=informes.estado_informe,@InfPadreDE=informes.informe_padre
from informes inner join informes INFP on informes.informe_padre= INFP.informe where informes.informe = @V_informe
select LN_informe_design.idElem,informes.estado_informe,informes.ready_to_start,informes.informe,LN_informe_design.dependency_tree,
(select count(*) from informes where informe_padre = @InfPadreDE and estado_informe not in ('K','N') and idTarea in (select item from dbo.DelimitedSplit8K(LN_informe_design.dependency_tree,','))) AS pend_aprobar
from LN_informe_design inner join informes on ln_informe_design.idElem = informes.idTarea
where idTipoInforme=@idTipoIformeDE and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1
and informes.informe_padre = @InfPadreDE
and idelem in (select distinct LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea)
end
/*READY TO START analizar dependencias */
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (upper(@V_accion) = 'UPD_TAREA2')
begin
DECLARE @V_idiomaTD smallint = NULL
DECLARE @V_filialTD smallint = NULL
DECLARE @servicio_contratadoD INT = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200),
@servicio_contratadoD= LN_contrapartes.servicio_contratado
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes,@V_id_tipo_informe=id_tipo_informe
from tipos_informe where id_tipo_informe in (SELECT id_tipo_informe FROM informes where informe = @V_informe)
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histTD varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
DECLARE @fecha_limiteTD datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometidaTD datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
set @fecha_comprometidaTD = @V_fecha_comprometida
UPDATE informes SET prioridad=@V_prioridad, asignado=@V_asignado,
estado_informe=@V_estado_informe,
fecha_asignado=iif(asignado != @V_asignado, @ahora, fecha_asignado),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, fecha_aceptacion),
fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
/*fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),*/
/*fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),*/
fecha_entregado= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_aprobacion),
aprobado_por = iif(@V_estado_informe in ('F','K','N','C'),@p_user_id,aprobado_por),
fecha_comprometida=@fecha_comprometidaTD
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
/*exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@cliente,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoD*/
/* READY TO START analizar dependencias */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA O ANULADA */
begin
declare @triggerPadreD int = null
declare @dependencylistD varchar(150) = null
declare @InfPadre int = null
declare @idTipoIforme int = null
declare @idTarea int = null
declare @estadoTarea varchar(1) = null
select @idTipoIforme=INFP.id_tipo_informe,@idTarea=informes.idTarea,@estadoTarea=informes.estado_informe,@InfPadre=informes.informe_padre
from informes inner join informes INFP on informes.informe_padre= INFP.informe where informes.informe = @V_informe
-- EXEC LN_Blue_UPD 'UPD_TAREA2','199109','100621941','422946826',NULL,NULL,'4071729',NULL,'K','422946826',NULL,'15342812','2254875',NULL,NULL,'2023-03-13 11:01:00',nULL,NULL,NULL,'2023-03-13 11:00:00'
select LN_informe_design.idElem,informes.estado_informe,informes.ready_to_start,informes.informe,LN_informe_design.dependency_tree,
(select count(*) from informes where informe_padre = @InfPadre and estado_informe not in ('K','N') and idTarea in (select item from dbo.DelimitedSplit8K(LN_informe_design.dependency_tree,','))) AS pend_aprobar
from LN_informe_design inner join informes on ln_informe_design.idElem = informes.idTarea
where idTipoInforme=@idTipoIforme and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1
and informes.informe_padre = @InfPadre
and idelem in (select distinct LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea)
end
/*READY TO START analizar dependencias */
/*SELECT @id AS informe*/
end
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (upper(@V_accion) = 'UPD_TAREA')
begin --100621941
DECLARE @V_idiomaT smallint = NULL
DECLARE @V_filialT smallint = NULL
DECLARE @servicio_contratado INT = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200),
@servicio_contratado= LN_contrapartes.servicio_contratado
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes,@V_id_tipo_informe=id_tipo_informe
from tipos_informe where id_tipo_informe in (SELECT id_tipo_informe FROM informes where informe = @V_informe)
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histT varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
DECLARE @fecha_limiteT datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometidaT datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
set @fecha_comprometidaT = @V_fecha_comprometida
UPDATE informes SET identificador=@identificador, numero=@numero, fecha_ingreso=@ahora, id_tipo_informe=@V_id_tipo_informe,
objeto_informe='TAREA GENERADA ' + CHAR(13) + CHAR(10) + isnull(@V_objeto_informe, ''),
/*historial_informe=convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1, */
ingresado_por=@V_ingresado_por, idioma=@V_idioma1, filial=@V_filial1, prioridad=@V_prioridad, datamanager=@V_datamanager,
/*asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @V_asignado, NULL), */
asignado=@V_asignado,
estado_informe=@V_estado_informe,
fecha_asignado=iif(asignado != @V_asignado, @ahora, fecha_asignado),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, fecha_aceptacion),
/* fecha_asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
*/
/* fecha_asignado=getdate(),
fecha_aceptacion=getdate(),
*/
excepcion=0, excepcion_prod=0, notificar_cliente=0, precio=@precio, moneda=@moneda,
fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),
nombre_contacto_1=@nombre, email_contacto_1=@email, telefono_contacto_1=@telefono,fecha_limite_doc=@fecha_limite1,
fecha_comprometida=@fecha_comprometidaT
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
--exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@cliente,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratado
/* READY TO START */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA O ANULADA */
begin
declare @triggerPadre int = null
declare @dependencylist varchar(150) = null
select /*informes.informe,informes.id_tipo_informe,*/
@triggerPadre= iPPAL.informe,/*iPPAL.id_tipo_informe as TipoInfPPAL,*/
@dependencylist= LN_informe_design.dependency_tree
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea
/* where informes.informe = @V_informe
and LN_informe_design.idElem = informes.idTarea
*/
/* update informes set ready_to_start=1,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe,ready_to_start_user_id=@V_user_id
where informe_padre = @triggerPadre and estado_informe='A' and id_tipo_informe in (
select id_tipo_informe_blue from ln_tareas INNER JOIN dbo.DelimitedSplit8K(@dependencylist, ',') LISTOSPARAINICIAR ON LN_tareas.idTarea = convert(int,LISTOSPARAINICIAR.Item) where id_tipo_informe_blue is not null )
*/
update informes set ready_to_start=1,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe,ready_to_start_user_id=@V_user_id
where informe_padre = @triggerPadre and estado_informe='A' and id_tipo_informe in (
/*select id_tipo_informe_blue from ln_tareas INNER JOIN dbo.DelimitedSplit8K(@dependencylist, ',') LISTOSPARAINICIAR ON LN_tareas.idTarea = convert(int,LISTOSPARAINICIAR.Item) where id_tipo_informe_blue is not null )*/
select id_tipo_informe_blue from ln_tareas where id_tipo_informe_blue is not null and idtarea in ( select LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea) )
/* V1
select @nombre_tipo_informe= nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',@grupo_informes = grupo_informes,@V_id_tipo_informe = tipos_informe.id_tipo_informe,
@triggerPadre= informes.informe_padre
from tipos_informe inner join informes on tipos_informe.id_tipo_informe = informes.id_tipo_informe
where informes.informe = @V_informe
update informes set estado_informe=estado_informe,
ready_to_start=1,ready_to_start_user_id=@V_user_id,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe
where informe_padre = @triggerPadre and id_tipo_informe in (select id_tipo_informe_blue from LN_tareas where idTarea_Padre in (select idTarea from LN_tareas where id_tipo_informe_blue=@V_id_tipo_informe))
and estado_informe='A'
V1 */
/* TRAZABILIDAD DEL READY 2 START*/
--exec insertar_trazabilidad 'TAREAS DEPENDIENTES LISTAS PARA INICIAR',@cliente,'READYTOSTART','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratado
end
/*READY TO START */
SELECT @id AS informe
end
end
/* PAUSAR TAREAS */
if (upper(@V_accion) = 'PAUSA_TAREA')
begin
/*AGB */
update informes set pausa = @V_pausa_tarea where informe = @V_informe and idreg=@V_informe and informe_padre is not null
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@V_informe,getdate(),@V_user_id,iif(@V_pausa_tarea = 1,'P','I'))
select @V_informe as tarea,@V_pausa_tarea as pausa,@V_informe as ID,@V_user_id as usuario,iif(@V_pausa_tarea = 1,'P','I') as operacion
end
END
GO
GO
/* SP LN_BLUE_UPD */
/*
exec [LN_Blue_UPDAGB2] 'UPD_informe',212056,100784310,793639331,null,null,1644793,5,'E'
*/
CREATE OR ALTER PROCEDURE dbo.LN_Blue_UPDAGB2
@p_accion varchar(50) = NULL,
@p_contraparte int = NULL,
@p_informe int OUTPUT,
@p_user_id int = NULL,
@p_item_contrato int = NULL,
@p_producto smallint = NULL,
@p_id_tipo_informe int = NULL,
@p_prioridad tinyint = NULL,
@p_estado_informe varchar(1) = NULL,
@p_ingresado_por int = NULL,
@p_datamanager int = NULL,
@p_asignado int = NULL,
@p_cliente int = NULL,
@p_fecha_limite_doc datetime = NULL,
@p_producto_led int = NULL,
@p_fecha_comprometida datetime = NULL,
@p_objeto_informe varchar(max) = NULL,
@p_familia int = NULL,
@p_idioma_iso varchar(3) = 'spa',
@p_fecha_inicio datetime = null,
@p_notas_informe varchar(max) = NULL,
@p_path_archivo varchar(150)= null,
@p_extension_archivo varchar(5)= null,
@p_fecha_desde datetime = null,
@p_fecha_hasta datetime = null,
@p_pausa_tarea bit = 0,
@p_fecha_prox_llamado datetime = null
AS
BEGIN
SET NOCOUNT ON;
/*
exec LN_Blue 'tareas_informe',null,100603443
exec LN_Blue2 'tareas_informe',null,100603443
exec ln_blue_UPD 'UPD_informe',198672,100615876,793639331,NULL,NULL,1645350,2,'E',793639331,NULL,NULL,2254875,NULL,NULL,'2023-03-03 12:02:00',NULL,NULL,'spa','2023-02-28 00:00:00'
exec ln_blue2 'UPD_informe',198672,100615876,793639331,NULL,NULL,1645350,2,'E',793639331,NULL,NULL,2254875,NULL,NULL,'2023-03-03 12:02:00',NULL,NULL,'spa','2023-02-28 00:00:00'
exec ln_blue_UPD 'UPD_TAREA',198672,100615878,793639331,NULL,NULL,400,NULL,'E',793639331,NULL,87455253,2254875,NULL,NULL,'2023-02-23 12:02:00',NULL,NULL,NULL,NULL
exec ln_blue2 'UPD_TAREA',198672,100615878,793639331,NULL,NULL,400,NULL,'E',793639331,NULL,87455253,2254875,NULL,NULL,'2023-02-23 12:02:00',NULL,NULL,NULL,NULL
*/
--LN_Blue_UPDAGB 'PAUSA_TAREA',201596,100643955,793639331,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2254875,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0
/* AGB DECLARAMOS VARIABLES PARA EVITAR PARAMETER SNIFFING EN LA CONFECCIÓN DEL QUERY PLAN */
DECLARE @V_accion varchar(50) = @p_accion
DECLARE @V_contraparte int = @p_contraparte
DECLARE @V_informe int = @p_informe
DECLARE @V_user_id int = @p_user_id
DECLARE @V_item_contrato int = @p_item_contrato
DECLARE @V_producto smallint = @p_producto
DECLARE @V_id_tipo_informe int = @p_id_tipo_informe
DECLARE @V_prioridad tinyint = @p_prioridad
DECLARE @V_estado_informe varchar(1) = @p_estado_informe
DECLARE @V_ingresado_por int = @p_ingresado_por
DECLARE @V_datamanager int = @p_datamanager
DECLARE @V_asignado int = @p_asignado
DECLARE @V_cliente int = @p_cliente
DECLARE @V_fecha_limite_doc datetime = @p_fecha_limite_doc
DECLARE @V_producto_led int = @p_producto_led
DECLARE @V_fecha_comprometida datetime = @p_fecha_comprometida
DECLARE @V_objeto_informe varchar (max) = @p_objeto_informe
DECLARE @V_familia int = @p_familia
DECLARE @V_idioma_iso varchar(3) = @p_idioma_iso
DECLARE @V_fecha_inicio datetime = @p_fecha_inicio
DECLARE @V_notas_informe varchar (max) = @p_notas_informe
DECLARE @V_path_archivo varchar(150) = @p_path_archivo
DECLARE @V_extension_archivo varchar(5) = @p_extension_archivo
DECLARE @V_fecha_desde datetime = @p_fecha_desde
DECLARE @V_fecha_hasta datetime = @p_fecha_hasta
DECLARE @V_pausa_tarea bit = @p_pausa_tarea
DECLARE @estado VARCHAR(1) = NULL, @estado_tarea varchar(1) = NULL
DECLARE @ahora datetime = GETDATE()
DECLARE @usuario varchar(100) = NULL
DECLARE @preffix varchar(200) = ''
DECLARE @nombre_asignado varchar(200)
DECLARE @informe int = NULL
DECLARE @tarea INT = null
DECLARE @gestion int = NULL
DECLARE @noing int = 0, @ing int = 0, @verif int = 0, @rech int = 0, @total_estado int = 0, @total_docs int = 0, @publicados int = 0
if (@V_user_id > 0)
begin
select @usuario = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_user_id
SET @preffix = '['+@usuario+' - '+convert(varchar(10),@ahora,103) + ' ' + substring(convert(varchar,@ahora,121),12,5)+']: '
end
else
begin
SET @preffix = '['+convert(varchar(10),@ahora,103) + ' ' + substring(convert(varchar,@ahora,121),12,5)+']: '
end
DECLARE @id INT = null
DECLARE @moneda varchar(3) = null
DECLARE @precio money = NULL
DECLARE @id_contrato int = NULL
DECLARE @cliente int = NULL
DECLARE @nombre_cliente varchar(200) = NULL
DECLARE @identificador varchar(10) = NULL
DECLARE @abreviatura varchar(10) = NULL
DECLARE @numero varchar(50) = NULL
DECLARE @nombre_persona varchar(200) = NULL
DECLARE @nombre varchar(50) = NULL
DECLARE @email varchar(50) = NULL
DECLARE @telefono varchar(30) = NULL
DECLARE @nombre_tipo_informe varchar(200) = NULL
DECLARE @grupo_informes varchar(50) = NULL
DECLARE @detalle_log varchar(max)
IF (@V_accion = 'UPD_FECHA_PROX_LLAMADO' )
BEGIN
UPDATE informes SET proximo_llamado=@p_fecha_prox_llamado WHERE informe=@V_informe;
RETURN;
END
IF (@V_accion = 'UPD_FECHA_COMPROMETIDA_TAREA' )
BEGIN
UPDATE informes SET fecha_comprometida=@V_fecha_comprometida WHERE informe=@V_informe;
--
RETURN;
END
if (@V_accion = 'UPD_HIST_INFORME')
BEGIN
update informes set historial_informe = convert(varchar(max),historial_informe) + '<br>' + @V_notas_informe where informe = @V_informe and informe_padre is null
END
if (@V_accion = 'UPD_INFORME_OBS')
BEGIN
update ln_contrapartes set datos_comerciales = convert(varchar(max),datos_comerciales) + char(13) + char(10) + @V_notas_informe where contraparte = @V_contraparte
update informes set notificado_fecha = getdate(),observado_por=@V_user_id where informe = @V_informe
END
if (@V_accion = 'archivo_informe')
begin
insert into archivos_informe (path_archivo,fecha_subido,subido_por,mime_type,informe)
values (@V_path_archivo,getdate(),@V_user_id,@V_extension_archivo,@V_informe)
end
if (@V_accion = 'list_archivos')
begin
select archivos_informe.*,users.last_name,users.first_name from archivos_informe inner join users on archivos_informe.subido_por=users.user_id where informe = @V_informe
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (@V_accion = 'UPD_informe') begin
DECLARE @V_idioma1 smallint = NULL
DECLARE @V_filial1 smallint = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200)
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes
from tipos_informe
where id_tipo_informe = @V_id_tipo_informe
set @id=@V_informe
declare @prioridad int = null
declare @informe_padre int = null
select @prioridad = prioridad, @informe_padre = informe_padre from informes where informe = @id and idreg=@id
if (@id IS NOT NULL) begin
DECLARE @hist1 varchar(max) = @preffix + 'Actualización del informe.'
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Asignación del informe a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Aceptación del informe.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @hist1 + CHAR(13) + CHAR(10) + @preffix + 'Informe puesto en gestión.'
end
DECLARE @fecha_limite1 datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometida1 datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
UPDATE informes SET /*informe=@id, cliente=@cliente,*/
/*identificador=@identificador, numero=@numero, */
/*fecha_ingreso=@ahora, */
/*id_tipo_informe=@V_id_tipo_informe,*/
objeto_informe='INFORME GENERADO A TRAVES DE BACKEND - CARGA DE INFORMES ' + CHAR(13) + CHAR(10) + isnull(@V_objeto_informe, ''),
/*historial_informe= convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1,*/
/*
agb
ingresado_por=@V_ingresado_por,
*/
/*idioma=@V_idioma1, filial=@V_filial1, prioridad=@V_prioridad, datamanager=@V_datamanager,*/
asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @V_asignado, NULL),
estado_informe=@V_estado_informe,
fecha_asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
/* excepcion=0, excepcion_prod=0, notificar_cliente=0, precio=@precio, moneda=@moneda,*/
/*fecha_inicio = @V_fecha_inicio,*/
/* fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
*/
fecha_inicio = iif(@V_estado_informe in ('P','E'),@V_fecha_inicio,fecha_inicio),
/*fecha_iniciado = iif(@V_estado_informe in ('P','E'),@V_fecha_inicio,fecha_inicio),*/
fecha_iniciado = iif(@V_estado_informe in ('P','E') and fecha_iniciado is null,@V_fecha_inicio,fecha_iniciado),
fecha_entregado= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_aprobacion),
aprobado_por = iif(@V_estado_informe in ('F','K','N','C'),@p_user_id,aprobado_por),
/*
nombre_contacto_1=@nombre,
email_contacto_1=@email,
telefono_contacto_1=@telefono,
fecha_limite_doc=@fecha_limite1,
*/
/*fecha_comprometida=@fecha_comprometida1*/
fecha_comprometida=@V_fecha_comprometida,
modified = getdate(),
modified_by = @V_user_id
WHERE informe = @id and idreg=@id
if (@informe_padre is null and isnull(@prioridad,0) != isnull(@p_prioridad,0))
begin
update informes
set prioridad = @p_prioridad
WHERE (informe = @id and idreg=@id) or informe_padre = @id
end
DECLARE @GestionUPD int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @GestionUPD=ln_demo.gestion
from ln_demo INNER JOIN ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where LN_DEMO.informe =@id
if(@V_estado_informe in ('F','K','N','C'))
begin
update ln_demo set fecha_publicacion=getdate(),visible=1,fecha_hora_pub=getdate() where informe = @id and gestion = @GestionUPD
end
SET @V_informe = @id
/* Actualización de la tabla LED para vincular el informe al producto */
if (@V_producto_led > 0) begin
EXEC LN_demo_ 'UPDATE',@V_contraparte,@cliente,@V_producto_led,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,@id
end
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'CIERRE_TOTAL')
begin
DECLARE @servicio_contratadoCierre INT = NULL
DECLARE @InfPadreCierre int = null
DECLARE @GestionCierre int = null
DECLARE @ClienteCierre int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @servicio_contratadoCierre= ln_contrapartes.servicio_contratado,
@InfPadreCierre= informes.informe_padre,
@GestionCierre=ln_demo.gestion,
@ClienteCierre=informes.cliente
from informes
inner join ln_demo on informes.informe_padre=ln_demo.informe
inner join ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where informes.informe = @V_informe /*and estado_informe not in ('N','C','K','X')*/
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histCierre varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histCierre + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
/*ACTUALIZA LA TAREA */
UPDATE informes SET estado_informe=@V_estado_informe,fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*INSERTA LOG DE TAREA */
insert into informes_log (informe,horario,user_id,operacion) values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
--exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@ClienteCierre,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoCierre
/*ACTUALIZAMOS TODAS LAS TAREAS Y EL INFORME QUE HAYA QUE APROBAR */
if (@InfPadreCierre is not null )
begin
update informes set estado_informe='K',fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
from informes where (informes.informe = @InfPadreCierre or informe_padre = @InfPadreCierre ) and estado_informe not in ('N','C','K','X')
/*PUBLICAMOS EL INFORME */
UPDATE ln_demo set visible=1,fecha_publicacion=getdate(),fecha_hora_pub=getdate() where contraparte=@V_contraparte AND GESTION = @GestionCierre
--exec insertar_trazabilidad 'CIERRE Y PUBLICACION',@ClienteCierre,'CIERREINFORME','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoCierre
end
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'CANCELA_INFORME')
begin
DECLARE @servicio_contratadoCie INT = NULL
DECLARE @InfPadreCie int = null
DECLARE @GestionCie int = null
DECLARE @ClienteCie int = null
/*AVERIGUAMOS LOS DATOS DE INFORME PADRE Y GESTION */
select distinct @servicio_contratadoCierre= ln_contrapartes.servicio_contratado,
@InfPadreCie= informes.informe_padre,
@GestionCie=ln_demo.gestion,
@ClienteCie=informes.cliente
from informes
inner join ln_demo on informes.informe=ln_demo.informe
inner join ln_contrapartes on ln_demo.contraparte=ln_contrapartes.contraparte
where informes.informe = @V_informe
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histCie varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'C') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea cancelada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histCie + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
/*ACTUALIZA EL INFORME */
UPDATE informes SET estado_informe=@V_estado_informe,fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
WHERE informe = @V_informe
/*SET @V_informe = @id*/
/*INSERTA LOG DE TAREA */
insert into informes_log (informe,horario,user_id,operacion) values (@V_informe,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/*ACTUALIZAMOS TODAS LAS TAREAS Y EL INFORME QUE HAYA QUE APROBAR */
update informes set estado_informe='N',fecha_aprobacion=getdate(),fecha_entregado=getdate(), aprobado_por=@V_user_id
from informes where (informe_padre = @V_informe )
/*PUBLICAMOS EL INFORME */
UPDATE ln_demo set visible=1,fecha_publicacion=getdate(),fecha_hora_pub=getdate() where contraparte=@V_contraparte AND GESTION = @GestionCie
SELECT @id AS informe
end
end
if (upper(@V_accion) = 'UPD_INCIADO')
begin
UPDATE informes SET fecha_iniciado= GETDATE() WHERE informe = @V_informe and idreg=@V_informe
end
if (upper(@V_accion) = 'UPD_ESTADO')
begin
DECLARE @histupd varchar(max) = @preffix
if (@V_estado_informe = 'P') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histupd + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
UPDATE informes SET
/*historial_informe=convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1, */
fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),
estado_informe=@V_estado_informe
WHERE informe = @V_informe and idreg=@V_informe
/* READY TO START analizar dependencias */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA o ANULADA */
begin
declare @triggerPadreDE int = null
declare @dependencylistDE varchar(150) = null
declare @InfPadreDE int = null
declare @idTipoIformeDE int = null
declare @idTareaDE int = null
declare @estadoTareaDE varchar(1) = null
select @idTipoIformeDE=INFP.id_tipo_informe,@idTareaDE=informes.idTarea,@estadoTareaDE=informes.estado_informe,@InfPadreDE=informes.informe_padre
from informes inner join informes INFP on informes.informe_padre= INFP.informe where informes.informe = @V_informe
select LN_informe_design.idElem,informes.estado_informe,informes.ready_to_start,informes.informe,LN_informe_design.dependency_tree,
(select count(*) from informes where informe_padre = @InfPadreDE and estado_informe not in ('K','N') and idTarea in (select item from dbo.DelimitedSplit8K(LN_informe_design.dependency_tree,','))) AS pend_aprobar
from LN_informe_design inner join informes on ln_informe_design.idElem = informes.idTarea
where idTipoInforme=@idTipoIformeDE and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1
and informes.informe_padre = @InfPadreDE
and idelem in (select distinct LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea)
end
/*READY TO START analizar dependencias */
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (upper(@V_accion) = 'UPD_TAREA2')
begin
DECLARE @V_idiomaTD smallint = NULL
DECLARE @V_filialTD smallint = NULL
DECLARE @servicio_contratadoD INT = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200),
@servicio_contratadoD= LN_contrapartes.servicio_contratado
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes,@V_id_tipo_informe=id_tipo_informe
from tipos_informe where id_tipo_informe in (SELECT id_tipo_informe FROM informes where informe = @V_informe)
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histTD varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histTD + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
DECLARE @fecha_limiteTD datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometidaTD datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
set @fecha_comprometidaTD = @V_fecha_comprometida
UPDATE informes SET prioridad=@V_prioridad, asignado=@V_asignado,
estado_informe=@V_estado_informe,
fecha_asignado=iif(asignado != @V_asignado, @ahora, fecha_asignado),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, fecha_aceptacion),
fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
/*fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),*/
/*fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),*/
fecha_entregado= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K','N','C'),GETDATE(),fecha_aprobacion),
aprobado_por = iif(@V_estado_informe in ('F','K','N','C'),@p_user_id,aprobado_por),
fecha_comprometida=@fecha_comprometidaTD
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
/*exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@cliente,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratadoD*/
/* READY TO START analizar dependencias */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA O ANULADA */
begin
declare @triggerPadreD int = null
declare @dependencylistD varchar(150) = null
declare @InfPadre int = null
declare @idTipoIforme int = null
declare @idTarea int = null
declare @estadoTarea varchar(1) = null
select @idTipoIforme=INFP.id_tipo_informe,@idTarea=informes.idTarea,@estadoTarea=informes.estado_informe,@InfPadre=informes.informe_padre
from informes inner join informes INFP on informes.informe_padre= INFP.informe where informes.informe = @V_informe
-- EXEC LN_Blue_UPD 'UPD_TAREA2','199109','100621941','422946826',NULL,NULL,'4071729',NULL,'K','422946826',NULL,'15342812','2254875',NULL,NULL,'2023-03-13 11:01:00',nULL,NULL,NULL,'2023-03-13 11:00:00'
select LN_informe_design.idElem,informes.estado_informe,informes.ready_to_start,informes.informe,LN_informe_design.dependency_tree,
(select count(*) from informes where informe_padre = @InfPadre and estado_informe not in ('K','N') and idTarea in (select item from dbo.DelimitedSplit8K(LN_informe_design.dependency_tree,','))) AS pend_aprobar
from LN_informe_design inner join informes on ln_informe_design.idElem = informes.idTarea
where idTipoInforme=@idTipoIforme and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1
and informes.informe_padre = @InfPadre
and idelem in (select distinct LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea)
end
/*READY TO START analizar dependencias */
/*SELECT @id AS informe*/
end
end
/* Dada una contraparte, producto y los datos del informe da de alta el informe padre y las subtareas de producción */
if (upper(@V_accion) = 'UPD_TAREA')
begin --100621941
DECLARE @V_idiomaT smallint = NULL
DECLARE @V_filialT smallint = NULL
DECLARE @servicio_contratado INT = NULL
select @V_idioma1 = idioma from idiomas where codigo_iso = @V_idioma_iso
select @V_filial1 = filial from filiales where country_code = 'AR'
select @cliente = LN_contrapartes.cliente,
@identificador = LEFT(padrones.identificador,10),
@abreviatura = LEFT(identificadores.abreviatura,10),
@numero = LEFT(padrones.identificacion,50),
@nombre_persona = LEFT(padrones.nombre_persona,200),
@nombre = LEFT(LN_contrapartes.nombre_contacto,50),
@email = LEFT(LN_contrapartes.email_contacto,50),
@telefono = LEFT(LN_contrapartes.telefono_contacto,30),
@nombre_cliente = LEFT(clientes.nombre_cliente, 200),
@servicio_contratado= LN_contrapartes.servicio_contratado
from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
where LN_contrapartes.contraparte = @V_contraparte
select @nombre_tipo_informe = nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',
@grupo_informes = grupo_informes,@V_id_tipo_informe=id_tipo_informe
from tipos_informe where id_tipo_informe in (SELECT id_tipo_informe FROM informes where informe = @V_informe)
set @id=@V_informe
if (@id IS NOT NULL) begin
/*DECLARE @histT varchar(max) = @preffix + 'Creación de la tarea.'*/
DECLARE @histT varchar(max) = @preffix
if (@V_estado_informe = 'A' or @V_estado_informe = 'T' or @V_estado_informe = 'P') begin
select @nombre_asignado = isnull(first_name,'') + ' ' + isnull(last_name, '')
from users where user_id = @V_asignado
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Asignación de la tarea a ' + @nombre_asignado
end
if (@V_estado_informe = 'T' or @V_estado_informe = 'P') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Aceptación de la tarea.'
end
if (@V_estado_informe = 'P') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en gestión.'
end
if (@V_estado_informe = 'E') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en proceso.'
end
if (@V_estado_informe = 'N') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea anulada.'
end
if (@V_estado_informe = 'W') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea puesta en pausa.'
end
if (@V_estado_informe = 'F') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea finalizada.'
end
if (@V_estado_informe = 'M') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea a completar.'
end
if (@V_estado_informe = 'K') begin
SET @hist1 = @histT + CHAR(13) + CHAR(10) + @preffix + 'Tarea aprobada.'
end
DECLARE @fecha_limiteT datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_limite_doc))
DECLARE @fecha_comprometidaT datetime = dateadd(second,-1,dateadd(day,1,@V_fecha_comprometida))
set @fecha_comprometidaT = @V_fecha_comprometida
UPDATE informes SET identificador=@identificador, numero=@numero, fecha_ingreso=@ahora, id_tipo_informe=@V_id_tipo_informe,
objeto_informe='TAREA GENERADA ' + CHAR(13) + CHAR(10) + isnull(@V_objeto_informe, ''),
/*historial_informe=convert(varchar(max),historial_informe) + CHAR(13) + CHAR(10) + @hist1, */
ingresado_por=@V_ingresado_por, idioma=@V_idioma1, filial=@V_filial1, prioridad=@V_prioridad, datamanager=@V_datamanager,
/*asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @V_asignado, NULL), */
asignado=@V_asignado,
estado_informe=@V_estado_informe,
fecha_asignado=iif(asignado != @V_asignado, @ahora, fecha_asignado),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, fecha_aceptacion),
/* fecha_asignado=iif(@V_estado_informe = 'A' OR @V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
fecha_aceptacion=iif(@V_estado_informe = 'T' OR @V_estado_informe = 'P', @ahora, NULL),
*/
/* fecha_asignado=getdate(),
fecha_aceptacion=getdate(),
*/
excepcion=0, excepcion_prod=0, notificar_cliente=0, precio=@precio, moneda=@moneda,
fecha_inicio = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_iniciado = iif(@V_estado_informe in ('A','P','E'),@V_fecha_inicio,fecha_inicio),
fecha_entregado= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_entregado),
fecha_aprobacion= iif(@V_estado_informe in ('F','K'),GETDATE(),fecha_aprobacion),
nombre_contacto_1=@nombre, email_contacto_1=@email, telefono_contacto_1=@telefono,fecha_limite_doc=@fecha_limite1,
fecha_comprometida=@fecha_comprometidaT
WHERE informe = @id and idreg=@id
SET @V_informe = @id
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@id,getdate(),@V_user_id,iif(@V_estado_informe in ('P','E'),'I',iif(@V_estado_informe in ('W','M'),'P',iif(@V_estado_informe in ('F','K','C','N'),'F','F'))))
/* TRAZABILIDAD DEL UPDATE DE TAREAS */
--exec insertar_trazabilidad 'ACTUALIZACION DE TAREAS',@cliente,'UPDTASKS','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratado
/* READY TO START */
if (@V_estado_informe in ('K','F','N')) /* SOLO SI LA TAREA ES APROBADA O ANULADA */
begin
declare @triggerPadre int = null
declare @dependencylist varchar(150) = null
select /*informes.informe,informes.id_tipo_informe,*/
@triggerPadre= iPPAL.informe,/*iPPAL.id_tipo_informe as TipoInfPPAL,*/
@dependencylist= LN_informe_design.dependency_tree
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea
/* where informes.informe = @V_informe
and LN_informe_design.idElem = informes.idTarea
*/
/* update informes set ready_to_start=1,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe,ready_to_start_user_id=@V_user_id
where informe_padre = @triggerPadre and estado_informe='A' and id_tipo_informe in (
select id_tipo_informe_blue from ln_tareas INNER JOIN dbo.DelimitedSplit8K(@dependencylist, ',') LISTOSPARAINICIAR ON LN_tareas.idTarea = convert(int,LISTOSPARAINICIAR.Item) where id_tipo_informe_blue is not null )
*/
update informes set ready_to_start=1,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe,ready_to_start_user_id=@V_user_id
where informe_padre = @triggerPadre and estado_informe='A' and id_tipo_informe in (
/*select id_tipo_informe_blue from ln_tareas INNER JOIN dbo.DelimitedSplit8K(@dependencylist, ',') LISTOSPARAINICIAR ON LN_tareas.idTarea = convert(int,LISTOSPARAINICIAR.Item) where id_tipo_informe_blue is not null )*/
select id_tipo_informe_blue from ln_tareas where id_tipo_informe_blue is not null and idtarea in ( select LN_informe_design.idElem
from informes
inner join informes iPPAL on informes.informe_padre = iPPAL.informe
inner join LN_informe_design on (LN_informe_design.idTipoInforme=iPPAL.id_tipo_informe and LN_informe_design.tipo_elem='T' and LN_informe_design.activo=1)
cross apply dbo.DelimitedSplit8K(LN_informe_design.dependency_tree, ',') LISTOSPARAINICIAR
where informes.informe = @V_informe and LISTOSPARAINICIAR.Item = informes.idtarea) )
/* V1
select @nombre_tipo_informe= nombre_tipo_informe + ' (' + tipo_informe + ' ' + version + ')',@grupo_informes = grupo_informes,@V_id_tipo_informe = tipos_informe.id_tipo_informe,
@triggerPadre= informes.informe_padre
from tipos_informe inner join informes on tipos_informe.id_tipo_informe = informes.id_tipo_informe
where informes.informe = @V_informe
update informes set estado_informe=estado_informe,
ready_to_start=1,ready_to_start_user_id=@V_user_id,ready_to_start_date=getdate(),ready_to_start_trigger_task=@V_informe
where informe_padre = @triggerPadre and id_tipo_informe in (select id_tipo_informe_blue from LN_tareas where idTarea_Padre in (select idTarea from LN_tareas where id_tipo_informe_blue=@V_id_tipo_informe))
and estado_informe='A'
V1 */
/* TRAZABILIDAD DEL READY 2 START*/
--exec insertar_trazabilidad 'TAREAS DEPENDIENTES LISTAS PARA INICIAR',@cliente,'READYTOSTART','BACK',@V_contraparte,@V_user_id,NULL,@servicio_contratado
end
/*READY TO START */
SELECT @id AS informe
end
end
/* PAUSAR TAREAS */
if (upper(@V_accion) = 'PAUSA_TAREA')
begin
/*AGB */
update informes set pausa = @V_pausa_tarea where informe = @V_informe and idreg=@V_informe and informe_padre is not null
/*
AGB UPD LOG INFORMES
*/
insert into informes_log (informe,horario,user_id,operacion)
values (@V_informe,getdate(),@V_user_id,iif(@V_pausa_tarea = 1,'P','I'))
select @V_informe as tarea,@V_pausa_tarea as pausa,@V_informe as ID,@V_user_id as usuario,iif(@V_pausa_tarea = 1,'P','I') as operacion
end
END
GO
Depends On
15Used By
No items found