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

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


/*Variables recibidas por parámetro a traves del JSON*/
DECLARE @pFlagUsarTrans			TINYINT
DECLARE @pModoDebug				TINYINT
DECLARE @pId_Contrato			INT
DECLARE @pId_Usuario			SMALLINT
DECLARE @pFecha					DATETIME
DECLARE @pLote					VARCHAR(20)
DECLARE @pFecha_QA				DATETIME
DECLARE @pFecha_Venc			DATETIME
DECLARE @pFecha_Rem_Desde		DATETIME
DECLARE @pFecha_Rem_Hasta		DATETIME
DECLARE @pRegistrar_Errores		TINYINT
DECLARE @pOmitir_Resultado_OK   TINYINT
DECLARE @pId_Tiempo             CHAR(3)
DECLARE @pRefacturar            TINYINT
DECLARE @pFlag_Tabla_Temp       TINYINT
DECLARE @pIncl_Cbtes_Cero       TINYINT

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 @pOmitir_Resultado_Ok		= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Omitir_Resultado_OK')), 0)
SET @pId_Tiempo	            	= ISNULL(CONVERT(CHAR(3), dbo.CF_JSON_VALUE(@pJson,'Id_Tiempo')), '')
SET @pRefacturar		        = ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Refacturar')), 0)
SET @pId_Contrato				= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Contrato')), 0)
SET @pId_Usuario				= ISNULL(CONVERT(SMALLINT, dbo.CF_JSON_VALUE(@pJson,'Id_Usuario')), 0)
SET @pFecha						= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha')),GETDATE())
SET @pLote						= ISNULL(CONVERT(VARCHAR(20), dbo.CF_JSON_VALUE(@pJson,'Lote')), '')
SET @pFecha_QA					= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_QA')),GETDATE())
SET @pFecha_Venc				= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Venc')),GETDATE())
SET @pFecha_Rem_Desde			= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Rem_Desde')),GETDATE())
SET @pFecha_Rem_Hasta			= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Rem_Hasta')),GETDATE())
SET @pRegistrar_Errores			= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Registrar_Errores')), 0)
SET @pFlag_Tabla_Temp           = ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Flag_Tabla_Temp')), 0)
SET @pIncl_Cbtes_Cero           = ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Incl_Cbtes_Cero')), 0)

/*FIN Variables recibidas por parámetro a traves del JSON*/


/*Variable de Retorno del Stored*/
DECLARE @rtaErrorStored						INT
DECLARE @rtaMsjStored						VARCHAR(4000)
DECLARE @Result_Stored_Invocado				INT
DECLARE @Result_Tabla_Stored_Invocado TABLE (ErrorNumber	INT,
											ErrorSeverity	INT,
											ErrorState		INT,
											ErrorProcedure  VARCHAR(1000),
											ErrorLine		INT,
											ErrorMessage	VARCHAR(4000))
DECLARE @JSON_Parametros_Stored_Invocado	VARCHAR(8000)
DECLARE @rta_JSON_Stored_Invocado			VARCHAR(8000)
/*FIN Variable de Retorono del Stored*/


