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 zona horaria. Mostrar todas las entradas
Mostrando las entradas con la etiqueta zona horaria. Mostrar todas las entradas

miƩrcoles, 3 de junio de 2020

Consulta SQL en Odoo implementando nuestra Zona horaria

Consulta SQL en Odoo corrigiendo el error de la zona horaria en el resultado de la consulta de un periodo



     La siguiente Consulta SQL resuelve el error de la Zona Horario Odoo, como sabran la base de datos se encuentra en UTC o zona horaria central por lo cual visualmente dentro del sistema se realiza la conversión a la zona horaria del usuario y se muestra correctamente, pero en base de datos podemos tener una diferencia en campos fecha/hora, por lo cual al realizar una consulta esta puede abarcar un periodo que no es correcto, para ello lo unico que requerimos es dentro de la conulta convertir la columna de fecha/hora a nuestra zona horaria, para este ejemplo utilizare la zona horaria de Mexico UTC-6.

Las librerias que utilizaremos son:


from datetime import timedelta, datetime



La clave esta en convertir la columna fecha/hora a UTC-6

   

        start_period = self.date_start + " 00:00:01"
        start_period_strp = datetime.strptime(start_period, '%Y-%m-%d %H:%M:%S')
        start_period_tz = fields.Datetime.context_timestamp(self, 
        timestamp=start_period_strp)
        end_period = self.date_stop + " 23:59:59"
        end_period_strp = datetime.strptime(end_period, '%Y-%m-%d %H:%M:%S')
        end_period_tz = fields.Datetime.context_timestamp(self, 
        timestamp=end_period_strp)
        get_list_contacts_partner = self.get_parners_list(self.supplier_id)

        product_list = []


        cr.execute("""

            insert into supplier_puchase_detail_record(  supplier_id,

                                                        product_id,

                                                        uom_id,

                                                        qty_total,

                                                        qty_available

                                                        )

            select  %s,

                    stock_move.product_id,

                    stock_move.product_uom,

                    sum(stock_move.product_uom_qty),

                    0.0

            from stock_move

                 join stock_picking

                   on stock_move.picking_id = stock_picking.id

                 join purchase_order_line

                   on purchase_order_line.id = stock_move.purchase_line_id

            where stock_picking.partner_id in %s

            and (stock_picking.date_done at time zone 'UTC-6') between %s and %s

            group by stock_move.product_id, stock_move.product_uom

           

            """, (self.supplier_id.id,
                  tuple(get_list_contacts_partner), 
                  start_period_tz, end_period_tz))

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.