<?php
	//nao me orgulho de nada daqui pra baixo
	$dir = $_SERVER['DOCUMENT_ROOT']."/".substr(substr($_SERVER['REQUEST_URI'], 1), 0, strpos(substr($_SERVER['REQUEST_URI'], 1), '/'))."/phone_gap";
	require_once($dir."/classes/Dados.class.php");
	require_once($dir."/classes/Usuario.class.php");
	 require_once($dir."/dao/ConfigDAO.class.php");

	define("CODIGO", 0);
	define("DESCRICAO", 1);
	define("QTDEVENDA", 2);
	define("QTDEBONIF", 3);
	define("VALORVENDA", 4);
	define("VALORBONIF", 5);
	define("CODAG", 6);
	define("DESCRICAOAG", 7);

	define("QTDETROCA", 8);
	define("VALORTROCA", 9);

	$dados = new Dados();

	$marca = $_POST['marca'];
	$familia = $_POST['familia'];
	$grupo = $_POST['grupo'];
	$subgrupo = $_POST['subgrupo'];
	$produto = $_POST['produto'];
	$gerente = $_POST['gerente'];
	$supervisor = $_POST['supervisor'];
	$vendedor = $_POST['vendedor'];
	$cliente = $_POST['cliente'];
	$dataini = $_POST['dataini'];
	$datafin = $_POST['datafin'];
	$descdev = $_POST['descdev'];
	$somafrete = $_POST['somafrete'];
	$trocapor = $_POST['trocapor'];
	$rede = $_POST['rede'];
	$codcidade = $_POST['codcidade'];
	$nroregiao = $_POST['nroregiao'];
	$mostrarpor = $_POST['mostrarpor'];
	$agruparpor = $_POST['agruparpor'];
	$ordenarpor = $_POST['ordenarpor'];

	$usuario = $dados->fixObject($_SESSION["usuario"]);
	if ($usuario->getVendedor()->getCodVendedor() != "" ) {
		if($usuario->getVendedor()->getTipo() == 'S')
			$supervisor = $usuario->getVendedor()->getCodVendedor();
		else {
			if ($usuario->getVendedor()->getTipo() != 'E') //se não for gerente
				$vendedor = $usuario->getVendedor()->getCodVendedor();
		}
	}

	$inicio = $_POST["inicio"];
	$qtde = $_POST["qtde"];
	$NotInicio = $inicio > 0;

	if ($NotInicio)
		$inicio--;

	$configdao = new ConfigDAO();
	$pedidos = $configdao->getDisponibilizar()->getMetas_base_pedidos();
	$trocas = $configdao->getDisponibilizar()->getTrocas();
	$exibirData = $configdao->getDisponibilizar()->getData_rel_vendas();	
	$exibirClientePor = $configdao->getDisponibilizar()->getExibir_Cliente_Por();
	
	$dataini = $dados->DatePickerToDate($dataini);
	$datafin = $dados->DatePickerToDate($datafin);

	$cod = null;
	$join = null;
	$descricao = null;
	switch($mostrarpor){
		case "Supervisor":
			$cod = 'MO.CODVENDEDOR';
			$join = " left join VENDEDORES MO on
						(MO.CODVENDEDOR = VE.CODSUPERVISOR) or
						(MO.CODVENDEDOR = V.CODVENDEDOR and MO.CODSUPERVISOR is null) ";
			$descricao = "MO.NOME";
			break;

		case "Vendedor":
			$cod = 'MO.CODVENDEDOR';
			$join = " left join VENDEDORES MO on MO.CODVENDEDOR = V.CODVENDEDOR ";
			$descricao = "MO.NOME";
			break;

		case "Familia":
			$cod = 'MO.CODFAMILIA';
			$join = " left join FAMILIAS MO on MO.CODFAMILIA = P.CODFAMILIA ";
			$descricao = "MO.DESCRICAO";
			break;

		case "Marca":
			$cod = 'MO.CODMARCA';
			$join = " left join MARCAS MO on MO.CODMARCA = P.CODMARCA ";
			$descricao = "MO.DESCRICAO";
			break;

		case "Grupo":
			$cod = 'MO.CODGRUPO';
			$join = " left join GRUPOS MO on MO.CODGRUPO = P.CODGRUPO ";
			$descricao = "MO.DESCRICAO";
			break;

		case "Subgrupo":
			$cod = 'MO.CODSUBGRUPO';
			$join = " left join GRUPOS G on G.CODGRUPO = P.CODGRUPO
					  left join SUBGRUPOS MO on MO.CODGRUPO = G.CODGRUPO and MO.CODSUBGRUPO = P.CODSUBGRUPO ";
			$descricao = "MO.DESCRICAO";
			break;

		case "Produto":
			$cod = 'MO.CODPRODUTO';
			$join = " left join PRODUTOS MO on MO.CODPRODUTO = P.CODPRODUTO ";
			$descricao = "MO.PRODUTO";
			break;

		case "Cliente":
			$cod = 'MO.CODCLIENTE';
			$join = " left join CLIENTES MO on MO.CODCLIENTE = V.CODCLIENTE ";
			$descricao = $dados->ifthen($exibirClientePor == "F", " COALESCE(MO.FANTASIA, MO.NOME) " , " MO.NOME ");
			break;
			
		case "Portador":
			$cod = 'MO.CODPORTADOR';
			$join = " left join PORTADORES MO on MO.CODPORTADOR = V.CODPORTADOR ";
			$descricao = "MO.DESCRICAO";
			break;
			
		case "CondPagto":
			$cod = 'MO.CODCPAGTO';
			$join = " left join CPAGTO MO on MO.CODCPAGTO = V.CODCPAGTO ";
			$descricao = "MO.DESCRICAO";
			break;
			
	}

	$codAG = null;
	$joinAG = null;
	$descricaoAG = null;
	if($agruparpor){
		switch($agruparpor){
			case "Supervisor":
				$codAG = 'AG.CODVENDEDOR';
				$joinAG = " left join VENDEDORES AG on
							(AG.CODVENDEDOR = VE.CODSUPERVISOR) or
							(AG.CODVENDEDOR = V.CODVENDEDOR and AG.CODSUPERVISOR is null) ";
				$descricaoAG = "AG.NOME";
				break;

			case "Vendedor":
				$codAG = 'AG.CODVENDEDOR';
				$joinAG = " left join VENDEDORES AG on AG.CODVENDEDOR = V.CODVENDEDOR ";
				$descricaoAG = "AG.NOME";
				break;

			case "Familia":
				$codAG = 'AG.CODFAMILIA';
				$joinAG = " left join FAMILIAS AG on AG.CODFAMILIA = P.CODFAMILIA ";
				$descricaoAG = "AG.DESCRICAO";
				break;

			case "Grupo":
				$codAG = 'AG.CODGRUPO';
				$joinAG = " left join GRUPOS AG on AG.CODGRUPO = P.CODGRUPO ";
				$descricaoAG = "AG.DESCRICAO";
				break;

			case "Produto":
				$codAG = 'AG.CODPRODUTO';
				$joinAG = " left join PRODUTOS AG on AG.CODPRODUTO = P.CODPRODUTO ";
				$descricaoAG = "AG.PRODUTO";
				break;

			case "Cliente":
				$codAG = 'AG.CODCLIENTE';
				$joinAG = " left join CLIENTES AG on AG.CODCLIENTE = V.CODCLIENTE ";
				$descricaoAG = $dados->ifthen($exibirClientePor == "F", " COALESCE(AG.FANTASIA, AG.NOME) " , " AG.NOME ");
				break;

			case "Cidade":
				$codAG = 'AG.CODCIDADE';
				$joinAG = " left join CIDADES AG on AG.CODCIDADE = CI.CODCIDADE ";
				$descricaoAG = "AG.CIDADE";
				break;

			case "Data";
				$codAG = "V.DATA";
				$descricaoAG = "V.DATA";
				$joinAG = "";
				break;

			case "Portador";
				$codAG = "AG.CODPORTADOR";
				$joinAG = " left join PORTADORES AG on AG.CODPORTADOR = V.CODPORTADOR ";
				$descricaoAG = "AG.DESCRICAO";				
				break;
				
			case "CondPagto";
				$codAG = "AG.CODCPAGTO";
				$joinAG = " left join CPAGTO AG on AG.CODCPAGTO = V.CODCPAGTO ";
				$descricaoAG = "AG.DESCRICAO";				
				break;
		}

	}

	$filtro =
		$dados->filtroSQL('P.CODMARCA', $marca).
		$dados->filtroSQL('P.CODFAMILIA', $familia).
		$dados->filtroSQL('P.CODGRUPO', $grupo).
		$dados->filtroSQL('P.CODSUBGRUPO', $subgrupo).
		$dados->filtroSQL('P.CODPRODUTO', $produto).
		$dados->filtroSQL('V.CODVENDEDOR', $vendedor).
		$dados->filtroSQL('V.CODCLIENTE', $cliente).
		$dados->ifthen($supervisor, " and (VE.CODSUPERVISOR = ".$supervisor." or VE.CODVENDEDOR = ".$supervisor.")").
		$dados->ifthen($gerente, " and (VE.CODVENDEDOR = ".$gerente." or VE.CODGERENTE = ".$gerente." or
								  (VE.CODSUPERVISOR in (select CODVENDEDOR from vendedores where CODGERENTE = ".$gerente.")))").
		$dados->filtroDataSQL('V.DATA', $dataini, $datafin).
		$dados->ifthen($rede, " and CL.CODREDE = ".$rede." ", "").
		$dados->ifthen($codcidade, " and CI.CODCIDADE = ".$codcidade." ", "").
		$dados->ifthen($nroregiao, " and CIR.NROREGIAO = ".$nroregiao." ", "");

	function sqlTotal($agrup = "") {
		global $filtro, $joinAG, $dados, $pedidos, $trocas, $descdev, $somafrete, $trocapor;

		return
		"	select sum(QTDEVENDA) QTDEVENDA, sum(QTDEBONIF) QTDEBONIF,
			sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "")." VALORVENDA, sum(VALORBONIF) VALORBONIF,
			iif(sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "")." > 0, 
				sum(VALORTROCA) / (sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "").") * 100, 
				0) PERC_TROCA_VALFAT, 
			SUM(QTDETROCA) QTDETROCA, sum(VALORTROCA) VALORTROCA, " .
			$dados->ifthen($trocapor == 'Quantidade', 
				"case when sum(QTDEVENDA) > 0 then sum(QTDETROCA) * 100 / sum(QTDEVENDA) else 0 end PERC_TROCA,", 
				"case when sum(VALORVENDA)" . $dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "") . " > 0 then 
					sum(VALORTROCA)" . $dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "") . " * 100 / sum(VALORVENDA) else 0 end PERC_TROCA,"
			) . "
			sum(PESOBRUTO) PESOBRUTO, sum(VALORFRETE) VALORFRETE
			from(
				select sum(P.PESOBRUTO * VP.QTDE) PESOBRUTO, sum(VP.QTDE) QTDEVENDA, 0 QTDEBONIF,
				coalesce(sum(VP.QTDE * VP.PRECO * (1 - coalesce(V.PERCDESCONTO, 0) / 100)), 0) VALORVENDA,
				0 VALORBONIF, 0 QTDETROCA, 0 VALORTROCA, sum(coalesce(VP.VALORFRETE, 0)) VALORFRETE ".
				$dados->ifthen($pedidos,
					"from PEDIDOS V join PED_PRODS VP on V.NROPEDIDO = VP.NROPEDIDO ",
					"from VENDAS V join VENDAS_PRODS VP on V.NROVENDA = VP.NROVENDA "
				).
				"left join CLIENTES CL on CL.CODCLIENTE = V.CODCLIENTE ".
				"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
				"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".
				"join PRODUTOS P on VP.CODPRODUTO = P.CODPRODUTO
				 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
				 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
				$joinAG.

				$dados->ifthen($pedidos,
					" where V.SITUACAO <> 4 and V.TIPO IN ('V','4') ",
					" where V.SITUACAO = 'I' and V.TIPONOTA = 'S' and N.EMITEDUPL = 'T' "
				).
				$agrup." ".$filtro.
				"group by 3, 5, 6, 7 ".

				//DEVOLUÇÕES
				$dados->ifthen($descdev == 'true',
				"	union all
					select sum(-(P.PESOBRUTO * D.QTDE)) PESOBRUTO, sum(-D.QTDE) QTDEVENDA,
					0 QTDEBONIF, sum(-D.VALTOTAL) VALORVENDA, 
					0 VALORBONIF, 0 QTDETROCA, 0 VALORTROCA, 0 VALORFRETE
					from DEVOLUCOES D
					left join CLIENTES CL on CL.CODCLIENTE = D.CODCLIENTE
					left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE
					left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO
					join PRODUTOS P on D.CODPRODUTO = P.CODPRODUTO
					left join VENDEDORES VE on D.CODVENDEDOR = VE.CODVENDEDOR
					left join NATOPERACAO N on D.CODNATOPER = N.CODNATOPER".
					str_ireplace("V.", "D.", $joinAG).
					" where D.CODPRODUTO is not null ".
					$agrup." ".str_ireplace("V.", "D.",$filtro).
					" group by 3, 5, 6, 7, 8 " , "").
				
				
			//BONIFICAÇÕES
			"	union all
				select sum(P.PESOBRUTO * VP.QTDE) PESOBRUTO, 0 QTDEVENDA, sum(VP.QTDE) QTDEBONIF, 0 VALORVENDA,
				coalesce(sum(VP.QTDE * VP.PRECO * (1 - coalesce(V.PERCDESCONTO, 0) / 100)), 0) VALORBONIF,
				0 QTDETROCA, 0 VALORTROCA, sum(coalesce(VP.VALORFRETE, 0)) VALORFRETE ".
				$dados->ifthen($pedidos,
					"from PEDIDOS V join PED_PRODS VP on V.NROPEDIDO = VP.NROPEDIDO ",
					"from VENDAS V join VENDAS_PRODS VP on V.NROVENDA = VP.NROVENDA "
				).
				"left join CLIENTES CL on CL.CODCLIENTE = V.CODCLIENTE ".
				"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
				"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".
				"join PRODUTOS P on VP.CODPRODUTO = P.CODPRODUTO
				 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
				 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
				$joinAG.
				$dados->ifthen($pedidos,
					" where V.SITUACAO <> 4 and V.TIPO = 'B' ",
					" where V.SITUACAO = 'I' and V.TIPONOTA = 'S' and
						substring(V.CODNATOPER from 1 for 5) in (".$dados->getCodBonif().") "
				).
				$agrup." ".$filtro.
				"group by 2, 4, 6, 7 ".

			//TROCAS
			$dados->ifthen($trocas,
				"	union all
					select sum(P.PESOBRUTO * V.QTDE) PESOBRUTO, 0 QTDEVENDA, 0 QTDEBONIF, 0 VALORVENDA, 0 VALORBONIF,
					sum(V.QTDE) QTDETROCA,
					sum(V.QTDE * V.PRECO) VALORTROCA, 0 VALORFRETE
					from TROCAS_VIEW V  ".
					$dados->ifthen($pedidos,
						"left join PEDIDOS VD on VD.NROPEDIDO = V.NROPEDIDO ",
						"left join PEDIDOS VD on VD.NROPEDIDO = V.NROPEDIDO
						 left join VENDAS VN on VN.NROVENDA = VD.NROVENDA "
					).
					"left join CLIENTES CL on CL.CODCLIENTE = VD.CODCLIENTE ".
					"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
					"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".
					"join PRODUTOS P on P.CODPRODUTO = V.CODPRODUTO
					 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
					 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
					$joinAG.
					" where V.CODPRODUTO is not null ".
					$agrup." ".$filtro.
					"group by 2, 3, 4, 5, 8 ", ""
			).

			")";

		return $retorno;
	}
	
	$sql =
		"select first ".$qtde." skip ".$inicio.
		"CODAG, DESCRICAOAG, CODIGO, DESCRICAO, ".
			$dados->ifthen($exibirData, "DATA,", "null DATA,").
		"sum(PESOBRUTO) PESOBRUTO, ".
		"sum(QTDEVENDA) QTDEVENDA, sum(QTDEBONIF) QTDEBONIF, ".
		"sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "")." VALORVENDA, sum(VALORBONIF) VALORBONIF, ".
		"sum(QTDETROCA) QTDETROCA, sum(VALORTROCA) VALORTROCA, ".
		"iif(sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "")." > 0, 
				sum(VALORTROCA) / (sum(VALORVENDA)".$dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "").") * 100, 
				0) PERC_TROCA_VALFAT, ".
		$dados->ifthen($trocapor == 'Quantidade', 
			"case when sum(QTDEVENDA) > 0 then sum(QTDETROCA) * 100 / sum(QTDEVENDA) else 0 end PERC_TROCA,", 
			"case when sum(VALORVENDA)" . $dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "") . " > 0 then 
				sum(VALORTROCA)" . $dados->ifthen($somafrete == 'true', " + sum(VALORFRETE)", "") . " * 100 / sum(VALORVENDA) else 0 end PERC_TROCA,"
		) .
		"sum(VALORFRETE) VALORFRETE ".
		"from (select ".
		$dados->ifthen($agruparpor,
			$codAG." CODAG, ".$descricaoAG." DESCRICAOAG",
			"null CODAG, null DESCRICAOAG"
		).
		", ".$cod." CODIGO, ".$descricao." DESCRICAO, ".
			$dados->ifthen($exibirData, "V.DATA,", "null DATA,").
		"sum(P.PESOBRUTO * VP.QTDE) PESOBRUTO, ".
		"sum(VP.QTDE) QTDEVENDA,
		0 QTDEBONIF, coalesce(sum(VP.QTDE * VP.PRECO * (1 - coalesce(V.PERCDESCONTO, 0) / 100)), 0) VALORVENDA,
		0 VALORBONIF, 0 QTDETROCA, 0 VALORTROCA, sum(coalesce(VP.VALORFRETE, 0)) VALORFRETE ".

        $dados->ifthen($pedidos,
			"from PEDIDOS V join PED_PRODS VP on V.NROPEDIDO = VP.NROPEDIDO ",
            "from VENDAS V join VENDAS_PRODS VP on V.NROVENDA = VP.NROVENDA "
        ).
		"left join CLIENTES CL on CL.CODCLIENTE = V.CODCLIENTE ".
		"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
		"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".

		"join PRODUTOS P on VP.CODPRODUTO = P.CODPRODUTO
		 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
		 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
		$join." ".$joinAG.
		$dados->ifthen($pedidos,
			" where V.SITUACAO <> 4 and V.TIPO in ('V','4') ",
			" where V.SITUACAO = 'I' and V.TIPONOTA = 'S' and N.EMITEDUPL = 'T' "
		).
		$filtro.
		" group by 1, 2, 3, 4, 5 ".

		//DEVOLUÇÕES
		$dados->ifthen($descdev == 'true',
		"union all ".
		 str_ireplace("V.", "D.", "select ".
		$dados->ifthen($agruparpor, 
			$codAG." CODAG, ".$descricaoAG." DESCRICAOAG", 
			"null CODAG, null DESCRICAOAG"
		).
		", ".$cod." CODIGO, ".$descricao." DESCRICAO, ".
			$dados->ifthen($exibirData, "D.DATA,", "null DATA,").
		"sum(-(P.PESOBRUTO * D.QTDE)) PESOBRUTO, ".
		"sum(-D.QTDE) QTDEVENDA,
		 0 QTDEBONIF, sum(-D.VALTOTAL) VALORVENDA,
		 0 VALORBONIF,
		 0 QTDETROCA, 0 VALORTROCA, 0 VALORFRETE ".
		"from DEVOLUCOES D ". 
		"left join CLIENTES CL on CL.CODCLIENTE = D.CODCLIENTE ".
		"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
		"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".
		"join PRODUTOS P on D.CODPRODUTO = P.CODPRODUTO
		 left join VENDEDORES VE on D.CODVENDEDOR = VE.CODVENDEDOR
		 left join NATOPERACAO N on D.CODNATOPER = N.CODNATOPER ".
		$join." ".$joinAG.
		"where 1=1 ".$filtro).
		" group by 1, 2, 3, 4, 5, 13", "").
		
		
		
		//BONIFICAÇÕES
		"union all
		 select ".
		$dados->ifthen($agruparpor,
			$codAG." CODAG, ".$descricaoAG." DESCRICAOAG",
			"null CODAG, null DESCRICAOAG"
		).
		", ".$cod." CODIGO, ".$descricao." DESCRICAO, ".
			$dados->ifthen($exibirData, "V.DATA,", "null DATA,").
		"sum(P.PESOBRUTO * VP.QTDE) PESOBRUTO, ".
		"0 QTDEVENDA,
		 sum(VP.QTDE) QTDEBONIF, 0 VALORVENDA,
		 coalesce(sum(VP.QTDE * VP.PRECO * (1 - coalesce(V.PERCDESCONTO, 0) / 100)), 0) VALORBONIF,
		 0 QTDETROCA, 0 VALORTROCA, sum(coalesce(VP.VALORFRETE, 0)) VALORFRETE ".
		$dados->ifthen($pedidos,
			"from PEDIDOS V join PED_PRODS VP on V.NROPEDIDO = VP.NROPEDIDO ",
			"from VENDAS V join VENDAS_PRODS VP on V.NROVENDA = VP.NROVENDA "
		).
		"left join CLIENTES CL on CL.CODCLIENTE = V.CODCLIENTE ".
		"left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE ".
		"left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO ".
		"join PRODUTOS P on VP.CODPRODUTO = P.CODPRODUTO
		 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
		 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
		$join." ".$joinAG.
		$dados->ifthen($pedidos,
			" where V.SITUACAO <> 4 and V.TIPO = 'B' ",
            " where	V.SITUACAO = 'I' and V.TIPONOTA = 'S' and
			  substring(V.CODNATOPER from 1 for 5) in (".$dados->getCodBonif().")"
		).
		$filtro.
		" group by 1, 2, 3, 4, 5 ".

		//TROCAS
		$dados->ifthen($trocas,
			"union all
			 select ".
			$dados->ifthen($agruparpor,
				$codAG." CODAG, ".$descricaoAG." DESCRICAOAG",
				"null CODAG, null DESCRICAOAG"
			).
			", ".$cod." CODIGO, ".$descricao." DESCRICAO, ".
				$dados->ifthen($exibirData, "V.DATA,", "null DATA,").
			"sum(P.PESOBRUTO * V.QTDE) PESOBRUTO, ".
			"0 QTDEVENDA, 0 QTDEBONIF, 0 VALORVENDA, 0 VALORBONIF,
			 sum(V.QTDE) QTDETROCA, sum(V.QTDE * V.PRECO) VALORTROCA, 0 VALORFRETE
			 from TROCAS_VIEW V  ".
			$dados->ifthen($pedidos,
				"left join PEDIDOS VD on VD.NROPEDIDO = V.NROPEDIDO ",
				"left join PEDIDOS VD on VD.NROPEDIDO = V.NROPEDIDO
				 left join VENDAS VN on VN.NROVENDA = VD.NROVENDA "
			).
			"left join CLIENTES CL on CL.CODCLIENTE = VD.CODCLIENTE
			 left join CIDADES CI on CI.CODCIDADE = CL.CODCIDADE
			 left join CIDADES_REGIOES CIR on CL.NROREGIAO = CIR.NROREGIAO
			 join PRODUTOS P on P.CODPRODUTO = V.CODPRODUTO
			 left join VENDEDORES VE on V.CODVENDEDOR = VE.CODVENDEDOR
			 left join NATOPERACAO N on V.CODNATOPER = N.CODNATOPER ".
			$join." ".$joinAG.
			" where V.CODPRODUTO is not null ".
			$filtro.
			" group by 1, 2, 3, 4, 5, 13", ""
		).
		")
		 group by 1, 2, 3, 4, 5
		 order by 1, ".$ordenarpor;

	$result = $dados->SelectSQL($sql);

	$qtdeResults = count($result);
	if ($qtdeResults <= 0) {
		return;
	}

	if ($NotInicio) {
		$agrup = $result[0]['CODAG'];
		unset($result[0]);
	} else {
		$agrup = '';
	}

	$res = '';
	foreach($result as $id => $r){
		if($agrup != $r['CODAG']){
			if ($id > 0){
				$sqlTot = sqlTotal(" and ".$codAG." = ".$agrup." ");

				$resTot = $dados->SelectSQL($sqlTot);

				$res .= "<tr style='font-weight: bold;'>".
                "  <td></td>".
				"  <td>Total</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['QTDEVENDA'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['QTDEBONIF'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['QTDETROCA'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA_VALFAT'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['VALORVENDA'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['VALORBONIF'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['VALORTROCA'])."</td>".
				"  <td>".$dados->formatarNumero($resTot[0]['PESOBRUTO'])."</td>".
				"</tr>".
				"<tr>".
				"  <td></td>".
				"</tr>";
			}

			$res .= "<tr id='agrup".$r['CODAG']."' style='background-color:blue;'>".
				"  <td></td>".
				"  <td><b>".$dados->ifthen($agruparpor == "Data", $dados->DateToText($r['DESCRICAOAG']), $r['DESCRICAOAG'])."</b></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"  <td></td>".
				"</tr>";
			$agrup = $r['CODAG'];
		}
		
		$data = "";
		if($exibirData) {
			$data = date_create($r['DATA']);
		}
		$res .= "<tr>".
				"  <td style='text-align: left;'>".$r['CODIGO']."</td>".
				"  <td style='text-align: left;'>".$r['DESCRICAO']."</td>".
					$dados->ifthen($exibirData, "  <td>".date_format($data, 'd/m/Y')."</td>", "").
				"  <td>".$dados->formatarNumero($r['QTDEVENDA'])."</td>".
				"  <td>".$dados->formatarNumero($r['QTDEBONIF'])."</td>".
				"  <td>".$dados->formatarNumero($r['QTDETROCA'])."</td>".
				"  <td>".$dados->formatarNumero($r['PERC_TROCA'])."</td>".
				"  <td>".$dados->formatarNumero($r['PERC_TROCA_VALFAT'])."</td>".
				"  <td>".$dados->formatarNumero($r['VALORVENDA'])."</td>".
				"  <td>".$dados->formatarNumero($r['VALORBONIF'])."</td>".
				"  <td>".$dados->formatarNumero($r['VALORTROCA'])."</td>".
				"  <td>".$dados->formatarNumero($r['PESOBRUTO'])."</td>".
				"</tr>";

	}

	if ($qtdeResults < $qtde) {
		if ($agrup != '') {
			$sqlTot = sqlTotal(" and ".$codAG." = ".$agrup." ");

			$resTot = $dados->SelectSQL($sqlTot);

			$res .= "<tr style='font-weight: bold;'>".
					"  <td></td>".
					"  <td>Total</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['QTDEVENDA'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['QTDEBONIF'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['QTDETROCA'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA_VALFAT'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['VALORVENDA'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['VALORBONIF'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['VALORTROCA'])."</td>".
					"  <td>".$dados->formatarNumero($resTot[0]['PESOBRUTO'])."</td>".
					"</tr>".
					"<tr>".
					"  <td></td>".
					"</tr>";

		}
		
		$sqlTot = sqlTotal();

		$resTot = $dados->SelectSQL($sqlTot);

		$res .= "<tr style='background-color: green;font-weight: bold;'>".
			"  <td></td>".
			"  <td>Total</td>".
				$dados->ifthen($exibirData, "  <td></td>", "").
			"  <td>".$dados->formatarNumero($resTot[0]['QTDEVENDA'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['QTDEBONIF'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['QTDETROCA'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['PERC_TROCA_VALFAT'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['VALORVENDA'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['VALORBONIF'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['VALORTROCA'])."</td>".
			"  <td>".$dados->formatarNumero($resTot[0]['PESOBRUTO'])."</td>".
			"</tr>".
			"<tr>".
			"  <td></td>".
			"</tr>";
	}

	echo $res;

?>
