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; }
private function importPedidosLineas() { $obj = new PedidosLineas(); $obj->truncate(); $file = getcwd() . "/docs/docs1/import/PEDIDOS_LINEAS.txt"; $archivo = new Archivo($file); $archivo->setColumnsDelimiter(";"); $archivo->setColumnsEnclosure("\""); $errores = 0; if ($archivo->open()) { // Leer la cabecera $titulos = $archivo->readLine(); // Leer el contenido $i = -1; while ($row = $archivo->readLine()) { $i++; $item = array(); foreach ($titulos as $key => $titulo) { $item[$titulo] = $row[$key]; } $obj = new PedidosLineas(); $obj->setIdPedido($item['IDPEDIDO']); $obj->setUnidades(self::trataNumero($item['UNIDADES'])); $obj->setIdFirma($item['IDFIRMA']); $obj->setIdFamilia($item['IDFAMILIA']); $obj->setIdArticulo(self::getArticulo($item['IDFIRMA'], $item['IDARTICULO'])); $obj->setIdCliente($item['IDCLIENTE']); $obj->setDescripcion(utf8_encode($item['DESCRIPCION'])); $obj->setPrecio(self::trataMoneda($item['PRECIO'])); $obj->setDescuento1(self::trataNumero($item['DCTO1'])); $obj->setDescuento2(self::trataNumero($item['DCTO2'])); $obj->setDescuento3(self::trataNumero($item['DCTO3'])); $obj->setImporte(self::trataMoneda($item['IMPORTE'])); $obj->setComisionAgente(self::trataNumero($item['COMISION_AGENTE'])); $obj->setComisionSubagente(self::trataNumero($item['COMISION_SUBAGENTE'])); $obj->setIva(self::trataNumero($item['IVA'])); $obj->setUnidadesPtesFacturar(self::trataNumero($item['PENDIENTE_FACTURAR'])); $obj->setObservations(utf8_encode($item['OBSERVACIONES'])); $id = $obj->create(); if (!$id) { print_r($obj->getErrores()); $errores++; } } $archivo->close(); } echo "PedidosLineas {$i}<br/>"; if ($errores) { echo "Errores PedidosLineas {$errores}</br>"; } }