Estoy limpio

Hace unas semanas os comentaba que había donado sangre, pues bien, acaba de llegarme el informe de la donación. Los resultados son buenos:

 

Serología:

  • Hepatitis B HbsAg: Negativo
  • Hepatitis C Acs: Negativo
  • Anti-VIH: Negativo
  • Lues: Negativo

 

Anticuerpos antieritrocitarios: Negativo

Hemoglobina:

  • El valor de la hemoglobina es: Correcto

 

Así que contento y esperando a poder donar sangre en 3 meses :).

 

Cheli

A la gente le encanta la paella… de Calpe

Es llegar el verano y el gentío llega a Calpe buscando playas y calas bonitas. Pero cuando llega la hora de comer, muchos de ellos quieren comer paella. Pero… es posible comerse una buena paella en Calpe?

Mis sitios recomendados son:

El cantonet

Avda. Isla Formentera, nº5
+34 96 583 28 30

Casa Cantares

Carrer Benidorm, 2
+34 96 636 53 30

Óscar

Partida Maryvilla
+34 96 583 20 16

A disfrutarlo y bon profit.

Cheli

OpenERP, módulo «Purchase Quotation from Sales Quotation»

Antes de explicar qué hace este módulo y porqué lo hemos necesitado os tengo que explicar el problema que intenta resolver y concretamente el problema que nosotros teníamos.

Mi último proyecto es una empresa subsidiaria de otra y realmente lo que hace es vender en Europa el producto. Por tanto necesitaba que cada vez que se realizara un pedido de venta se generara un pedido de compra a la empresa raiz. Esto en OpenERP es sencillo, simplemente debes parametrizar el producto de forma correcta y si además utilizas el módulo mrp_jit entonces ese pedido de compras se genera automáticamente. Entonces ¿cuál es el problema?, pues que en realidad lo que hace OpenERP es generar necesidades de material por producto, según la parametrización le podemos indicar que el modo de abastecimiento es compra y por tanto genera el pedido, pero lo que hará es generar un pedido por cada necesidad de material y consecuentemente si nuestro pedido tenía 20 lineas con 20 productos diferentes entonces generará 20 necesidades de material y sus 20 pedidos diferentes, uno por cada producto.  Esto es un problema importante, ya que luego hay que  fusionar los pedidos y es un follón.

 

Me puse a buscar módulos que solucionaran el problema, que fueran capaces de generar un único pedido de compra por cada pedido de venta, pero todos añadían funcionalidad como diferentes esquemas de abastecimiento pero siempre basándose en la idea que se debe generar necesidades de material y estas a su vez dispararán la generación de pedidos de compra, por lo que no solucionábamos el problema. Entonces encontré un módulo que hacía justo lo que necesitaba, el módulo en cuestión se llama «pq_from_so» aunque en la descripción aparece como «Purchase Quotation from Sales Quotation«. Este módulo añade un botón en el presupuesto de venta para que puedas generar un presupuesto de compra con las mismas lineas.

 

Cuando creía que lo tenía todo solucionado apareció un problema, este módulo no tiene en cuenta los impuestos de los productos para generar las lineas de pedido de compra. Esto no sería un problema en sí si no fuera porque esos impuestos luego se arrastran a la factura. Otro problema es que necesitábamos que tuviera en cuenta los impuestos según la posición fiscal del proveedor, así que me puse manos a la obra y generé el parche para corregirlo.

 

Aquí os dejo el parche.

 

diff

 

Para aplicarlo previamente deberéis tener instalado el módulo. La forma de aplicarlo es tan sencilla como copiarlo al directorio donde habéis instalado el módulo, típicamente el directorio addons, y ejecutar

 

patch -p0 < pq_from_so.diff

 

en dicho directorio.

 

Actualización 29-08-2012:

Se ha corregido un problema cuando no hay producto en la línea o el producto no tiene proveedor. Cuando esto suceda ya no se producirá el error pero la línea tampoco se añadirá al pedido de compra.

 

Cheli

 

Pegatinas NFC

NFC es una tecnología de comunicación inalámbrica de corto alcance que se ha popularizado mucho en los teléfonos móviles. Se promocionó como la tecnología que nos iba a permitir pagar utilizando el móvil, pero personalmente yo no tengo demasiado interés en utilizarla para esto. Escuchando Byte podcast me entero de una utilidad práctica bastante interesante, resulta que hay unas pegatinas programables que nos podrían permitir activar o desactivar acciones del móvil con tan solo ponerlo en contacto con las mismas.

 

Pongamos un ejemplo, imaginad que todos los días vamos en coche al trabajo y para ello activamos el GPS del móvil y marcamos la ruta. Podriamos programar una pegatina y ponerla en el móvil para que al subir al coche y acercar el teléfono se activara todo automáticamente, sin tener que reprogramarlo cada día.

 

La ventaja de estas pegatinas es que son muy útiles, reutilizables y baratas, por lo que escuché un juego de 5 salía por unos $15.

 

No tengo teléfono con NFC, pero si algún día me agencio uno lo probaré sin dudarlo.

 

