<?php  
defined('_JEXEC') or die;
jimport('joomla.application.component.model');
jimport('joomla.application.component.helper');
//require_once JPATH_COMPONENT.'/models/correo/class.phpmailer.php';
 use Joomla\CMS\Factory;
 class ProdModelMProd extends JModelLegacy 
{
        public function getview($view){
          $input = Factory::getApplication()->input;  
	     if ( $input->get('view')== ""){ $view = $view ;} else { $view =   $input->get('view');}
		 $VPATH = JPATH_COMPONENT.'/views/v'.$view.'.php';  
	     return $VPATH;
	}
     public function upSector($objDatos){
          $obj = new stdClass();
             $obj->upSector = $this->upSectorFun($objDatos); 
                  $obj->getSectores = $this->getSectores($objDatos);  
      return $obj;
    }
     public function upSectorFun($objDatos){
           $input = JFactory::getApplication()->input;
            $nombre = $input->getString('nombre', 'default_value');
        $nombre_eus= $input->getString('nombre_eus', 'default_value');
        $id= $input->get('idsector');
        $hiddenupsector= $input->getString('hiddenupsector', 'default_value');
          $createSector= $input->getString('createSector', 'default_value');
          $alias =   $this->convertTag($nombre) ;
       
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
 $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $sql = "UPDATE agm_productores_sector SET nombre = :nombre, nombre_eus=:nombre_eus 
      WHERE id = :id"; 
        $stmt = $pdo->prepare($sql); 
    $stmt->bindParam(':nombre', $nombre, PDO::PARAM_STR);
     $stmt->bindParam(':nombre_eus', $nombre_eus, PDO::PARAM_STR);
      $stmt->bindParam(':id', $id, PDO::PARAM_STR);
    if($hiddenupsector =='hiddenupsector'){$stmt->execute();}
    
     $sql2 = "INSERT INTO agm_productores_sector (alias,nombre,nombre_eus) 
                VALUES (:alias,:nombre,:nombre_eus)";
            $stmt2 = $pdo->prepare($sql2);
               $stmt2->bindParam(':alias', $alias, PDO::PARAM_STR);
               $stmt2->bindParam(':nombre', $nombre, PDO::PARAM_STR);
                  $stmt2->bindParam(':nombre_eus', $nombre_eus, PDO::PARAM_STR);
      if($createSector =='createSector'){$stmt2->execute();}
    
    
         return  ;
     }
    public function editprod($objDatos){
          $obj = new stdClass();
         $obj->getProductores = $this->getProductores($objDatos);
           $obj->getProvincias = $this->getProvincias($objDatos);
            $obj->getComarcas = $this->getComarcas($objDatos);
               $obj->getPoblaciones = $this->getPoblaciones($objDatos);
	  return $obj;
    }
      public function createProductor($objDatos){
          $obj = new stdClass();
             $obj->createProdPost = $this->createProdPost($objDatos); 
                  $obj->getSectores = $this->getSectores($objDatos); 
           $obj->getProvincias = $this->getProvincias($objDatos);
        
	  return $obj;
    }
    public function createProdPost($objDatos){
           $input = JFactory::getApplication()->input;
            
        $nombre = $input->getString('nombre', 'default_value');
        $razonsocial = $input->getString('razonsocial', 'default_value');
         $prodeu = $input->getString('prodeu', 'default_value');
        $prodes= $input->getString('prodes', 'default_value');
         $sector1 = $input->get('sector1');
          $sector2 = $input->get('sector2');
          $provincia = $input->get('provincia');
           $comarca = $input->get('comarca');
            $poblacion = $input->get('poblacion');
                 $direccion = $input->get('direccion');
                   $cp = $input->get('cp');
                     $latitud = $input->get('latitud');
                       $longitud = $input->get('longitud');
                         $telefono = $input->get('telefono');
                           $email = $input->get('email');
                             $web = $input->get('web');
                               $facebook = $input->get('facebook');
                                 $instagram = $input->get('instagram');
              $hiddenid= $input->get('hiddenid');
               $id = uniqid();
            $alias =  $this->convertTag($nombre) ;
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $sql = "INSERT INTO agm_productores_productor (id,alias,nombre, razonsocial, prodeu, prodes, sector1, sector2, comarca, poblacion, direccion,  
                cp, latitud, longitud, telefono, email, web, facebook, instagram, provincia) 
                VALUES (:id,:alias,:nombre, :razonsocial, :prodeu, :prodes, :sector1, :sector2, :comarca, :poblacion, :direccion, :cp, :latitud, :longitud, :telefono, :email, :web, :facebook, :instagram, :provincia)";
            $stmt = $pdo->prepare($sql);
               $stmt->bindParam(':id', $id, PDO::PARAM_STR);
                  $stmt->bindParam(':alias', $alias, PDO::PARAM_STR);
      $stmt->bindParam(':nombre', $nombre, PDO::PARAM_STR);
     $stmt->bindParam(':razonsocial', $razonsocial, PDO::PARAM_STR);
      $stmt->bindParam(':prodeu', $prodeu, PDO::PARAM_STR);
     $stmt->bindParam(':prodes', $prodes, PDO::PARAM_STR);
     $stmt->bindParam(':sector1', $sector1, PDO::PARAM_STR);
     $stmt->bindParam(':sector2', $sector2, PDO::PARAM_STR);
        $stmt->bindParam(':provincia', $provincia, PDO::PARAM_STR);
          $stmt->bindParam(':comarca', $comarca, PDO::PARAM_STR);
                   $stmt->bindParam(':poblacion', $poblacion, PDO::PARAM_STR);
                         $stmt->bindParam(':direccion', $direccion, PDO::PARAM_STR);
                        //  $stmt->bindParam(':productos', $direccion, PDO::PARAM_STR);
                                    $stmt->bindParam(':cp', $cp, PDO::PARAM_STR);
                                               $stmt->bindParam(':latitud', $latitud, PDO::PARAM_STR);
                                                          $stmt->bindParam(':longitud', $longitud, PDO::PARAM_STR);
                                                                     $stmt->bindParam(':telefono', $telefono, PDO::PARAM_STR);
                                                                                $stmt->bindParam(':email', $email, PDO::PARAM_STR);
                                                                                           $stmt->bindParam(':web', $web, PDO::PARAM_STR);
                                                                                                      $stmt->bindParam(':facebook', $facebook, PDO::PARAM_STR);
                                                                                                                 $stmt->bindParam(':instagram', $instagram, PDO::PARAM_STR);
                                                                                                                           
