IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'dbo.CPJ_Transacciones_Abrir') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE dbo.CPJ_Transacciones_Abrir 
END
GO

CREATE PROCEDURE [dbo].[CPJ_Transacciones_Abrir] @pJson VARCHAR(8000)
AS
SET NOCOUNT ON


/*Variables recibidas por parámetro a traves del JSON*/
DECLARE @pFlagUsarTrans			TINYINT
DECLARE @pModoDebug				TINYINT
DECLARE @pId_Usuario			SMALLINT

SET @pFlagUsarTrans				= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'FlagUsarTrans')), 0)
SET @pModoDebug					= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'ModoDebug')), 0)
SET @pId_Usuario				= ISNULL(CONVERT(SMALLINT, dbo.CF_JSON_VALUE(@pJson,'Id_Usuario')), 0)
/*FIN Variables recibidas por parámetro a traves del JSON*/

/*Variable de Retorno del Stored*/
DECLARE @rtaMsjStored			VARCHAR(4000)
/*FIN Variable de Retorono del Stored*/

/*Declaracion de Variables*/
DECLARE @Id_Trans					INT
DECLARE @Descripcion				VARCHAR(50)
DECLARE @Fecha_Mov					DATETIME
/*FIN Declaracion de Variables*/


BEGIN TRY
	
	IF @pFlagUsarTrans <> 0 
	BEGIN
		BEGIN TRAN
	END

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Ingreso a Stored Procedure: CPJ_Transacciones_Abrir'
		PRINT 'Parámetros:'
		PRINT 'ModoDebug: ' + CONVERT(VARCHAR(10), @pModoDebug) + '. Id_Usuario: ' + CONVERT(VARCHAR(10), @pId_Usuario)
	END

	IF(@pId_Usuario = 0)
	BEGIN
		SET @pId_Usuario = -1
	END

	SET @Descripcion	= 'Apertura CPJ_Transacciones_Abrir'
	SET @Fecha_Mov		= GETDATE()
	SET @Id_Trans		= ISNULL((SELECT MAX(Id_Trans) FROM Transacciones), 0) + 1

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Inserta en Transacciones.'
	END

	INSERT INTO Transacciones
	(Id_Trans, Descripcion,	Fecha_Mov,
	Id_Usuario)
	VALUES
	(@Id_Trans,	@Descripcion, @Fecha_Mov,
	@pId_Usuario)

	IF @pFlagUsarTrans <> 0 
	BEGIN
		COMMIT
	END

	SET @rtaMsjStored		=	'{' +
								dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') +
								'}'

	SELECT	 0				AS ErrorNumber 
			,0				AS ErrorSeverity  
			,0				AS ErrorState 
			,0				AS ErrorProcedure  
			,0				AS ErrorLine		
			,@rtaMsjStored	AS ErrorMessage

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Fin Stored Procedure: CPJ_Transacciones_Abrir'
	END

END TRY  


BEGIN CATCH  
    EXECUTE usp_GetErrorInfo

	IF @pFlagUsarTrans <> 0 
	BEGIN
		ROLLBACK
	END

	RETURN 9999
END CATCH

RETURN 0
