SELECT	
	se.nome AS nome_empresa,
	pe.codigo AS codigo_cliente,
	pe.nome AS nome_cliente,
	
	SUM(
		ROUND((iv.preco_original * iv.quantidade), 2)
	) AS total_valor_original,
	
	SUM(
		(iv.total_item 
			- (iv.desconto_rateado + iv.desconto_ajuste_rateado + iv.desconto_automatico_rateado + iv.desconto_fidelidade_rateado + iv.desconto_financeiro)
			+ (iv.acrescimo_rateado + iv.acrescimo_ajuste_rateado + iv.acrescimo_automatico_rateado + iv.acrescimo_financeiro)) 
	) AS total_valor_praticado


FROM	movimento_venda_terminal AS mv
	INNER JOIN venda_cf AS v ON (v.id_movimento_venda_terminal = mv.id_movimento_venda_terminal)
	INNER JOIN item_venda_cf AS iv ON (iv.id_venda_cf = v.id_venda_cf)
	INNER JOIN recebimento_venda_cf AS rvc ON (rvc.id_venda_cf = v.id_venda_cf)
	INNER JOIN forma_recebimento AS fr ON (fr.id_forma_recebimento = rvc.id_forma_recebimento)
	INNER JOIN tipo_recebimento AS tr ON (tr.id_tipo_recebimento = fr.id_tipo_recebimento)
	INNER JOIN item AS i ON (i.id_item = iv.id_item)
	INNER JOIN pessoa AS pe ON (pe.id_pessoa = v.id_cliente)
	INNER JOIN sis_empresa AS se ON (se.id_empresa = mv.id_empresa)
	
	
WHERE	mv.data_movimento BETWEEN :DataEmissaoDeNO AND :DataEmissaoAteNO
AND tr.id_tipo_recebimento IN (6,2,3,4,5,1,9,8,7)
AND	iv.cancelado = 'N'
AND	v.cancelada = 'N'
AND	((:IdClienteNaoObrigatorio = -1) OR (v.id_cliente = :IdClienteNaoObrigatorio))
AND	ROUND((iv.preco_original * iv.quantidade), 2) != (iv.total_item 
			- (iv.desconto_rateado + iv.desconto_ajuste_rateado + iv.desconto_automatico_rateado + iv.desconto_fidelidade_rateado + iv.desconto_financeiro)
			+ (iv.acrescimo_rateado + iv.acrescimo_ajuste_rateado + iv.acrescimo_automatico_rateado + iv.acrescimo_financeiro))

GROUP BY se.nome,
	 pe.codigo,
	 pe.nome