-- Movimentação Diária Tipo/Forma de Recebimento
-- Dados
SELECT	se.nome AS nome_empresa,
	mvt.data_movimento,
	'DINHEIRO' AS forma_pgto,
	SUM(mvt.recebimento_especie) AS total_venda
FROM	movimento_venda_terminal AS mvt
	INNER JOIN sis_empresa AS se ON (se.id_empresa = mvt.id_empresa)

WHERE	
	mvt.id_empresa = :IdEmpresaObrigatorio
	AND	mvt.data_movimento BETWEEN :DataInicial AND :DataFinal

AND	mvt.situacao = 3
GROUP BY 1,2,3

UNION ALL

SELECT	se.nome AS nome_empresa,
	mvt.data_movimento,
	fr.denominacao AS forma_pgto,
	SUM(rv.valor_recebido) AS total_venda
FROM	movimento_venda_terminal AS mvt
	INNER JOIN venda_cf AS v ON (v.id_movimento_venda_terminal = mvt.id_movimento_venda_terminal)
	INNER JOIN item_venda_cf AS itv ON (itv.id_venda_cf = v.id_venda_cf)
	INNER JOIN sis_empresa AS se ON (se.id_empresa = mvt.id_empresa)
	INNER JOIN recebimento_venda_cf AS rv ON (rv.id_venda_cf = v.id_venda_cf)
	INNER JOIN forma_recebimento AS fr ON (fr.id_forma_recebimento = rv.id_forma_recebimento)
WHERE	
	mvt.id_empresa = :IdEmpresaObrigatorio
AND	mvt.data_movimento BETWEEN :DataInicial AND :DataFinal
AND	DATE(v.data_cupom) BETWEEN :DataInicial AND :DataFinal
AND	DATE(itv.data_venda) BETWEEN :DataInicial AND :DataFinal
AND	fr.id_tipo_recebimento != 1
AND	v.cancelada = 'N'
AND	rv.cancelado = 'N'
AND	mvt.situacao = 3
GROUP BY 1,2,3

UNION ALL

SELECT	se.nome AS nome_empresa,
	mvt.data_movimento,
	'SANGRIA' AS forma_pgto,
	SUM(mvt.sangria) AS total_venda
FROM	movimento_venda_terminal AS mvt
	INNER JOIN sis_empresa AS se ON (se.id_empresa = mvt.id_empresa)
WHERE	mvt.data_movimento BETWEEN :DataInicial AND :DataFinal
AND	mvt.id_empresa = :IdEmpresaObrigatorio
AND	mvt.situacao = 3
GROUP BY 1,2,3

ORDER BY nome_empresa,
	data_movimento,
	forma_pgto