SELECT	
	r.data_movimento,
	r.id_empresa,
	r.nome_empresa,	
	r.caixa_movimento,
	r.codigo_atendente,
	r.nome_atendente,	
	r.codigo,
	r.denominacao,
	sum(r.quantidade_vendida) as quantidade_vendida,
	sum(r.valor_total) as valor_total
	
FROM (
	
	SELECT
		mvt.data_movimento,
		se.id_empresa,
		se.nome AS nome_empresa,
		mvt.numero_movimento as caixa_movimento,
		CASE WHEN p.nome is null
			THEN 'Desconhecido'
			ELSE p.nome
		END
		 AS nome_atendente,
		p.codigo AS codigo_atendente,

		SUM(iv.quantidade) AS quantidade_vendida,
		
		SUM (
			TRUNC(
				CASE WHEN v.id_cliente = :IdCliente
					then
					(iv.preco_original * iv.quantidade)
					else
					(iv.total_item - (iv.desconto_rateado + iv.desconto_ajuste_rateado + iv.desconto_automatico_rateado + iv.desconto_fidelidade_rateado)
						+ (iv.acrescimo_rateado + iv.acrescimo_ajuste_rateado + iv.acrescimo_automatico_rateado))
				END , 
			2)
		) AS valor_total,
		
		CASE WHEN i.codigo = '001'
			then
			'1'
			else CASE WHEN i.codigo = '002'
				then
				'1'
				else		
					CASE WHEN i.codigo = '003'
					then
					'1'
					else		
						CASE WHEN i.codigo = '003'
						then
						'1'
						else		
							CASE WHEN i.codigo = '004'
							then
							'1'
							else		
								CASE WHEN i.codigo = '005'
							then
							'1'
							else		
									CASE WHEN i.codigo = '006'
									then
									'1'
								else		
									i.codigo
								END
							END
						END
					END
				END
				END
		END as codigo,

		CASE WHEN i.codigo = '001'
			then
			'Combustível'
			else CASE WHEN i.codigo = '002'
				then
				'Combustível'
				else		
					CASE WHEN i.codigo = '003'
					then
					'Combustível'
					else		
						CASE WHEN i.codigo = '003'
						then
						'Combustível'
						else		
							CASE WHEN i.codigo = '004'
							then
							'Combustível'
							else		
								CASE WHEN i.codigo = '005'
								then
								'Combustível'
							else		
								CASE WHEN i.codigo = '006'
								then
								'Combustível'
								else		
									i.denominacao
								END
							END
						END
					END
				END
				END
		END as denominacao
		
		
	FROM	movimento_venda_terminal AS mvt
		INNER JOIN venda_cf AS v ON (mvt.id_movimento_venda_terminal = v.id_movimento_venda_terminal)
		INNER JOIN item_venda_cf AS iv ON (v.id_venda_cf =iv.id_venda_cf)
		INNER JOIN item AS i ON (iv.id_item = i.id_item)
		LEFT JOIN pessoa AS p ON (p.id_pessoa = iv.id_atendente)
		INNER JOIN sis_empresa AS se ON (se.id_empresa = mvt.id_empresa)
	
	WHERE iv.cancelado = 'N'
	AND	v.cancelada = 'N'
	AND mvt.id_empresa = :__ID_EMPRESA
	AND	mvt.data_movimento = :Data
	AND (:IdColaboradorEmpresaLogada = -1 OR iv.id_atendente = :IdColaboradorEmpresaLogada)
		
	GROUP BY 
		se.id_empresa,
		se.nome,		
		mvt.data_movimento,
		mvt.numero_movimento,
		p.nome,
		p.codigo,
		i.codigo,
		i.denominacao
) AS r

GROUP BY 
		r.codigo,
		r.denominacao,
		r.data_movimento,
		r.id_empresa,
		r.nome_empresa,	
		r.caixa_movimento,
		r.nome_atendente,
		r.codigo_atendente
ORDER BY
		r.data_movimento,
		r.nome_empresa,
		r.nome_atendente, 
		r.caixa_movimento,		
		r.codigo