--Demonstrativo do Movimento de Venda
--CartoesSintetico
SELECT r.nome_administradora,
	SUM(r.valor_titulo) AS valor_titulo,
	r.denominacao_rede_tef,
	r.denominacao_bandeira_tef
FROM (
	SELECT	p.nome AS nome_administradora,
			tf.valor_titulo AS valor_titulo,
			rt.denominacao AS denominacao_rede_tef,
			bt.denominacao AS denominacao_bandeira_tef
	FROM	movimento_venda_terminal AS mvt
		INNER JOIN venda_cf AS vc ON (vc.id_movimento_venda_terminal = mvt.id_movimento_venda_terminal)
		INNER JOIN recebimento_venda_cf AS rvc ON (rvc.id_venda_cf = vc.id_venda_cf)
		INNER JOIN parcela_recebimento_venda_cf AS prvc ON (prvc.id_recebimento_venda_cf = rvc.id_recebimento_venda_cf)
		INNER JOIN titulo_financeiro AS tf ON (tf.id_titulo_financeiro = prvc.id_titulo_financeiro)
		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 pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)
	WHERE	mvt.id_movimento_venda_terminal = :Id
	AND	tf.natureza_titulo IN (202, 203) /*Cartão de Crédito / Cartão de Débito*/
	AND	rvc.cancelado = 'N'
	AND	vc.cancelada = 'N'

	UNION ALL

	SELECT	p.nome AS nome_administradora,
			tf.valor_titulo AS valor_titulo,
			rt.denominacao AS denominacao_rede_tef,
			bt.denominacao AS denominacao_bandeira_tef
	FROM	movimento_numerario_terminal AS mnt
		INNER JOIN forma_recebimento AS fr ON (fr.id_forma_recebimento = mnt.id_forma_recebimento)
		INNER JOIN sis_referencia_registro AS srr ON (srr.id_chave_registro_a = mnt.id_movimento_numerario)
		INNER JOIN titulo_financeiro AS tf ON (tf.id_titulo_financeiro = srr.id_chave_registro_b)
		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 pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)
		INNER JOIN sis_opcao_lista_valor AS lv on (lv.id = mnt.tipo_movimento AND lv.id_lista_valor = 'BFDDF9F1E7A448FB8D15E1C5855BB7B8')
	WHERE 	mnt.id_movimento_venda_terminal = :Id
	AND 	mnt.tipo_movimento IN (4) /*Adiantamento de Clientes*/
	AND 	fr.id_tipo_recebimento IN (4 ,5) /*Cartão de Crédito / Cartão de Débito*/
	AND 	mnt.cancelado_original = 'N'
	AND 	mnt.cancelado = 'N'
	AND 	srr.tipo_referencia = 'ref_0826_0606_adiantamento_cliente'
	
	UNION ALL

	SELECT	p.nome AS nome_administradora,
			tf.valor_titulo AS valor_titulo,
			rt.denominacao AS denominacao_rede_tef,
			bt.denominacao AS denominacao_bandeira_tef
	FROM	movimento_numerario_terminal AS mnt
		INNER JOIN forma_recebimento AS fr ON (fr.id_forma_recebimento = mnt.id_forma_recebimento)
		INNER JOIN titulo_financeiro AS tf ON (tf.id_titulo_financeiro = mnt.id_titulo_financeiro)
		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 pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)
		INNER JOIN sis_opcao_lista_valor AS lv on (lv.id = mnt.tipo_movimento AND lv.id_lista_valor = 'BFDDF9F1E7A448FB8D15E1C5855BB7B8')
	WHERE 	mnt.id_movimento_venda_terminal = :Id
	AND 	mnt.tipo_movimento = 5 /*Recebimento de Título*/
	AND 	fr.id_tipo_recebimento IN (4 ,5) /*Cartão de Crédito / Cartão de Débito*/
	AND 	mnt.cancelado_original = 'N'
	AND 	mnt.cancelado = 'N' 
	
	UNION ALL

	SELECT	p.nome AS nome_administradora,
			ltn.valor_troca AS valor_titulo,
			rt.denominacao AS denominacao_rede_tef,
			bt.denominacao AS denominacao_bandeira_tef
	FROM	lancamento_troca_numerario AS ltn
		INNER JOIN troca_numerario AS tn ON(tn.id_troca_numerario = ltn.id_troca_numerario)
		INNER JOIN forma_recebimento AS fr ON (fr.id_forma_recebimento = ltn.id_forma_recebimento)
		LEFT JOIN  rede_tef AS rt ON (rt.id_rede_tef = fr.id_rede_tef)
		LEFT JOIN  bandeira_tef AS bt ON (bt.id_bandeira_tef = fr.id_bandeira_tef)
		INNER JOIN pessoa AS p ON (p.id_pessoa = fr.id_pessoa_financeiro)
	WHERE 	tn.id_movimento_venda_terminal = :Id
	AND 	ltn.recebimento_pagamento = 1 /*Recebimento de Título*/
	AND 	fr.id_tipo_recebimento IN (4 ,5) /*Cartão de Crédito / Cartão de Débito*/
	AND 	tn.cancelada = 'N'
	AND 	tn.cancelada_original = 'N'
	AND 	ltn.cancelado = 'N') AS r
GROUP BY
	r.nome_administradora,
	r.denominacao_rede_tef,
	r.denominacao_bandeira_tef
ORDER BY
	r.nome_administradora;