|
- # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-
- from odoo import models, fields, api
- import math
-
-
- class ReportVoucher(models.AbstractModel):
- _name = 'report.finance.report_voucher_view'
- _description = '会计凭证打印'
-
- def _rmb_upper(self, value):
- return self.env['res.currency'].rmb_upper(value)
-
- def _rmb_format(self, value):
- """
- 将数值按位数分开
- """
- if abs(value) < 0.01:
- # 值为0的不输出,即返回12个空格
- return ['' for i in range(12)]
- # 先将数字转为字符,去掉小数点,然后和12个空格拼成列表,取最后12个元素返回
- return (['' for i in range(12)] + list(('%0.2f' % value).replace('.', '')))[-12:]
-
- def _paginate(self, items, max_per_page=5):
- """
- 分页函数
- items 为要分页的条目们
- max_per_page 设定每页条数
- 返回:页数
- """
- count = len(items)
- return int(math.ceil(float(count) / max_per_page))
-
- @api.model
- def _get_report_values(self, docids, data=None):
- docs = self.env['voucher'].browse(docids)
- return {
- 'doc_ids': docs.ids,
- 'doc_model': 'voucher',
- 'data': data,
- 'docs': docs,
- 'rmb_upper': self._rmb_upper,
- 'rmb_format': self._rmb_format,
- 'paginate': self._paginate,
- }
-
|