<?php // NUEVO
 defined('_JEXEC') or die;
  jimport('joomla.application.controller');
  require_once (JPATH_COMPONENT.'/models/mProd.php');
    include(JPATH_COMPONENT.'/models/Classes/PHPExcel.php');
  require_once (JPATH_COMPONENT.'/helpers/prod.php');
  require_once JPATH_COMPONENT.'/controller.php';
use Joomla\CMS\Factory;
use Joomla\CMS\Uri\Uri;

class ProdControllercProd 
{
 public function display($cachable = false, $urlparams = false){ 
           $clase = new ProdModelMProd();
		  // $Services = ProdModelMProd::Services(); 
		   require_once ($clase->getview('Default'));
}
 public function default(){ 
           $clase = new ProdModelMProd();
		  // $Services = ProdModelMProd::Services(); 
		  $input = Factory::getApplication()->input;    
		// print_r($input->get('var'));
		 
		   require_once ($clase->getview('Default'));
}
 public function getobjDatos()
    { 
	   $idDate = date("YmdHisu");
        $id = substr("" . $idDate, 0, -3); //lo convierto en string y extraigo todos los caracteres menos el último
        $urlbase = Uri::base();
        $obj = new stdClass();
        $app = Factory::getApplication();
    $input = $app->input;
    $obj->server = $app->get('host');
    $obj->dbuser = $app->get('user');
    $obj->dbpass = $app->get('password');
    $obj->dbname = $app->get('db');
         $obj->id = $id;
		 $obj->urlbase=$urlbase;
        
		return $obj;
    }
     public function correo(){ 
   $input = Factory::getApplication()->input;
 
       $getobjDatos=$this->getobjDatos();
	 
        $clase = new ProdModelMProd();
     $correo=  $clase->correo($getobjDatos); 
 
	   require_once (JPATH_COMPONENT.'/views/vCorreo.php');
 
}
	 public function getPoblacion(){ 
   $input = JFactory::getApplication()->input;
  $comarca =  $input->get('comarca');
       $getobjDatos=$this->getobjDatos();
	 
        $clase = new ProdModelMProd();
        $getPoblacion=  $clase->getPoblacion1($getobjDatos,$comarca); 
 
	   require_once (JPATH_COMPONENT.'/views/vgetpoblacion.php');
 
}
	 public function getComarca(){ 
   $input = JFactory::getApplication()->input;
  $provincia =  $input->get('provincia');
       $getobjDatos=$this->getobjDatos();
	 
        $clase = new ProdModelMProd();
        $getComarca=  $clase->getComarca1($getobjDatos,$provincia); 
 
	  include (JPATH_COMPONENT.'/views/vgetcomarca.php');
 
}
	 public function upSector(){  
       $getobjDatos=$this->getobjDatos();
	   $clase = new ProdModelMProd();
        $upSector=  $clase->upSector($getobjDatos); 
 
 require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vupSector.php');
 
}