Cheli

Me picó un mosquito

Curiosidades de la vida. Esta mañana había quedado con un amigo para ayudarle con un papeleo con SUMA, y volviendo a casa he visto un cartel en el que se anunciaba que justamente hoy había donación de sangre en el Punt Jove. Hacía años que no donaba sangre y hoy más que nunca me apetecía hacerlo. Estaba un poco nervioso, pero finalmente me he decidido y he dado el paso.

Al llegar seguía nervioso pero me gusta ayudar a la gente, y cuando he salido estaba muy satisfecho. No ha habido ningún problema, y especialmente estos días necesitaba hacer algo así, no estoy pasando un buen momento.

 

Mi picadura.

 

Cheli

Les gamins de París

Esta noche he ido al teatro Odeón del aula de cultura de Calpe para ver a Les gamins de París. Era un espectáculo de niños de entre 8 y 20 años que venían de París. Me ha gustado mucho, han hecho todo tipo de bailes desde Dirty Dancing a Gladiator, pasando por  Thriller de Michael Jackson o música de Cabaret. El grupo estaba compuesto por una niña muy pequeña de 8 años, que en uno de los bailes ha salido de un baúl en forma de cajita de música, ella era la bailarina de la caja 🙂 . Luego habían un grupo de chicas, como 8, y un sólo chico. El chico era muy atlético y ha hecho algunos saltos y piruetas bastante imporesionantes. Todos ellos eran más mayores, entre 15 y 20.

 

Ha estado muy bien. Aunque la cámara de mi móvil es bastante mala os dejo algunas fotos.

 

Thriller

Cabaret

Cheli

Yoigo, la respuesta más maleducada que he recibido como cliente

Yo y algunos familiares somos clientes de Yoigo, como tales algunos de nosotros hemos recibido o bien un sms indicándonos que nos iban a cambiar las CCGG o directamente hemos recibido junto con la nueva factura las CCGG.

 

Os preguntaréis ¿que cojones demonios son las CCGG?, como todo en estos tiempos está premeditado, mejor desinformar y que no te preocupes en averiguar que son las CCGG por si acaso. Las CCGG, son las condiciones generales de contrato de Yoigo, y resulta que a partir del 10 de Julio cambian. Como no han indicado en ningún sitio en que cambian (insisto para mantenernos desinformados por si acaso) sinó que se han limitado a subir las nuevas (una opción es copiar el texto de cada una de ellas y intentar sacar un diff pero es tarea de chinos, un archivo está en texto en web desde la página y el otro lo han colgado en un pdf), es casi imposible averiguarlo sin invertir un tiempo que la gente normal, entre ellos mi familia y yo, no queremos invertir.

 

A todas luces y a no ser que alguien me aclare este tema pero para mi parece que todo está milimétricamente estudiado y lo han hecho con premeditación y alevosía. Después de buscar en internet y escuchar comentarios de todo tipo en foros de gente que había llamado a Yoigo me he decidido a enviar una consulta desde «Mi Yoigo». La pregunta era muy concisa.

 

A partir del 10 de Julio vais a cambiar las condiciones generales del contrato, tengo contrato y quiero saber en el caso de no estar de acuerdo con las nuevas condiciones si podré darme de baja sin penalización.

 

Respuesta.

 

Pues NO.
Tienes una penalizacion de 71 Euros y se te cobraria el dia 4 de Julio. Gracias

 

Esta respuesta es literal, a lo que yo he contestado.

 

        ¿Me pudes dar una explicación?. Tú contestación me parece muy poco
apropiada, no soy tu amigo o vecino para que me contestes con un «Pues NO»,
pero bueno es una apreciación. Nos habéis mandado un sms indicando que al
haber un cambio en las CCGG (otra apreciación, no tenemos porqué saber que
CCGG significa condiciones generales del contrato) no se nos aplicaría ningún
tipo de penalización, yo he recibido las nuevas condiciones generales y por
eso quería confirmarlo.

        Desde luego por vuestras formas (CCGG sin especificar qué es, para mi es una
forma de desinformar) y poca educación habéis perdido toda mi confianza.

        Por favor, indícame exactamente qué puntos del contrato cambian y en qué
sentido.

        Un saludo

 

A ver que me contestan, pero desde luego mi idea es cambiarme a otro operador y animar a mis conocidos a hacerlo también.

 

Cheli

 

Más pruebas de la invasión rusa

Hace unas semanas entré a comprar al supermercado Solymar, en la entrada justo donde dejan los periódicos gratuitos para que la gente los coja había unos papelitos que me llamaron enseguida la atención. El motivo era que estaban escritos en ruso y obviamente no sabía lo que ponía pero cogí uno.

 

Asociación de eslavos

Hoy por fin me he puesto a traducirlo y para ello primero tenía que transcribirlo al ordenador para luego pasárselo a google translator. Ha sido divertido porque con lo poco que conozco el cirílico era capaz de adivinar algunas palabras. Por ejemplo, es fácil adivinar que Кальпе es Calpe o que ассоциация es asociación. El restultado de la traducción es el siguiente.

