|
-
-
-
- from odoo import api, fields, models
-
-
- class ResCurrency(models.Model):
- _inherit = 'res.currency'
-
- company_id = fields.Many2one(
- 'res.company',
- string='公司',
- change_default=True,
- default=lambda self: self.env.company)
-
- @api.model
- def rmb_upper(self, value):
- """
- 人民币大写
- 来自:http://topic.csdn.net/u/20091129/20/b778a93d-9f8f-4829-9297-d05b08a23f80.html
- 传入浮点类型的值返回 unicode 字符串
- :param 传入阿拉伯数字
- :return 返回值是对应阿拉伯数字的绝对值的中文数字
- """
- rmbmap = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
- unit = ["分", "角", "元", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿",
- "拾", "佰", "仟", "万", "拾", "佰", "仟", "兆"]
-
- xflag = 0
- if value < 0:
- xflag = value
- value = abs(value)
-
- nums = list(map(int, list(str('%0.2f' % value).replace('.', ''))))
- words = []
- zflag = 0
- start = len(nums) - 3
- for i in range(start, -3, -1):
-
- if 0 != nums[start - i] or len(words) == 0:
- if zflag:
- words.append(rmbmap[0])
- zflag = 0
- words.append(rmbmap[nums[start - i]])
- words.append(unit[i + 2])
-
- elif 0 == i or (0 == i % 4 and zflag < 3):
-
- words.append(unit[i + 2])
-
- zflag = 0
- else:
- zflag += 1
- if words[-1] != unit[0]:
- words.append("整")
- if xflag < 0:
- words.insert(0, "负")
- return ''.join(words)
|