	   public function editprod(){
	  $clase = new ProdModelMProd();
	  $objDatos = $this->getObjdatos();
	  $editprod = $clase->editprod($objDatos);
       require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vEditProd.php');
    }
	  public function editproductor(){
	  $clase = new ProdModelMProd();
	  $objDatos = $this->getObjdatos();
	  $editproductor = $clase->editproductor($objDatos);
       require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vEditProductor.php');
    }
	 public function createProd(){
	  $clase = new ProdModelMProd();
	  $objDatos = $this->getObjdatos();
	  $createProd = $clase->createProductor($objDatos);
       require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vCreateProd.php');
    }
    public function createExcell(){
	  $clase = new ProdModelMProd();
	  $objDatos = $this->getObjdatos();
	  $excell = $clase->createExcell($objDatos);
       require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vGetExcell.php');
    }
	 public function navarra(){
	  $clase = new ProdModelMProd();
  if ($_FILES['archivo']['error'] === UPLOAD_ERR_OK) {
    $nombreArchivo = $_FILES['archivo']['name'];
    $tipoArchivo = $_FILES['archivo']['type'];
    $tamanioArchivo = $_FILES['archivo']['size'];
    $nombreTemporal = $_FILES['archivo']['tmp_name'];

    // Verifica que el archivo sea una imagen (opcional, puedes ajustar esto según tus necesidades)
    $extensionesPermitidas = array('csv','xls','xlsx');
    $extension = pathinfo($nombreArchivo, PATHINFO_EXTENSION);
    
    if (in_array(strtolower($extension), $extensionesPermitidas)) {
        // Define la ubicación donde se almacenará el archivo
        $directorioDestino = JPATH_COMPONENT.'/controllers/archivos/';

        // Añade un prefijo aleatorio al nombre del archivo para evitar duplicados
        $nombreArchivoFinal = uniqid() . '_' . $nombreArchivo;

        // Mueve el archivo al directorio de destino
        if (move_uploaded_file($nombreTemporal, $directorioDestino . $nombreArchivoFinal)) {
			  chmod($directorioDestino . $nombreArchivoFinal, 0777);
			$fileUploaded = $directorioDestino . $nombreArchivoFinal;
			 $fileType = PHPExcel_IOFactory::identify($fileUploaded);
			  $objReader = PHPExcel_IOFactory::createReader($fileType);
			    $objReader->setReadDataOnly(true);   
    $objPHPExcel = $objReader->load($fileUploaded);    

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
	 $fileCSV = $fileUploaded.'.csv';
   $objWriter->save($fileCSV);
	   $navarra =  $clase->navarra($this->getobjDatos(),$fileCSV);
          //  echo "El archivo se ha subido correctamente.";
        } else {
            echo "Hubo un error al subir el archivo.";
        }
    } else {
        echo "Tipo de archivo no permitido. Solo se permiten archivos csv.";
    }
} else {
    echo "Error al subir el archivo.";
}
 
	  require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vDefault.php');

	 }
 public function getexcell(){
	  $clase = new ProdModelMProd();
  if ($_FILES['archivo']['error'] === UPLOAD_ERR_OK) {
    $nombreArchivo = $_FILES['archivo']['name'];
    $tipoArchivo = $_FILES['archivo']['type'];
    $tamanioArchivo = $_FILES['archivo']['size'];
    $nombreTemporal = $_FILES['archivo']['tmp_name'];

    // Verifica que el archivo sea una imagen (opcional, puedes ajustar esto según tus necesidades)
    $extensionesPermitidas = array('csv','xls','xlsx');
    $extension = pathinfo($nombreArchivo, PATHINFO_EXTENSION);
    
    if (in_array(strtolower($extension), $extensionesPermitidas)) {
        // Define la ubicación donde se almacenará el archivo
        $directorioDestino = JPATH_COMPONENT.'/controllers/archivos/';

        // Añade un prefijo aleatorio al nombre del archivo para evitar duplicados
        $nombreArchivoFinal = uniqid() . '_' . $nombreArchivo;

        // Mueve el archivo al directorio de destino
        if (move_uploaded_file($nombreTemporal, $directorioDestino . $nombreArchivoFinal)) {
			  chmod($directorioDestino . $nombreArchivoFinal, 0777);
			$fileUploaded = $directorioDestino . $nombreArchivoFinal;
			 $fileType = PHPExcel_IOFactory::identify($fileUploaded);
			  $objReader = PHPExcel_IOFactory::createReader($fileType);
			    $objReader->setReadDataOnly(true);   
    $objPHPExcel = $objReader->load($fileUploaded);    

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
	 $fileCSV = $fileUploaded.'.csv';
   $objWriter->save($fileCSV);
	   $productores =  $clase->productores($this->getobjDatos(),$fileCSV);
          //  echo "El archivo se ha subido correctamente.";
        } else {
            echo "Hubo un error al subir el archivo.";
        }
    } else {
        echo "Tipo de archivo no permitido. Solo se permiten archivos csv.";
    }
} else {
    echo "Error al subir el archivo.";
}
 
	  require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vDefault.php');

	 }
 public function productores(){ 
 
  
 $clase = new ProdModelMProd();
       if ($_FILES['archivo']['error'] === UPLOAD_ERR_OK) {
    $nombreArchivo = $_FILES['archivo']['name'];
    $tipoArchivo = $_FILES['archivo']['type'];
    $tamanioArchivo = $_FILES['archivo']['size'];
    $nombreTemporal = $_FILES['archivo']['tmp_name'];

    // Verifica que el archivo sea una imagen (opcional, puedes ajustar esto según tus necesidades)
    $extensionesPermitidas = array('csv');
    $extension = pathinfo($nombreArchivo, PATHINFO_EXTENSION);
    
    if (in_array(strtolower($extension), $extensionesPermitidas)) {
        // Define la ubicación donde se almacenará el archivo
        $directorioDestino = JPATH_COMPONENT.'/archivos/';

        // Añade un prefijo aleatorio al nombre del archivo para evitar duplicados
        $nombreArchivoFinal = uniqid() . '_' . $nombreArchivo;

        // Mueve el archivo al directorio de destino
        if (move_uploaded_file($nombreTemporal, $directorioDestino . $nombreArchivoFinal)) {
			$csv = $directorioDestino . $nombreArchivoFinal;
			  $productores =  $clase->productores($this->getobjDatos(),$csv);
          //  echo "El archivo se ha subido correctamente.";
        } else {
            echo "Hubo un error al subir el archivo.";
        }
    } else {
        echo "Tipo de archivo no permitido. Solo se permiten archivos csv.";
    }
} else {
    echo "Error al subir el archivo.";
}
  $input = Factory::getApplication()->input;    
 
	  require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vDefault.php');
 
}