    $stmt->bindParam(':provincia', $provincia, PDO::PARAM_STR);
    if($hiddenid =='654cc47e24358'){  $stmt->execute();   return  $id;}else{return;};
        
    }
     public function editproductor($objDatos){
          $obj = new stdClass();
         $obj->getProductor = $this->getProductor($objDatos); 
         $obj->getSectores = $this->getSectores($objDatos); 
           $obj->getProvincias = $this->getProvincias($objDatos);
            $obj->getComarcas = $this->getComarcas($objDatos);
                  $obj->getPoblaciones = $this->getPoblaciones($objDatos);
	  return $obj;
    }
      public function getSectores($objDatos){
          $input = JFactory::getApplication()->input;
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre,nombre_eus FROM agm_productores_sector ORDER BY nombre ";
          $stmt = $pdo->prepare($query);
        $stmt->execute([]); 
        $data["response"]=array();
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        } 
     $pdo = null;
        return  $data["response"];
        
   }
         public function getProductor($objDatos){
        
             $input = JFactory::getApplication()->input;
             $id = $input->get('p');
        $nombre = $input->getString('nombre', 'default_value');
        $razonsocial = $input->getString('razonsocial', 'default_value');
         $prodeu = $input->getString('prodeu', 'default_value');
        $prodes= $input->getString('prodes', 'default_value');
         $sector1 = $input->get('sector1');
          $sector2 = $input->get('sector2');
          $provincia = $input->get('provincia');
           $comarca = $input->get('comarca');
            $poblacion = $input->get('poblacion');
                 $direccion = $input->get('direccion');
                   $cp = $input->get('cp');
                     $latitud = $input->get('latitud');
                       $longitud = $input->get('longitud');
                         $telefono = $input->get('telefono');
                           $email = $input->get('email');
                             $web = $input->get('web');
                               $facebook = $input->get('facebook');
                                 $instagram = $input->get('instagram');
              $hiddenid= $input->get('hiddenid');
           
        $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
 $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $sql = "UPDATE agm_productores_productor SET nombre = :nombre, razonsocial=:razonsocial 
     , prodeu=:prodeu
     ,prodes=:prodes
     ,sector1=:sector1
      ,sector2=:sector2
        ,provincia=:provincia
            ,comarca=:comarca
                ,poblacion=:poblacion
                ,direccion =:direccion
                   , cp=:cp
                      ,latitud =:latitud
                         ,longitud =:longitud
                            ,telefono =:telefono
                               , email=:email
                                  ,web =:web
                                     ,facebook =:facebook
                                        ,instagram =:instagram
     WHERE id = :id"; 
    $stmt = $pdo->prepare($sql);

    // Vincular parámetros
    $stmt->bindParam(':nombre', $nombre, PDO::PARAM_STR);
     $stmt->bindParam(':razonsocial', $razonsocial, PDO::PARAM_STR);
      $stmt->bindParam(':prodeu', $prodeu, PDO::PARAM_STR);
     $stmt->bindParam(':prodes', $prodes, PDO::PARAM_STR);
     $stmt->bindParam(':sector1', $sector1, PDO::PARAM_STR);
     $stmt->bindParam(':sector2', $sector2, PDO::PARAM_STR);
        $stmt->bindParam(':provincia', $provincia, PDO::PARAM_STR);
          $stmt->bindParam(':comarca', $comarca, PDO::PARAM_STR);
                   $stmt->bindParam(':poblacion', $poblacion, PDO::PARAM_STR);
                         $stmt->bindParam(':direccion', $direccion, PDO::PARAM_STR);
                                    $stmt->bindParam(':cp', $cp, PDO::PARAM_STR);
                                               $stmt->bindParam(':latitud', $latitud, PDO::PARAM_STR);
                                                          $stmt->bindParam(':longitud', $longitud, PDO::PARAM_STR);
                                                                     $stmt->bindParam(':telefono', $telefono, PDO::PARAM_STR);
                                                                                $stmt->bindParam(':email', $email, PDO::PARAM_STR);
                                                                                           $stmt->bindParam(':web', $web, PDO::PARAM_STR);
                                                                                                      $stmt->bindParam(':facebook', $facebook, PDO::PARAM_STR);
                                                                                                                 $stmt->bindParam(':instagram', $instagram, PDO::PARAM_STR);
                                                                                                                           
    $stmt->bindParam(':id', $id, PDO::PARAM_STR);

    // Ejecutar la consulta
    if($hiddenid !=''){  $stmt->execute();};
      $query1 = "SELECT 
        p.id as idprod,
           p.alias,
p.nombre as productornombre,
p.razonsocial,
p.prodeu,
p.prodes,
s1.id as s1id,
s1.nombre as sectornombre,
s1.nombre_eus as sectornombreeus,
s2.id as s2id,
s2.nombre as sectornombre2,
s2.nombre_eus as sectornombreeus2,
p.sector2,
p.comarca,
co.nombre as comarcanombre,
p.poblacion,
po.nombre as poblacionnombre,
p.direccion,
p.productos,
p.cp,
p.latitud,
p.longitud,
p.telefono,
p.email,
p.web,
p.facebook,
p.instagram,
p.provincia, 
pv.nombre as pvnom
 FROM  agm_productores_productor AS p
 INNER JOIN agm_productores_sector AS s1 ON p.sector1 = s1.id
LEFT JOIN agm_productores_sector AS s2 ON p.sector2 = s2.id
 INNER JOIN agm_productores_provincia AS pv ON p.provincia = pv.id
  JOIN agm_productores_comarca AS co 
   ON p.comarca = co.id
   JOIN agm_productores_poblacion AS po
   ON p.poblacion = po.id
        WHERE  p.id =?";
                  $stmt5 = $pdo->prepare($query1);
        $stmt5->execute([$id]);
        while ($results = $stmt5->fetch(PDO::FETCH_OBJ)) {
            $data2["response"][] = $results;
        }
               return $data2["response"];
         }
              public function getPoblaciones($objDatos){
          $input = JFactory::getApplication()->input;
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre FROM agm_productores_poblacion ORDER BY nombre";
          $stmt = $pdo->prepare($query);
        $stmt->execute([]); 
        $data["response"]=array();
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        } 
     $pdo = null;
        return  $data["response"];
        
   }
      public function getComarcas($objDatos){
          $input = JFactory::getApplication()->input;
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre FROM agm_productores_comarca ORDER BY nombre";
          $stmt = $pdo->prepare($query);
        $stmt->execute([]); 
        $data["response"]=array();
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        } 
     $pdo = null;
        return  $data["response"];
        
   }
    public function getProvincias($objDatos){
         
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre FROM agm_productores_provincia ORDER BY nombre";
         $stmt = $pdo->prepare($query); 
        $stmt->execute([]);
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data2["response"][] = $results;
        }
    $pdo = null;
        return  $data2["response"];
        
   }
     public function getProductores($objDatos){
        
             $input = JFactory::getApplication()->input;
               $PRODUKTOR = $input->get('productor');
                 $RAZONSOCIAL = $input->get('razonsocial');
                  $PROVINCIA = $input->get('provincia');
                   $COMARCA = $input->get('comarca');
           $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $ANDPAG = "";
     $AND = "";
     if ($PRODUKTOR != '') {
    // Añade la condición a $AND con comillas escapadas correctamente
    $ANDPAG .= " AND (nombre LIKE '%$PRODUKTOR%' )";
     $AND .= " AND (p.nombre LIKE '%$PRODUKTOR%' )";
}
 if ($RAZONSOCIAL != '') {
    // Añade la condición a $AND con comillas escapadas correctamente
    $ANDPAG .= " AND (razonsocial LIKE '%$RAZONSOCIAL%' )";
     $AND .= " AND (p.razonsocial LIKE '%$RAZONSOCIAL%' )";
}
 if ($PROVINCIA != '') {
    // Añade la condición a $AND con comillas escapadas correctamente
    $ANDPAG = " AND (provincia = '$PROVINCIA' )";
     $AND = " AND (p.provincia = '$PROVINCIA' )";
}
if ($COMARCA != '') {
    // Añade la condición a $AND con comillas escapadas correctamente
    $ANDPAG = " AND (comarca = '$COMARCA' )";
     $AND = " AND (p.comarca = '$COMARCA' )";
}
          $query = "SELECT *  FROM  agm_productores_productor    WHERE  agm_productores_productor.id IS NOT NULL $ANDPAG";
        $stmt6 = $pdo->prepare($query); 
          $stmt6->execute([]);
       $totalRegistros = $stmt6->rowCount();
       $varsPaginar = new \stdClass();
        $varsPaginar->num_total_registros = $totalRegistros;
        $varsPaginar->sizePage = 50;
        $pag = $input->get("pag");
        $varsPaginar->pag = $pag;
        if (!$pag) {
            $varsPaginar->inicio = 0;
            $varsPaginar->pag = 1;
        } else {
            $varsPaginar->inicio =
                ($varsPaginar->pag - 1) * $varsPaginar->sizePage;
        }
        $varsPaginar->total_paginas = ceil(
            $varsPaginar->num_total_registros / $varsPaginar->sizePage
        );
           $ORDER ='ORDER BY p.nombre';
          $query1 =   "SELECT 
        p.id as idprod,
           p.alias,
p.nombre as productornombre,
p.razonsocial,
p.prodeu,
p.prodes,
s1.nombre as sectornombre,
s1.nombre_eus as sectornombreeus,
s2.nombre as sectornombre2,
s2.nombre_eus as sectornombreeus2,
p.sector2,
co.nombre as comarcanombre,
po.nombre as poblacionnombre,
p.direccion,
p.productos,
p.cp,
p.latitud,
p.longitud,
p.telefono,
p.email,
p.web,
p.facebook,
p.instagram,
p.provincia,
pv.nombre as pvnom
 FROM  agm_productores_productor AS p
 INNER JOIN agm_productores_sector AS s1 ON p.sector1 = s1.id
LEFT JOIN agm_productores_sector AS s2 ON p.sector2 = s2.id
 INNER JOIN agm_productores_provincia AS pv ON p.provincia = pv.id
  JOIN agm_productores_comarca AS co 
   ON p.comarca = co.id
   JOIN agm_productores_poblacion AS po
   ON p.poblacion = po.id
        WHERE  p.id IS NOT NULL $AND  $ORDER
        LIMIT  $varsPaginar->inicio ,$varsPaginar->sizePage";
          $stmt5 = $pdo->prepare($query1);
        $stmt5->execute([]);
        while ($results = $stmt5->fetch(PDO::FETCH_OBJ)) {
            $data2["response"][] = $results;
        }
        //print_r($data2["response"]);
    // print_r($query1);
         $obj = new \stdClass();
         $obj->productores = $data2["response"];
         $obj->varsPag = $varsPaginar;
            $obj->objDatos=   $objDatos;
             $obj->nProvincia=   $nprovincia;
              $obj->nComarca=   $ncomarca;
              $obj->nPoblaciones =  $arrPobNombre;
            // print_r( $arrPobNombre);
        // foreach($data2["response"] as $p){ print_r($p->sectornombre);}
        return $obj;
    }
    	public function createExcell($objDatos){
                 $input = Factory::getApplication()->input;  
                 $provincia=$input->get('provincia');
          
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       $query = "SELECT 
        p.id as idprod,
           p.alias,
p.nombre as productornombre,
p.razonsocial,
p.prodeu,
p.prodes,
p.sector1,
s1.nombre as sectornombre1,
s1.nombre_eus as sectornombre1eus,
 p.sector2,
s2.nombre AS sectornombre2,
s2.nombre_eus AS sectornombre2eus,
prov.nombre as provincianombre,
co.nombre as comarcanombre,
pob.nombre as poblacionnombre,
p.direccion,
p.productos,
p.cp,
p.latitud,
p.longitud,
p.telefono,
p.email,
p.web,
p.facebook,
p.instagram,
p.provincia
 FROM  agm_productores_productor AS p
INNER JOIN agm_productores_sector AS s1 ON p.sector1 = s1.id
LEFT JOIN agm_productores_sector AS s2 ON p.sector2 = s2.id
 INNER JOIN agm_productores_provincia AS prov ON p.provincia = prov.id
 
  JOIN agm_productores_comarca AS co
   ON p.comarca = co.id
   JOIN agm_productores_poblacion AS pob
   ON p.poblacion = pob.id
        WHERE  p.provincia=?";
       $stmt = $pdo->prepare($query);
       
        $stmt->execute([$provincia]);
		 $data["response"] = array();
       while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        }
     
