From b95702aa9edd3dab39f46bf261e08bd3ad5bdd87 Mon Sep 17 00:00:00 2001 From: ivan deng Date: Sat, 3 Jul 2021 01:01:20 +0800 Subject: [PATCH] update common --- l10n_cn_standard_latest/models/__init__.py | 1 - .../models/res_currency.py | 44 ------------------- 2 files changed, 45 deletions(-) diff --git a/l10n_cn_standard_latest/models/__init__.py b/l10n_cn_standard_latest/models/__init__.py index ba92bef3..37493efe 100644 --- a/l10n_cn_standard_latest/models/__init__.py +++ b/l10n_cn_standard_latest/models/__init__.py @@ -5,7 +5,6 @@ from . import account_account from . import account_tax_group from . import account_chart_template from . import account_journal -from . import res_currency diff --git a/l10n_cn_standard_latest/models/res_currency.py b/l10n_cn_standard_latest/models/res_currency.py index c20f2009..3d42001e 100644 --- a/l10n_cn_standard_latest/models/res_currency.py +++ b/l10n_cn_standard_latest/models/res_currency.py @@ -4,47 +4,3 @@ from odoo import api, fields, models, exceptions, _ class ResCurrency(models.Model): _inherit = 'res.currency' - - def rmb_upper(self, value): - """ - 人民币大写 - 传入浮点类型的值返回 unicode 字符串 - :param 传入阿拉伯数字 - :return 返回值是对应阿拉伯数字的绝对值的中文数字 - """ - if self.name != 'CNY': - return; - rmbmap = [u"零", u"壹", u"贰", u"叁", u"肆", u"伍", u"陆", u"柒", u"捌", u"玖"] - unit = [u"分", u"角", u"元", u"拾", u"佰", u"仟", u"万", u"拾", u"佰", u"仟", u"亿", - u"拾", u"佰", u"仟", u"万", u"拾", u"佰", u"仟", u"兆"] - # 冲红负数处理 - xflag = 0 - if value < 0: - xflag = value - value = abs(value) - # 先把value 数字进行格式化保留两位小数,转成字符串然后去除小数点 - nums = map(int, list(str('%0.2f' % value).replace('.', ''))) - words = [] - zflag = 0 # 标记连续0次数,以删除万字,或适时插入零字 - start = len(nums) - 3 - for i in range(start, -3, -1): # 使i对应实际位数,负数为角分 - # 大部分情况对应数字不等于零 或者是刚开始循环 - 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]) # 列表此位置的单位 - # 控制‘万/元’ 万和元比较特殊,如2拾万和2拾1万 无论有没有这个1 万字是必须的 - elif 0 == i or (0 == i % 4 and zflag < 3): - # 上面那种情况定义了 2拾1万 的显示 这个是特殊对待的 2拾万(一类)的显示 - words.append(unit[i + 2]) - # 元(控制条件为 0 == i )和万(控制条为(0 == i % 4 and zflag < 3))的情况的处理是一样的 - zflag = 0 - else: - zflag += 1 - if words[-1] != unit[0]: # 结尾非‘分’补整字 最小单位 如果最后一个字符不是最小单位(分)则要加一个整字 - words.append(u"整") - if xflag < 0: # 如果为负数则要在数字前面加上‘负’字 - words.insert(0, u"负") - return ''.join(words)