/** * 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; }