$pdo = null;
       return $data["response"]; 
    }
	public function getSector($objDatos,$sector1){
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $query = "SELECT id FROM agm_productores_sector WHERE nombre = :sector";
$stmt6 = $pdo->prepare($query);

// Enlaza el parámetro :sector con el valor de $sector1
$stmt6->bindParam(':sector', $sector1, PDO::PARAM_STR);

$stmt6->execute();

// Obtiene el valor de la columna 'id' de la primera fila
$id = $stmt6->fetchColumn();
$pdo = null;
       return $id; 
    }
     public function getComarca1($objDatos,$provincia){
          $input = JFactory::getApplication()->input;
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre FROM agm_productores_comarca WHERE provincia =? ";
          $stmt = $pdo->prepare($query);
        $stmt->execute([$provincia]); 
        $data["response"]=array();
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        } 
     $pdo = null;
        return  $data["response"];
        
   }
    	public function getComarca($objDatos,$comarca){
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $query = "SELECT id FROM agm_productores_comarca WHERE nombre = :comarca";
$stmt6 = $pdo->prepare($query);
 
$stmt6->bindParam(':comarca', $comarca, PDO::PARAM_STR);

$stmt6->execute();

// Obtiene el valor de la columna 'id' de la primera fila
$id = $stmt6->fetchColumn();
$pdo = null;
       return $id; 
    }
      public function getPoblacion1($objDatos,$comarca){
          $input = JFactory::getApplication()->input;
        $pdo = new PDO(
            "mysql:host=$objDatos->server;dbname=$objDatos->dbname;charset=utf8mb4",
            $objDatos->dbuser,
            $objDatos->dbpass
        );
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $query ="SELECT id,nombre FROM agm_productores_poblacion WHERE comarca =? ";
          $stmt = $pdo->prepare($query);
        $stmt->execute([$comarca]); 
        $data["response"]=array();
        while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        } 
     $pdo = null;
        return  $data["response"];
        
   }
    	public function getPoblacion($objDatos,$poblacion){
          $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $query = "SELECT id FROM agm_productores_poblacion WHERE nombre = :poblacion";
$stmt6 = $pdo->prepare($query);
 
$stmt6->bindParam(':poblacion', $poblacion, PDO::PARAM_STR);

$stmt6->execute();

// Obtiene el valor de la columna 'id' de la primera fila
$id = $stmt6->fetchColumn();
$pdo = null;
       return $id; 
    }
    public function No_Acento($Texto){
    $valor_htm = array('&aacute;','&Aacute;','&eacute;','&Eacute;','&iacute;','&Iacute;','&oacute;','&Oacute;','&uacute;','&Uacute;','&ntilde;','&Ntilde;','&uuml;','&Uuml;',  '&agrave;','&Agrave;','&egrave;','&Egrave;','&igrave;','&Igrave;','&ograve;','&Ograve;','&ugrave;','&Ugrave;');    // Valores originales   
    $valor_acent = array('a','A','e','E','i','I','o','O','u','U','n','N',
                                         'u','U','a','A','e','E','i','I','o','O','u','U');    // Nuevos valores   
        $Cambia_Texto = str_replace($valor_htm,$valor_acent,$Texto);  
    // Separamos cada una de las letras con acentos y dieresis, y la ponemos en un array
    preg_match_all('/\w/u', 'áàäéèëíìïòóöùúüÀÁÄÈÉËÌÍÏÒÓÖÙÚÜÑñ', $Texto);
    $cadena = array_map(
        function($eli_acent) { return '/'.$eli_acent.'/u'; },
        $Texto[0]
    );
    // realizamos la sustitución
    $sustitucion = preg_replace($cadena, str_split('aaaeeeiiiooouuuAAAEEEIIIOOOUUUNn'), $Cambia_Texto);
        return $sustitucion;
}
function _utf8_decode($string){          
 
 
       if (!preg_match("[\200-\237]", $string) and ! preg_match("[\241-\377]", $string))
         return $string;
 
    // decode three byte unicode characters
      $string = preg_replace("/([\340-\357])([\200-\277])([\200-\277])/e",       
       "'&#'.((ord('\\1')-224)*4096 + (ord('\\2')-128)*64 + (ord('\\3')-128)).';'",   
       $string);
 
       // decode two byte unicode characters
      $string = preg_replace("/([\300-\337])([\200-\277])/e",
       "'&#'.((ord('\\1')-192)*64+(ord('\\2')-128)).';'",
       $string);
  
       return $string;
   } 
 
    public function convertTag($str) {
      
$str = str_replace('ª', '', $str);
$str = str_replace('º', '', $str);
$str = str_replace('&', '-', $str);
             $str =   ltrim($str);
                   $str =   rtrim($str);
               $str= str_replace('"','', $str);
$str= str_replace(':','', $str); 
$str= str_replace('.','', $str); 
$str= str_replace(',','', $str); 
$str= str_replace(';','', $str);
  $str = $this->No_Acento($str);
  $str =  strtr($str,",","");
  $str =  strtr($str,"/","-");
  $str = str_replace('/', '-', $str); 
   $str =  strtr($str,"-----------------","");
           //    $str =  strtr($str,"&","-");
              $str = strtolower($str);
           
                     $str =  strtr($str," ","-");
                  
      return $str;
    }
    
