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?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
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.
The time zone depend on location of server and time set on server, check that may help you.