 public function importcsv(){  
 $dat  = $this->getobjDatos();
 	  $pdo = new PDO("mysql:host=$dat->server;dbname=$dat->dbname", $dat->dbuser, $dat->dbpass);
         $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		  $query = "SHOW COLUMNS FROM   agm_productores_productor";
       $stmt = $pdo->prepare($query);
      $stmt->execute();
        $dataQuery["response"] = [];

        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $dataQuery["response"][] = $results;
        }
        foreach($dataQuery["response"] as $f){ 
     // print_r( 'input type="text" id=" '.$f->Field.'" name=" '.$f->Field.'" value=""><br>');
                          //  Nombre: ' . $data['nombre']
		//	 print_r( "'".	$f->Field.":'. $"."data['".$f->Field."'] <br>");
      }
		 
		 
        $clase = new ProdModelMProd(); 
	  require_once (JPATH_COMPONENT.'/views/menu.php');
	   require_once (JPATH_COMPONENT.'/views/vImportCSV.php');
 
}
 
 
	 
   
  }
  /******************************
   $stmt6->execute([$provincia]);
            while ($results = $stmt6->fetch(PDO::FETCH_OBJ)) {
                $data2["response"][] = $results;
		 
            }
			
			     $stmt6 = $objDatos->pdo->prepare(
            "SELECT * FROM  bares   WHERE iduser = ? "
        );

        $data = [
            "code" => 200,
            "status" => "success",
            "mensaje" => "bar_ok",
        ];
        $stmt6->execute([$iduser]);

        if ($stmt6->rowCount() < 1) {
            $result = $stmt6->fetch(PDO::FETCH_ASSOC);
            $data = [
                "code" => 400,
                "status" => "error",
                "mensaje" => "ERROR",
                "ERROR" => "No hay bar",
            ];
            $data["userBar"] = $result;
        } else {
            $result = $stmt6->fetch(PDO::FETCH_ASSOC);
            $data["userBar"] = $result;
        }
			
  ***************/
?>
