Se agrega el grafico, los SP. KLB

git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C508
This commit is contained in:
kledezma 2021-01-14 17:48:58 +00:00
parent f4041b24a1
commit 397085f2dc
5 changed files with 1102 additions and 374 deletions

View file

@ -0,0 +1,138 @@
USE [SIGPC]
GO
/****** Object: StoredProcedure [dbo].[PA_DESGLOCEGESTIONESGRAFICO] Script Date: 1/14/2021 11:51:34 AM ******/
DROP PROCEDURE [dbo].[PA_DESGLOCEGESTIONESGRAFICO]
GO
/****** Object: StoredProcedure [dbo].[PA_DESGLOCEGESTIONESGRAFICO] Script Date: 1/14/2021 11:51:34 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Juan Pablo Monge Delgado CR-ATESA 13/07/2020
-- Create date: 14/02/2018
-- Description: Carga el último consecutivo obtenido por sigla
-- Modificado: Juan Pablo Monge Delgado CR-ATESA 13/07/2020
-- Actualiza el consecutivo en la tabla dependencia
-- Construye el nombre del documento
-- Se agrega codigo para el manejo de las transacciones y el aislamiento de recursos para evitar lectura sucia o fantasma.
-- =============================================
CREATE PROCEDURE [dbo].[PA_DESGLOCEGESTIONESGRAFICO]
@p_status VARCHAR(2) = '' OUTPUT
,@p_message VARCHAR(500) = '' OUTPUT
, @Anno INT
,@Mes INT
,@OtroMes INT
WITH EXECUTE AS OWNER
AS
BEGIN
--CONFIGURACION DE LA CONSULTA
SET NOCOUNT ON --ACTIVA EL CONTEO DE REGISTROS QUE SE VERAN AFECTADOS EN LA TRANSACCION
SET XACT_ABORT ON --SI UNA INSTRUCCION TRANSACT-SQL GENERA UN ERROR EN TIEMPO DE EJECUCION, SE TERMINA TODA LA TRANSACCION Y SE REVIERTE
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ; --NO PERMITE LECTURA DEL REGISTRO ACTUAL, NI MODIFICACION O INSERCION DE OTRO REGISTRO QUE PUDIESE TENER CLAVE DUPLICADA
BEGIN TRY
--DECLARACION DE VARIABLES
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
BEGIN TRANSACTION --EN CASO DE REALIZAR MODIFICACIONES A LA BASE DE DATOS INSERT UPDATE DELETE
IF @OtroMes < @Mes
BEGIN
SET @OtroMes = @Mes
END
IF @Mes != 0 AND (@Mes < @OtroMes OR @Mes = @OtroMes) AND @Mes IS NOT NULL AND @OtroMes IS NOT NULL
BEGIN
SELECT
[MESDESGLOCEGESTIONES] AS 'Numero Mes'
,FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/2020' as date) , 'MMM') AS 'Mes'
,([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]) -[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] AS Ingresadas
,[PENDIENTEDESGLOCEGESTIONES] AS Pendientes
FROM
[SIGPC].[dbo].[t_rpt_desglocegestiones]
WHERE
ANNODESGLOCEGESTIONES = @Anno
AND
[MESDESGLOCEGESTIONES] BETWEEN @Mes AND @OtroMes
END
ELSE IF @Mes != 0 AND (@OtroMes IS NULL OR @OtroMes = 0)
BEGIN
SELECT
[MESDESGLOCEGESTIONES] AS 'Numero Mes'
,FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/2020' as date) , 'MMM') AS 'Mes'
,([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]) -[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] AS Ingresadas
,[PENDIENTEDESGLOCEGESTIONES] AS Pendientes
FROM
[SIGPC].[dbo].[t_rpt_desglocegestiones]
WHERE
[MESDESGLOCEGESTIONES] = @Mes
AND
ANNODESGLOCEGESTIONES = @Anno
END
ELSE
BEGIN
SELECT
[MESDESGLOCEGESTIONES] AS 'Numero Mes'
,FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/2020' as date) , 'MMM') AS 'Mes'
,([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]) -[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] AS Ingresadas
,[PENDIENTEDESGLOCEGESTIONES] AS Pendientes
FROM
[SIGPC].[dbo].[t_rpt_desglocegestiones]
WHERE
ANNODESGLOCEGESTIONES = @Anno
END
--EN CASO DE OCUPAR SUBIR UN ERROR PERSONALIZADO UTILIZAR EL RAISERROR
--EJEMPLO
--SELECT @ErrorMessage = 'El consecutivo ya existe en la base de datos. Consecutivo actual:' + convert( NVARCHAR(100), @CONSECUTIVODOCUMENTO)
-- SET @p_status = '99'
-- SET @p_message = @ErrorMessage
-- RAISERROR(@ErrorMessage,14,16)
COMMIT TRANSACTION --CONVIERTE LOS CAMBIOS DE LA TRANSACCION EN PARTE PERMANENTE DE LA BD Y LIBERA LOS RECURSOS POR EJEMPLO BLOQUEOS
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SET @p_status = '99'
SET @p_message = 'Error Número: '+CONVERT(VARCHAR(10),ERROR_NUMBER())+', '+ERROR_MESSAGE()
SELECT @ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH
END
GO

View file

@ -0,0 +1,241 @@
USE [SIGPC]
GO
/****** Object: StoredProcedure [dbo].[PA_DESGLOCEGESTIONESTABLA] Script Date: 1/14/2021 11:51:48 AM ******/
DROP PROCEDURE [dbo].[PA_DESGLOCEGESTIONESTABLA]
GO
/****** Object: StoredProcedure [dbo].[PA_DESGLOCEGESTIONESTABLA] Script Date: 1/14/2021 11:51:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Juan Pablo Monge Delgado CR-ATESA 13/07/2020
-- Create date: 14/02/2018
-- Description: Carga el último consecutivo obtenido por sigla
-- Modificado: Juan Pablo Monge Delgado CR-ATESA 13/07/2020
-- Actualiza el consecutivo en la tabla dependencia
-- Construye el nombre del documento
-- Se agrega codigo para el manejo de las transacciones y el aislamiento de recursos para evitar lectura sucia o fantasma.
-- =============================================
CREATE PROCEDURE [dbo].[PA_DESGLOCEGESTIONESTABLA]
@p_status VARCHAR(2) = '' OUTPUT
,@p_message VARCHAR(500) = '' OUTPUT
, @Anno INT
,@Mes INT
,@OtroMes INT
WITH EXECUTE AS OWNER
AS
BEGIN
--CONFIGURACION DE LA CONSULTA
SET NOCOUNT ON --ACTIVA EL CONTEO DE REGISTROS QUE SE VERAN AFECTADOS EN LA TRANSACCION
SET XACT_ABORT ON --SI UNA INSTRUCCION TRANSACT-SQL GENERA UN ERROR EN TIEMPO DE EJECUCION, SE TERMINA TODA LA TRANSACCION Y SE REVIERTE
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ; --NO PERMITE LECTURA DEL REGISTRO ACTUAL, NI MODIFICACION O INSERCION DE OTRO REGISTRO QUE PUDIESE TENER CLAVE DUPLICADA
BEGIN TRY
--DECLARACION DE VARIABLES
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
BEGIN TRANSACTION --EN CASO DE REALIZAR MODIFICACIONES A LA BASE DE DATOS INSERT UPDATE DELETE
DECLARE @Colums VARCHAR(MAX);
DECLARE @query VARCHAR(MAX);
DECLARE @SomeString varchar(8000) = '';
DECLARE @cnt INT = @Mes;
--DROP TABLE #TablaTemporal
CREATE TABLE #TablaTemporal (
[Total en SIGDD] [varchar](200) NOT NULL,
[Cancelada] [varchar](200) NOT NULL,
[Bloqueada] [varchar](200) NOT NULL,
[Ingresadas en SIGDD] [varchar](200)NOT NULL,
[Finalizada] [varchar](200) NOT NULL,
[Pendiente] [varchar](200) NOT NULL,
[% de atencion] [varchar](200) NOT NULL,
[% pendientes de resolver][varchar](200) NOT NULL,
[Fecha] [varchar](100) NOT NULL
)
IF (@OtroMes = 0 OR @OtroMes IS NULL OR @OtroMes < @Mes) AND @Mes != 0
BEGIN
SET @OtroMes = @Mes
END
ELSE IF (@OtroMes = 0 OR @OtroMes IS NULL) AND (@Mes = 0 OR @Mes IS NULL)
BEGIN
SET @Mes = 1
SET @OtroMes = 12
SET @cnt =@Mes
END
WHILE @cnt <= @OtroMes
BEGIN
SELECT @Colums = FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/2000' as date) , 'MMM') FROM [SIGPC].[dbo].[t_rpt_desglocegestiones] WHERE [MESDESGLOCEGESTIONES] = @cnt AND [ANNODESGLOCEGESTIONES] = @Anno
IF @Colums = ''
BREAK;
--PRINT @Colums
SET @SomeString += '['+ @Colums +'],';
SET @Colums = ''
SET @cnt = @cnt + 1;
END;
IF @SomeString != ''
BEGIN
SET @SomeString = substring(@SomeString, 1, (len(@SomeString) - 1))
INSERT INTO #TablaTemporal (
[Total en SIGDD] ,
[Cancelada] ,
[Bloqueada] ,
[Ingresadas en SIGDD] ,
[Finalizada] ,
[Pendiente] ,
[% de atencion] ,
[% pendientes de resolver] ,
[Fecha]
) SELECT
[CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]
,[CANCELADADESGLOCEGESTIONES]
,[BLOQUEADADESGLOCEGESTIONES]
, [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]
,[FINALIZADADESGLOCEGESTIONES]
,[PENDIENTEDESGLOCEGESTIONES]
,CASE
WHEN (([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES])-[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] ) = 0 THEN 0
WHEN (([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES])-[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] ) != 0
THEN
CONVERT(DECIMAL(10,2),CONVERT(DECIMAL(10,2),[FINALIZADADESGLOCEGESTIONES]) * 100 / CONVERT(DECIMAL(10,2),(([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]) - [CANCELADADESGLOCEGESTIONES] - [BLOQUEADADESGLOCEGESTIONES]) ) )
END
, CASE
WHEN (([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES])-[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] ) = 0 THEN 0
WHEN (([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES])-[CANCELADADESGLOCEGESTIONES] -[BLOQUEADADESGLOCEGESTIONES] ) != 0
THEN
CONVERT(DECIMAL(10,2),CONVERT(DECIMAL(10,2),PENDIENTEDESGLOCEGESTIONES) * 100 / CONVERT(DECIMAL(10,2),(([CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]) - [CANCELADADESGLOCEGESTIONES] - [BLOQUEADADESGLOCEGESTIONES]) ) )
END
, FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/2000' as date) , 'MMM')
FROM
[SIGPC].[dbo].[t_rpt_desglocegestiones]
WHERE
[ANNODESGLOCEGESTIONES] = @Anno AND [MESDESGLOCEGESTIONES] != 0
set @query = '
SELECT
*,
CASE
WHEN Estado = ''Total en SIGDD'' THEN 1
WHEN Estado = ''Cancelada'' THEN 2
WHEN Estado = ''Bloqueada'' THEN 3
WHEN Estado = ''Ingresadas en SIGDD'' THEN 4
WHEN Estado = ''Finalizada'' THEN 5
WHEN Estado = ''Pendiente'' THEN 6
WHEN Estado = ''% de atencion'' THEN 7
WHEN Estado = ''% pendientes de resolver'' THEN 8
END AS [Order]
FROM #TablaTemporal
UNPIVOT ([Value] FOR Estado IN (
[Total en SIGDD] ,
[Cancelada] ,
[Bloqueada] ,
[Ingresadas en SIGDD] ,
[Finalizada] ,
[Pendiente],
[% de atencion] ,
[% pendientes de resolver]
)) Unp
pivot(
max([Value])
for [Fecha] IN ('+@SomeString+')
) Piv
ORDER BY [Order]
'
execute(@query)
END;
ELSE
BEGIN
SELECT '' AS 'Estado',
'' AS 'ene.',
'' AS 'feb.',
'' AS 'mar.',
'' AS 'abr.',
'' AS 'may.',
'' AS 'jun.',
'' AS 'jul.',
'' AS 'ago.',
'' AS 'sep.',
'' AS 'oct.',
'' AS 'nov.',
'' AS 'dic.',
'' AS 'Order'
FROM #TablaTemporal
END;
--EN CASO DE OCUPAR SUBIR UN ERROR PERSONALIZADO UTILIZAR EL RAISERROR
--EJEMPLO
--SELECT @ErrorMessage = 'El consecutivo ya existe en la base de datos. Consecutivo actual:' + convert( NVARCHAR(100), @CONSECUTIVODOCUMENTO)
-- SET @p_status = '99'
-- SET @p_message = @ErrorMessage
-- RAISERROR(@ErrorMessage,14,16)
COMMIT TRANSACTION --CONVIERTE LOS CAMBIOS DE LA TRANSACCION EN PARTE PERMANENTE DE LA BD Y LIBERA LOS RECURSOS POR EJEMPLO BLOQUEOS
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SET @p_status = '99'
SET @p_message = 'Error Número: '+CONVERT(VARCHAR(10),ERROR_NUMBER())+', '+ERROR_MESSAGE()
SELECT @ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH
END
GO

View file

@ -1,85 +0,0 @@
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE SP_DESGLOCE_GESTIONES
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
CREATE TABLE #TablaTemporal (
[Total en SIGDD] [int] NOT NULL,
[Cancelada] [int] NOT NULL,
[Bloqueada] [int] NOT NULL,
[Ingresadas en SIGDD] [int] NOT NULL,
[Finalizada] [int] NOT NULL,
[Pendiente] [int] NOT NULL,
--[% de atencion] [int] NOT NULL,
--[% pendientes de resolver] [int] NOT NULL,
[Fecha] [varchar](100) NOT NULL
--[Año] [int] NOT NULL,
)
INSERT INTO #TablaTemporal (
[Total en SIGDD] ,
[Cancelada] ,
[Bloqueada] ,
[Ingresadas en SIGDD] ,
[Finalizada] ,
[Pendiente] ,
--[% de atencion] ,
--[% pendientes de resolver] ,
--[Mes] ,
[Fecha]
) SELECT
[CANCELADADESGLOCEGESTIONES] +[BLOQUEADADESGLOCEGESTIONES] + [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]
,[CANCELADADESGLOCEGESTIONES]
,[BLOQUEADADESGLOCEGESTIONES]
, [FINALIZADADESGLOCEGESTIONES]+[PENDIENTEDESGLOCEGESTIONES]
,[FINALIZADADESGLOCEGESTIONES]
,[PENDIENTEDESGLOCEGESTIONES]
, FORMAT(CAST('01/'+CONVERT(varchar,[MESDESGLOCEGESTIONES] )+'/'+CONVERT(varchar,[ANNODESGLOCEGESTIONES]) as date) , 'MMM yyyy')
FROM
[SIGPC].[dbo].[t_rpt_desglocegestiones]
SELECT * FROM #TablaTemporal
UNPIVOT ([Value] FOR Estado IN (
[Total en SIGDD] ,
[Cancelada] ,
[Bloqueada] ,
[Ingresadas en SIGDD] ,
[Finalizada] ,
[Pendiente]
)) Unp
pivot(
max([Value])
for [Fecha] IN ([ene. 2020],[feb. 2020],[mar. 2020],[abr. 2020],[may. 2020],[jun. 2020],[jul. 2020],[ago. 2020],[sep. 2020],[oct. 2020],[nov. 2020],[ dic. 2020])
) Piv
END
GO

File diff suppressed because it is too large Load diff