zoukankan      html  css  js  c++  java
  • odoo中Python实现小写金额转换为大写金额

    自动将小写的金额数值转换为大写,方便记录

    class project_parm(models.Model):

    def IIf(self, b, s1, s2):
    if b:
    return s1
    else:
    return s2
    def num2chn(self,nin=None):
    cs =('零','壹','贰','叁','肆','伍','陆','柒','捌','玖','◇','分','角','圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万')
    st = ''
    st1=''
    s = '%0.2f' % (nin)
    sln =len(s)
    if sln >15:
    return None
    fg = (nin<1)
    for i in range(0, sln-3):
    ns = ord(s[sln-i-4]) - ord('0')
    st= self.IIf((ns==0)and(fg or (i==8)or(i==4)or(i==0)), '', cs[ns]) + self.IIf((ns==0)and((i<>8)and(i<>4)and(i<>0)or fg and(i==0)),'', cs[i+13])+ st
    fg = (ns==0)
    fg = False
    for i in [1,2]:
    ns = ord(s[sln-i]) - ord('0')
    st1 = self.IIf((ns==0)and((i==1)or(i==2)and(fg or (nin<1))), '', cs[ns])+ self.IIf((ns>0), cs[i+10], self.IIf((i==2) or fg, '', '整'))+ st1
    fg = (ns==0)
    st.replace('亿万','万')
    return self.IIf( nin==0, '零', st + st1)

    amount_in_figures = fields.Float(string='项目金额', digits=(16, 2), required=True)
    amount_in_words = fields.Char(string='大写金额', readonly=True)
    @api.model
    def create(self, vals):
    vals['amount_in_words'] = self.num2chn(vals['amount_in_figures'])
    return super(project_parm, self).create(vals)
  • 相关阅读:
    字符集WideCharToMultiByte
    [HDF]hdf-4.2.6类库的使用
    [GDAL]读取HDF格式的calipso数据
    C#读写BitMap及颜色相乘
    [Slimdx]顶点和索引缓冲,绘制了2个分离的三角形
    [GDAL]写入shp
    几个环境学概念
    MIConvexHull
    几个力学概念
    [转载]如何破解Excel VBA密码
  • 原文地址:https://www.cnblogs.com/zcy1103/p/8295959.html
Copyright © 2011-2022 走看看