<?php 

function verifica_quadra($quadra, $empreendimento){
    include "conexao.php";

    $query = mysqli_query($db, "SELECT idproduto FROM produto WHERE empreendimento_idempreendimento = '$empreendimento' AND quadra = '$quadra' ");

    $executa_query = mysqli_fetch_assoc($query);

    if(empty($executa_query)){
        return false;
    }else{
        return $executa_query['idproduto'];
    }
}

function verifica_lote($lote, $quadra){
    include "conexao.php";
   $recebe = mysqli_query($db, "SELECT lote FROM lote WHERE lote = $lote AND produto_idproduto = $quadra");

   if(mysqli_num_rows($recebe)){
        return true;
        
   }else{
        return false;   
   }
}

function formata_m2($m2){
    return str_replace(',', '.', $m2);
}

function formata_valor($valor){
    $aux = explode(" ", $valor);
	/*    $aux = explode(".", $aux[1]);

		$aux = str_replace('.', '', $aux[0]);
		$aux = str_replace(',', '.', $aux);
	*/

    return $aux[1];
}

function grava_planilha_lote($arquivo, $empreendimento){// Passando o caminho do arquivo

	include "conexao.php";


	$retorno["ok"] = Array();

    // If you need to parse XLS files, include php-excel-reader
	require('spreadsheet-reader-master/PHPExcel.php');
	require('spreadsheet-reader-master/php-excel-reader/excel_reader2.php');
	require('spreadsheet-reader-master/SpreadsheetReader.php');


	$tabela_erro = new PHPExcel();
	$colunas = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V"];

    $Reader = new SpreadsheetReader($arquivo); // Crio o objeto do arquivo
    $Sheets = $Reader -> Sheets(); // Obtenho as planilhas do arquivo

    foreach ($Sheets as $Index => $Name){// Para percorrer as planilhas do arquivo
    	$aux_erro = 2;
		$Reader -> ChangeSheet($Index);  // Habilito a página atual para edição

		foreach ($Reader as $registro => $linha ){  //Para percorrer as linhas dentro da planilha

			$cont = 0;

			//Verifico se a linha está completamente vazia 
			foreach ($linha as $valor) {
				if(empty($valor)){
					$cont++;
				}
			}

			//Se a linha estiver vazia o script para a varredura
			if($cont == 27 && $registro > 4){
				break;
			}

           
			//Esse bloco verifica o titulo da planilha
			if ($registro == 0) {
				$aux = 0;
				foreach ($linha as $valor) {
    				if ($valor == "TABELA PARA CADASTRO DE LOTES") {
    					$aux = 1;
    				}
				}
				if ($aux !== 1) {
					break;
				}
			}

			if($registro == 5){
				for($i = 0; $i < count($linha); $i++){
					$tabela_erro->setActiveSheetIndex(0)->setCellValue("".$colunas[$i]."1", $linha[($i)]);
				}
			}
		
			// Verifico se já passou as linhas de informação no começo do arquivo
			if ($registro > 5){

				// Validação dos dados da linha atual, segue abaixo os Index de cada coluna dentro da $linha
    			// quadra = 0			direito = 6				cdireita = 12			
    			// lote = 1				esquerdo = 7			cesquerda = 13
    			// m2 = 2				frente = 8				coutros = 14		    
    			// status = 3			fundo = 9	            moutros =15   
    			// endereco = 4			cfrente = 10
    			// matricula = 5		cfundo = 11		
    			
                $problema = '';
    			$lote;
    			$valida = 1;
    			for($i = 0; $i < count($linha); $i++){

    				// Validação da quadra
    				if ($i == 0) {	
    					if (empty($linha[$i])) {
    						$valida = 0;
                            $problema = "Quadra invalida";
    						break;
    					}else{
    						$lote['quadra'] = ($linha[$i]);
    					}
    				}

    				// Validação do Lote
    				elseif ($i == 1) {
    					if (empty($linha[$i])) {
    						$valida = 0;
                            $problema = "Lote invalido";
    						break;
    					}else{
                            $quadra_teste = verifica_quadra($lote['quadra'], $empreendimento);
                            if(verifica_lote(($linha[$i]), $quadra_teste)){
                                $problema = "Lote já existe para essa quadra";
                                $valida = 0;
                                break;
                            }else{
                                $lote['lote'] = ($linha[$i]);
                            }
                        }
    				}

    				// armazenamento m²
    				elseif ($i == 2) {
    					if (empty($linha[$i])) {
                            $valida = 0;
                            $problema = "M² Invalidos";
                            break;
                        }else{
                            $lote['m2'] = formata_m2($linha[$i]);
                        }
    				}

                    // Valor
                    elseif ($i == 3) {
                        if (!empty($linha[$i])) {
                            $lote['valor'] = addslashes(formata_valor($linha[$i]));
                        }else{
                            $valida = 0;
                            $problema = "Valor Invalido";
                            break;
                        }
                    }

    				// armazenamento Status do lote
    				elseif ($i == 4) {
    					if ($linha[$i] >= 0 && $linha[$i] <= 3) {
                            $lote['status'] = $linha[$i];

                        }else{
                            $valida = 0;
                            $problema = "Status Invalidos";
                            break;
                        }
    				}

    				// armazenamento Rua do lote
    				elseif ($i == 5) {
    					if (!empty($linha[$i])) {
                            $lote['endereco'] = addslashes($linha[$i]);
                        }else{
                            $lote['endereco'] = "";
                        }
    				}

    				// armazenamento matricula do lote
    				elseif ($i == 6) {
    					if (!empty($linha[$i])) {
    						$lote["matricula"] = addslashes($linha[$i]);
    					}else{
    						$lote["matricula"] = "";
    					}
    				}

                    // cadastro prefeitura
                    elseif ($i == 7) {
                        if (!empty($linha[$i])) {
                            $lote["cadastro_prefeitura"] = addslashes($linha[$i]);
                        }else{
                            $lote["cadastro_prefeitura"] = "";
                        }
                    }
                    // armazenamento tamanho direito do lote
                    elseif ($i == 8) {
                        if (!empty($linha[$i])) {
                            $lote["confrontacao"] =  addslashes($linha[$i]);
                        }else{
                            $lote["confrontacao"] = "";
                        }
                    }

    				// armazenamento tamanho frente do lote
    				elseif ($i == 9) {
    					if (!empty($linha[$i])) {
    						$lote["frente"] =  addslashes($linha[$i]);
    					}else{
    						$lote["frente"] = "";
    					}
    				}

    				// armazenamento tamanho fundo do lote
    				elseif ($i == 10) {
    					if (!empty($linha[$i])) {
    						$lote["fundo"] =  addslashes($linha[$i]);
    					}else{
    						$lote["fundo"] = "";
    					}
    				}

    				// armazenamento tamanho direita do lote
    				elseif ($i == 11) {
    					if (!empty($linha[$i])) {
    						$lote["direita"] =  addslashes($linha[$i]);
    					}else{
    						$lote["direita"] = "";
    					}
    				}

    				// armazenamento tamanho esquerda do lote
    				elseif ($i == 12) {
    					if (!empty($linha[$i])) {
    						$lote["esquerda"] = addslashes($linha[$i]);
    					}else{
    						$lote["esquerda"] = "";
    					}
    				}

                    // armazenamento confrontação esquina do lote
                    elseif ($i == 13) {
                        if (!empty($linha[$i])) {
                            $lote["esquina"] = addslashes($linha[$i]);
                        }else{
                            $lote["esquina"] = "";
                      
                        }
                    }

                    // armazenamento confrontação Cfrente do lote
                    elseif ($i == 14) {
                        if (!empty($linha[$i])) {
                            $lote["cfrente"] = addslashes($linha[$i]);
                        }else{
                            $lote["cfrente"] = "";
                        }
                    }

                    // armazenamento confrontação Cfundo do lote
                    elseif ($i == 15) {
                        if (!empty($linha[$i])) {
                            $lote["cfundo"] = addslashes($linha[$i]);
                        }else{
                            $lote["cfundo"] = "";
                        }
                    }

                    // armazenamento confrontação Cdireita do lote
                    elseif ($i == 16) {
                        if (!empty($linha[$i])) {
                            $lote["cdireita"] = addslashes($linha[$i]);
                        }else{
                            $lote["cdireita"] = "";
                        }
                    }

                    // armazenamento confrontação Cesquerda do lote
                    elseif ($i == 17) {
                        if (!empty($linha[$i])) {
                            $lote["cesquerda"] = addslashes($linha[$i]);
                        }else{
                            $lote["cesquerda"] = "";
                        }
                    }

                    // armazenamento confrontação Coutros do lote
                    elseif ($i == 18) {
                        if (!empty($linha[$i])) {
                            $lote["coutros"] =  addslashes($linha[$i]);
                        }else{
                            $lote["coutros"] = "";
                        }
                    }
                    // armazenamento Obs edo lote
                    elseif ($i == 19) {
                        if (!empty($linha[$i])) {
                            $lote["obs"] = $linha[$i];
                        }else{
                            $lote["obs"] = "";
                        }
                    }
                    // motivo bloqueio
                     elseif ($i == 20) {
                        if (!empty($linha[$i])) {
                            $lote["motivo_bloqueio"] = addslashes($linha[$i]);
                        }else{
                            $lote["motivo_bloqueio"] = "";
                        }
                    }
    			}

    			if ($valida == 1) {

                    // var_dump($lote);
                    // die();
                    // Faço a verificação se o lote já existe no banco de dados se não existir eu ja crio
    				if(verifica_quadra($lote['quadra'], $empreendimento) === false){
                        $query = mysqli_query($db, "INSERT INTO `produto`(`empreendimento_idempreendimento`, `quadra`) VALUES ($empreendimento ,'".$lote['quadra']."')")or die(mysqli_error($db));
                        $id_quadra = verifica_quadra($lote['quadra'], $empreendimento);
                    }else{
                        $id_quadra = verifica_quadra($lote['quadra'], $empreendimento);
                    }

                    // echo "<pre>";
                    // var_dump($lote);
                    // echo "<pre>";

                    // die();

                    $query = mysqli_query($db, "INSERT INTO lote (lote, m2, valor, produto_idproduto, status, frente, fundo, direita, esquerda , moutros, endereco, matricula, cadastro_prefeitura, confrontacao, mld, mle, mfrente, mfundo, coutros, obs_lote, motivo_bloqueio) VALUES ('".$lote['lote']."','".$lote['m2']."', '".$lote['valor']."' , '$id_quadra','".$lote['status']."','".$lote['frente']."','".$lote['fundo']."', '".$lote['direita']."', '".$lote['esquerda']."', '".$lote['esquina']."', '".$lote['endereco']."','".$lote['matricula']."', '".$lote['cadastro_prefeitura']."', '".$lote['confrontacao']."', '".$lote['cdireita']."','".$lote['cesquerda']."','".$lote['cfrente']."','".$lote['cfundo']."','".$lote['coutros']."', '".$lote['obs']."', '".$lote['motivo_bloqueio']."')")or die(mysqli_error($db));

                    array_push($retorno['ok'], $registro);
    			}else{	

    				// Insere as linha incorretas na tabela de erros
    				for($i = 0; $i <= count($linha); $i++){
                        if($i == count($linha)){
                            $tabela_erro->setActiveSheetIndex(0)->setCellValue("".$colunas[$i].$aux_erro."", $problema);
                            break;
                        }
    					$tabela_erro->setActiveSheetIndex(0)->setCellValue("".$colunas[$i].$aux_erro."", $linha[($i)]);
    				}
    				$aux_erro++;

    				$retorno["error"] = 1;
    			}
			}
		}


    }

    $file = $objWriter = PHPExcel_IOFactory::createWriter($tabela_erro, 'Excel2007');
    $file->save("planilhas/falhas_lotes.xlsx");

    return $retorno;
}

?>
