GoodERP
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

48 Zeilen
1.5KB

  1. # Copyright 2016 上海开阖软件有限公司 (http://www.osbzr.com)
  2. # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
  3. from odoo import models, fields, api
  4. import math
  5. class ReportVoucher(models.AbstractModel):
  6. _name = 'report.finance.report_voucher_view'
  7. _description = '会计凭证打印'
  8. def _rmb_upper(self, value):
  9. return self.env['res.currency'].rmb_upper(value)
  10. def _rmb_format(self, value):
  11. """
  12. 将数值按位数分开
  13. """
  14. if abs(value) < 0.01:
  15. # 值为0的不输出,即返回12个空格
  16. return ['' for i in range(12)]
  17. # 先将数字转为字符,去掉小数点,然后和12个空格拼成列表,取最后12个元素返回
  18. return (['' for i in range(12)] + list(('%0.2f' % value).replace('.', '')))[-12:]
  19. def _paginate(self, items, max_per_page=5):
  20. """
  21. 分页函数
  22. items 为要分页的条目们
  23. max_per_page 设定每页条数
  24. 返回:页数
  25. """
  26. count = len(items)
  27. return int(math.ceil(float(count) / max_per_page))
  28. @api.model
  29. def _get_report_values(self, docids, data=None):
  30. docs = self.env['voucher'].browse(docids)
  31. return {
  32. 'doc_ids': docs.ids,
  33. 'doc_model': 'voucher',
  34. 'data': data,
  35. 'docs': docs,
  36. 'rmb_upper': self._rmb_upper,
  37. 'rmb_format': self._rmb_format,
  38. 'paginate': self._paginate,
  39. }
上海开阖软件有限公司 沪ICP备12045867号-1