139 lines
4.7 KiB
MySQL
139 lines
4.7 KiB
MySQL
|
|
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
|
||
|
|
|