跳至内容
菜单
此问题已终结
2 回复
6805 查看

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?

形象
丢弃

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

编写者 最佳答案

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.


形象
丢弃
相关帖文 回复 查看 活动
1
11月 21
7278
0
5月 18
3982
0
7月 17
3035
1
10月 16
4793
1
4月 16
3354