main.py
5.02 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
from odoo import http
from odoo.addons.portal.controllers.portal import (
pager as portal_pager)
from odoo.addons.website.controllers.main import Website
from odoo.http import request
STATE = ['draft', 'confirmed', 'canceled']
_logger = logging.getLogger(__name__)
class IdgBoardWebsite(Website):
_items_per_page = 20
# def _prepare_home_portal_values(self, counters):
# values = super()._prepare_home_portal_values(counters)
# if 'bphtb_count' in counters:
# values['bphtb_count'] = request.env['bphtb.sales'].search_count([
# ('state', 'in', STATE)
# ]) if request.env['bphtb.sales'].check_access_rights(
# 'read', raise_exception=False) else 0
# return values
#
# def _bphtb_sales_get_page_view_values(self, sales, access_token, **kwargs):
# def resize_to_48(b64source):
# if not b64source:
# b64source = base64.b64encode(Binary.placeholder())
# return image_process(b64source, size=(48, 48))
#
# values = {
# 'sales': sales,
# 'resize_to_48': resize_to_48,
# }
# return self._get_page_view_values(sales, access_token, values,
# 'my_bphtbs_history', False, **kwargs)
def _prepare_portal_layout_values(self):
"""Values for /my/* templates rendering.
Does not include the record counts.
"""
# get customer sales rep
sales_user = False
partner = request.env.user.partner_id
if partner.user_id and not partner.user_id._is_public():
sales_user = partner.user_id
return {
'sales_user': sales_user,
'page_name': 'home',
}
def _prepare_home_portal_values(self, counters):
"""Values for /my & /my/home routes template rendering.
Includes the record count for the displayed badges.
where 'coutners' is the list of the displayed badges
and so the list to compute.
"""
return {}
@http.route(['/idg/board', '/idg/board/page/<int:page>'], type='http', auth="public")
def index(self, page=1, filterby=None, **kw):
# , date_begin=None, date_end=None, sortby=None, filterby=None, **kw):
values = self._prepare_portal_layout_values()
domain = [('level', '=', 6)]
searchbar_sortings = {}
IdgTaxSum = request.env['idg.region.tax.potency.sum'].sudo()
tax_count = IdgTaxSum.search_count(domain)
if not filterby:
filterby = 'all'
pager = portal_pager(
url="/idg/board",
url_args={
'filterby': filterby
},
total=tax_count,
page=page,
step=self._items_per_page
)
province_domain = ['&', ('level', '=', 6),
('district_id', '=', None)]
# search(
# province_domain,
# limit=self._items_per_page,
# offset=pager['offset']
# )
sql = """
SELECT s.account_group_id, ag.name, ag.code_prefix_start as code,
sum(s.amount) amount, sum(s.qty) as qty
FROM idg_region_tax_potency_sum s
JOIN account_group ag ON s.account_group_id=ag.id
WHERE s.level=6 AND s.district_id is Null and year=2021
GROUP BY s.account_group_id, ag.name, ag.code_prefix_start
"""
request.env.cr.execute(sql)
province_taxs = request.env.cr.dictfetchall()
# print(province_taxs )
# province_taxs = IdgTaxSum.read_group(domain=province_domain,
# fields=['account_group_id', 'amount', 'qty'],
# groupby=['account_group_id'])
#
# district_domain = ['&', ('level', '=', 6),
# ('district_id', '!=', None)]
# district_taxs = IdgTaxSum.search(
# district_domain,
# limit=self._items_per_page,
# offset=pager['offset']
# )
sql = """
SELECT s.account_group_id, ag.name, ag.code_prefix_start as code,
sum(s.amount) amount, sum(s.qty) as qty
FROM idg_region_tax_potency_sum s
JOIN account_group ag ON s.account_group_id=ag.id
WHERE s.level=6 AND s.district_id is not Null and year=2021
GROUP BY s.account_group_id, ag.name, ag.code_prefix_start
"""
request.env.cr.execute(sql)
district_taxs = request.env.cr.dictfetchall()
values.update({
'province_taxs': province_taxs,
'district_taxs': district_taxs,
'page_name': 'idgtax',
'default_url': '/idg/board',
})
return request.render("idg_board.portal_idg_boards", values)