In some cases, it is necessary to view the records of the day, the filter should be useful in different apps.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
In some cases, it is necessary to view the records of the day (for example the sales of that day). To achieve this, we can create a filter that shows records from that period.
The base filter we will use is as follows:
["&", ("date", ">=", datetime.datetime.combine(context_today(), datetime.time(0, 0, 0))), ("date", "
Explanation of what the filter does:
- "Date" = the field to be filtered
- ">=" = Greater than or equal to
- datetime.datetime.combine(context_today(), datetime.time(0, 0, 0)) = today’s date from 00:00:00
- "Date" = the field to be filtered
- "
- datetime.datetime.combine(context_today(), datetime.time(23, 59, 59)) = today’s date up to 23:59:59
Note: The "date" field should be changed to the field you need to search.
However, this filter will need to be adjusted according to Greenwich Mean Time (GMT), as Odoo considers time starting from 00:00. If we used the filter as shown above, it would not display the correct information worldwide.
First, identify your user's time zone. You can do this by going to Settings > Users & Companies > Users > Select a user > Preferences > Check Time Zone.
Once you have identified the user's time zone, find the GMT offset for that zone. This is necessary to modify the filter accordingly.
In this case, we are in the GMT-6 time zone, which means that a time filter would look like this:
For example, if we filter by date and want to see all records with a date of 08/22/2024 at 00:00:00, Odoo will display records with a date of 08/22/2024 06:00:00 due to our GMT-6 time zone.
To display the correct time in our filter, we need to add (in the case of GMT-6) the 6-hour "delay" we have. The base filter would look like this:
["&", ("date", ">=", datetime.datetime.combine(context_today(), datetime.time(6, 0, 0))), ("date", "
Explanation of what the filter does:
- "Date" = the field to be filtered
- ">=" = Greater than or equal to
- datetime.datetime.combine(context_today(), datetime.time(6, 0, 0)) = today’s date from 06:00:00
- "Date" = the field to be filtered
- "
- datetime.datetime.combine(context_today() + datetime.timedelta(days=1), datetime.time(5, 59, 59)) = today’s date plus one day up to 05:59:59
Note: In the less than or equal part, the + datetime.timedelta(days=1) moves us to the next day. If we need to subtract it, we should use a minus sign (-).
Documentation: datetime: Python
Exercise 1:
We need to view the sales orders generated today. To do this, modify the base filter by changing the name of the date field and adjusting the time to work in the GMT-6 time zone.
Note: Developer mode must be enabled to use the filter.
This filter can be replicated across various models, countries, and time zones. The important part is understanding the logic of how it works so that it can be adapted to your needs.
Exercise 2:
The manager needs to see the information in real time, he would like to enter the system at the end of the day and see in a graphic way how many products they sold today.
Create a new dashboard
Dashboard > Configuration > New
Name your dashboard as POS reports (or as needed), add a line and publish it
Go to the Point of Sale app and enter the orders reports, enter your filter and group by product, now you will see how many products you sold today.
Point of Sale > Reports > Orders
Insert the graphic in a spreadsheet and select the dashboard you want to show the report
It will automatically show you the spreadsheet, you can edit it if you need to. This functionality will let you add more graphics and add text.
Go to the dashboard app and select the “POS reports” board, the graphic will be showing the sales information of today.
Note: You can add as many graphics as you need, depending on the information the manager needs to analyze.
Using this filter allows the customer to quickly gain insight into the company's daily operations. By focusing on records from the current day, users can efficiently track and analyze recent activities, making it easier to stay informed and make timely decisions.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Jul 25
|
355 | ||
|
2
Jul 25
|
424 | ||
Does Odoo manage WebP ?
Solved
|
|
3
Jul 25
|
2985 | |
|
1
Jun 25
|
1304 | ||
|
5
Jun 25
|
16340 |