/*Declaracion de Variables*/
DECLARE @Id_Trans					INT
DECLARE @Id_Cliente					INT
DECLARE @Id_Tipo_Cbte				CHAR(4)
DECLARE @Id_Cond_Pago				SMALLINT
DECLARE @Id_Moneda					CHAR(3)
DECLARE @Cotizacion					DECIMAL(12, 4)
DECLARE @Plazo_Venc					SMALLINT
DECLARE @FechaVence					DATETIME
DECLARE @Id_Tipo_Con				SMALLINT
DECLARE @Id_Producto				VARCHAR(14)
DECLARE @Cantidad					DECIMAL(15,5)
DECLARE @Bonif						DECIMAL(5,2)
DECLARE @Porc_Iva					DECIMAL(5,2)
DECLARE @Precio_Grav				DECIMAL(15,5)
DECLARE @Precio_Exen				DECIMAL(15,5)
DECLARE @Flag_Agru_Cli_Ref			TINYINT
DECLARE @Id_Cliente_Integ			INT
DECLARE @Observacion_Incluye_Integ	VARCHAR(8000)
DECLARE	@Compromete_Factura			SMALLINT
DECLARE	@Compromete_Remitos			SMALLINT
DECLARE @Flag_Remitos				TINYINT
DECLARE @Id_Tipo_Cbte_Remito		CHAR(4)
DECLARE @Fecha_QA					DATETIME
DECLARE @Fecha_Venc					DATETIME
DECLARE @Id_Trans_Remito			INT
DECLARE @TotalCbte                  DECIMAL(15,2)
/*FIN Declaracion de Variables*/


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

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

	/*===================================================================*/	

	--INICIALIZO VARIABLES

			SELECT 
					@Id_Cliente		= ISNULL(Id_Cliente, 0),
					@Id_Tipo_Cbte	= ISNULL(Id_Tipo_Cbte, ''),
					@Id_Cond_Pago	= ISNULL(Id_Cond_Pago, 0),
					@Id_Tipo_Con	= ISNULL(Id_Tipo_Con, 0),
					@Bonif			= ISNULL(Porc_Bonif,0)
					FROM Contratos 
					WHERE 
					Id_Contrato		= @pId_Contrato

			IF(@Id_Cond_Pago = 0)
			BEGIN
				SET @Id_Cond_Pago = (SELECT ISNULL(Id_Cond_Pago, 0) FROM Clientes WHERE Id_Cliente = @Id_Cliente)
			END
	
			SELECT
					@Id_Moneda			= ISNULL(Id_Moneda, ''),
					@Compromete_Factura	= ISNULL(Compromete_Factura, 0),
					@Compromete_Remitos	= ISNULL(Compromete_Remitos, 0)
					FROM Cbtes_Tipos
					WHERE
					Id_Tipo_Cbte = @Id_Tipo_Cbte
	
			IF(@Id_Moneda = '')
			BEGIN
				SET @Id_Moneda = (dbo.CF_xParam('Moneda_Nacional'))
			END

			SELECT
					@Cotizacion		= ISNULL(Cotizacion, 1) 
					FROM Valores_Monedas 
					WHERE 
					Id_Moneda = @Id_Moneda

			SELECT 
					@Plazo_Venc		= ISNULL(Plazo_Venc, 0)
					FROM Cbtes_Cond_Pago
					WHERE
					Id_Cond_Pago = @Id_Cond_Pago

			SET @FechaVence = DATEADD(dd, @Plazo_Venc, @pFecha)


	/*===================================================================*/

	/*3.1) Por Contratos_Tipos_Prod*/
	IF(@pModoDebug = 1) PRINT '3.1) Por Contratos_Tipos_Prod'
	
	SELECT * INTO #ITEMS_CBTE FROM CBTES_ITEMS WHERE 1=0

	SET @ID_TRANS = 0

	DECLARE curContratoGenerarCbtes_ItemsXContratos_Tipos CURSOR FOR
			SELECT C.Id_Producto, ISNULL(C.Cantidad,0), ISNULL(T.Porc1,0)
				FROM Contratos_Tipos_Prod C, Productos P , Productos_TasaIva T
				WHERE
				C.Id_Tipo_Con = @Id_Tipo_Con
				AND C.Id_Tipo_Con <> 0
				AND ISNULL(C.Id_Producto,'') <> ''
				AND C.Id_Producto = P.Id_Producto
				AND T.Id_Iva = P.Id_Iva

	OPEN curContratoGenerarCbtes_ItemsXContratos_Tipos
	FETCH NEXT FROM curContratoGenerarCbtes_ItemsXContratos_Tipos INTO @Id_Producto, @Cantidad, @Porc_Iva
	WHILE @@FETCH_STATUS = 0
	BEGIN
	
		SET @JSON_Parametros_Stored_Invocado =	'{' +
												dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha', @pFecha_QA, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Contrato', @pId_Contrato, 'INT') + ',' +
										    	dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +					
												dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                        dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
												'}'
		DELETE @Result_Tabla_Stored_Invocado

		INSERT INTO @Result_Tabla_Stored_Invocado
		EXEC @Result_Stored_Invocado = CPJ_Produc_Precio @JSON_Parametros_Stored_Invocado

		IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Produc_Precio', 16,  1 ) 
	
		SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

		SET @Precio_Grav = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Grav')), 0)
		SET @Precio_Exen = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Exen')), 0)
		IF(@pModoDebug = 1)
		BEGIN
			PRINT '3.1) @Id_Producto: ' + @Id_Producto + ' @Precio_Grav: ' + CONVERT(VARCHAR(10), @Precio_Grav) + ' @Precio_Exen: ' + CONVERT(VARCHAR(10), @Precio_Grav)
		END

		SET @JSON_Parametros_Stored_Invocado =	'{' +
												dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
												dbo.CF_Json_ParsearVariable('Cantidad', @Cantidad, 'DECIMAL(15,5)') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha_QA', @pFecha_QA, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha_Venc', @pFecha_Venc, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Bonif', @Bonif, 'DECIMAL(5,2)') + ',' +
												dbo.CF_Json_ParsearVariable('Porc_Iva', @Porc_Iva, 'DECIMAL(5,2)') + ',' +
												dbo.CF_Json_ParsearVariable('Precio_Grav', @Precio_Grav, 'DECIMAL(15,5)') + ',' +
												dbo.CF_Json_ParsearVariable('Precio_Exen', @Precio_Exen, 'DECIMAL(15,5)') + ',' +
											    dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                        dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
												'}'

		DELETE @Result_Tabla_Stored_Invocado

		IF(@Compromete_Factura = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = CPJ_Cbtes_Fac_Generar_Item @JSON_Parametros_Stored_Invocado
		END

		IF(@Compromete_Remitos = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = CPJ_Cbtes_Fac_Generar_Item @JSON_Parametros_Stored_Invocado
		END

		IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Fac_Generar_Item', 16,  1 )  
	
		SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

		FETCH NEXT FROM curContratoGenerarCbtes_ItemsXContratos_Tipos INTO @Id_Producto, @Cantidad, @Porc_Iva
	END
	CLOSE curContratoGenerarCbtes_ItemsXContratos_Tipos
	DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Tipos

	/*-------------------------------------------------------------------*/

	/*3.2) Por Contratos_Prod*/
	IF(@pModoDebug = 1)
	BEGIN
		PRINT '3.2) Por Contratos_Prod'
	END

	DECLARE curContratoGenerarCbtes_ItemsXContratos_Prod CURSOR FOR
			SELECT C.Id_Producto, ISNULL(C.Cantidad,0), ISNULL(T.Porc1,0)
				FROM Contratos_Prod C, Productos P , Productos_TasaIva T
				WHERE C.Id_Contrato = @pId_Contrato
				AND ISNULL(C.Flag_Facturable, 0) = 1
				AND ISNULL(C.Id_Producto,'') <> ''
				AND C.Id_Producto = P.Id_Producto
				AND T.Id_Iva = P.Id_Iva



	OPEN curContratoGenerarCbtes_ItemsXContratos_Prod
	FETCH NEXT FROM curContratoGenerarCbtes_ItemsXContratos_Prod INTO @Id_Producto, @Cantidad, @Porc_Iva
	WHILE @@FETCH_STATUS = 0
	BEGIN

		SET @JSON_Parametros_Stored_Invocado =	'{' +
												dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha', @pFecha_QA, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Contrato', @pId_Contrato, 'INT') + ',' +
											    dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                        dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
												'}'
		DELETE @Result_Tabla_Stored_Invocado

		INSERT INTO @Result_Tabla_Stored_Invocado
		EXEC @Result_Stored_Invocado = CPJ_Produc_Precio @JSON_Parametros_Stored_Invocado

		IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Produc_Precio', 16,  1 )  

	
		SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

		SET @Precio_Grav = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Grav')), 0)
		SET @Precio_Exen = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Exen')), 0)
		IF(@pModoDebug = 1)
		BEGIN
			PRINT '3.2) @Id_Producto: ' + @Id_Producto + ' @Precio_Grav: ' + CONVERT(VARCHAR(15), @Precio_Grav) + ' @Precio_Exen: ' + CONVERT(VARCHAR(15), @Precio_Exen)
		END

		SET @JSON_Parametros_Stored_Invocado =	'{' +
												dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
												dbo.CF_Json_ParsearVariable('Cantidad', @Cantidad, 'DECIMAL(15,5)') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha_QA', @pFecha_QA, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Fecha_Venc', @pFecha_Venc, 'DATETIME') + ',' +
												dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
												dbo.CF_Json_ParsearVariable('Bonif', @Bonif, 'DECIMAL(5,2)') + ',' +
												dbo.CF_Json_ParsearVariable('Porc_Iva', @Porc_Iva, 'DECIMAL(5,2)') + ',' +
												dbo.CF_Json_ParsearVariable('Precio_Grav', @Precio_Grav, 'DECIMAL(15,5)') + ',' +
												dbo.CF_Json_ParsearVariable('Precio_Exen', @Precio_Exen, 'DECIMAL(15,5)') + ',' +
												dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                        dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
												'}'
	

		DELETE @Result_Tabla_Stored_Invocado

		IF(@Compromete_Factura = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = CPJ_Cbtes_Fac_Generar_Item @JSON_Parametros_Stored_Invocado
			IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ( @JSON_Parametros_Stored_Invocado , 16,  1 ) 
		END

		IF(@Compromete_Remitos = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = CPJ_Cbtes_Rem_Generar_Item @JSON_Parametros_Stored_Invocado
			IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Rem_Generar_Item  2', 16,  1 ) 
		END
	
		SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

		FETCH NEXT FROM curContratoGenerarCbtes_ItemsXContratos_Prod INTO @Id_Producto, @Cantidad, @Porc_Iva
	END
	CLOSE curContratoGenerarCbtes_ItemsXContratos_Prod
	DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Prod

	/*-------------------------------------------------------------------*/
	/*3.3) Por Clientes Integrantes Agrupados*/
	IF(@pModoDebug = 1)
	BEGIN
		PRINT '3.3) Por Clientes Integrantes Agrupados'
	END
	
	SET @Flag_Agru_Cli_Ref  = 0
	SET @Flag_Remitos		= 0
	SET @Id_Tipo_Cbte_Remito= ''

	IF(@Id_Tipo_Con > 0)
	BEGIN
		SELECT	
		@Flag_Agru_Cli_Ref	= ISNULL(Flag_Agru_Cli_Ref, 0),
		@Flag_Remitos		= ISNULL(Flag_Remitos, 0),
		@Id_Tipo_Cbte_Remito= ISNULL(Id_Tipo_Cbte_Remito, '')
		FROM Contratos_Tipos
		WHERE
		Id_Tipo_Con = @Id_Tipo_Con
	END 

	IF(@Flag_Agru_Cli_Ref = 1)
	BEGIN
		SET @Observacion_Incluye_Integ = ''

		DECLARE curContratoGenerarCbtes_ItemsXClientesIntAgrup CURSOR FOR
		SELECT DISTINCT CTInt.Id_Cliente, CPInt.Id_Producto, ISNULL(CPInt.Cantidad,0), ISNULL(TI.PORC1,0)
		FROM Contratos CTInt, Contratos_Prod CPInt, Productos P, Productos_TasaIva TI
		WHERE CTInt.Id_Contrato = CPInt.Id_Contrato
		AND ISNULL(CPInt.Id_Producto,'') <> ''
		and CPInt.Id_Producto = P.Id_Producto
		AND ISNULL(CPInt.Flag_Facturable, 0) = 1
		and P.Id_Iva = TI.Id_Iva
		AND CTInt.Id_Tipo_Con = @Id_Tipo_Con
		AND CONVERT(DATE, ISNULL(CTInt.Fecha_Desde, '19000101')) <= CONVERT(DATE, @pFecha_QA)
		AND (CONVERT(DATE, ISNULL(CTInt.Fecha_Hasta, '19000101')) >= CONVERT(DATE, @pFecha_QA) OR CTInt.Fecha_Hasta IS NULL)
		AND CTInt.Id_Cliente IN (SELECT DISTINCT Id_Cliente FROM Clientes WHERE ISNULL(Id_Cliente_Ref, 0) = @Id_Cliente AND Fecha_Baja IS NULL)
		AND ISNULL(CTInt.Id_Cliente,0) <> 0

		OPEN curContratoGenerarCbtes_ItemsXClientesIntAgrup
		FETCH NEXT FROM curContratoGenerarCbtes_ItemsXClientesIntAgrup INTO @Id_Cliente_Integ, @Id_Producto, @Cantidad, @Porc_Iva
		WHILE @@FETCH_STATUS = 0
		BEGIN

			IF(@Observacion_Incluye_Integ = '')
			BEGIN
				SET @Observacion_Incluye_Integ = 'Incluye Socio: ' + CONVERT(VARCHAR(10), @Id_Cliente_Integ) 
			END
			ELSE
			BEGIN
				SET @Observacion_Incluye_Integ = @Observacion_Incluye_Integ + ', ' + CONVERT(VARCHAR(10), @Id_Cliente_Integ) 
			END

			SET @JSON_Parametros_Stored_Invocado =	'{' +
													dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente_Integ, 'INT') + ',' +
													dbo.CF_Json_ParsearVariable('Fecha', @pFecha_QA, 'DATETIME') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Contrato', @pId_Contrato, 'INT') + ',' +
											        dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                            dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
													'}'
			DELETE @Result_Tabla_Stored_Invocado

			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = CPJ_Produc_Precio @JSON_Parametros_Stored_Invocado

			IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Produc_Precio', 16,  1 ) 
	
			SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

			SET @Precio_Grav = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Grav')), 0)
			SET @Precio_Exen = ISNULL(CONVERT(DECIMAL(12,2), dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Precio_Exen')), 0)
			IF(@pModoDebug = 1)
			BEGIN
				PRINT '3.3) @Id_Cliente_Integ: '+ CONVERT(VARCHAR(10), @Id_Cliente_Integ) + ' @Id_Producto: ' + @Id_Producto + ' @Precio_Grav: ' + CONVERT(VARCHAR(10), @Precio_Grav) + ' @Precio_Exen: ' + CONVERT(VARCHAR(10), @Precio_Grav)
			END

			SET @JSON_Parametros_Stored_Invocado =	'{' +
													dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
													dbo.CF_Json_ParsearVariable('Cantidad', @Cantidad, 'DECIMAL(15,5)') + ',' +
													dbo.CF_Json_ParsearVariable('Fecha_QA', @pFecha_QA, 'DATETIME') + ',' +
													dbo.CF_Json_ParsearVariable('Fecha_Venc', @pFecha_Venc, 'DATETIME') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente_Integ, 'INT') + ',' +
													dbo.CF_Json_ParsearVariable('Bonif', @Bonif, 'DECIMAL(5,2)') + ',' +
													dbo.CF_Json_ParsearVariable('Porc_Iva', @Porc_Iva, 'DECIMAL(5,2)') + ',' +
													dbo.CF_Json_ParsearVariable('Precio_Grav', @Precio_Grav, 'DECIMAL(15,5)') + ',' +
													dbo.CF_Json_ParsearVariable('Precio_Exen', @Precio_Exen, 'DECIMAL(15,5)') + ',' +
												    dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                            dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
													'}'

			DELETE @Result_Tabla_Stored_Invocado

			IF(@Compromete_Factura = 1)
			BEGIN
				INSERT INTO @Result_Tabla_Stored_Invocado
				EXEC @Result_Stored_Invocado = CPJ_Cbtes_Fac_Generar_Item @JSON_Parametros_Stored_Invocado
		    	IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Fac_Generar_Item 3', 16,  1 ) 
			END

			IF(@Compromete_Remitos = 1)
			BEGIN
				INSERT INTO @Result_Tabla_Stored_Invocado
				EXEC @Result_Stored_Invocado = CPJ_Cbtes_Rem_Generar_Item @JSON_Parametros_Stored_Invocado
		    	IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Rem_Generar_Item 3', 16,  1 ) 
			END

			SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

			FETCH NEXT FROM curContratoGenerarCbtes_ItemsXClientesIntAgrup INTO @Id_Cliente_Integ, @Id_Producto, @Cantidad, @Porc_Iva
		END
		CLOSE curContratoGenerarCbtes_ItemsXClientesIntAgrup
		DEALLOCATE curContratoGenerarCbtes_ItemsXClientesIntAgrup


	END
	/*-------------------------------------------------------------------*/
		
	/*3.4) Items de remitos propios*/
	IF(@pModoDebug = 1)
	BEGIN
		PRINT '3.4) Items de remitos propios'
	END

	IF(@Flag_Remitos = 1)
	BEGIN
		DECLARE curContratoGenerarCbtes_ItemsXRemitosPropiosTr CURSOR FOR
		SELECT DISTINCT CB.Id_Trans
		FROM Cbtes CB, Cbtes_Items CI, Cbtes_Tipos CT
		WHERE
		CB.Id_Trans = CI.Id_Trans
		AND ISNULL(CI.Id_Producto,'') <> ''
		AND ISNULL(CB.Id_Tipo_Cbte, '') = CT.Id_Tipo_Cbte
		AND CT.Compromete_Remitos IN (1)
		AND ISNULL(CB.Id_Estado_Cbte, 0) = 1
		AND CONVERT(DATE, ISNULL(CB.Fecha, '19000101')) <= CONVERT(DATE, @pFecha_Rem_Desde)
		AND CONVERT(DATE, ISNULL(CB.Fecha, '19000101')) >= CONVERT(DATE, @pFecha_Rem_Hasta)
		AND CB.Id_Cliente = @Id_Cliente /*No es por Cbtes_Items sino por la cabecera*/

		OPEN curContratoGenerarCbtes_ItemsXRemitosPropiosTr
		FETCH NEXT FROM curContratoGenerarCbtes_ItemsXRemitosPropiosTr INTO @Id_Trans_Remito
		WHILE @@FETCH_STATUS = 0
		BEGIN

			DECLARE curContratoGenerarCbtes_ItemsXRemitosPropios CURSOR FOR
			SELECT CI.Id_Producto, CI.Cantidad, CI.Fecha_QA, CI.Fecha_Venc, CI.Precio_Grav, CI.Precio_Exen, CI.Bonif, CI.Porc_Iva
			FROM  Cbtes_Items CI
			WHERE
			CI.Id_Trans = @Id_Trans_Remito

			OPEN curContratoGenerarCbtes_ItemsXRemitosPropios
			FETCH NEXT FROM curContratoGenerarCbtes_ItemsXRemitosPropios INTO @Id_Producto, @Cantidad, @Fecha_QA, @Fecha_Venc, @Precio_Grav, @Precio_Exen, @Bonif, @Porc_Iva
			WHILE @@FETCH_STATUS = 0
			BEGIN

				IF(@pModoDebug = 1)
				BEGIN
					PRINT '3.4) @Id_Producto: ' + @Id_Producto + ' @Precio_Grav: ' + CONVERT(VARCHAR(10), @Precio_Grav) + ' @Precio_Exen: ' + CONVERT(VARCHAR(10), @Precio_Grav)
				END

				SET @JSON_Parametros_Stored_Invocado =	'{' +
														dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
														dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
														dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') + ',' +
														dbo.CF_Json_ParsearVariable('Id_Producto', @Id_Producto, 'VARCHAR(14)') + ',' +
														dbo.CF_Json_ParsearVariable('Cantidad', @Cantidad, 'DECIMAL(15,5)') + ',' +
														dbo.CF_Json_ParsearVariable('Fecha_QA', @Fecha_QA, 'DATETIME') + ',' +
														dbo.CF_Json_ParsearVariable('Fecha_Venc', @Fecha_Venc, 'DATETIME') + ',' +
														dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
														dbo.CF_Json_ParsearVariable('Bonif', @Bonif, 'DECIMAL(5,2)') + ',' +
														dbo.CF_Json_ParsearVariable('Porc_Iva', @Porc_Iva, 'DECIMAL(5,2)') + ',' +
														dbo.CF_Json_ParsearVariable('Precio_Grav', @Precio_Grav, 'DECIMAL(15,5)') + ',' +
														dbo.CF_Json_ParsearVariable('Precio_Exen', @Precio_Exen, 'DECIMAL(15,5)') + ',' +
														dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
													    dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
						                                dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
														'}'

				DELETE @Result_Tabla_Stored_Invocado

				IF(@Compromete_Factura = 1)
				BEGIN
					INSERT INTO @Result_Tabla_Stored_Invocado
					EXEC @Result_Stored_Invocado = CPJ_Cbtes_Fac_Generar_Item @JSON_Parametros_Stored_Invocado
		    		IF ISNULL(@Result_Stored_Invocado, 0) <> 0  RAISERROR ('Error when calling CPJ_Cbtes_Fac_Generar_Item 4', 16,  1 ) 
				END

				IF(@Compromete_Remitos = 1)
				BEGIN
					INSERT INTO @Result_Tabla_Stored_Invocado
					EXEC @Result_Stored_Invocado = CPJ_Cbtes_Rem_Generar_Item @JSON_Parametros_Stored_Invocado
		  	    	IF ISNULL(@Result_Stored_Invocado, 0) <> 0  RAISERROR ('Error when calling CPJ_Cbtes_Rem_Generar_Item 4', 16,  1 ) 
			    END
	
				SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

				FETCH NEXT FROM curContratoGenerarCbtes_ItemsXRemitosPropios INTO  @Id_Producto, @Cantidad, @Fecha_QA, @Fecha_Venc, @Precio_Grav, @Precio_Exen, @Bonif, @Porc_Iva
			END
			CLOSE curContratoGenerarCbtes_ItemsXRemitosPropios
			DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropios

			UPDATE Cbtes SET Id_Estado_Cbte = 2 /*Completo*/ WHERE Id_Trans = @Id_Trans_Remito
			FETCH NEXT FROM curContratoGenerarCbtes_ItemsXRemitosPropiosTr INTO @Id_Trans_Remito
		END
		CLOSE curContratoGenerarCbtes_ItemsXRemitosPropiosTr
		DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropiosTr
	END

	/*-------------------------------------------------------------------*/

	IF @pIncl_Cbtes_Cero = 1 
        	SET @TotalCbte = 1
	    ELSE
		    SET @TotalCbte =  (SELECT SUM(Imp_Final) FROM #ITEMS_CBTE )

	IF EXISTS (SELECT 1 FROM #ITEMS_CBTE ) and @TotalCbte <> 0
	BEGIN

			/*2) CPJ_Cbtes_Fac_Generar*/
			IF(@pModoDebug = 1)
			BEGIN
				PRINT '2) CPJ_Cbtes_Fac_Generar'
			END

			SET @JSON_Parametros_Stored_Invocado =	'{' +
													dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Usuario', @pId_Usuario, 'SMALLINT') + ',' +
													dbo.CF_Json_ParsearVariable('Lote', @pLote, 'VARCHAR(20)') + ',' +
													dbo.CF_Json_ParsearVariable('Fecha', @pFecha, 'DATETIME') + ',' +
													dbo.CF_Json_ParsearVariable('FechaVence', @FechaVence, 'DATETIME') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Cliente', @Id_Cliente, 'INT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Tipo_Cbte', @Id_Tipo_Cbte, 'CHAR(4)') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Cond_Pago', @Id_Cond_Pago, 'SMALLINT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Moneda', @Id_Moneda, 'CHAR(3)') + ',' +
													dbo.CF_Json_ParsearVariable('Cotizacion', @Cotizacion, 'DECIMAL(12,4)') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Contrato', @pId_Contrato, 'INT') + ',' + 
													dbo.CF_Json_ParsearVariable('Refacturar', @pRefacturar, 'TINYINT') + ',' +
												    dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +
													dbo.CF_Json_ParsearVariable('Id_Tiempo', @pId_Tiempo, 'CHAR(3)') + 
													'}'

			DELETE @Result_Tabla_Stored_Invocado

			IF(@Compromete_Factura = 1)
				BEGIN
					INSERT INTO @Result_Tabla_Stored_Invocado  EXEC @Result_Stored_Invocado = dbo.CPJ_Cbtes_Fac_Generar @JSON_Parametros_Stored_Invocado
        			IF ISNULL(@Result_Stored_Invocado, 0) <> 0  RAISERROR ('Error when calling CPJ_Cbtes_Fac_Generar', 16,  1 ) 
				END

			IF(@Compromete_Remitos = 1)
				BEGIN
	    			INSERT INTO @Result_Tabla_Stored_Invocado  EXEC @Result_Stored_Invocado = dbo.CPJ_Cbtes_Rem_Generar @JSON_Parametros_Stored_Invocado
        			IF ISNULL(@Result_Stored_Invocado, 0) <> 0  RAISERROR ('Error when calling CPJ_Cbtes_Rem_Generar', 16,  1 ) 
				END

			SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado
			SET @Id_Trans = ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@rta_JSON_Stored_Invocado,'Id_Trans')), 0)

			IF @Id_Trans = 0  RAISERROR ('Id_trans can not be zero.', 16,  1 )    /*El CPJ_Cbtes_Fac_Generarv debería devolver el SELECT con el error*/
	
			/*===================================================================*/

			/*3) GENERO LOS ITEMS DE LOS CBTES*/

			IF(@pModoDebug = 1) PRINT '3) CPJ_Cbtes_Fac_Generar_Item'

			UPDATE #ITEMS_CBTE SET ID_TRANS = @Id_Trans

			INSERT INTO CBTES_ITEMS SELECT * FROM #ITEMS_CBTE

			/*-------------------------------------------------------------------*/

		/*4) CPJ_Cbtes_Fac_Fin*/
		IF(@pModoDebug = 1)
		BEGIN
			PRINT '4) Por CPJ_Cbtes_Fac_Fin'
		END

		SET @JSON_Parametros_Stored_Invocado =	'{' +
												dbo.CF_Json_ParsearVariable('FlagUsarTrans', 0, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('ModoDebug', @pModoDebug, 'TINYINT') + ',' +
												dbo.CF_Json_ParsearVariable('Observacion_Incluye_Integ', @Observacion_Incluye_Integ, 'VARCHAR(8000)') + ',' +
										        dbo.CF_Json_ParsearVariable('Flag_Tabla_Temp', @pFlag_Tabla_Temp, 'TINYINT') + ',' +											
												dbo.CF_Json_ParsearVariable('Id_Trans', @Id_Trans, 'INT') + 
												'}'

		DELETE @Result_Tabla_Stored_Invocado

		IF(@Compromete_Factura = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = dbo.CPJ_Cbtes_Fac_Fin @JSON_Parametros_Stored_Invocado
			IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Fac_Fin', 16,  1 ) 
		END

		IF(@Compromete_Remitos = 1)
		BEGIN
			INSERT INTO @Result_Tabla_Stored_Invocado
			EXEC @Result_Stored_Invocado = dbo.CPJ_Cbtes_Rem_Fin @JSON_Parametros_Stored_Invocado
     		IF ISNULL(@Result_Stored_Invocado, 0) <> 0 RAISERROR ('Error when calling CPJ_Cbtes_Rem_Fin ', 16,  1 )
 		END

    	SELECT TOP 1 @rta_JSON_Stored_Invocado = ErrorMessage FROM @Result_Tabla_Stored_Invocado

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



    END
	ELSE   --no genero items por contrato facturado
	BEGIN

		SET @rtaMsjStored		=	'{"Resultado":"Comprobante sin items, o ya facturado, o el total es cero "' +
									' , ' + dbo.CF_Json_ParsearVariable('Id_Contrato', @pId_Contrato, 'INT') +
									'}'
	END


	/*===================================================================*/

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

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


	IF OBJECT_ID('tempdb..#ITEMS_CBTE','U') IS NOT NULL  DROP TABLE  #ITEMS_CBTE
END TRY  



BEGIN CATCH  
	IF EXISTS (SELECT 1 FROM @Result_Tabla_Stored_Invocado) SELECT * FROM @Result_Tabla_Stored_Invocado

    EXECUTE usp_GetErrorInfo

	IF RTRIM(LTRIM(ISNULL(@pLote,''))) <> '' AND ISNULL(@Id_Trans,0) <> 0 AND ISNULL(@pRegistrar_Errores,0) <> 0
	BEGIN
		DECLARE @Cbtes_Lotes_Errores_Item TINYINT
		SET @Cbtes_Lotes_Errores_Item = ISNULL(  (SELECT MAX(Item) FROM Cbtes_Lotes_Errores WHERE Lote = @pLote) ,0 ) + 1
		INSERT INTO Cbtes_Lotes_Errores ([Lote],[Item],[Id_Trans],[Id_Cliente],[Descripcion])
			VALUES (@pLote,@Cbtes_Lotes_Errores_Item,@Id_Trans,ISNULL(@Id_Cliente,0),
					'ERROR_NUMBER: '+ CONVERT(VARCHAR(10),ERROR_NUMBER()) +
					'ERROR_LINE: '+ CONVERT(VARCHAR(10),ERROR_LINE()) +
					'ERROR_MESSAGE: '+ CONVERT(VARCHAR(8000),ERROR_MESSAGE() )

			  )

	END

	IF @pFlagUsarTrans <> 0 
	BEGIN
		ROLLBACK
	END
	---------------------------------------------------------------------------------------
	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXContratos_Tipos') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Tipos		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXContratos_Tipos') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXContratos_Tipos
	   DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Tipos		 
	END
	---------------------------------------------------------------------------------------

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXContratos_Prod') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Prod		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXContratos_Prod') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXContratos_Prod
	   DEALLOCATE curContratoGenerarCbtes_ItemsXContratos_Prod		 
	END
	---------------------------------------------------------------------------------------

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXClientesIntAgrup') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXClientesIntAgrup		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXClientesIntAgrup') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXClientesIntAgrup
	   DEALLOCATE curContratoGenerarCbtes_ItemsXClientesIntAgrup		 
	END
	---------------------------------------------------------------------------------------

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropios') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropios		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropios') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXRemitosPropios
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropios		 
	END
	---------------------------------------------------------------------------------------

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropios') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropios		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropios') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXRemitosPropios
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropios		 
	END
	---------------------------------------------------------------------------------------

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropiosTr') ) = -1
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropiosTr		 

	IF (SELECT CURSOR_STATUS('global','curContratoGenerarCbtes_ItemsXRemitosPropiosTr') ) = 1
	BEGIN
	   CLOSE curContratoGenerarCbtes_ItemsXRemitosPropiosTr
	   DEALLOCATE curContratoGenerarCbtes_ItemsXRemitosPropiosTr		 
	END
	---------------------------------------------------------------------------------------
    IF OBJECT_ID('tempdb..#ITEMS_CBTE','U') IS NOT NULL  DROP TABLE  #ITEMS_CBTE
	RETURN 9999
END CATCH

RETURN 0
