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

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

DECLARE @pFlagUsarTrans			TINYINT
DECLARE @pModoDebug				TINYINT
DECLARE @pId_Trans				INT
DECLARE @pId_Tipo_Cbte			CHAR(4)
DECLARE @pFecha					DATETIME
DECLARE @pFecha_Venc			DATETIME
DECLARE @pId_Cliente			INT
DECLARE @pId_Vendedor			VARCHAR(20)	
DECLARE @pId_Cond_Pago			SMALLINT
DECLARE @pId_Centro_Costos		CHAR(10)
DECLARE @pCotizacion			DECIMAL(12,2)
DECLARE @pImporte				DECIMAL(20,2)
DECLARE @pId_Sucursal			VARCHAR(25)	
DECLARE @pComprobante_Nro		SMALLINT
DECLARE @pId_Lista_Precio		INT	
DECLARE @pOmitir_Resultado_OK	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 @pId_Trans				= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Trans')), 0)
SET @pId_Tipo_Cbte			= ISNULL(CONVERT(CHAR(4), dbo.CF_JSON_VALUE(@pJson,'Id_Tipo_Cbte')), '')
SET @pFecha					= ISNULL(CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha')),'19000101')
SET @pFecha_Venc			= CONVERT(DATETIME, dbo.CF_JSON_VALUE(@pJson,'Fecha_Venc'))
SET @pId_Cliente			= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Cliente')), 0)
SET @pId_Cond_Pago			= ISNULL(CONVERT(SMALLINT, dbo.CF_JSON_VALUE(@pJson,'Id_Cond_Pago')), '')
SET @pId_Centro_Costos		= ISNULL(CONVERT(CHAR(10), dbo.CF_JSON_VALUE(@pJson,'Id_Centro_Costo')), '')
SET @pCotizacion			= ISNULL(CONVERT(DECIMAL(12,4), dbo.CF_JSON_VALUE(@pJson,'Cotizacion')), 1)
SET @pId_Sucursal			= ISNULL(CONVERT(VARCHAR(20), dbo.CF_JSON_VALUE(@pJson,'Id_Sucursal')), 0)
SET @pId_Vendedor			= ISNULL(CONVERT(VARCHAR(20), dbo.CF_JSON_VALUE(@pJson,'Id_Vendedor')), 0)
SET @pImporte				= ISNULL(CONVERT(DECIMAL(20,2), dbo.CF_JSON_VALUE(@pJson,'Importe')), 0)
SET @pId_Lista_Precio		= ISNULL(CONVERT(INT, dbo.CF_JSON_VALUE(@pJson,'Id_Lista_Precio')), 0)
SET @pOmitir_Resultado_OK	= ISNULL(CONVERT(TINYINT, dbo.CF_JSON_VALUE(@pJson,'Omitir_Resultado_OK')), 0)
/*FIN Variables recibidas por parametro a traves del JSON*/


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

/*Declaracion Variables Locales*/
DECLARE @Id_Empresa						SMALLINT
DECLARE @Id_Sucursal					SMALLINT
DECLARE @Cbte_Grupo						INT
DECLARE @Comprobante_Nro				INT
DECLARE @Id_Taller						VARCHAR(10)
DECLARE @Id_Proceso						VARCHAR(10)
DECLARE @Id_Proveedor					INT
DECLARE @Signo							SMALLINT
DECLARE @Id_Estado_Cbte					SMALLINT
DECLARE @Id_Dep_Fisico					CHAR(3)
DECLARE @Id_Dep_Logico					CHAR(3)
DECLARE @Porc_DescEspecial				DECIMAL(5, 2)
DECLARE @Porc_DescFin					DECIMAL(5, 2)
DECLARE @Porc_Iva						DECIMAL(5, 2)
DECLARE @Porc_Iva2						DECIMAL(5, 2)
DECLARE @Imp_Neto						DECIMAL(12, 2)
DECLARE @Imp_DescEspecial				DECIMAL(12, 2)
DECLARE @Imp_DescFin					DECIMAL(12, 2)
DECLARE @Imp_Bonificacion				DECIMAL(12, 2)
DECLARE @Imp_Gravado					DECIMAL(12, 2)
DECLARE @Imp_Exento						DECIMAL(12, 2)
DECLARE @Imp_IVA						DECIMAL(12, 2)
DECLARE @Imp_IVA2						DECIMAL(12, 2)
DECLARE @Imp_Percepcion_IB				DECIMAL(12, 2)
DECLARE @Imp_Percepcion_Iva				DECIMAL(12, 2)
DECLARE @Imp_Total						DECIMAL(12, 2)
DECLARE @Bultos							SMALLINT
DECLARE @NroImpresion					INT
DECLARE @Exportado						TINYINT
DECLARE @Dir_Entrega					VARCHAR(255)
DECLARE @Id_Pais						CHAR(3)
DECLARE @Id_Provincia					CHAR(3)
DECLARE @Id_Localidad					INT
DECLARE @Porc_Iva3						DECIMAL(5, 2)
DECLARE @Imp_Gravado2					DECIMAL(12, 2)
DECLARE @Imp_Gravado3					DECIMAL(12, 2)
DECLARE @Imp_NoGravado					DECIMAL(12, 2)
DECLARE @Imp_IVA3						DECIMAL(12, 2)
DECLARE @Imp_Percep						DECIMAL(12, 2)
DECLARE @Saldo							DECIMAL(12, 2)
DECLARE @Periodo_Iva					DATETIME
DECLARE @Periodo						DATETIME
DECLARE @Id_Cond_Pago_Item				TINYINT
DECLARE @Id_Tipo_Reten					VARCHAR(10)
DECLARE @Cant_Cuotas					SMALLINT
DECLARE @Id_Producto					VARCHAR(14)
DECLARE @Id_Formula						VARCHAR(15)
DECLARE @Cantidad						DECIMAL(12, 4)
DECLARE @Id_Transportista				INT
DECLARE @Destinatario					VARCHAR(100)
DECLARE @Cuit							VARCHAR(19)
DECLARE @Doc_Nro						BIGINT
DECLARE @Id_Iva							CHAR(3)
DECLARE @Cant_Batch						SMALLINT
DECLARE @Fecha_Perm_Embar				DATETIME
DECLARE @Saldo_Iva_Recup				DECIMAL(12, 2)
DECLARE @Suc_Destina					SMALLINT
DECLARE @Id_Asiento						INT
DECLARE @Id_Valor						INT
DECLARE @Cai							DECIMAL(14, 0)
DECLARE @Des_Anio						TINYINT
DECLARE @Des_Aduana						CHAR(3)
DECLARE @Des_Destina					CHAR(4)
DECLARE @Des_Nro						INT
DECLARE @Des_Verif						CHAR(1)
DECLARE @Id_Cobrador					VARCHAR(10)
DECLARE @Remito_Nro						VARCHAR(25)
DECLARE @Pedido_Nro						VARCHAR(25)
DECLARE @Id_Tarjeta						VARCHAR(11)
DECLARE @Tarjeta_Nro					VARCHAR(25)
DECLARE @Cantidad_Saldo					DECIMAL(12, 4)
DECLARE @Saldo_Anterior					DECIMAL(12, 2)
DECLARE @NRO_DJAI						VARCHAR(30)
DECLARE @Cantidad_Equiv					DECIMAL(12, 4)
DECLARE @Id_Trans_Origen				INT
DECLARE @Id_Sede_Origen					SMALLINT
DECLARE @Email							VARCHAR(8000)
DECLARE @Patente_Transporte				VARCHAR(7)
DECLARE @Patente_Transporte_Acoplado	VARCHAR(7)
DECLARE @Plazo_Venc						SMALLINT
DECLARE @Porc_Bonificacion				DECIMAL(5,2)
DECLARE @Fecha_Estimada					DATETIME
DECLARE @Persona_Recibe					VARCHAR(100)
DECLARE @Observacion					VARCHAR(8000)
DECLARE @Id_Lista						SMALLINT
DECLARE @Nro_Perm_Embarque				VARCHAR(20)
DECLARE @Id_Puerto						CHAR(3)
DECLARE @Id_Cond_Vta					CHAR(10)
DECLARE @Cbte_Nro_Externo				VARCHAR(25)
DECLARE @Nota_Part1						VARCHAR(100)
DECLARE @Nota_Part2						VARCHAR(100)
DECLARE @Id_Camp						SMALLINT
DECLARE @Flag_Lote						TINYINT
DECLARE @Compromete_Presupuesto			SMALLINT
DECLARE @Descrip_Cbte					VARCHAR(100)
DECLARE @Importe						DECIMAL(12, 2)
DECLARE @Importe_Con_Signo				DECIMAL(12, 2)
DECLARE @Id_Cliente_Ref					INT
DECLARE @Renglon_Nro					SMALLINT
DECLARE @Id_Estado_Mov_Caja				INT
DECLARE @Descripcion					VARCHAR(100)
DECLARE @Id_Tipo_Mov_Caja				SMALLINT
DECLARE @Id_Concepto					INT
DECLARE @Item							SMALLINT
DECLARE @Id_Estado_Concepto				SMALLINT
DECLARE @Flag_Existe_Cbte_Lote			TINYINT

/*Fin de Declaraciones Variables Locales */



BEGIN TRY

	IF @pFlagUsarTrans <> 0 
	BEGIN
		BEGIN TRAN
	END

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

	IF(@pModoDebug = 1)
	BEGIN
		PRINT 'Inserta en Transacciones.'
	END
	
	IF(@pId_Trans = 0)
	BEGIN
		SET @pId_Trans = ISNULL((SELECT MAX(Id_Trans) FROM Transacciones), 0) + 1

		INSERT INTO Transacciones (Id_Trans, Descripcion, Fecha_Mov, Id_Usuario) 
						   VALUES (@pId_Trans,	'CPJ_Transacciones_Abrir', GETDATE(), -1)
	END

	IF(@pId_Cliente = 0)  RAISERROR ('El codigo de cliente no puede ser cero', 16,  1 ) 
	IF(@pId_Tipo_Cbte = '') RAISERROR ('El tipo de comprobante no puede estar vacio.', 16,  1 )


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

	IF(@pCotizacion = 0)
	BEGIN
		SET @pCotizacion = 1
	END
	
	SET @Flag_Lote	= 0
	SET @pFecha				= (SELECT CONVERT(DATE, @pFecha))
    SET @Id_Estado_Cbte		= 0

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

	SELECT  @Id_Sucursal			= ISNULL(Id_Sucursal, 0),
			@Cbte_Grupo				= ISNULL(Cbte_Grupo, 0),
			@Compromete_Presupuesto = ISNULL(Compromete_Presup, 0),
			@Id_Estado_Cbte			= ISNULL(Id_Estado_Cbte,0),
			@Comprobante_Nro		= ISNULL(Prox_Nro,1)
	FROM Cbtes_Tipos 
	WHERE Id_Tipo_Cbte = @pId_Tipo_Cbte

	IF(@Compromete_Presupuesto NOT IN (1,-1)) RAISERROR ('El tipo de comprobante no corresponde a presupuestos.', 16, 1) 
	
	/*===================================================================*/

	SELECT 	@Destinatario	= ISNULL(Razon_Social, Apellido + ', ' + Nombre),
			@Id_Pais		= ISNULL(Id_Pais_Cob, ''),
			@Id_Provincia	= ISNULL(Id_Provincia_Cob, ''),
			@Id_Localidad	= ISNULL(Id_Localidad_Cob, 0),
			@Cuit			= ISNULL(Cuit, ''),
			@Doc_Nro		= ISNULL(Doc_Nro, 0),
			@Id_Iva			= ISNULL(Id_Iva, ''),
			@Id_Dep_Fisico	= ISNULL(Id_Dep_Fisico, ''),
			@Id_Dep_Logico	= ISNULL(Id_Dep_Logico, ''),
			@Email			= ISNULL(Email, ''),
			@Id_Lista		= ISNULL(Id_Lista_Precio, 0),
			@Porc_Bonificacion = ISNULL(Bonif, 0),
			@Id_Cliente_Ref	= ISNULL(Id_Cliente_Ref, 0),
			@Id_Concepto	= ISNULL(Id_Concepto, 0),
			@Id_Cobrador	= ISNULL(Id_Cobrador,0)
	FROM Clientes
	WHERE Id_Cliente = @pId_Cliente

	IF(@pId_Lista_Precio <> 0)
	BEGIN
		SET @Id_Lista = @pId_Lista_Precio
	END

	IF(@Id_Localidad = 0)
	BEGIN
		SET @Id_Provincia = ''
		SET @Id_Pais = ''
	END
	
	IF ((@Cuit = '' OR @Cuit = '0') AND @Doc_Nro > 0)
	BEGIN
		SET @Cuit = CONVERT(VARCHAR(19), @Doc_Nro)
	END

	SET @Importe			= 0 /*En Carga*/
	SET @Importe_Con_Signo	= @Importe * @Compromete_Presupuesto
	SET @Plazo_Venc			= ISNULL((SELECT ISNULL(Plazo_Venc, 0) FROM Cbtes_Cond_Pago WHERE Id_Cond_Pago = @pId_Cond_Pago), 0)
	SET @Periodo_Iva		= @pFecha
	SET @Periodo			= @pFecha
	SET @Imp_Total			= 0 /*Hay que actualizarlo luego de grabar los items*/
	SET @Saldo				= 0 /*Hay que actualizarlo luego de grabar los items*/
	SET @Imp_Gravado		= 0 /*Hay que actualizarlo luego de grabar los items*/
	SET @Imp_Neto			= 0 /*Hay que actualizarlo luego de grabar los items*/
	SET @Imp_Exento			= 0 /*Hay que actualizarlo luego de grabar los items*/
		
	/*TO-DO: De aca para abajo por ahora por Default*/
	SET @Id_Taller			= ''
	SET @Id_Proceso			= ''
	SET @Id_Proveedor		= 0
	SET @Signo				= 0
	SET	@Porc_DescFin		= 0
	SET @Porc_DescEspecial	= 0
	SET @Porc_Iva			= dbo.CF_xParam('Tasa_Iva_1')
	SET @Porc_Iva2			= dbo.CF_xParam('Tasa_Iva_2')
	SET @Imp_DescEspecial	= 0
	SET @Imp_DescFin		= 0
	SET @Imp_Bonificacion	= 0
	SET @Imp_Iva			= 0
	SET @Imp_Iva2			= 0
	SET @Imp_Percepcion_IB	= 0
	SET @Imp_Percepcion_Iva = 0
	SET @Bultos				= 0
	SET @NroImpresion		= 0
	SET @Exportado			= 0
	SET @Dir_Entrega		= ''
	SET @Porc_Iva3			= dbo.CF_xParam('Tasa_Iva_3')
	SET @Imp_Gravado2		= 0
	SET @Imp_Gravado3		= 0
	SET @Imp_NoGravado		= 0
	SET @Imp_IVA3			= 0
	SET @Imp_Percep			= 0
	SET @Id_Cond_Pago_Item	= 0
	SET @Id_Tipo_Reten		= ''
	SET @Cant_Cuotas		= 1
	SET @Id_Producto		= NULL
	SET @Id_Formula			= NULL
	SET @Cantidad			= 0
	SET @Id_Transportista	= 0
	SET @Cant_Batch			= 0
	SET @Fecha_Perm_Embar	= NULL
	SET @Saldo_Iva_Recup	= 0
	SET @Suc_Destina		= 0
	SET @Id_Asiento			= 0
	SET @Id_Valor			= 0
	SET @Cai				= 0	
	SET @Des_Anio			= 0
	SET @Des_Aduana			= ''
	SET @Des_Destina		= ''
	SET @Des_Nro			= 0
	SET @Des_Verif			= ''
	SET @Remito_Nro			= ''
	SET @Id_Tarjeta			= ''
	SET @Tarjeta_Nro		= ''
	SET @Cantidad_Saldo		= 0
	SET @Saldo_Anterior		= 0
	SET @NRO_DJAI			= ''
	SET @Cantidad_Equiv		= 0
	SET @Id_Trans_Origen	= 0
	SET @Id_Sede_Origen		= 0
	SET @Patente_Transporte = ''
	SET @Patente_Transporte_Acoplado = ''
	SET @Porc_Bonificacion	= 0
	SET @Fecha_Estimada		= NULL
	SET @Persona_Recibe		= ''
	SET @Observacion		= ''
	SET @Nro_Perm_Embarque	= ''
	SET @Id_Puerto			= ''
	SET @Id_Cond_Vta		= ''
	SET @Nota_Part1			= ''
	SET @Nota_Part2			= ''
	SET @Id_Camp			= 0

	
	INSERT INTO Cbtes
	(Id_Trans,			Id_Empresa,			Id_Sucursal,
	Id_Tipo_Cbte,		Cbte_Grupo,			Comprobante_Nro,
	Id_Cliente,			Id_Taller,			Id_Proceso,
	Id_Proveedor,		Signo,				Id_Estado_Cbte,
	Fecha,				Id_Dep_Fisico,		Id_Dep_Logico,
	Porc_DescEspecial,	Porc_DescFin,		Porc_Bonificacion,
	Porc_Iva,			Porc_Iva2,			Imp_Neto,
	Imp_DescEspecial,	Imp_DescFin,		Imp_Bonificacion,
	Imp_Gravado,		Imp_Exento,			Imp_IVA,
	Imp_IVA2,			Imp_Percepcion_IB,	Imp_Percepcion_Iva,
	Imp_Total,			Bultos,				NroImpresion,
	Exportado,			Id_Usuario,			Fecha_Estimada,
	Dir_Entrega,		Id_Pais,			Id_Provincia,
	Id_Localidad,		Persona_Recibe,		Porc_Iva3,
	Imp_Gravado2,		Imp_Gravado3,		Imp_NoGravado,
	Imp_IVA3,			Imp_Percep,			Saldo,
	Periodo_Iva,		Periodo,			Fecha_Venc,
	Observacion,		Id_Cond_Pago_Item,	Id_Cond_Pago,
	Id_Tipo_Reten,		Cant_Cuotas,		Id_Producto,
	Id_Formula,			Cantidad,			Id_Vendedor,
	Id_Transportista,	Id_Lista,			Id_Moneda,
	Cotizacion,			Destinatario,		Cuit,
	Id_Iva,				Cant_Batch,			Nro_Perm_Embarque,
	Fecha_Perm_Embar,	Saldo_Iva_Recup,	Lote,
	Suc_Destina,		Id_Puerto,			Id_Cond_Vta,
	Cbte_Nro_Externo,	Nota_Part1,			Nota_Part2,
	Id_Asiento,			Id_Centro_Costo,	Id_Valor,
	Cai,				Cai_Vence,			Des_Anio,
	Des_Aduana,			Des_Destina,		Des_Nro,
	Des_Verif,			Id_Contrato,		Id_Cobrador,
	Nro_Auto_Trib,		Id_Camp,			Remito_Nro,
	Pedido_Nro,			Id_Tarjeta,			Tarjeta_Nro,
	Cantidad_Saldo,		Saldo_Anterior,		NRO_DJAI,
	Cantidad_Equiv,		Id_Trans_Origen,	Id_Sede_Origen,
	Email,				Patente_Transporte,	Patente_Transporte_Acoplado,
	Flag_Lote,			Id_Cliente_Ref)
	VALUES
	(@pId_Trans,		@Id_Empresa,		@Id_Sucursal,
	@pId_Tipo_Cbte,		@Cbte_Grupo,		@Comprobante_Nro,
	@pId_Cliente,		@Id_Taller,			@Id_Proceso,
	@Id_Proveedor,		@Signo,				@Id_Estado_Cbte,
	@pFecha,			@Id_Dep_Fisico,		@Id_Dep_Logico,
	@Porc_DescEspecial,	@Porc_DescFin,		@Porc_Bonificacion,
	@Porc_Iva,			@Porc_Iva2,			@Imp_Neto,
	@Imp_DescEspecial,	@Imp_DescFin,		@Imp_Bonificacion,
	@Imp_Gravado,		@Imp_Exento,		@Imp_IVA,
	@Imp_IVA2,			@Imp_Percepcion_IB,	@Imp_Percepcion_Iva,
	@Imp_Total,			@Bultos,			@NroImpresion,
	@Exportado,			-1,		@Fecha_Estimada,
	@Dir_Entrega,		@Id_Pais,			@Id_Provincia,
	@Id_Localidad,		@Persona_Recibe,	@Porc_Iva3,
	@Imp_Gravado2,		@Imp_Gravado3,		@Imp_NoGravado,
	@Imp_IVA3,			@Imp_Percep,		@Saldo,
	@Periodo_Iva,		@Periodo,			@pFecha_Venc,
	@Observacion,		@Id_Cond_Pago_Item,	@pId_Cond_Pago,
	@Id_Tipo_Reten,		@Cant_Cuotas,		@Id_Producto,
	@Id_Formula,		@Cantidad,			@pId_Vendedor,
	@Id_Transportista,	@Id_Lista,			'PES',
	@pCotizacion,		@Destinatario,		@Cuit,
	@Id_Iva,			@Cant_Batch,		@Nro_Perm_Embarque,
	@Fecha_Perm_Embar,	@Saldo_Iva_Recup,	'',
	@Suc_Destina,		@Id_Puerto,			@Id_Cond_Vta,
	@Cbte_Nro_Externo,	@Nota_Part1,		@Nota_Part2,
	@Id_Asiento,		@pId_Centro_Costos,	@Id_Valor,
	@Cai,				'19000101',		@Des_Anio,
	@Des_Aduana,		@Des_Destina,		@Des_Nro,
	@Des_Verif,			0,		@Id_Cobrador,
	'',	@Id_Camp,			@Remito_Nro,
	@Pedido_Nro,		@Id_Tarjeta,		@Tarjeta_Nro,
	@Cantidad_Saldo,	@Saldo_Anterior,	@Nro_DJAI,
	@Cantidad_Equiv,	@Id_Trans_Origen,	@Id_Sede_Origen,
	@Email,				@Patente_Transporte,@Patente_Transporte_Acoplado,
	@Flag_Lote,			@Id_Cliente_Ref)

	/*===================================================================*/
	
	IF @pId_Cond_Pago NOT IN (0, 1)
	BEGIN
		SET @Descrip_Cbte = dbo.CF_Descrip_Cbte(@pId_Trans)
		
		INSERT INTO Clientes_CtaCte 
		(Id_Trans,		Nro_Cuota,		Id_Empresa,
		Id_Cliente,		Fecha,			Fecha_Vence,
		Descripcion,	Importe,		Id_Estado_Cbte,
		Observacion,	Id_Trans_Origen,Nro_Cuota_Origen,
		Id_Moneda,		Saldo,			Nro_FacCre)
		VALUES
		(@pId_Trans,	1,					NULL,
		@pId_Cliente,	@pFecha,			@pFecha_Venc,
		@Descrip_Cbte,	@Importe_Con_Signo, @Id_Estado_Cbte,
		'',				0,					0,
		'pes',	@Importe_Con_Signo,	0)
	END 
	
	/*===================================================================*/

	IF(@pId_Cond_Pago = 1/*Contado*/)
	BEGIN
		SET @Renglon_Nro = 1
		SET @Id_Estado_Mov_Caja = 0 --EN CARGA
		SET @Descripcion = ISNULL((dbo.CF_Cbte_Descrip(@pId_Trans)), '')
		SET @Id_Tipo_Mov_Caja = 1 --e_Ing_Varios

		INSERT INTO dbo.Cajas_Mov
		(Id_Trans,			Renglon_Nro,	Id_Estado_Mov_Caja,
		Importe,			Descripcion,	Id_Periodo_Caja,
		Id_Tipo_Mov_Caja,	Fecha)
		VALUES
		(@pId_Trans,		@Renglon_Nro,	@Id_Estado_Mov_Caja,
		@pImporte,			@Descripcion,	0,
		@Id_Tipo_Mov_Caja,	GETDATE()/*Es con hora*/)
	END

	/*****************************************************************************/

	IF(@pId_Cond_Pago = 1/*Contado*/)
	BEGIN
		SET @Item = 1
		SET @Id_Estado_Concepto = 0
	
		INSERT INTO dbo.Cajas_Mov_Conceptos
		(Id_Trans,				Id_Concepto,			Item,
		Id_Estado_Concepto,		Importe,				Id_Periodo_Caja)
		VALUES
		(@pId_Trans,			@Id_Concepto,			@Item,
		@Id_Estado_Concepto,	@pImporte * (-1),		0)
	END	

	/*===================================================================*/
	
	IF @pFlagUsarTrans <> 0 
	BEGIN
		COMMIT
	END

	/*===================================================================*/	
	
	IF @pOmitir_Resultado_OK = 0
	BEGIN
		SET @rtaMsjStored		=	'{' +
									dbo.CF_Json_ParsearVariable('id_trans', @pId_Trans, 'INT')  + ',' +
									dbo.CF_Json_ParsearVariable('id_cliente', @pId_Cliente, 'INT')  + ',' +
									dbo.CF_Json_ParsearVariable('id_tipo_cbte', @pId_Tipo_Cbte, 'VARCHAR') +
									'}'
									
		SELECT	 0				AS ErrorNumber 
				,0				AS ErrorSeverity  
				,0				AS ErrorState 
				,0				AS ErrorProcedure  
				,@pId_Trans		AS ErrorLine		
				,@rtaMsjStored	AS ErrorMessage
	END

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


BEGIN CATCH  
    EXECUTE usp_GetErrorInfo

	IF @pFlagUsarTrans <> 0 
	BEGIN
		ROLLBACK
	END

	RETURN 9999
END CATCH

RETURN 0
