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

Mostrando las entradas con la etiqueta utc. Mostrar todas las entradas
Mostrando las entradas con la etiqueta utc. Mostrar todas las entradas

miƩrcoles, 27 de mayo de 2015

Corregir el Error de la Zona Horario en Odoo (OpenERP)


Corregir el Error de la Zona Horario en Formularios Odoo (OpenERP




    Muchos Tenemos Errores al momento de generar, Facturas, Pedidos de Venta, Compras, etc..., debido a que Odoo maneja el horario EstĆ”ndar y aunque se configura la Zona Horaria Correcta para cada usuario, esta no se ve reflejada.

Si tu no encuentras Solución Para este Error, aquí te presento la Solución:

Primero Tenemos que tener Instaladas las librerias:

  • datetime
  • pytz
  • time

Ahora en Odoo importamos estas librerias:
from datetime import date, datetime, timedelta
import time
import pytz

Ahora un ejemplo, primero tomare la fecha actual que me ofrece odoo y la transformare a la Zona Horaria del Usuario Logeado:
date_now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
start = datetime.strptime(date_now, "%Y-%m-%d %H:%M:%S")
user = self.pool.get('res.users').browse(cr, uid, uid)
tz = pytz.timezone(user.tz) if user.tz else pytz.utc
start = pytz.utc.localize(start).astimezone(tz)     
tz_date = start.strftime("%Y-%m-%d %H:%M:%S")
### tz_date es la fecha correcta con la zona hroaria
print "########################## DATE FINAL TZ >>> ", tz_date

Si necesitƔramos corregir la fecha y hora de un registro bastaria con hacerlo de la siguiente forma:

for rec in self.browse(cr, uid, ids, context):
    field_date = rec.date ## Campo Fecha del Formulario
    start = datetime.strptime(field_date, "%Y-%m-%d %H:%M:%S")
    user = self.pool.get('res.users').browse(cr, uid, uid)
    tz = pytz.timezone(user.tz) if user.tz else pytz.utc
    start = pytz.utc.localize(start).astimezone(tz)     
    tz_date = start.strftime("%Y-%m-%d %H:%M:%S")
    ### tz_date es la fecha correcta con la zona hroaria
    print "########################## DATE FINAL TZ >>> ", tz_date

Como vimos en el ejemplo anterior, primero obtenemos el valor de campo fecha/fecha_hora, despuƩs solo hacemos unas conversiones para pasarlo a la librerƭa pytz.


Espero que les sea de ayuda.



viernes, 31 de enero de 2014

Corregir Error Time Zone en Odoo (OpenERP 8.0)

Corregir el Error de la Zona Horario en Odoo (OpenERP 8.0)


    Se que muchos habrĆ”n notado que al crear registros despuĆ©s de las 6:00 PM los campos de Fecha/Fecha y Hora suelen cambiar para el siguiente dĆ­a, esto es debido a que el ORM de OPEN utiliza el tipo de fecha y hora llamado 'UTC' en base de Datos, para corregir este error tenemos que hacer lo siguiente:

Tenemos que corregir el Archivo fields.py

Este archivo se localiza en la ruta server/openerp/osv/fields.py

Dentro del Archivo buscar 'UTC' y reemplazarlo por 'SCT'


Nota: 

Esto se Repite con todas las coincidencias que encuentre en el editor en ese archivo fields.py

Adicional a esto es muy importante indicar nuestra zona horaria en la variable de este archivo:

utc = pytz.timezone('UTC')

Aqui debemos indicar la zona horaria de nuestra preferencia, por ejemplo:


utc = pytz.timezone('America/Mexico_City')

 Una vez hecho esto guardamos, reiniciamos el server de Odoo (OPENERP 8.0) Ć© intentamos nuevamente crear los Registros y vamos a poder observar que ahora se insertan correctamente los campos de Fecha y Hora.