SELECT	se.nome AS nome_empresa,
	p.nome AS credor_devedor,	

	(CASE WHEN (:SituacaoTituloFinanceiro in (-1,1))
		THEN 'Aberto'

		ELSE 'Liquidado'
	
	END) as Situacao_Titulo,

	ovl1.titulo AS natureza_titulo,	
	(rt.denominacao || ' - ' ||  bt.denominacao) AS forma_recebimento,
	SUM(tf.valor_titulo + tf.juros_cobranca + tf.multa_cobranca - tf.desconto_cobranca) AS valor_titulo
	
FROM	titulo_financeiro AS tf
	INNER JOIN pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)	
	INNER JOIN sis_opcao_lista_valor AS ovl ON (ovl.id = tf.situacao AND ovl.id_lista_valor = 'CEDBEA3BCD98445F98C29C5DAC4B809D')
	INNER JOIN sis_opcao_lista_valor AS ovl1 ON (ovl1.id = tf.natureza_titulo AND ovl1.id_lista_valor = 'C043EFC0EDD5414995003170978F8878')
	LEFT JOIN  rede_tef AS rt ON (rt.id_rede_tef = tf.id_rede_tef)
	LEFT JOIN  bandeira_tef AS bt ON (bt.id_bandeira_tef = tf.id_bandeira_tef)
	INNER JOIN sis_empresa AS se ON (se.id_empresa = tf.id_empresa)

WHERE	tf.id_empresa = :IdEmpresaObrigatorio
AND	tf.data_emissao BETWEEN :DataInicialEmissao AND :DataFinalEmissao

AND	tf.tipo_titulo IN(1,5) -- ORIGINAL ou TROCA DE TÍTULO
AND	tf.natureza_titulo IN (202,203) -- CARTÃO DE CRÉDITO OU DÉBITO

AND	(CASE WHEN (:IdNaturezaReceberNaoObrigatorio not in (202,203)) --CASO NÃO INFORME A NATUREZA, TRAS CRÉDITO E DÉBITO, SE NÃO FILTRA
		THEN
			(tf.natureza_titulo IN (202,203)) ELSE (:IdNaturezaReceberNaoObrigatorio = -1 OR tf.natureza_titulo = :IdNaturezaReceberNaoObrigatorio)
		END)

AND	

	(CASE WHEN (:SituacaoTituloFinanceiro in (-1,1)) THEN
		((tf.situacao IN (1,9)) --ABERTO OU RASCUNHO 
			OR (CASE WHEN (tf.situacao = 7) -- AGRUPADO 
					THEN (
						CASE WHEN ((select ttf.situacao from titulo_financeiro ttf where
						tf.id_titulo_filho = ttf.id_titulo_financeiro limit 1) = 1) 
							THEN (true)
							ELSE (false)
						END)	
				END))
				
	ELSE  
		
		((tf.situacao IN (2)) -- LIQUIDADO
			OR (CASE WHEN (tf.situacao = 7) -- AGRUPADO 
					THEN (
						CASE WHEN ((select ttf.situacao from titulo_financeiro ttf where
						tf.id_titulo_filho = ttf.id_titulo_financeiro limit 1) = 2) 
							THEN (true)
							ELSE (false)
						END)	
				END))	
	END)

GROUP BY 1,2,3,4,5

ORDER BY se.nome, p.nome, ovl1.titulo