Asociación de eslavos

Nos complace informarle que en la ciudad  de  Calpe comenzó su trabajo la  Asociación de eslavos. Los objetivos principales son nuestra cultura en nuestra región, la prestación de asistencia a nuestros compatriotas en el tratamiento de los problemas sociales urgentes. el empleo, la inmigración, la búsqueda y selección de personal, etc
Una parte importante de nuestras actividades será el estímulo y apoyo del arte popular mediante la organización de diversas actividades, grupos de aficionados, organización de exposiciones – ventas de los productos fabricados por los artesanos.

Estamos abiertos a todos y bienvenidos a nuestro deseo de unirse a la Asociación de los eslavos.
Esperamos con interés trabajar estrechamente y estamos dispuestos a estudiar cualquier sugerencia.

Cómo véis ya hay tantos eslavos (entre ellos muchísimos rusos) que hasta crean una asociación para reunirse y ayudarse entre ellos.

¡Bienvenidos sean!

Cheli

 

Diferencias técnicas entre OpenERP y Openbravo 2 (MVC)

Ya hablamos anteriormente sobre las diferencias en arquitectura entre Openbravo ERP y OpenERP. Hoy vamos a hablar de sus  soluciones en cuanto al patrón MVC (Modelo, vista y controlador).

 

El MVC de Openbravo podría resumirse en el siguiente esquema.

 

MVC de Openbravo ERP

 

En el modelo tenemos por un lado la base de datos a la que podremos acceder por sqlc. Sqlc es una herramienta que nos genera clases java en base a una definición en xml de sentencias sql, de este modo podemos tener una clase en la que cada método nos permitirá ejecutar una sentencia sql diferente. Esta es la herramienta de acceso a datos y persistencia utilizada historicamente en Openbravo. A partir de la versión 2.50 se añadió una capa DAL (Data Access Layer) implementada con Hibernate.

Respecto al controlador, esta es quizá la parte más oscura de Openbravo ya que la lógica de negocio se reparte entre código Java y código Pl/sql en base de datos lo que complica bastante tanto el desarrollo como la independencia del SGBD (Sistema de gestión de bases de datos), esto también provoca que la base de datos se vuelva muy lenta.

En cuanto a código Java existe principalmente una clase de la que herada cualquier otro servlet, luego tendremos nuestras propias clases y métodos en java y por último, y ya hablando de código en base de datos, tendremos una serie de triggers, funciones y restricciones.

 

La vista está compusta por código estático en html, css y javascript. Además dipsonemos de una herramienta llamada xmlengine que viene a ser un rellenador de plantillas. Por ejemplo, si tenemos un html con una tabla y queremos rellenar esa tabla con datos xmlengine nos puede ser útil.

 

Si estamos desarrollando una ventana mediante el modelo MDD prácticamente no nos enteraremos de que tecnologías se están utilizando por debajo. En realidad lo que se hace es leer el diccionario y generar código mediante la herramienta WAD, esta internamente genera código para sqlc, DAL, los html, css, javascript, los servlet java, xmlengine, etc. El problema es que hay muchas cosas que no se pueden desarrollar mediante MDD, en esos casos tendremos que picar a mano nosotros todo este código.

 

El MVC de OpenERP es mucho más sencillo.

 

MVC de OpenERP

Unas de las principales diferencias entre OpenERP y Openbravo ERP es que en OpenERP no hay código en base de datos, la base de datos está completamente limpia y eso tiene muchas ventajas. El modelo está compuesto por una base de datos pero lo que nosotros veremos a nivel de desarrollo será únicamente el ORM, de hecho hasta la fecha no he necesita tocar nada de la base de datos, ni siquiera añadir una columna o una restricción. ¿Y como es posible esto?, pues porque cualquier clase en OpenERP deriva de la clase osv.osv y está implementa el ORM. A este puedes indicarle los atributos que necesitas, de que tipo son y él se encargará del mapeo haciendo totalmente transparente el acceso a datos.

La parte del controlador es completamente código python. Por un lado tendremos las clases que dan sustento a nuestras ventanas y si queremos extenderlas por ejemplo añadiendo o sobreescribiendo métodos es muy sencillo, simplemente hay que utilizar herencia. Además nadie nos impide crearnos nuestras propias clases para hacer lo que se nos ocurra.

En cuanto a la vista esta se define en xml. Hay que recordar que en la arquitectura de OpenERP teníamos un servidor al que nos conectábamos por xml-rcp/net-rpc, esto quiere decir que el servidor le envía los datos al cliente en xml y este será el encargado de construir la interfaz en base a esos datos. Por tanto lo único que tenemos que hacer es definir esos xml que representan a la interfaz, muy sencillo todo.

Como cualquier aplicación software tanto Openbravo ERP como OpenERP tienen sus ventajas e inconvenientes, las dos plataformas de desarrollo son muy potentes pero desde mi punto de vista OpenERP tiene una arquitectura mucho mejor definida.

Nota:

Estoy ofreciendo unos mini cursos de desarrollo en OpenERP por 200€.

 

Cheli