Internacionalización del selector de producto

Para Philanthros queríamos tener internacionalizado el nombre de los productos de forma que fuera posible guardar el nombre en cualquier idioma y que este se cargara en función del idioma de la sesión. Para ellos nos apoyamos en la pestaña Traducción que aparece en la ficha de producto en datos maestros, y efectivamente en el campo producto de cualquier ventana este aparecía en el idioma de la sesión siempre que este existiera y en su defecto con el nombre en la ficha principal. El problema vino cuando nos dimos cuenta que en el selector de productos aparecen los productos tal y como los añadimos en la ficha principal, haciendo caso omiso a las traducciones.

Al considerar que esto era un bug de Openbravo ERP abrimos una incidencia en soporte, pero la respuesta fué que la pestaña de traducciones no tiene ese propósito y que por tanto no iban a corregirlo, también nos dijeron que posiblemente para la versión 3.0 lo añadirían.

Como no podíamos esperar y viendo que no era difícil de corregir lo hemos hecho para Philanthros. La instalación es tan sencilla como bajarse el archivo tar.bz2 y md5, comprobar la suma de control y descomprimirlo en srcClient. Luego compilamos con un «ant smartbuild -Dlocal=yes» y listo.

¿Por que en srcClient y no como módulo?. Primero porque hasta donde yo se no puedes crear una clase ya existente en un módulo para que machaque la original del core. Por lo tanto deberías crear una nueva clase y cambiar el mapeo del selector de productos de Openbravo lo cual es un poco engorro. El segundo motivo es porque nosotros lo consideramos un bug del core por lo que utilizar srcClient es una forma elegante de integrar el parche mientras Openbravo no se digne a arreglarlo, cuando esto suceda simplemente borras los archivos de srcClient y actualizas el core.

¿Por qué 4 archivos si sólo se han modificado 2?. Porque si algún día se actualiza el core y modifica alguno de los 2 archivos restantes se podría romper el código. Si se machacan siempre los 4 el selector en principio debería funcionar sin problemas.

¿Cómo funciona?. El selector intenta recuperar el nombre del producto en el idioma de la sesión, si este no existe entonces lista el nombre que aparece en la ficha principal. Lo mismo sucede con el filtro, intenta filtrar por el nombre del producto en el idioma de la sesión, si este no existe entonces filtrará por el nombre de la ficha principal.

 

 

Licencia: GPL v3

Precio: 50€ (Incluye actualizaciones de por vida)

 

Actualización: Se han integrado los cambios hasta 2.50MP34. También se ha refactorizado el código.

Actualización: He añadido la internacionalización del selector ProductComplete y he corregido un problema en el que cuando había un producto seleccionado en el campo producto y se volvía a lanzar el selector, siempre cargaba la clave a buscar en inglés.

Actualización: He añadido también la internacionalización del Multiselector de productos.

 

Cheli