/**
  * Importa familias desde fichero externo csv según
  * el formato de facturaplus
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/familias.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     //$archivo->setColumnsEnclosure('"');
     if ($archivo->open("r")) {
         set_time_limit(0);
         // Me salto la primera línea de cabecera
         $linea = $archivo->readLine();
         while (($linea = $archivo->readLine()) !== FALSE) {
             print_r($linea);
             $fp = new Familias();
             $fp->setFamilia(utf8_encode($linea[1]));
             $fp->setObservations($linea[0]);
             $fp->setInventario(1);
             $id = $fp->create();
             if (!$id) {
                 $nErrores += 1;
                 print_r($fp->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($fp);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
 public function Subfamilias()
 {
     $nItems = 0;
     $nErrores = 0;
     $dbLink = mysql_connect("localhost", "root", "albatronic");
     //$query = "TRUNCATE {$this->dbDestino}.ErpFamilias";
     //mysql_query($query);
     $query = "select * from {$this->dbOrigen}.subfamilias";
     $result = mysql_query($query, $dbLink);
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
         $row = $this->utf($row);
         $f = new Familias($row['IDFamilia']);
         $c = new Familias();
         $c->setFamilia($row['Subfamilia']);
         $c->setInventario($f->getInventario()->getIDTipo());
         $c->setTrazabilidad($f->getTrazabilidad()->getIDTipo());
         $c->setMargenWeb($f->getMargenWeb());
         $c->setMargenMinimo($f->getMargenMinimo());
         $c->setMostrarEnTpv($f->getMostrarEnTpv()->getIDTipo());
         $c->setPublish($row['PublicarWeb'] == 'S' ? 1 : 0);
         $c->setBelongsTo($f->getIDFamilia());
         $c->setObservations($row['IDSubfamilia']);
         $id = $c->create();
         if ($id == NULL) {
             $errores[] = $c->getErrores();
             $nErrores++;
         } else {
             $c->setIDFamilia($id);
             $c->setPrimaryKeyMD5(md5($id));
             $c->save();
             $nItems++;
         }
     }
     //mysql_close($dbLink);
     echo "Subfamilias  {$nItems}<br/>";
     if (count($errores)) {
         echo "<pre>";
         print_r($errores);
         echo "</pre>";
     }
 }
 private function importFamilias()
 {
     $file = getcwd() . "/docs/docs1/import/FAMILIAS.txt";
     $array = $this->leeCsv($file);
     $obj = new Familias();
     $obj->truncate();
     foreach ($array as $item) {
         //print_r($item);
         $obj = new Familias();
         $obj->setIdFirma($item['IDFIRMA']);
         $obj->setDescripcion(utf8_encode($item['DESCRIPCION_FAMILIA']));
         $id = $obj->create();
         if (!$id) {
             print_r($obj->getErrores());
         }
     }
 }
 /**
  * Edita, actualiza o borrar un registro
  *
  * Viene siempre por POST
  * Actualiza o Borrar según el valor de $this->request['accion']
  *
  * @return array con el template y valores a renderizar
  */
 public function editFormAction()
 {
     $this->values['linkBy']['id'] = 'IdFirma';
     //COGER DEL REQUEST EL LINK A LA ENTIDAD PADRE
     if ($this->values['linkBy']['id'] != '') {
         $this->values['linkBy']['value'] = $this->request[$this->entity][$this->values['linkBy']['id']];
     }
     switch ($this->request['accion']) {
         case 'G':
             //GUARDAR DATOS
             if ($this->values['permisos']['permisosModulo']['UP']) {
                 $datos = new Familias($this->request['Familias']['Id']);
                 $datos->bind($this->request[$this->entity]);
                 if ($datos->valida(array())) {
                     $datos->save();
                     $this->values['errores'] = $datos->getErrores();
                     $this->values['alertas'] = $datos->getAlertas();
                     //Recargo el objeto para refrescar las propiedas que
                     //hayan podido ser motivo de algun calculo durante el proceso
                     //de guardado.
                     $datos = new Familias($this->request['Familias']['Id']);
                 } else {
                     $this->values['errores'] = $datos->getErrores();
                     $this->values['alertas'] = $datos->getAlertas();
                 }
                 $this->values['datos'] = $datos;
                 unset($datos);
                 return $this->listFormAction($this->values['linkBy']['value']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
         case 'B':
             //BORRAR DATOS
             if ($this->values['permisos']['permisosModulo']['DE']) {
                 $datos = new Familias($this->request['Familias']['Id']);
                 if ($datos->erase()) {
                     $datos = new $this->entity();
                     $this->values['datos'] = $datos;
                     $this->values['errores'] = array();
                 } else {
                     $this->values['datos'] = $datos;
                     $this->values['errores'] = $datos->getErrores();
                 }
                 unset($datos);
                 return $this->listFormAction($this->values['linkBy']['value']);
             } else {
                 return array('template' => '_global/forbiden.html.twig');
             }
             break;
     }
 }