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.

Tu marca aqui mismo

Llega a miles de personas.

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).