/**
   * * Asigna valores a los miembros de una factura, según los datos recogidos del formulario.
   *
   * @param factura
   * @return
   */
  private boolean rellenarFactura(IFactura factura) {
    boolean exito = true;

    String cif, direccion, nombre, ciudad, cp, telefono, fecha;

    cif = cifjTextField2.getText();
    direccion = direccionCompnanyia.getText();
    nombre = nombreCompanyiajTextField1.getText();
    ciudad = ciudadjTextField.getText();
    cp = codigoPostaljTextField.getText();
    telefono = telefonojTextField.getText();
    fecha = fechajTextField.getText();

    if (validarMinimosRellenos() && !fecha.equals("")) {
      factura.setCif(cif);
      factura.setDireccion(direccion);
      factura.setNombreCompanyia(nombre);
      factura.setCiudad(ciudad);
      factura.setCodigoPostal(cp);
      factura.setTelefono(telefono);
      try {
        Integer numero = Integer.parseInt(numeroFacturajTextField1.getText());
        factura.setNumeroFactura(numero);
      } catch (NumberFormatException e) {
        JOptionPane.showMessageDialog(
            null, "El número de factura debe ser un número entero positivo.");
        exito = false;
      }
      factura.setFecha(fecha);
    } else exito = false;
    if (exito) {
      rellenarLineas(factura);
    }

    return exito;
  }
  /**
   * * Crea una instancia de linea de factura, por cada fila que contenga la tabla.
   *
   * @param factura
   */
  private void rellenarLineas(IFactura factura) {
    TableModel modelo = jTable1.getModel();
    int numFilas = modelo.getRowCount();

    for (int i = 0; i < numFilas; i++) {
      ILineaFactura linea = FacturaHelperFactory.createLineaFactura();

      String km = (String) modelo.getValueAt(i, 1);
      String precioKm = (String) modelo.getValueAt(i, 2);
      String horas = (String) modelo.getValueAt(i, 3);
      String total = (String) modelo.getValueAt(i, 4);

      // obtenemos el valor del textArea
      CellEditor edit = jTable1.getCellEditor(i, 0);

      linea.setDescripcion(edit.getCellEditorValue().toString());
      linea.setKilometros(toCeroF(km));
      linea.setPrecioKilometro(toCeroF(precioKm));
      linea.setHorasEspera(toCero(horas));
      linea.setTotal(toCeroF(total));

      if (!total.equals("")) factura.addLineaFactura(linea);
    }
  }