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>";
     }
 }