<?php
	$dir = $_SERVER['DOCUMENT_ROOT']."/".substr(substr($_SERVER['REQUEST_URI'], 1), 0, strpos(substr($_SERVER['REQUEST_URI'], 1), '/'))."/phone_gap";
	require_once($dir."/dados.php");
	require_once($dir."/classes/Cliente.class.php");
	require_once($dir."/dao/ClienteDAO.class.php");
	require_once($dir."/dao/ConfigDAO.class.php");
	
	$codvendedor = $_POST['codvendedor'];
	$familia = $_POST['familia'];
	$grupo = $_POST['grupo'];
	$subgrupo = $_POST['subgrupo'];
	$codcliente = $_POST['codcliente'];
	$codproduto = $_POST['codproduto']; 
	$dataini = $_POST['dataini'];
	$datafin = $_POST['datafin'];
	$modelo = $_POST['modelo'];
	$agruparpor = $_POST['agruparpor'];
	
	$inicio = $_POST['inicio'];
	$qtde = $_POST['qtde'];
	
	$NotInicio = $inicio > 0;
	
	if ($NotInicio) { 
		$inicio--;
	}
	
	$configdao = new ConfigDAO();
	$multVend = $configdao->getDisponibilizar()->getClientes_mult_vends();
	
	$dados = new Dados();	
	$dataini = $dados->DatePickerToDate($dataini);
	$datafin = $dados->DatePickerToDate($datafin);
	
	switch ($agruparpor) {
		case "Cliente":
			$codAG = "CODCLIENTE";
			$descricaoAG = "NOME";
			$orderByAG = "order by 1, 4";
			break;
		case "Produto":
			$codAG = "CODPRODUTO";
			$descricaoAG = "PRODUTO";
			$orderByAG = "order by 4, 1";
			break;
		default:
			$codAG = "";
			$descricaoAG = "";			
			$orderByAG = "";
			break;
	}

	$sql = "select first ".$qtde." skip ".$inicio." 
				CL.CODCLIENTE, CL.NOME, CL.FANTASIA,
				PR.CODPRODUTO, PR.PRODUTO
			from CLIENTES CL ".
			$dados->ifthen($multVend,
				"join CLI_VENDEDORES CV on CV.CODCLIENTE = CL.CODCLIENTE
				 join VENDEDORES V on V.CODVENDEDOR = CV.CODVENDEDOR "
				,
				"join VENDEDORES V on V.CODVENDEDOR = CL.CODVENDEDOR "
			) . 
			"join PRODUTOS PR on PR.CODPRODUTO is not null " .
			
			$dados->ifthen($modelo == 'Positivados', "", "left ") . "
			join PEDIDOS P on P.TIPO not in ('M', 'R') and
							  P.SITUACAO <> 4 ".
							  $dados->filtroDataSQL('P.DATA', $dataini, $datafin)." and
							  P.CODCLIENTE = CL.CODCLIENTE and
							  P.CODVENDEDOR = V.CODVENDEDOR " .
			$dados->ifthen($modelo == 'Positivados', "", "left ") . "			
			join PED_PRODS PP on PP.NROPEDIDO = P.NROPEDIDO and
								 PP.CODPRODUTO = PR.CODPRODUTO

			where coalesce(CL.SITUACAO, '') <> 'I' and
				  coalesce(PR.SITUACAO, '') <> 'I' " .
				  $dados->ifthen($codvendedor, " and (V.CODVENDEDOR = ".$codvendedor." or V.CODSUPERVISOR = ".$codvendedor.") ", "").				  
				  $dados->filtroSQL('PR.CODFAMILIA', $familia).
				  $dados->filtroSQL('PR.CODGRUPO', $grupo).
				  $dados->filtroSQL('PR.CODSUBGRUPO', $subgrupo).
				  $dados->ifthen($codcliente, " and CL.CODCLIENTE = ".$codcliente." ", "").
				  $dados->ifthen($codproduto, " and PR.CODPRODUTO = '".$codproduto."' ", "").
				  
				  $dados->ifthen($modelo == 'Positivados', "", "and P.CODCLIENTE is null ") .
				  $dados->ifthen($modelo == 'Positivados', "", "and PP.CODPRODUTO is null ") .
				  "
			group by 1, 2, 3, 4, 5 " .
			$orderByAG;
	
	$array = $dados->SelectSQL($sql);
	
	$qtdeRegistros = count($array);
	if ($qtdeRegistros <= 0) {
		return;
	}
	
	//-----------------------------------------------//
	if ($NotInicio) {
		$agrup = $array[0][$codAG];
		unset($array[0]);
	} else {
		$agrup = '';
	}
	
	$clientes = array();
	foreach ($array as $row) {	
		
		$novoCliente = new Cliente();
		$novoCliente->setCodAgrup($row[$codAG]);
		$novoCliente->setDescAgrup($row[$descricaoAG]);
		
		$novoCliente->setCodCliente($row["CODCLIENTE"]);
		$novoCliente->setNome($row["NOME"]);
		$novoCliente->setFantasia($row["FANTASIA"]);
		$novoCliente->setCodProduto($row["CODPRODUTO"]);
		$novoCliente->setProduto($row["PRODUTO"]);
		
		$sqlUltVenda = "select first 1 P.DATA, P.NROPEDIDO, sum(PP.QTDE) QTDE
				from PEDIDOS P
				join PED_PRODS PP on PP.NROPEDIDO = P.NROPEDIDO
				where P.CODCLIENTE = ".$novoCliente->getCodCliente()." and
					PP.CODPRODUTO = '".$novoCliente->getCodProduto()."' and
					P.TIPO not in ('M', 'R') and
					P.SITUACAO <> 4 and
					P.DATA < '".$datafin."'
				group by 1, 2
				order by P.DATA desc";	
						
		$resUltVenda = $dados->SelectSQL($sqlUltVenda);
		if (isset($resUltVenda[0])) {
			$novoCliente->setDataUltVenda($resUltVenda[0]["DATA"]);
			$novoCliente->setQtde($resUltVenda[0]["QTDE"]);
		} else {
			$novoCliente->setDataUltVenda('');
			$novoCliente->setQtde('');
		}
		$clientes[] = $novoCliente;
	}
	
	//-----------------------------------------------//
	$result = '';
	foreach ($clientes as $cliente) {
		if ($agrup != $cliente->getCodAgrup()){
			$result .= "<tr id='agrup".$cliente->getCodAgrup()."' style='background-color:blue;'>";
			$result .= '<td></td>';
			$result .= '<td><b>'.$cliente->getDescAgrup().'</b></td>';
			$result .= '<td></td>';
			$result .= '<td></td>';
			$result .= '<td></td>';
			$result .= '<td></td>';
			$result .= '<td></td>';
			$result .= '<td></td>';
			$result .= '</tr>';
			$agrup = $cliente->getCodAgrup();
		}
		
		$txtData = $dados->DateToText($cliente->getDataUltVenda());
		if ($txtData == '') {
			$txtData = 'Nunca Comprou';
		}
		
		$result .= '<tr>';
		$result .= '<td>'.$cliente->getCodCliente().'</td>';
		$result .= '<td>'.$cliente->getNome().'</td>';
		$result .= '<td>'.$cliente->getFantasia().'</td>';
		$result .= '<td>'.$cliente->getCodProduto().'</td>';
		$result .= '<td>'.$cliente->getProduto().'</td>';
		$result .= '<td>'.$cliente->getQtde().'</td>';
		$result .= '<td>'.$txtData.'</td>';
		$result .= '<td>'.$cliente->getNroDiasSemVenda().'</td>';
		$result .= '</tr>';
	}
		
	if ($qtdeRegistros < $qtde) {
		$result .= "<tr style='background-color:green;font-weight: bold;' class='final-tabela'>
					<td></td><td>Total de Registros: ".($inicio + $qtdeRegistros)."</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
					</tr>";
	}
	
	echo $result;		
?>
