1.8.107 Abr-2024 PK00 #Y-15406; [12/03/2024]; com.Bo2A.net.ObjDatosEjecucionContext.setERPSI_Server_Information; Se pueden especificar datos específicos sobre el sistema operativo en el fichero de configuración de tomcat. Porque puede ocurrir que os.name no devuelva información relevante. [13/03/2024]; com.Bo2A.net.Blogin; // Se vuelve static las duraciones y se chequea en setDuracion public static final String DURACION_CORTA = "c"; public static final String DURACION_LARGA = "l"; [19/03/2024]; com.Bo2A.parametros.ParametroUTILS; Nuevos parámetros para Caducidad directorios public static final String DANZAUNO_DIRECTORIO_EXPORT_CADUCIDAD = "DANZAUNO.DIRECTORIO.EXPORT.CADUCIDAD"; public static final String DANZAUNO_DIRECTORIO_USER_CADUCIDAD = "DANZAUNO.DIRECTORIO.USER.CADUCIDAD"; Dentro de export se ha definido el directorio "contabilidad" y "otros". Estos subdirectorios se ven afectados por el parámetro anterior. com.Bo2A.cliente.window.Bo2aWindow.LOGIN_inicializaDatosLogin; Se borra el directorio user con la antiguedad especificada en el parámetro anterior igual que se hacía previamente con el directorio export. [19/03/2024]; com.Bo2A.validators.gestion.aeat.SII.enviarComunicacionSOAP; Ahora se guarda en el directorio User los ficheros temporales que se reciben de la comunicación del SII. Anteriormente se utlizaba el directorio Objects/SII cuyo contenido no se borraba nunca. //File ficheroRespuesta = new File(Bo2aSystemUtils.getDirectorioObjects(Integer.MAX_VALUE), "R_"+documento); // Bo2A_AEAT.SII_MODELO File ficheroRespuesta = Bo2aSystemUtils.getFicheroUser(Bo2A_AEAT.SII_MODELO, "R_"+documento); [20/03/2024] - #Y-15406; com.Bo2A.cliente.base.edicionBo2EditorImageField; La optimización de la imagen produce fotos en color sepia cuando son PNG. NO está funcionando el menú "Ajustar Tamaño Imagen" (Optimi/NO Optimizar). Se actúa sobre el parámetro PARAM_IMAGEN_RESIZE. Hecha la traducción de la edición de Imagenes. [20/03/2024] - #Y-15406; com.Bo2A.cliente.imagen.Bo2aImageUtils; Las imágenes PNG cuando se pasan por el método compressJPG aparecen en color sepia. * Solucionado con el método removeAlphaChannel. Este método elimina el canal Alpha responsable de la transparencia * en PNG está siempre incluido y en JPG no existe. comprimeImagen; La imagen se guarda en JPG que es el formato que menos ocupa. [21/03/2024]; removeAlphaChannel; Elimina los canales alpha para crear un jpg. Por ej. si viene desde un png por defecto los incorpora. [21/03/2024]; com.Bo2A.Util.Bo2File; com.Bo2A.Util.dialog.visorImagenes.OBJFicheroPanelVisualizacion; Detectado error de funcionamiento en pantalla de multiples archivos subiendo en imagenes. El botón JPG y PDF no funcionan correctamente aunque se selecciones imágenes. El problema esta en com.Bo2A.Util.dialog.visorImagenes.OBJFicheroPanelVisualizacion que no sabe identificar correctamente una imagen en el método isImagen. Ahora es la clase Bo2aFile la que identifica si se trata de una imagen. [21/03/2024]; #Y-15406; com.Bo2A.cliente.base.edicionBo2EditorImageField.comprimeImagen; Ahora se puede comprimir también ficheros bmp (solo por compatibilidad). [25/03/2024]; com.Bo2A.parametros.Bo2aParametros; com.Bo2A.parametros.Bo2aTablaParametrosObjetos; com.Bo2A.parametros.Bo2aParametrosObjetosDatos; com.Bo2A.parametros.Bo2aParametrosObjetosEstructura; Se ha refactorizado la gestión de objetos que se hace desde la parte cliente. Ahora se han creado desde la base Bo2aParametros, Bo2aParametrosObjetos dos nuevas Bo2aParametrosObjetosDatos (tabla, tree, ...) y Bo2aParametrosObjetosEstructura (coordinador, multiapplet, ...) todas utilizadas en la parte servidora con variables estáticas en lugar de textos literales. [25/03/2024]; com.Bo2A.parametros.Bo2aTablaParametrosObjetos; getCodigoPagina; getIdObjPagina; getIdObjArea; getIdEmpresa; getIdUsuario; getImprimir; En esta clase ahora se procesan los parámetros básicos de la pantalla (con prefijo 0). ej. * Anteriormente se llamaban 0MULTI_IDPAGINA, 0MULTI_CODIGOPAGINA, 0MULTI_IDEMPRESA, ... En la parte servidor com.Bo2A.servlet.core.parametros.Bo2aHTTPXMLParametros se utilizan las macros definidas en esta clase y sus descendientes. [25/03/2024]; com.Bo2A.cliente.dialog.Bo2aDialogImpresionReports.ponFont Adaptado para cambiar el tamaño de la letra definido por el usuario. [26/03/2024]; com.Bo2A.gui.Bo2aFilterList.ponFont; com.Bo2A.gui.Bo2aPrintSelection; com.Bo2A.gui.Bo2aSelectionList; com.Bo2A.Util.dialog.Bo2aPanelContactos; com.Bo2A.cliente.dialog.Bo2aDialogBusqueda; com.Bo2A.cliente.dialog.Bo2aDialogExpresion; com.Bo2A.cliente.dialog.Bo2aDialogExpresionPanelAvanzado; com.Bo2A.cliente.dialog.Bo2aDialogExpresionPanelNormal; com.Bo2A.cliente.dialog.Bo2aDialogImpresionReports; com.Bo2A.cliente.dialog.Bo2aDialogOrdenar; com.Bo2A.cliente.dialog.Bo2aTablaDialogOrdenarPanel; com.Bo2A.cliente.dialog.Bo2aPanelProgramacion; com.Bo2A.cliente.mensaje.Bo2aEnvioMensajesUsuario; com.Bo2A.cliente.tablaformulario.Bo2aDialogCambiarColumnas; com.Bo2A.cliente.tablaformulario.Bo2aDialogQuitarColumnas; com.Bo2A.cliente.tablaformulario.Bo2aFormulario; com.Bo2A.cliente.tablaformulario.Bo2aFormularioBotonera; com.Bo2A.cliente.tablaformulario.Bo2aTablaCsv; com.Bo2A.cliente.tablaformulario.Bo2aTablaPopUp; com.Bo2A.cliente.tree.Bo2aTreePopUp; Adaptado estas clases para configurarlas con el tipo de letra definido por el usuario. Se ha definido un método ponFont en cada una. Se ha adaptado los menus contextuales de tabla y tree. La dialog de impresión y de envio de comunicaciones. Estas últimas también se han mejorado en la disposición de los objetos cuando se expanden. Los dialogs de búsqueda, filtrado y similares. [27/03/2024]; com.Bo2A.Util.system.Bo2aSystemUtils; Definidos los tiempos utilizados en Thread.sleep para operaciones de sincronización. Se tiene estos datos centralizados y más controlados que esparcidos por el código. [27/03/2024]; com.Bo2A.cliente.multiapplet.Bo2aMultiApplet.muestraExternal; Mejorado la forma en que se muestran los objetos "External" lanzados por un objeto que coge datos de otro objeto. Al ampliar la pantalla la zona de botones quedaba con espacios en blanco desproporcionados alrededor de los mismos. Ahora quedan al final de la ventana aunque se maximize y siempre ocupando solo la parte necesaria. [28/03/2024]; com.Bo2A.cliente.window.Bo2aWindow; // Muestra la dialog en colores, según el tipo de mensaje. JDialog.setDefaultLookAndFeelDecorated(true); [01/04/2024] - #Y-15438; com.Bo2A.Util.Bo2Util.URIencode; // Cambiado de ISO8859-1 a UTF-8 se estaba usando la codificación de windows para los nombres de ficheros private static final String URIEncoding = "utf-8"; //"iso8859-1"; 1.8.107 Abr-2024 PK01 #Y-15438; [02/04/2024] - #Y-15438; com.Bo2A.zip.Bo2aZipUtilities.getZipEntries; * [02/04/2024] - 15438 * Detectado problema con la codificación de los nombres de ficheros. * Si el nombre está codificado con ISO-8859-1 da problemas porque por defecto se usa UTF-8. * Ahora mismo no tengo un método para comprobar la codificación del fichero, así que utilizo * prueba error. Si falla con el primero intento el segundo. [02/04/2024]; com.Bo2A.Util.system.Bo2aSystemUtils.downloadContents2OutputStream; * Implementa un sistema de cache en página. Igual que el que había en Bo2aImagen.descargaFromCache. * Solo va a funcionar con la urlDownload. Cuando se utilice un inputStream no hay cache. * Se incorpora el parámetro @idObjPagina para la cache. * Si este parametro valor < 0 no se utiliza la cache * * El @param error si es null no se muestran mensajes. Lo que ocurría en un entorno de servidor o de un cliente que no los necesite, por ej. la Bo2aImagen. Es método basa su funcionamiento en la clase Bo2aHTTPDownload; [03/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload; download2OutputStream; Creación de una cache automática para los ficheros descargados. Se implementa como una copia del método Bo2aImagen.descargaCache; Estará activada siempre que se indique la idObjPagina. Se complementa con el borrado automático de la cache según el tiempo de caducidad definido. En los constructores el parámetro de origen URL_OR_FileOrigen pasa a ser @param URL_OR_FileOrigen_OR_InputStream Y en el destino, cuando exista, @param oDestino pasa a @param fDestino_OR_OutputStream [03/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload.getFicheroCache(); Este método se encarga de determinar si es es necesario utilizar cache (idObjPagina) y la petición HEAD al servidor para determinar si el fichero ha cambiado y está cacheado. [03/04/2024]; com.Bo2A.cliente.base.edicionBo2EditorImageField; // Guardar la página utilizada después para cachear las descargas. Se utiliza el mismo esquema que en Bo2aImagen. Utilizando los métodos definidos en Bo2aSystemUtils.muestraContenidoFichero; [04/04/2024] - #Y-15438; com.Bo2A.cliente.imagen.Bo2aImagen; -Utilizar el mismo esquema para descargar el fichero que el utilizado en EditorImage. La clase de gestiona los servidores Bo2aGestionFileServer; -Ya no se utiliza el método propio "descargaFromCache" y en su lugar se hace igual que en Bo2aEditorImage, utilizar el esquema de descarga de Bo2aSystemUtils, que que además parovecha la utilización de la misma cache. [05/04/2024] - #Y-15438; com.Bo2A.net.Bo2aHTTPDownload.downloadFirstStep; Refactorizado este método. Ahora se resuelve primero el fichero cache aquí y se copia la funcionalidad anterior a _downloadFirstStep; * Primer paso para resolver la cache. * Este método envuelve a _downloadFirstStep. * Si la cache está especificada entonces se resuelve el fichero que la va a almacenar aquí. * * Se utiliza un método distinto porque se hacen llamadas a _downloadFirstStep y provocaría una recursividad infinita. [08/04/2024]; com.Bo2A.sql.SQLSERVER.ErrorSQLXML.AnalizaError; Este método ahora es capaz de obtener los mensajes de error de las cabeceras de la respuesta, además del contenido en el BODY. Si es una llamada HEAD no habrá contenido y es necesario leer los errores/mensajes de las cabeceras. [08/04/2024]; com.Bo2A.Util.Bo2aBase64.fromStringBase64; toStringBase64; * Métodos para serializar objetos a string en base64 y viceversa. * Este utiliza OutoutObjectStream en lugar de XMLEncoder. Después se construye en Base64 1.8.107 Abr-2024 PK06 Cambia la decoracion de las ventanas internas. 1.8.107 Abr-2024 PK07 [02/09/2024] - #Y-15516; com.Bo2A.Util.system.Bo2aSystemUtils.getFicheroTemporal; El prefijo tiene que tener al menos 3 caracteres, sino el metodo File.createTempFile devuelve una exception "Prefix string too short" 1.8.107 Abr-2024 PK08 [08/05/2024]; com.Bo2A.cliente.base.edicion.Bo2EditorComboBox.getSelectedValor; setSelectedValor; Nuevos métodos para establecer valores internos asociados al valor mostrado. El elemento mostrado se consigue con this.getSelectedItem() Esto implica que se puede usar la clase fuera del entorno de Bo2aTablaFormulario y Bo2aTreeView. [08/05/2024]; com.Bo2A.cliente.coordinador.Bo2aCoordinator.Bo2aCoordinator; Solucionado null exception. La construcción de las colas se hace en el constructor y no en el método init. Puede ocurrir que la captura de eventos se ejecute antes que el método init. eventos = new Bo2aEventList(); applets = new Bo2aAppletList(); [08/05/2024]; com.Bo2A.cliente.dialog.Bo2aPanelProgramacion; Ahora se pueden indicar un intervalo de horas de ejecución o una hora fija. Se ha habilitado al label "Hora" como un checkbox. [08/05/2024]; com.Bo2A.cliente.dialog.Bo2aPanelProgramacion.setDimensionesElementos; Este metodo establece las dimensiones de todos los elementos. Se utiliza Bo2aDialogUtil para establecer las dimensiones de las cajas que se calcula en función del tamaño de letra. [09/05/2024]; com.Bo2A.Util.Bo2Util.quitaEtiquetasHTML; Nuevo método. Quita las etiquetas . Es util cuando tenemos un código html que va encapsulado dentro de otro html. [09/05/2024]; com.Bo2A.Util.dialog.Bo2aDialogProgressBar.Bo2aDialogProgressBar; Adaptado las cajas de los elementos al tamaño de letra definido. Usa la clase Bo2aDialogUtil. [09/05/2024]; com.Bo2A.cliente.objetos.PanelSuperior_v1.getSelectorTextoTooltip; Corregido un problema que aparece cuando los títulos de los objetos son formateados como html. Solo aparece el primer elemento de la lista de objetos ordenantes. Hay que quitarle las etiquetas . [14/05/2024]; com.Bo2A.net.Bdata.getErroresUrlModeloMensajeFormateado; getMensajesUrlModeloMensajeFormateado; * Devuelve todos los erores actuales formateados. Los devuelve con el separador indicado y utiliza objError.toString; [11/09/2024] - #Y-15488; com.Bo2A.validators.gestion.proveedor.ProveedorEmitirPedidos.imprimeUnDoc; Para la impresión de report de pedidos de tipo CALIDAD se utiliza el evento IMPRIME_REPORT2. * * (Usado como base com.Bo2A.validators.gestion.almacen.ExpedicionEmitir) [11/09/2024] - #Y-15488; com.Bo2A.validators.gestion.proveedor.ProveedorEmitirPedidos.getTipoPedido; * Obtener el tipo de pedido para determinar el report que se tienen que generar. [12/09/2024] - #Y-15488; com.Bo2A.cliente.window.Bo2aPantallaBase.imprimeReport; // NO estaba funcionando la visualización de los reports internos. El valor "lInterno" no se estaba actualizado, en el commit c813196 (12-03-2024) si aparece [18/09/2024] - #Y-15488; erpsi_danzauno/com/Bo2A/cliente/dialog/Bo2aDialogBusqueda.setColumna; Incluido nuevo parámetro "colFiltrable" para indicar si la columna esta marcada como filtrable y en el caso que corresponda desactivar la casilla de búsqueda.