/**
  * Importa artículos desde fichero externo csv según
  * el formato de facturaplus
  * 
  * NOTA IMPORTANTE: SE HAN DE IMPORTAR LAS FAMILIAS ANTES.
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/articulos.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);
             $fam = new Familias();
             $fam = $fam->find('Observations', trim($linea[2]));
             $idFamilia = $fam->getIDFamilia();
             if (!$idFamilia) {
                 $idFamilia = 1;
             }
             $arti = new Articulos();
             $arti->setCodigo($linea[0]);
             $arti->setDescripcion(utf8_encode($linea[1]));
             $arti->setIDCategoria($idFamilia);
             $arti->setAllowsChildren($linea[4]);
             $arti->setInventario(1);
             $arti->setIDIva(1);
             $arti->setPmc(str_replace(",", ".", $linea[6]));
             $arti->setPvd(str_replace(",", ".", $linea[7]));
             $arti->setPvp(str_replace(",", ".", $linea[8]));
             $arti->setMargen(str_replace(",", ".", $linea[9]));
             $arti->setPeso(str_replace(",", ".", $linea[5]));
             $arti->setStockMaximo($linea[11]);
             $arti->setStockMinimo($linea[12]);
             $arti->setGarantia("S/F");
             $idArti = $arti->create();
             if (!$idArti) {
                 $nErrores += 1;
                 print_r($arti->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($arti);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
 public function Articulos()
 {
     $nItems = 0;
     $nErrores = 0;
     $dbLink = mysql_connect("localhost", "root", "albatronic");
     $query = "TRUNCATE {$this->dbDestino}.ErpArticulos";
     mysql_query($query);
     $query = "select * from {$this->dbOrigen}.articulos";
     $result = mysql_query($query, $dbLink);
     while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
         $row = $this->utf($row);
         $f = new Familias();
         $f = $f->find("Observations", $row['IDSubfamilia']);
         $idFamilia = $f->getIDFamilia();
         $c = new Articulos();
         $c->setCodigo($row['IDArticulo']);
         $c->setDescripcion($row['Descripcion']);
         $c->setIDCategoria($row['IDFamilia']);
         $c->setIDFamilia($idFamilia ? $idFamilia : 0);
         $c->setIDFabricante($row['IDFabricante']);
         $c->setPvd($row['Pvd']);
         $c->setPvp($row['Pvp']);
         $c->setMargen($row['Margen']);
         $c->setPmc($row['Pmc']);
         $c->setIDIva($row['IDIva']);
         $c->setEtiqueta($row['Etiqueta']);
         $c->setCodigoEAN($row['CodigoEAN']);
         $c->setGarantia($row['Garantia']);
         $c->setPeso($row['Peso']);
         $c->setVolumen($row['Volumen']);
         $c->setCaracteristicas($row['Caracteristicas']);
         $c->setFechaUltimoPrecio($row['FechaUltimoPrecio']);
         $c->setVigente($row['Vigente']);
         $c->setPrimaryKeyMD5(md5($row['IDArticulo']));
         if (!$c->create()) {
             $errores[] = $c->getErrores();
             $nErrores++;
         } else {
             $nItems++;
         }
     }
     //mysql_close($dbLink);
     echo "Artículos {$nItems}<br/>";
     if (count($errores)) {
         echo "<pre>";
         print_r($errores);
         echo "</pre>";
     }
 }