
/****** Object:  StoredProcedure [dbo].[Facturas_Cerradas]    Script Date: 09/01/2015 14:46:58 ******/

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE dbo.Facturas_Cerradas
	  @dia_inicio DATETIME, 
	  @dia_fin    DATETIME, 
	  @filter     VARCHAR(8000), 
	  @orden      TINYINT, 
	  @CodEmpresa CHAR(3)
AS

/* Procedimiento que genera un cursor con los datos requeridos para el  listado de facturas cerradas
   con sus correspondientes notas agrupadas por cuenta/mon_cob. dia_inicio y dia_fin: rango de fechas de cierre  */
   
   /*
		Consultas que realiza este proceso:
		- 01. Facturas de Habitaciones
		- 02. Notas de Facturas de Habitaciones
		- 03. Facturas de Folios Externos
		- 04. Notas de Facturas de Folios Externos
		- 05. Facturas de Agencias
		- 06. Notas de Facturas de Agencias
    */

BEGIN
	SET NOCOUNT ON

	DECLARE @pref_fact CHAR(4), 
			@pref_no_fact CHAR(4), 
			@cSql VARCHAR(100)

	SELECT @pref_fact = SUBSTRING(prefijo_fact, 1, 3) + '-', 
		   @pref_no_fact = SUBSTRING(prefijo_no_fact, 1, 3) + '-'
	FROM Hotetabl

	DECLARE @Mone_Base INTEGER, 
			@da INTEGER, 
			@pt INTEGER
			
	SELECT @Mone_Base = id_mone
	FROM hotetabl
	
	SELECT @da = con0_da, 
		   @pt = con0_pt
	FROM hoteempr
	WHERE id_mone = @Mone_Base

	/************************************************* 01. Facturas de Habitaciones ***************************************************************/

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone), 
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + SUBSTRING(CONVERT(VARCHAR(255), hfac.nro_documento), 1, 7), 
		   id_origen = 'H-' + habi.habitacion, 
		   referencia = habi.habitacion, 
		   refer_thab = thab.tipo_hab, 
		   cliente = hcli.nombre, 
		   contrato = cont.desc_cont, 
		   agencia = agen.agencia, 
		   importe_moncob = COALESCE(SUM(COALESCE(hfco.aplicado / hfex.tasa_monfac * hfco.tasa_monpag, 0)), 0), 
		   mon_cob = COALESCE(mone.cod_mone, sicla.cod_mone), 
		   importe_monfact = SUM(COALESCE(hfco.aplicado, 0)), 
		   mon_fact = sicla.cod_mone, 
		   hfac.fecha_cierre, 
		   hfac.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   hhab.fecha_ent, 
		   hhab.fecha_sal, 
		   paxs = hcli.paxs, 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = ingresos.impuestos, 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	INTO #temp_fact
	FROM       Hotehfac   hfac
	INNER JOIN Hotehfex   hfex  ON hfac.id_hfac = hfex.id_hfac
	INNER JOIN Hotehhab   hhab  ON hfex.id_origen = hhab.id_face
	INNER JOIN Hotecont   cont  ON hhab.id_cont = cont.id_cont
	INNER JOIN Hoteagen   agen  ON cont.id_agen = agen.id_agen
	INNER JOIN Hotehabi   habi  ON hhab.id_habi = habi.id_habi
	INNER JOIN Hotethab   thab  ON habi.id_thab = thab.id_thab
	INNER JOIN Siclamon   sicla ON hfac.id_mone = sicla.id_mone
	LEFT  JOIN Operador   oper  ON hfac.id_operador = oper.id_oper
	LEFT  JOIN terminales term  ON hfac.terminal = term.id_terminal
	LEFT  JOIN Hotehfco   hfco  ON hfac.id_hfac = hfco.id_hfac
	LEFT  JOIN Hotetcob   tcob  ON hfco.id_tcob = tcob.id_tcob
	LEFT  JOIN Siclamon   mone  ON tcob.id_mone = mone.id_mone
	LEFT  JOIN Hoteenco   enco  ON hfco.id_cuenta = enco.id_cuenta
	INNER JOIN(
		SELECT hcli.id_face, 
			   nombre = MIN(nombre), 
			   paxs = COUNT(id_facn)
		FROM hotehcli hcli
		GROUP BY hcli.id_face) hcli ON hfex.id_origen = hcli.id_face
	LEFT JOIN(
		SELECT hfac.nro_cheque, 
			   Hospedaje = SUM(CASE WHEN thab.id_con0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																									                 ELSE - 1
																									                 END - COALESCE(CONVERT(MONEY, importe_dcto), 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   ayb = SUM(CASE WHEN rald.id_pre0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																							                   ELSE - 1
																							                   END - COALESCE(CONVERT(MONEY, importe_dcto), 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
							  ELSE 0.00
						      END), 
			   otros = SUM(CASE WHEN thab.id_con0 IS NULL
								 AND rald.id_pre0 IS NULL
								 AND pre0.id_con0 != @da
								 AND pre0.id_con0 != @pt THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																							                ELSE - 1
																							                END - COALESCE(CONVERT(MONEY, importe_dcto), 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
								ELSE 0.00
						        END), 
			   depositos = SUM(CASE WHEN pre0.id_con0 = @da
									  OR pre0.id_con0 = @pt THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																							                   ELSE - 1
																							                   END - COALESCE(CONVERT(MONEY, importe_dcto), 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, impu.impuesto), 0.00))
		FROM       Hotehfac hfac
		INNER JOIN Hotehfex hfex ON hfac.id_hfac = hfex.id_hfac
		INNER JOIN Hotehhab hhab ON hfex.id_origen = hhab.id_face
		INNER JOIN Siclamon sicla ON hfac.id_mone = sicla.id_mone
		LEFT  JOIN Hotehfel hfel ON hfac.id_hfac = hfel.id_hfac
		LEFT  JOIN hotepre0 pre0 ON hfel.id_pre0 = pre0.id_pre0
		LEFT  JOIN hotecon0 con0 ON pre0.id_con0 = con0.id_con0
		LEFT  JOIN Hotecon1 con1 ON con0.id_con1 = con1.id_con1
		LEFT  JOIN(
			SELECT DISTINCT id_con0
			FROM hotethab
		) thab ON con0.id_con0 = thab.id_con0
		LEFT JOIN(
			SELECT DISTINCT id_pre0, 
							id_ralo
			FROM       hoterald
			INNER JOIN hoterali ON hoterald.id_rali = hoterali.id_rali
		) rald ON pre0.id_pre0 = rald.id_pre0 AND rald.id_ralo = hhab.id_ralo
		LEFT JOIN(
			SELECT hotehfel.id_hfel, 
				   impuesto = SUM(COALESCE(importe_imp, 0.00))
			FROM       hotehfei
			INNER JOIN hotehfel ON hotehfei.id_hfel = hotehfel.id_hfel
			INNER JOIN hotehfex ON hotehfex.id_hfac = hotehfel.id_hfac
			INNER JOIN hotehfac ON hotehfac.id_hfac = hotehfex.id_hfac
			WHERE hotehfac.origen = '1'
			  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
			  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
			GROUP BY hotehfel.id_hfel
		) impu ON hfel.id_hfel = impu.id_hfel
		WHERE hfac.origen = '1'
		  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
		GROUP BY hfac.nro_cheque
	) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	WHERE hfac.origen = '1'
	  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
	  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
	GROUP BY hfac.id_hfac, 
			 enco.cuenta, 
			 mone.cod_mone, 
			 hfac.nro_cheque, 
			 thab.tipo_hab, 
			 sicla.cod_mone, 
			 hcli.nombre, 
			 oper.nombre, 
			 term.nombre, 
			 hfac.factura, 
			 hfac.nro_documento, 
			 habi.habitacion, 
			 hfac.origen, 
			 ingresos.depositos, 
			 hfac.fecha_cierre, 
			 hfac.id_operador, 
			 hfac.terminal, 
			 tcob.cod_tcob, 
			 ingresos.Hospedaje, 
			 ingresos.ayb, 
			 ingresos.otros, 
			 ingresos.impuestos, 
			 enco.descripcion, 
			 hhab.fecha_ent, 
			 hhab.fecha_sal, 
			 hcli.paxs, 
			 agen.agencia, 
			 cont.desc_cont
	UNION ALL 

	/************************************************* 02. Notas de Facturas de Habitaciones ***************************************************************/

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone), 
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + CONVERT(VARCHAR(16), nota.nro_nota), 
		   id_origen = 'N' + CASE WHEN nota.debito = 1 THEN 'D-'
								  ELSE 'C-'
							      END + 'H-' + habi.habitacion, 
		   referencia = habi.habitacion, 
		   refer_thab = thab.tipo_hab, 
		   cliente = hcli.nombre, 
		   contrato = cont.desc_cont, 
		   agencia = agen.agencia, 
		   importe_moncob = COALESCE(noco.entregado, 0), 
		   mon_cob = mone.cod_mone, 
		   importe_monfact = COALESCE(noco.aplicado, 0), 
		   mon_fact = sicla.cod_mone, 
		   nota.fecha_nota, 
		   nota.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   hhab.fecha_ent, 
		   hhab.fecha_sal, 
		   hcli.paxs, 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = ingresos.impuestos, 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	FROM       Hotenota   nota
	INNER JOIN Hotehfac   hfac  ON nota.id_hfac = hfac.id_hfac
	LEFT  JOIN Operador   oper  ON nota.id_operador = oper.id_oper
	LEFT  JOIN terminales term  ON nota.terminal = term.id_terminal
	INNER JOIN Hotenoco   noco  ON nota.id_nota = noco.id_nota
	INNER JOIN Hoteenco   enco  ON noco.id_cuenta = enco.id_cuenta
	INNER JOIN Hotehfex   hfex  ON hfac.id_hfac = hfex.id_hfac
	INNER JOIN hotehhab   hhab  ON hfex.id_origen = hhab.id_face
	INNER JOIN Hotecont   cont  ON hhab.id_cont = cont.id_cont
	INNER JOIN Hoteagen   agen  ON cont.id_agen = agen.id_agen
	INNER JOIN Hotehabi   habi  ON hhab.id_habi = habi.id_habi
	INNER JOIN Hotethab   thab  ON habi.id_thab = thab.id_thab
	INNER JOIN Siclamon   sicla ON hfac.id_mone = sicla.id_mone
	INNER JOIN Hotetcob   tcob  ON noco.id_tcob = tcob.id_tcob
	INNER JOIN Siclamon   mone  ON tcob.id_mone = mone.id_mone
	INNER JOIN(
		SELECT hcli.id_face, 
			   MIN(nombre)nombre, 
			   paxs = COUNT(id_facn)
		FROM hotehcli hcli
		GROUP BY hcli.id_face
	) hcli ON hfex.id_origen = hcli.id_face
	LEFT JOIN(
		SELECT --hfac.nro_cheque,
			   nota.nro_nota, 
			   Hospedaje = SUM(CASE WHEN thab.id_con0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																														 ELSE -1
																														 END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0)
									ELSE 0.00
							        END), 
			   ayb = SUM(CASE WHEN rald.id_pre0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
							  ELSE 0.00
						      END), 
			   depositos = SUM(CASE WHEN pre0.id_con0 = @da
									  OR pre0.id_con0 = @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   otros = SUM(CASE WHEN thab.id_con0 IS NULL
								 AND rald.id_pre0 IS NULL
								 AND pre0.id_con0 != @da
								 AND pre0.id_con0 != @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												ELSE -1
																												END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
								ELSE 0.00
						        END), 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, impu.impuesto), 0.00))
		FROM       Hotenota nota
		INNER JOIN Hotehfac hfac ON nota.id_hfac = hfac.id_hfac
		INNER JOIN Hotehfex hfex ON hfac.id_hfac = hfex.id_hfac
		INNER JOIN hotehhab hhab ON hfex.id_origen = hhab.id_face
		LEFT  JOIN Hotelnot lnot ON nota.id_nota = lnot.id_nota
		LEFT  JOIN hotepre0 pre0 ON lnot.id_pre0 = pre0.id_pre0
		LEFT  JOIN hotecon0 con0 ON pre0.id_con0 = con0.id_con0
		LEFT  JOIN(
			SELECT DISTINCT id_con0
			FROM hotethab
		) thab ON con0.id_con0 = thab.id_con0
		LEFT JOIN(
			SELECT lnot.id_lnot, 
				   impuesto = SUM(COALESCE(CONVERT(MONEY, importe), 0.00))
			FROM       hotenoim noim
			INNER JOIN hotelnot lnot ON noim.id_lnot = lnot.id_lnot
			INNER JOIN hotenota nota ON lnot.id_nota = nota.id_nota
			INNER JOIN hotehfac hfac ON nota.id_hfac = hfac.id_hfac
			WHERE hfac.origen = '1'
			  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
			  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
			GROUP BY lnot.id_lnot
		) impu ON lnot.id_lnot = impu.id_lnot
		LEFT JOIN(
			SELECT DISTINCT id_pre0, 
							id_ralo
			FROM       hoterald
			INNER JOIN hoterali ON hoterald.id_rali = hoterali.id_rali
		) rald ON pre0.id_pre0 = rald.id_pre0 AND rald.id_ralo = hhab.id_ralo
		WHERE origen = '1'
		  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
		--GROUP BY hfac.nro_cheque
		GROUP BY nota.nro_nota
	--) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	) ingresos ON nota.nro_nota = ingresos.nro_nota
	WHERE hfac.origen = '1'
	  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
	  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
	UNION ALL 

	/* ************************************************ 03. Facturas de Folios Externos ************************************************************** */

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone), 
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + SUBSTRING(CONVERT(VARCHAR(20), hfac.nro_documento), 1, 7), 
		   id_origen = 'T-' + CONVERT(VARCHAR(20), hcre.num_tarj), 
		   referencia = CONVERT(VARCHAR(20), hcre.num_tarj), 
		   refer_thab = SPACE(9), 
		   hcre.nombre_titular, 
		   contrato = ctipo.desc_tipo, 
		   agencia = ctipo.desc_tipo, 
		   importe_moncob = COALESCE(SUM(COALESCE(hfco.aplicado / hfex.tasa_monfac * hfco.tasa_monpag, 0)), 0), 
		   mon_cob = COALESCE(mone.cod_mone, sicla.cod_mone), 
		   importe_monfact = SUM(COALESCE(hfco.aplicado, 0)), 
		   mon_fact = sicla.cod_mone, 
		   hfac.fecha_cierre, 
		   hfac.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   fecha_ent = GETDATE(), 
		   fecha_sal = GETDATE(), 
		   paxs = 1, 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = ingresos.impuestos, 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	FROM       Hotehfac   hfac
	LEFT  JOIN Operador   oper  ON hfac.id_operador = oper.id_oper
	LEFT  JOIN terminales term  ON hfac.terminal = term.id_terminal
	INNER JOIN Hotehfex   hfex  ON hfac.id_hfac = hfex.id_hfac
	INNER JOIN hcretarj   hcre  ON hfex.id_origen = hcre.id_tarj
	INNER JOIN hcretipo   ctipo ON hcre.id_tipo = ctipo.id_tipo
	INNER JOIN Siclamon   sicla ON hfac.id_mone = sicla.id_mone
	LEFT  JOIN Hotehfco   hfco  ON hfac.id_hfac = hfco.id_hfac
	LEFT  JOIN Hotetcob   tcob  ON hfco.id_tcob = tcob.id_tcob
	LEFT  JOIN Siclamon   mone  ON tcob.id_mone = mone.id_mone
	LEFT  JOIN Hoteenco   enco  ON hfco.id_cuenta = enco.id_cuenta
	LEFT  JOIN(
		SELECT hfac.nro_cheque, 
			   Hospedaje = SUM(CASE WHEN thab.id_con0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																													 ELSE -1
																													 END / hfel.tasa - COALESCE(CONVERT(MONEY, importe_dcto) / hfel.tasa, 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto) / hfel.tasa, 0.00), 0.00)
									ELSE 0.00
									END), 
			   ayb = SUM(CASE WHEN rald.id_pre0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																											   ELSE -1
																											   END / hfel.tasa - COALESCE(CONVERT(MONEY, importe_dcto) / hfel.tasa, 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto) / hfel.tasa, 0.00), 0.00)
							  ELSE 0.00
							  END), 
			   depositos = SUM(CASE WHEN pre0.id_con0 = @da
									  OR pre0.id_con0 = @pt THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																											   ELSE -1
																											   END / hfel.tasa - COALESCE(CONVERT(MONEY, importe_dcto) / hfel.tasa, 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto) / hfel.tasa, 0.00), 0.00)
									ELSE 0.00
							        END), 
			   otros = SUM(CASE WHEN thab.id_con0 IS NULL
								 AND rald.id_pre0 IS NULL
								 AND pre0.id_con0 != @da
								 AND pre0.id_con0 != @pt THEN COALESCE(CONVERT(MONEY, importe_cargo) * CASE WHEN hfel.corrige_a IS NULL THEN 1
																											ELSE -1
																											END / hfel.tasa - COALESCE(CONVERT(MONEY, importe_dcto) / hfel.tasa, 0.00) - COALESCE(CONVERT(MONEY, impu.impuesto) / hfel.tasa, 0.00), 0.00)
								ELSE 0.00
						        END), 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, impu.impuesto) / hfel.tasa, 0.00))
		FROM       Hotehfac hfac
		INNER JOIN Hotehfex hfex  ON hfac.id_hfac = hfex.id_hfac
		INNER JOIN hcretarj hcre  ON hfex.id_origen = hcre.id_tarj
		INNER JOIN Siclamon sicla ON hfac.id_mone = sicla.id_mone
		LEFT  JOIN Hotehfel hfel  ON hfac.id_hfac = hfel.id_hfac
		LEFT  JOIN hotepre0 pre0  ON hfel.id_pre0 = pre0.id_pre0
		LEFT  JOIN hotecon0 con0  ON pre0.id_con0 = con0.id_con0
		LEFT  JOIN(
			SELECT DISTINCT id_con0
			FROM hotethab
		) thab ON con0.id_con0 = thab.id_con0
		LEFT JOIN(
			SELECT hotehfel.id_hfel, 
				   impuesto = SUM(COALESCE(importe_imp, 0.00))
			FROM       hotehfei
			INNER JOIN hotehfel ON hotehfei.id_hfel = hotehfel.id_hfel
			INNER JOIN hotehfex ON hotehfex.id_hfac = hotehfel.id_hfac
			INNER JOIN hotehfac ON hotehfac.id_hfac = hotehfex.id_hfac
			WHERE hotehfac.origen = '2'
			  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
			  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
			GROUP BY hotehfel.id_hfel
		) impu ON hfel.id_hfel = impu.id_hfel
		LEFT JOIN(
			SELECT DISTINCT id_pre0 --, id_ralo. No lo ocupamos, con saber que id_pre0 está en algún régimen basta, dejarlo multiplica si está en varios reg.
			FROM       hoterald
			INNER JOIN hoterali ON hoterald.id_rali = hoterali.id_rali
		) rald ON pre0.id_pre0 = rald.id_pre0
		WHERE hfac.origen = '2'
		  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
		GROUP BY hfac.nro_cheque
	) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	WHERE hfac.origen = '2'
	  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
	  AND DATEDIFF(day, fecha_cierre, @dia_fin) >= 0
	GROUP BY hfac.id_hfac, 
			 enco.cuenta, 
			 mone.cod_mone, 
			 hfac.nro_cheque, 
			 sicla.cod_mone, 
			 oper.nombre, 
			 term.nombre, 
			 hfac.factura, 
			 hfac.nro_documento, 
			 hcre.num_tarj, 
			 hfac.origen, 
			 ingresos.depositos, 
			 hcre.nombre_titular, 
			 ingresos.Hospedaje, 
			 ingresos.ayb, 
			 ingresos.otros, 
			 ingresos.impuestos, 
			 hfac.fecha_cierre, 
			 hfac.id_operador, 
			 hfac.terminal, 
			 tcob.cod_tcob, 
			 enco.descripcion, 
			 ctipo.desc_tipo
	UNION ALL 

	/************************************************* 04. Notas de Facturas de Folios Externos ***************************************************************/

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone), 
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + CONVERT(VARCHAR(16), nota.nro_nota), 
		   id_origen = 'N' + CASE WHEN nota.debito = 1 THEN 'D-'
								  ELSE 'C-'
							      END + 'T-' + CONVERT(VARCHAR(20), hcre.num_tarj), 
		   referencia = CONVERT(VARCHAR(20), hcre.num_tarj), 
		   refer_thab = SPACE(9), 
		   cliente = hcre.nombre_titular, 
		   contrato = ctipo.desc_tipo, 
		   agencia = ctipo.desc_tipo, 
		   importe_moncob = COALESCE(noco.entregado, 0), 
		   mon_cob = mone.cod_mone, 
		   importe_monfact = COALESCE(noco.aplicado, 0), 
		   mon_fact = sicla.cod_mone, 
		   nota.fecha_nota, 
		   nota.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   fecha_ent = GETDATE(), 
		   fecha_sal = GETDATE(), 
		   paxs = 1, 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = ingresos.impuestos, 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	FROM       Hotenota   nota
	LEFT  JOIN Hotehfac   hfac  ON nota.id_hfac = hfac.id_hfac
	LEFT  JOIN Operador   oper  ON nota.id_operador = oper.id_oper
	INNER JOIN terminales term  ON nota.terminal = term.id_terminal
	INNER JOIN Hotenoco   noco  ON nota.id_nota = noco.id_nota
	INNER JOIN Hoteenco   enco  ON noco.id_cuenta = enco.id_cuenta
	INNER JOIN Hotehfex   hfex  ON hfac.id_hfac = hfex.id_hfac
	INNER JOIN hcretarj   hcre  ON hfex.id_origen = hcre.id_tarj
	INNER JOIN hcretipo   ctipo ON hcre.id_tipo = ctipo.id_tipo
	INNER JOIN Siclamon   sicla ON hfac.id_mone = sicla.id_mone
	INNER JOIN Hotetcob   tcob  ON noco.id_tcob = tcob.id_tcob
	INNER JOIN Siclamon   mone  ON tcob.id_mone = mone.id_mone
	LEFT  JOIN(
		SELECT --hfac.nro_cheque,
		       nota.nro_nota, 
			   Hospedaje = SUM(CASE WHEN thab.id_con0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																														 ELSE -1
																														 END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   ayb = SUM(CASE WHEN rald.id_pre0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
							  ELSE 0.00
						      END), 
			   depositos = SUM(CASE WHEN pre0.id_con0 = @da
									  OR pre0.id_con0 = @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   otros = SUM(CASE WHEN thab.id_con0 IS NULL
								 AND rald.id_pre0 IS NULL
								 AND pre0.id_con0 != @da
								 AND pre0.id_con0 != @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												ELSE -1
																												END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
								ELSE 0.00
						        END), 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, impu.impuesto), 0.00))
		FROM       Hotenota nota
		INNER JOIN Hotehfac hfac ON nota.id_hfac = hfac.id_hfac
		LEFT  JOIN Hotelnot lnot ON nota.id_nota = lnot.id_nota
		LEFT  JOIN hotepre0 pre0 ON lnot.id_pre0 = pre0.id_pre0
		LEFT  JOIN hotecon0 con0 ON pre0.id_con0 = con0.id_con0
		LEFT  JOIN(
			SELECT DISTINCT id_con0
			FROM hotethab
		) thab ON con0.id_con0 = thab.id_con0
		LEFT JOIN(
			SELECT lnot.id_lnot, 
				   impuesto = SUM(COALESCE(CONVERT(MONEY, importe), 0.00))
			FROM       hotenoim noim
			INNER JOIN hotelnot lnot ON noim.id_lnot = lnot.id_lnot
			INNER JOIN hotenota nota ON lnot.id_nota = nota.id_nota
			INNER JOIN hotehfac hfac ON nota.id_hfac = hfac.id_hfac
			WHERE hfac.origen = '1'
			  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
			  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
			GROUP BY lnot.id_lnot
		) impu ON lnot.id_lnot = impu.id_lnot
		LEFT JOIN(
			SELECT DISTINCT id_pre0 --, id_ralo. No lo ocupamos, con saber que id_pre0 está en algún régimen basta, dejarlo multiplica si está en varios reg.
			FROM       hoterald
			INNER JOIN hoterali ON hoterald.id_rali = hoterali.id_rali
		) rald ON pre0.id_pre0 = rald.id_pre0
		WHERE origen = '2'
		  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
		--GROUP BY hfac.nro_cheque
		GROUP BY nota.nro_nota
	--) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	) ingresos ON nota.nro_nota = ingresos.nro_nota
	WHERE hfac.origen = '2'
	  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
	  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
	UNION ALL 
 
	/* ************************************************ 05. Facturas de Agencias  ************************************************************** */

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone),
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + SUBSTRING(CONVERT(VARCHAR(255), hfac.nro_documento), 1, 7), 
		   id_origen = 'A-' + agen.agencia, 
		   referencia = COALESCE(faca.habitacion, ''), 
		   refer_thab = SPACE(9), 
		   cliente = COALESCE(faca.nombre, ''), 
		   contrato = cont.desc_cont, 
		   agencia = agen.agencia, 
		   importe_moncob = COALESCE(SUM(COALESCE(hfco.aplicado / hfag.tasa * hfco.tasa_monpag, 0)), 0), 
		   mon_cob = COALESCE(mone.cod_mone, sicla.cod_mone), 
		   importe_monfact = COALESCE(SUM(COALESCE(hfco.aplicado, 0)), 0), 
		   mon_fact = sicla.cod_mone, 
		   hfac.fecha_cierre, 
		   hfac.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   fecha_ent = hfag.fecha_desde, 
		   fecha_sal = hfag.fecha_hasta, 
		   paxs = COALESCE(faca.paxs, 0), 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = COALESCE(SUM(COALESCE(CONVERT(MONEY, impuage.impuestos), 0.00)), 0.00), 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	FROM       Hotehfac hfac
	LEFT  JOIN Operador oper ON hfac.id_operador = oper.id_oper
	LEFT  JOIN terminales term ON hfac.terminal = term.id_terminal
	INNER JOIN Hotehfag hfag ON hfac.id_hfac = hfag.id_hfac
	INNER JOIN Hotecont cont ON hfag.id_cont = cont.id_cont
	INNER JOIN Hoteagen agen ON cont.id_agen = agen.id_agen
	INNER JOIN Siclamon sicla ON hfac.id_mone = sicla.id_mone
	LEFT  JOIN Hotehfco hfco ON hfac.id_hfac = hfco.id_hfac
	LEFT  JOIN Hotetcob tcob ON hfco.id_tcob = tcob.id_tcob
	LEFT  JOIN Siclamon mone ON tcob.id_mone = mone.id_mone
	LEFT  JOIN Hoteenco enco ON hfco.id_cuenta = enco.id_cuenta
	LEFT  JOIN(
		SELECT id_faca, 
			   nombre = MIN(nombre), 
			   paxs = COUNT(id_facn), 
			   habitacion = MIN(Habi.habitacion)
		FROM       hotehhab hhab
		INNER JOIN Hotehcli hcli ON hhab.id_face = hcli.id_face
		INNER JOIN Hotehabi habi ON hhab.id_habi = habi.id_habi
		WHERE id_faca IS NOT NULL
		GROUP BY id_faca
	) faca ON hfag.id_faca = faca.id_faca
	LEFT JOIN(
		SELECT hfac.nro_cheque, 
			   Hospedaje = SUM(CASE WHEN hfar.id_csim IS NOT NULL -- Concepto Simple
								    THEN CASE WHEN csim.tipo_csim = 1 THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																																	ELSE -1
																																	END - COALESCE(0, 0.00), 0)
											  ELSE 0
										      END
									ELSE CASE WHEN cfag.id_uhab IS NOT NULL THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																																		  ELSE -1
																																		  END - COALESCE(0, 0.00), 0)
											  ELSE 0
										      END
								    END), 
			   ayb = SUM(CASE WHEN hfar.id_csim IS NOT NULL -- Concepto Simple
							  THEN CASE WHEN csim.tipo_csim = 2 THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																															  ELSE -1
																															  END - COALESCE(0, 0.00), 0)
									    ELSE 0
								        END
							  ELSE CASE WHEN cfag.id_uhab IS NULL
										 AND cfag.id_ralo IS NOT NULL THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																																	ELSE -1
																																	END - COALESCE(0, 0.00), 0)
										ELSE 0
								        END
						      END), 
			   depositos = 0.00, 
			   otros = SUM(CASE WHEN hfar.id_csim IS NOT NULL -- Concepto Simple
							    THEN CASE WHEN csim.tipo_csim = 3 THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																																ELSE -1
																																END - COALESCE(0, 0.00), 0)
										  ELSE 0
									      END
								ELSE CASE WHEN cfag.id_uhab IS NULL
										   AND cfag.id_ralo IS NULL THEN COALESCE(CONVERT(MONEY, hfar.importe) / hfag.tasa * CASE WHEN hfar.corrige_a IS NULL THEN 1
																																  ELSE -1
																																  END - COALESCE(0, 0.00), 0)
										  ELSE 0
									      END
						        END), 
			   impuestos = CONVERT(MONEY, 0)
		FROM       Hotehfar hfar
		LEFT  JOIN Hotecsim csim ON hfar.id_csim = csim.id_csim
		INNER JOIN Hotecfag cfag ON hfar.id_cfag = cfag.id_cfag
		INNER JOIN hotehfac hfac ON hfar.id_hfac = hfac.id_hfac
		INNER JOIN hotehfag hfag ON hfar.id_hfac = hfag.id_hfac
		WHERE hfac.origen = '3'
		  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
		GROUP BY hfac.nro_cheque
	) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	LEFT JOIN(
		SELECT hfac2.nro_cheque, 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, importe_imp * cantidad_h * DATEDIFF(day, fecha_1, fecha_2) / hfag2.tasa), 000.0000))
		FROM       hotehfai hfai2
		INNER JOIN hotehfal hfal2 ON hfal2.id_hfal = hfai2.id_hfal
		INNER JOIN hotehfac hfac2 ON hfac2.id_hfac = hfal2.id_hfac
		INNER JOIN hotehfag hfag2 ON hfac2.id_hfac = hfag2.id_hfac
		WHERE hfac2.origen = '3'
		GROUP BY hfac2.nro_cheque, 
				 hfag2.tasa
	) impuage ON hfac.nro_cheque = impuage.nro_cheque
	WHERE hfac.origen = '3'
	  AND DATEDIFF(day, @dia_inicio, fecha_cierre) >= 0
	  AND DATEDIFF(day, @dia_fin, fecha_cierre) <= 0
	GROUP BY hfac.id_hfac, 
			 enco.cuenta, 
			 mone.cod_mone, 
			 hfac.nro_cheque, 
			 sicla.cod_mone, 
			 oper.nombre, 
			 term.nombre, 
			 impuage.nro_cheque, 
			 hfac.factura, 
			 hfac.nro_documento, 
			 cont.contrato, 
			 agen.agencia, 
			 hfac.origen, 
			 impuage.impuestos, 
			 ingresos.depositos, 
			 hfac.fecha_cierre, 
			 hfac.id_operador, 
			 hfac.terminal, 
			 tcob.cod_tcob, 
			 ingresos.Hospedaje, 
			 ingresos.ayb, 
			 ingresos.otros, 
			 ingresos.impuestos, 
			 enco.descripcion, 
			 hfag.fecha_desde, 
			 hfag.fecha_hasta, 
			 faca.paxs, 
			 cont.desc_cont, 
			 faca.nombre, 
			 faca.habitacion
	UNION ALL 

	/************************************************* 06. Notas de Facturas de Agencias ***************************************************************/

	SELECT Empresa = dbo.fGet_EmpresaCm(sicla.cod_mone), 
	       hfac.id_hfac, 
		   enco.cuenta, 
		   hfac.nro_cheque, 
		   nro_documento = CASE WHEN hfac.factura = 1 THEN @pref_fact
								ELSE @pref_no_fact
						        END + CONVERT(VARCHAR(16), nota.nro_nota), 
		   id_origen = 'N' + CASE WHEN nota.debito = 1 THEN 'D-'
								  ELSE 'C-'
							      END + 'A-' + agen.agencia, 
		   referencia = COALESCE(faca.habitacion, ''), 
		   refer_thab = SPACE(9), 
		   cliente = cont.contrato, 
		   contrato = cont.desc_cont, 
		   agencia = agen.agencia, 
		   importe_moncob = COALESCE(noco.entregado, 0), 
		   mon_cob = mone.cod_mone, 
		   importe_monfact = COALESCE(noco.aplicado, 0), 
		   mon_fact = sicla.cod_mone, 
		   nota.fecha_nota, 
		   nota.id_operador, 
		   tcob.cod_tcob, 
		   enco.descripcion, 
		   hfac.factura, 
		   nro_factura = hfac.nro_documento, 
		   fecha_ent = hfag.fecha_desde, 
		   fecha_sal = hfag.fecha_hasta, 
		   paxs = COALESCE(faca.paxs, 0), 
		   Hospedaje = ingresos.Hospedaje, 
		   ayb = ingresos.ayb, 
		   otros = ingresos.otros, 
		   Depositos = ingresos.depositos, 
		   impuestos = ingresos.impuestos, 
		   hfac.origen, 
		   operador = oper.nombre, 
		   terminal = term.nombre
	FROM       Hotenota   nota
	LEFT  JOIN Operador   oper  ON nota.id_operador = oper.id_oper
	LEFT  JOIN terminales term  ON nota.terminal = term.id_terminal
	INNER JOIN Hotehfac   hfac  ON nota.id_hfac = hfac.id_hfac
	INNER JOIN Hotenoco   noco  ON nota.id_nota = noco.id_nota
	INNER JOIN Hoteenco   enco  ON noco.id_cuenta = enco.id_cuenta
	INNER JOIN Hotehfag   hfag  ON hfac.id_hfac = hfag.id_hfac
	INNER JOIN Hotecont   cont  ON hfag.id_cont = cont.id_cont
	INNER JOIN Hoteagen   agen  ON cont.id_agen = agen.id_agen
	INNER JOIN Siclamon   sicla ON hfac.id_mone = sicla.id_mone
	INNER JOIN Hotetcob   tcob  ON noco.id_tcob = tcob.id_tcob
	INNER JOIN Siclamon   mone  ON tcob.id_mone = mone.id_mone
	LEFT JOIN(
		SELECT id_faca, 
			   paxs = COUNT(id_facn), 
			   habitacion = MIN(Habi.habitacion)
		FROM       hotehhab hhab
		INNER JOIN Hotehcli hcli ON hhab.id_face = hcli.id_face
		INNER JOIN Hotehabi habi ON hhab.id_habi = habi.id_habi
		WHERE id_faca IS NOT NULL
		GROUP BY id_faca
	) faca ON hfag.id_faca = faca.id_faca
	LEFT JOIN(
		SELECT --hfac.nro_cheque, 
		       nota.nro_nota,
			   Hospedaje = SUM(CASE WHEN thab.id_con0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																														 ELSE -1
																														 END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   ayb = SUM(CASE WHEN rald.id_pre0 IS NOT NULL THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
							  ELSE 0.00
						      END), 
			   depositos = SUM(CASE WHEN pre0.id_con0 = @da
									  OR pre0.id_con0 = @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												   ELSE -1
																												   END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
									ELSE 0.00
							        END), 
			   otros = SUM(CASE WHEN thab.id_con0 IS NULL
								 AND rald.id_pre0 IS NULL
								 AND pre0.id_con0 != @da
								 AND pre0.id_con0 != @pt THEN COALESCE(CONVERT(MONEY, lnot.importe_nota) * CASE WHEN nota.debito = 1 THEN 1
																												ELSE -1
																												END - COALESCE(CONVERT(MONEY, impu.impuesto), 0.00), 0.00)
								ELSE 0.00
						        END), 
			   impuestos = SUM(COALESCE(CONVERT(MONEY, impu.impuesto), 0.00))
		FROM       Hotenota nota
		INNER JOIN Hotehfac hfac ON nota.id_hfac = hfac.id_hfac
		LEFT  JOIN Hotelnot lnot ON nota.id_nota = lnot.id_nota
		LEFT  JOIN hotepre0 pre0 ON lnot.id_pre0 = pre0.id_pre0
		LEFT  JOIN hotecon0 con0 ON pre0.id_con0 = con0.id_con0
		LEFT  JOIN(
			SELECT DISTINCT id_con0
			FROM hotethab
		) thab ON con0.id_con0 = thab.id_con0
		LEFT JOIN(
			SELECT lnot.id_lnot, 
				   impuesto = SUM(COALESCE(CONVERT(MONEY, importe), 0.00))
			FROM       hotenoim noim
			INNER JOIN hotelnot lnot ON noim.id_lnot = lnot.id_lnot
			INNER JOIN hotenota nota ON lnot.id_nota = nota.id_nota
			INNER JOIN hotehfac hfac ON nota.id_hfac = hfac.id_hfac
			WHERE hfac.origen = '1'
			  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
			  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
			GROUP BY lnot.id_lnot
		) impu ON lnot.id_lnot = impu.id_lnot
		LEFT JOIN(
			SELECT DISTINCT id_pre0 --, id_ralo. No lo ocupamos, con saber que id_pre0 está en algún régimen basta, dejarlo multiplica si está en varios reg.
			FROM hoterald
			INNER JOIN hoterali ON hoterald.id_rali = hoterali.id_rali
		) rald ON pre0.id_pre0 = rald.id_pre0
		WHERE hfac.origen = '3'
		  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
		  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
		--GROUP BY hfac.nro_cheque
		GROUP BY nota.nro_nota
	--) ingresos ON hfac.nro_cheque = ingresos.nro_cheque
	) ingresos ON nota.nro_nota = ingresos.nro_nota
	WHERE hfac.origen = '3'
	  AND DATEDIFF(day, @dia_inicio, fecha_nota) >= 0
	  AND DATEDIFF(day, @dia_fin, fecha_nota) <= 0
	ORDER BY cuenta, mon_cob, hfac.nro_cheque, mon_fact
	
	If @CodEmpresa <> '000'
	Begin 
		Delete #temp_fact
		Where  Empresa <> @CodEmpresa    
	End

	SELECT @cSql = CASE
						WHEN @orden = 1 THEN ' Order by id_origen,nro_cheque,cuenta,mon_cob,mon_fact'
						WHEN @orden = 2 THEN ' Order by nro_cheque,cuenta,mon_cob,mon_fact'
						WHEN @orden = 3 THEN ' Order by mon_fact,nro_cheque,cuenta,mon_cob'
						WHEN @orden = 4
						  OR @orden = 5 THEN ' Order by cuenta,mon_cob,nro_cheque,mon_fact,nro_factura'
						WHEN @orden = 6 THEN ' Order by nro_factura,mon_fact,cuenta,mon_cob,nro_cheque'
						WHEN @orden = 7 THEN ' Order by id_origen,nro_cheque,cuenta,mon_cob,mon_fact'
						ELSE ''
				   END
	EXECUTE ('Select * from #temp_fact'+@filter+@cSql)

END
