Programacion Interactiva

Descubre una Nueva y Poderosa Herramienta.

FrameWork de Nueva Generacion

Acceso a tu Informacion desde cualquier Dispositivo con Navegador.

Enfoque en el Backend

Frontend de forma facil con Odoo y XML.

Creacion de Verticales

Creacion de nuevas Verticales Conquistando nuevos Mercados.

Asesoria Especializada

Consultoria desde $15 USD por Hora.

Publicidad

lunes, 22 de febrero de 2016

Insertar Registros por Query SQL y retornar el ID (Odoo y OpenERP)

Insertar Registro Directamente en Base de Datos y Retornar el ID




     En ocasiones es necesario optimizar un poco nuestro código en base a Querys directos a base de datos, muchas veces insertamos registros, pero es difícil conocer el id que acabamos de insertar, un error muy común con la programación es consultar el ultimo ID de la tabla, esto puede darnos la solución cuando solo trabajamos nosotros en la Base de Datos, pero en un entorno real, con concurrencia a la base de datos, el ultimó ID seria muy variable, para esto podemos apoyarnos de PostgreSQL y el comando RETURNING, este comando nos retorna cualquier valor, en este caso la columna serial ID, la estructura es muy simple:


self.env.cr.execute(""" INSERT INTO res_partner (name,customer) VALUES ('PonceSoft', True) RETURNING id; """)

my_id=self.env.cr.fetchall()[0][0]

La variable my_id es el ID que acabamos de insertar en la Base de Datos.



jueves, 4 de febrero de 2016

Operaciones de Fecha con Jasper Reports

Sumar o Restar Horas, Días, Segundos en Jasper Reports



    Algo que me genera muchos problemas con Reportes en Odoo es la Zona Horaria, debido a que en base de datos encontramos que se encuentra en UTC (Zona Horaria Central) y al generar una consulta podemos notar que el día puede estar incorrecto o la Hora, para corregir esto en nuestros reportes sin tener que modificar el núcleo del sistema o hacer algo "mas" solo bastaría con hacer la Operación correspondiente en el Reporte, algo importante es que debemos tener en cuenta es el tipo correcto de dato en nuestro campo, en este caso tenerlo definido como java.util.Date, despues bastaria con seleccionar la expresión y realizar la operación de la siguiente manera:

new Date($F{Fecha_pedido-date_order}.getTime() - 06*60*60*1000)

La fecha anterior estaría resultando las 6 horas de acuerdo a mi zona horaria (GTM-6).