private function cargarLineas($idFirma, $idFamilia, $archivoCsv) { $nLinea = 0; $errores = array(); $items = array(); $articulo = new Articulos(); $csv = new Archivo($archivoCsv); $csv->setColumnsDelimiter(";"); if ($csv->open()) { $columnas = $csv->readline(); //print_r($columnas); while (($linea = $csv->readLine()) && $nLinea < 1000) { $nLinea++; //print_r($linea); foreach ($linea as $key => $value) { $items[$nLinea][$columnas[$key]] = $value; } } $csv->close(); } else { $errores[] = "No se ha podido abrir el archivo cargado"; } //print_r($items); unset($articulo); return array('titulos' => $columnas, 'items' => $items, 'errores' => $errores); }
public function ImportarAction() { $fileName = "docs/docs{$_SESSION['emp']}/tmp/formasPago.csv"; $archivo = new Archivo($fileName); $archivo->setColumnsDelimiter(";"); //$archivo->setColumnsEnclosure('"'); if ($archivo->open("r")) { set_time_limit(0); while (($linea = $archivo->readLine()) !== FALSE) { $fp = new FormasPago(); $fp->setDescripcion(utf8_encode($linea[1])); $fp->setObservations($linea[0]); $fp->setNumeroVctos(1); $fp->setAnotarEnCaja(0); $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); }
/** * 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); }
/** * 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); }
/** * 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 cargarLineas($idPedido, $idFirma, $idCliente, $archivoCsv) { $nLinea = 0; $errores = array(); $csv = new Archivo($archivoCsv); $csv->setColumnsDelimiter(";"); if ($csv->open()) { $articulo = new Articulos(); while ($linea = $csv->readLine()) { $nLinea++; $codigo = trim($linea[0]); $unidades = trim($linea[1]); if ($codigo != '') { $filtro = "IdFirma='{$idFirma}' and (Codigo='{$codigo}' or CodigoEAN='{$codigo}')"; //echo $filtro,"\n"; $rows = $articulo->cargaCondicion("Id,IdFamilia,Codigo,Descripcion,Pvd", $filtro); $row = $rows[0]; if ($row['Id'] != '') { $articulo = new Articulos($row['Id']); $pedidoLinea = new PedidosLineas(); $pedidoLinea->setIdPedido($idPedido); $pedidoLinea->setIdFirma($idFirma); $pedidoLinea->setIdFamilia($row['IdFamilia']); $pedidoLinea->setIdCliente($idCliente); $pedidoLinea->setIdArticulo($row['Id']); $pedidoLinea->setDescripcion($row['Descripcion']); $pedidoLinea->setUnidades($unidades); $pedidoLinea->setPrecio($row['Pvd']); $pedidoLinea->setIva($articulo->getIdIva()->getIva()); $pedidoLinea->setImporte($unidades * $row['Pvd']); $id = $pedidoLinea->create(); if (!$id) { $errores[] = "Línea {$nLinea}: No se pudo crear la línea de pedido."; } } else { $errores[] = "Línea {$nLinea}: El artículo {$codigo} no existe o no pertenece a la firma del pedido."; } } } $csv->close(); unset($articulo); unset($pedidoLinea); // Recalcular los totales del pedido if (count($errores) == 0) { $pedido = new PedidosCab($idPedido); $pedido->save(); unset($pedido); } } else { $errores[] = "No se ha podido abrir el archivo cargado"; } return $errores; }
/** * GENERA LOS ALBARANES Y FACTURAS DE MANTENIMIENTOS * EN BASE A LOS INDICADO EN EL ARCHIVO CSV * * @param string $fileCsv */ public function mantenimientosAction($fileCsv = '') { if ($fileCsv == '') { $fileCsv = 'tmp/mantenimientos.csv'; } $archivo = new Archivo($fileCsv); $archivo->setColumnsDelimiter(";"); if ($archivo->open()) { while (($linea = $archivo->readLine()) !== FALSE) { $idSucursal = $linea[0]; $idAlmacen = $linea[1]; $idComercial = $linea[2]; $idCliente = $linea[3]; $codigoArticulo = $linea[4]; $unidades = $linea[5]; $precio = $linea[6]; $cliente = new Clientes($idCliente); $direccionesEntrega = $cliente->getDireccionesEntrega(); $direcEntrega = $direccionesEntrega[0]; $albaran = new AlbaranesCab(); $albaran->setIDCliente($cliente->getIDCliente()); $albaran->setIDSucursal($idSucursal); $albaran->setFecha(date("d-m-Y")); $albaran->setIDDirec($direcEntrega->getIDDirec()); $albaran->setIDAlmacen($idAlmacen); $albaran->setIDComercial($idComercial); $albaran->setIDContador(2); $albaran->setIDEstado(0); $albaran->setIDFP($cliente->getIDFP()->getIDFP()); $idAlbaran = $albaran->create(); if ($idAlbaran) { $articulo = new Articulos(); $articulo = $articulo->find("Codigo", $codigoArticulo); $lineas = new AlbaranesLineas(); $lineas->setIDAlbaran($idAlbaran); $lineas->setIDArticulo($articulo->getIDArticulo()); $lineas->setDescripcion($articulo->getDescripcion() . " Mes " . date("m Y")); $lineas->setUnidades($unidades); $lineas->setPrecio($precio); $lineas->setDescuento(0); $lineas->setIva($articulo->getIDIva()->getIva()); $lineas->setImporte($unidades * $precio); $ok = $lineas->create(); if ($ok) { $albaran = new AlbaranesCab($idAlbaran); $albaran->confirma(); if ($albaran->expide()) { $albaran = new AlbaranesCab($idAlbaran); $contador = new Contadores(); $contador = $contador->dameContador($idSucursal, 2); $albaran->facturar($contador); } } else { print_r($lineas->getErrores()); exit; } } else { $this->values['errores'][] = "No se ha podido crear el albarán para " . $cliente->getRazonSocial(); } } } else { $this->values['errores'][] = "El fichero de importación " . $fileCsv . " no existe"; } }
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; }