-- Demonstrativo do Movimento de Venda
-- NotasAPrazo
SELECT * FROM 
(SELECT	p.codigo AS codigo_cliente,
	p.nome AS nome_cliente,
	p.fantasia_codinome AS nome_fantasia,
	tf.numero_titulo,
	vc.numero_cupom,
	tf.data_vencimento,
	tf.valor_principal AS valor_titulo
FROM recebimento_venda_cf AS rvc
	INNER JOIN venda_cf AS vc ON (rvc.id_venda_cf = vc.id_venda_cf)
	INNER JOIN movimento_venda_terminal AS mvt ON (vc.id_movimento_venda_terminal = mvt.id_movimento_venda_terminal)
	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)
	INNER JOIN pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)
WHERE	mvt.id_movimento_venda_terminal = :Id
AND	tf.natureza_titulo = 201 -- Notas a Prazo
AND	tf.pagar_receber = 2 
AND	rvc.cancelado = 'N'
AND	vc.cancelada = 'N'

UNION ALL

SELECT	
	p.codigo AS codigo_cliente,
	p.nome AS nome_cliente,
	p.fantasia_codinome AS nome_fantasia,
	CAST(tn.numero_cnf AS TEXT) AS numero_titulo,
	CAST(NULL AS INTEGER) AS numero_cupom,
	CAST(NULL AS DATE) as data_vencimento,
	ltn.valor_troca AS valor_titulo
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)
	INNER JOIN tipo_recebimento AS tr ON(tr.id_tipo_recebimento = fr.id_tipo_recebimento)
	INNER JOIN pessoa AS p ON (p.id_pessoa = tn.id_cliente)
WHERE	tn.id_movimento_venda_terminal = :Id
AND	tr.id_tipo_recebimento = 6 -- Notas a Prazo
AND	ltn.recebimento_pagamento = 1 ) AS r
GROUP BY r.codigo_cliente,
r.nome_cliente,
r.nome_fantasia,
r.numero_titulo,
r.numero_cupom,
r.data_vencimento,
r.valor_titulo
ORDER BY r.nome_cliente
