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_dateSi 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.
Hola GermĆ”n, me asalta la duda de como utilizar este ejemplo, deberĆa crear un nuevo archivo con llamadas? copiar esto dentro de orm.py? es que no me queda del todo claro.
ResponderBorrarDe antemano muchas gracias