@http.route('/sc_ding/search_finance', type='http', auth="none", csrf=False)
def sc_ding_search_finance(self, model='res.company', id=None, **kw):
cr, uid, context, pool = request.cr, odoo.SUPERUSER_ID, request.context, request.env
values = {}
year = datetime.now().year
name = [] # 名称
in_amount = [] # 分类收入
out_amount = [] # 分分支出
amount = 0.00 # 预留利润
#:::所有分类查询出来进行循环
category = pool['ri.account.category'].sudo().search([('parent_id', '=', False)])
for line in category:
name.append(line.name)
#计算出分类应收应付
domains = []
if kw.get('type') == 'month':
domain = [('month', '=', int(kw.get('month')))]
domains.append(domain)
if kw.get('type') == 'week':
domain = [('week', '=', int(kw.get('week')))]
domains.append(domain)
if kw.get('type') == 'year':
domain = [('year', '=', int(kw.get('year')))]
domains.append(domain)
if kw.get('type') == 'quarter':
domain = [('date', '>=', kw.get('data_start')), ('date', '<=', kw.get('data_end'))]
domains.append(domain)
domain = [('category_id', 'in', line.child_id._ids), ('state', '=', '已审核')]
domains.append(domain)
domain = expression.AND(domains)
order_groups = pool['ri.account.line'].sudo().read_group(domain=domain, fields=['amount'],
groupby=['type'], orderby="parent_id desc")
category_in_amount = 0.00
category_out_amount =0.00
for group in order_groups:
if group['type'] == 'in':
category_in_amount = category_in_amount + group['amount']
amount += group['amount']
elif group['type'] == 'out':
category_out_amount = category_out_amount + group['amount']
amount = amount - group['amount']
in_amount.append(category_in_amount/10000)
out_amount.append(-category_out_amount/10000)
values['name'] = name
values['in_amount'] = in_amount
values['out_amount'] = out_amount
values['amount'] = amount/10000
return json.dumps(values)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交