-
Notifications
You must be signed in to change notification settings - Fork 41
Expand file tree
/
Copy pathmain.py
More file actions
49 lines (43 loc) · 1.53 KB
/
main.py
File metadata and controls
49 lines (43 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Copyright 2018 Rémy Taymans <remytaymans@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from itertools import groupby
from odoo.http import request
from odoo.tools import float_repr
from odoo.addons.portal.controllers.portal import CustomerPortal
class PortalPosOrderAmount(CustomerPortal):
def _prepare_portal_layout_values(self):
values = super(PortalPosOrderAmount, self)._prepare_portal_layout_values()
user = request.env.user
owned_posorder = (
request.env["pos.order"]
.sudo()
.search(
[
(
"partner_id",
"=",
user.partner_id.commercial_partner_id.id,
),
("state", "!=", "cancel"),
]
)
)
values["posorder_amount"] = float_repr(
sum(po.amount_total for po in owned_posorder), 2
)
values["posorder_amount_by_year"] = [
{
"year": year,
"amount": float_repr(
sum(pos_order.amount_total for pos_order in grouped_pos_orders),
2,
),
}
for year, grouped_pos_orders in groupby(
owned_posorder, key=lambda pos_order: pos_order.date_order.year
)
]
values["company_currency"] = (
request.env["res.company"]._company_default_get().currency_id
)
return values