public function productores($objDatos, $csv)
{
    
     $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if (($archivo = fopen($csv, "r")) !== FALSE) {
        // Leer la primera línea (encabezado) sin procesarla
        $encabezado = fgetcsv($archivo);

        // Leer la segunda línea para obtener el valor de la provincia
        $datos = fgetcsv($archivo, 1000, ",");
        $provinciaToDelete = $datos[18];
         $provincia= $datos[18];
        // Cerrar el archivo después de obtener el valor de provincia
        fclose($archivo);

      /*  // Sentencia SQL para eliminar registros con la provincia especificada
        $sqlDelete = "DELETE FROM agm_productores_productor WHERE   provincia = :provincia";

        // Prepara y ejecuta la sentencia SQL DELETE
        $stmtDelete = $pdo->prepare($sqlDelete);
        $stmtDelete->bindParam(':provincia', $provinciaToDelete);
     //   $stmtDelete->execute();
*/
        // Leer el archivo nuevamente e insertar los datos
        if (($archivo = fopen($csv, "r", "UTF-8")) !== FALSE) {
            // Leer la primera línea (encabezado) sin procesarla
            $encabezado = fgetcsv($archivo);
             // $alias =  $this->convertTag($datos[0]) ;
             
 
            $sql = "INSERT INTO agm_productores_productor (id,alias,nombre, razonsocial, prodeu, prodes, sector1, sector2, comarca, poblacion, direccion, productos,
                cp, latitud, longitud, telefono, email, web, facebook, instagram, provincia) 
                VALUES (:id,:alias,:nombre, :razonsocial, :prodeu, :prodes, :sector1, :sector2, :comarca, :poblacion, :direccion, :productos, :cp, :latitud, :longitud, :telefono, :email, :web, :facebook, :instagram, :provincia)";
            $stmt = $pdo->prepare($sql);
        // $arrProd = array();
     
          while (($datos = fgetcsv($archivo, 1000, ",")) !== FALSE) {
                    if (empty($datos[0])) {
        echo "ERROR: Nombre vacío. No se insertará el registro.<br>";
        continue; // Saltar esta iteración del bucle y pasar a la siguiente fila del CSV
    }
       $sql6 = "SELECT id FROM agm_productores_productor WHERE razonsocial = :razonsocial  LIMIT 1";
$stmt6= $pdo->prepare($sql6);
$stmt6->bindParam(':razonsocial', $datos[1], PDO::PARAM_STR); 
 $stmt6->execute(); 
$resultado6 = $stmt6->fetch(PDO::FETCH_ASSOC);
 
    if ($resultado6) { echo 'repetido, '.$datos[1].',  no se inserta <br>'; continue;};
    
   $id = uniqid();
        
              $alias =  $this->convertTag($datos[0]) ;
                // Vincula los datos para la inserción convertTag($str)
				  $stmt->bindParam(':id', $id);
                   $stmt->bindParam(':alias',$alias);
                $stmt->bindParam(':nombre', $datos[0]);
                $stmt->bindParam(':razonsocial', $datos[1]);
                $stmt->bindParam(':prodeu', $datos[2]);
                $stmt->bindParam(':prodes', $datos[3]);
                $stmt->bindParam(':sector1', $this->getSector($objDatos,$datos[4]));
                $stmt->bindParam(':sector2',  $this->getSector($objDatos,$datos[5]));
                $stmt->bindParam(':comarca', $this->getComarca($objDatos,$datos[6]));
                $stmt->bindParam(':poblacion',$this->getPoblacion($objDatos,$datos[7]));
                $stmt->bindParam(':direccion', $datos[8]);
                $stmt->bindParam(':productos', $datos[9]);
                $stmt->bindParam(':cp', $datos[10]);
                $stmt->bindParam(':latitud', $datos[11]);
                $stmt->bindParam(':longitud', $datos[12]);
                $stmt->bindParam(':telefono', $datos[13]);
                $stmt->bindParam(':email', $datos[14]);
                $stmt->bindParam(':web', $datos[15]);
                $stmt->bindParam(':facebook', $datos[16]);
                $stmt->bindParam(':instagram', $datos[17]);
                $stmt->bindParam(':provincia', $datos[18]);
 
                if ($stmt->execute()) { $arrProd[]=$id;
                    echo "";
                } else {
                    echo "ERROR -------- : " . implode(", ", $datos) . "<br>";
                }
      }
   // Cierra la declaración
            $stmt = null;

            // Cierra el archivo CSV
            fclose($archivo);
         $sqlDelete = "DELETE FROM agm_productores_productor WHERE nombre=? ";

        // Prepara y ejecuta la sentencia SQL DELETE
        $stmtDelete = $pdo->prepare($sqlDelete);
        $stmtDelete->bindParam(':provincia', $provinciaToDelete);
        $stmtDelete->execute(['']);
 

            echo "<BR>TODO OK.<HR>";
        } else {
            echo "Error al abrir el archivo CSV.";
        }
   } else {
        echo "Error al abrir el archivo CSV.";
    }

  $obj = new stdClass();
    $obj->csv = 'insertado';
    $obj->insertedIds = $arrProd;
   // $this->createProd($objDatos,$arrProd);
  return;  // $this->createProd($objDatos,$provincia);
 
}
//   WHERE id IN ('".implode(',', $arrProd)."')";
   public function createProd($objDatos,$provincia){ 
 
    $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
    $query = "SELECT    id ,   prodeu,   prodes  FROM agm_productores_productor 
             WHERE provincia =?";
$stmt = $pdo->prepare($query);
$stmt->execute([$provincia]);
		 $data["response"] = array();
       while ($results = $stmt->fetch(PDO::FETCH_OBJ)) {
            $data["response"][] = $results;
        }
     foreach ($data["response"] as $p){ 
	$arrprodeu = explode(',',$p->prodeu);
    	$arrprodes = explode(',',$p->prodes);
     
         for($i=0;$i<count($arrprodeu);$i++){
              $idp = uniqid();
             $code_eu ='eu';
              $code_es ='es';
              
              
   //$sql5 = "SELECT idproduct_lang FROM ab_productos_lang WHERE nproduct = :nproduct AND ( code = :codeu OR code = :codes ) LIMIT 1";
      $sql5 = "SELECT idproduct_lang FROM ab_productos_lang WHERE nproduct = :nproduct AND code = :codeu  LIMIT 1";
$stmt5 = $pdo->prepare($sql5);
$stmt5->bindParam(':codeu', $code_eu, PDO::PARAM_STR);
//$stmt5->bindParam(':codes', $code_es, PDO::PARAM_STR);
$stmt5->bindParam(':nproduct', $arrprodeu[$i], PDO::PARAM_STR);
 $stmt5->execute();

// Obtener el resultado de la consulta
$resultado = $stmt5->fetch(PDO::FETCH_ASSOC);

if ($resultado) {
 
        try {
                        $idproduct_lang = $resultado['idproduct_lang'];
      $sql3 = "INSERT INTO ab_productor_productos (id_productor,id_producto) 
                VALUES (:id_productor,:id_producto )";
            $stmt3 = $pdo->prepare($sql3);
               $stmt3->bindParam(':id_productor', $p->id);
                    $stmt3->bindParam(':id_producto', $idproduct_lang); 
       $stmt3->execute();

    echo "";
} catch (PDOException $e) {
    // Manejo de la excepción
    if ($e->errorInfo[1] == 1062) { 
        echo "";
    } else {
        // Otro tipo de error
        echo "Error desconocido: " . $e->getMessage();
    }
}

 

} else {
        $sql = "INSERT INTO ab_productos (idproduct ) 
                VALUES (:idproduct )";
            $stmt = $pdo->prepare($sql);
            
             	  $stmt->bindParam(':idproduct', $idp);
            $stmt->execute();
                   
                      $sql2 = "INSERT INTO ab_productos_lang (idproduct_lang,code,nproduct ) 
                VALUES (:idproduct_lang,:code,:nproduct )";
            $stmt2 = $pdo->prepare($sql2);
               $stmt2->bindParam(':idproduct_lang', $idp);
                    $stmt2->bindParam(':code', $code_eu);
                          $stmt2->bindParam(':nproduct', $arrprodeu[$i]);
            $stmt2->execute();
                   
                        $sql4 = "INSERT INTO ab_productos_lang (idproduct_lang,code,nproduct ) 
                VALUES (:idproduct_lang,:code,:nproduct )";
            $stmt4 = $pdo->prepare($sql4);
               $stmt4->bindParam(':idproduct_lang', $idp);
                    $stmt4->bindParam(':code', $code_es);
                          $stmt4->bindParam(':nproduct', $arrprodes[$i]);
          $stmt4->execute();
                   
                     $sql3 = "INSERT INTO ab_productor_productos (id_productor,id_producto) 
                VALUES (:id_productor,:id_producto )";
            $stmt3 = $pdo->prepare($sql3);
               $stmt3->bindParam(':id_productor', $p->id);
                    $stmt3->bindParam(':id_producto', $idp); 
                 $stmt3->execute();
}
   
 
     }
	}
 

   
       
return ; //'asdf';//$data["response"];
 }





 public function navarra($objDatos, $csv)
{
    
     $pdo = new PDO("mysql:host=$objDatos->server;dbname=" . $objDatos->dbname, $objDatos->dbuser, $objDatos->dbpass);
    $pdo->exec("set names utf8mb4");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    if (($archivo = fopen($csv, "r")) !== FALSE) {
         
        if (($archivo = fopen($csv, "r", "UTF-8")) !== FALSE) {
            // Leer la primera línea (encabezado) sin procesarla
     $encabezado = fgetcsv($archivo);
             // $alias =  $this->convertTag($datos[0]) ;
             
 
            $sql = "INSERT INTO agm_productores_poblacion (alias,nombre, comarca) 
                VALUES (:alias,:nombre, :comarca)";
            $stmt = $pdo->prepare($sql);

          while (($datos = fgetcsv($archivo, 1000, ",")) !== FALSE) {
				 $id = uniqid();
              $alias =  $this->convertTag($datos[4]) ;
              
                   $stmt->bindParam(':alias',$alias);
                $stmt->bindParam(':nombre', $datos[4]);
               $stmt->bindParam(':comarca', $datos[5]);
               
 
                if ($stmt->execute()) {
                    echo "";
                } else {
                    echo "ERROR: " . implode(", ", $datos) . "<br>";
                }
      }      

            // Cierra la declaración
            $stmt = null;

            // Cierra el archivo CSV
            fclose($archivo);

            echo "<BR>TODO OK.<HR>";
        } else {
            echo "Error al abrir el archivo CSV.";
        }
   } else {
        echo "Error al abrir el archivo CSV.";
    }

  $obj = new stdClass();
    $obj->csv = $csv;
    return $obj;
}
 }
 