Ejemplo n.º 1
0
 /**
  * Importa clientes desde fichero externo csv según
  * el formato de facturaplus
  */
 public function ImportarAction()
 {
     $fileName = "docs/docs{$_SESSION['emp']}/tmp/clientes.csv";
     $archivo = new Archivo($fileName);
     $archivo->setColumnsDelimiter(";");
     $archivo->setColumnsEnclosure('"');
     $idPais = 68;
     // España
     // Crear array de poblaciones
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             $poblaciones[trim($linea[4])] = 0;
         }
         $pobla = new Municipios();
         foreach ($poblaciones as $key => $value) {
             $rows = $pobla->cargaCondicion("IDMunicipio", "Municipio='{$key}'");
             if ($rows[0]['IDMunicipio'] != '') {
                 $poblaciones[$key] = $rows[0]['IDMunicipio'];
             }
         }
         unset($pobla);
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     if ($archivo->open("r")) {
         set_time_limit(0);
         while (($linea = $archivo->readLine()) !== FALSE) {
             //print_r($linea);
             $fp = new FormasPago();
             $fp = $fp->find('Observations', trim($linea[20]));
             $idFp = $fp->getIDFP();
             if (!$idFp) {
                 $idFp = 1;
             }
             $cliente = new Clientes();
             $cliente->setIDCliente($linea[0]);
             $cliente->setRazonSocial(utf8_encode($linea[1]));
             $cliente->setNombreComercial(utf8_encode($linea[2]));
             $cliente->setDireccion(utf8_encode($linea[3]));
             $cliente->setIDPoblacion($poblaciones[trim($linea[4])]);
             $cliente->setIDProvincia($linea[5]);
             $cliente->setCodigoPostal($linea[6]);
             $cliente->setIDPais($idPais);
             $cliente->setTelefono($linea[7]);
             $cliente->setMovil($linea[8]);
             $cliente->setFax($linea[9]);
             $cliente->setCif(str_replace("-", "", $linea[10]));
             $cliente->setObservaciones($linea[11] . " " . $linea[19]);
             $cliente->setBanco($linea[15]);
             $cliente->setOficina($linea[16]);
             $cliente->setDigito(substr($linea[17], 2, 2));
             $cliente->setCuenta($linea[18]);
             $cliente->setIDFP($idFp);
             $cliente->setEMail($linea[41]);
             $cliente->setLimiteRiesgo($linea[38]);
             $cliente->setIDZona(1);
             $cliente->setIDSucursal($_SESSION['suc']);
             $cliente->setIDTipo(1);
             $cliente->setIDGrupo(1);
             $idCliente = $cliente->create();
             if (!$idCliente) {
                 $nErrores += 1;
                 print_r($cliente->getErrores());
             } else {
                 $nAciertos += 1;
             }
             unset($cliente);
         }
         $archivo->close();
     } else {
         $this->values['errores'][] = "El fichero de importación " . $fileName . " no existe";
     }
     echo "Aciertos: {$nAciertos}, Errores: {$nErrores}";
     unset($archivo);
 }
 private function leeCsv($file)
 {
     $archivo = new Archivo($file);
     $archivo->setColumnsDelimiter(";");
     $archivo->setColumnsEnclosure("\"");
     $array = array();
     if ($archivo->open()) {
         // Leer la cabecera
         $titulos = $archivo->readLine();
         // Leer el contenido
         $i = -1;
         while ($row = $archivo->readLine()) {
             $i++;
             foreach ($titulos as $key => $titulo) {
                 $array[$i][$titulo] = $row[$key];
             }
         }
         $archivo->close();
     } else {
         echo "No he podido leer {$file}";
     }
     unset($archivo);
     return $array;
 }