Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
6730 Vistas

My location is at UTC + 8,  when I sell products in POS before 8am KUL time the sale detail report will show them as yesterday records, how to fix this?

Avatar
Descartar

The time zone depend on location of server and time set on server, check that may help you.

Autor Mejor respuesta

This is a serious issue, unfortunately odoo and it's support don't bother much, raised a ticket to them, took me for a ride by incompetent support,  then ask to close the ticket.

Some smart guy from the community suggested the following link and it took me another ride.  But it may help you:-

https://github.com/odoo/odoo/pull/2914  

https://github.com/odoo/odoo/pull/2776

https://github.com/odoo/odoo/pull/2915 


If you really want an easy answer, this was what I changed to make it work, it make look stupid.

Edit  addons/point_of_sale/report/pos_details.py

add 

import datetime

look for the following line

pos_ids = pos_obj.search(self.cr, self.uid, [('date_order','>=',form['date_start'] + ' 00:00:00'),('date_order','<=',form['date_end'] + ' 23:59:59'),('user_id','in',user_ids),('state','in',['done','paid','invoiced']),('company_id','=',company_id)])
 

Change it to 

pos_ids = pos_obj.search(self.cr, self.uid, [('date_order','>=', (datetime.datetime.strptime( (form['date_start'] + ' 00:00:00'), "%Y-%m-%d %H:%M:%S") - datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M:%S") ),('date_order','<=',form['date_end'] + ' 15:59:59'),('user_id','in',user_ids),('state','in',['done','paid','invoiced']),('company_id','=',company_id)])


Take note for the following, since my location is UTC+8 , you need to change it according to you own number.

datetime.timedelta(hours=8)

form['date_end'] + ' 15:59:59' 

God knows how many more I need to change. I just hope it can be fixed it at the core.


Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
nov 21
7181
0
may 18
3928
0
jul 17
2989
1
oct 16
4727
1
abr 16
3317