上传的图像用于项目: 'CST技术支持'
  1. CST技术支持
  2. SLAL2-2087

ISS占位符增加取最新批次的【社平工资】的值

XMLWord打印

    • Icon: Change Change
    • 解决结果: 完成
    • Icon: Medium Medium
    • 202103
    • 202103
    • I-ISS-Y2019140
    • PRO
    • ISSUAT
    • 基础通用功能
    • 隐藏

      代码:

      spgz='{:.2f}'.format(env['hr.payroll.function'].get_emp_sumvalue_by_meta(employee.id, 1, ['spgz']))

      cdict =

      {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'}
      1. result = spgz

      xdict =

      {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'}

      # 数字标识符
      gdict =

      {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'}

      cdata = str(spgz).split('.')

      cki = cdata[0]
      ckj = cdata[1]

      chk = u''

      g = len(cki) % 4
      cski = []
      lx = len(cki) - 1
      if g > 0:
      cski.append(cki[0:g])
      k = g
      while k <= lx:
      cski.append(cki[k:k + 4])
      k += 4
      ikl = len(cski) # 获取拆分后的List长度

      1. 大写合并
        for z in range(ikl):

      lenki = len(cski[z])
      lk = lenki
      cschange_cski = u''
      for i in range(lenki):
      if int(cski[z][i]) == 0:
      if i < lenki - 1:
      if int(cski[z][i + 1]) != 0:
      cschange_cski = cschange_cski + gdict[int(cski[z][i])]
      else:
      cschange_cski = cschange_cski + gdict[int(cski[z][i])] + cdict[lk]
      lk -= 1

      if cschange_cski == '': # 有可能一个字符串全是0的情况
      chk = chk + cschange_cski # 此时不需要将数字标识符引入
      else:
      chk = chk + cschange_cski + xdict[ikl - z] # 合并:前字符串大写+当前字符串大写+标识符

      1. 处理小数部分
        lenkj = len(ckj)
        if lenkj == 1: # 若小数只有1位
        if int(ckj[0]) == 0:
        chk = chk + u'整'
        else:
        chk = chk + gdict[int(ckj[0])] + u'角整'
        else: # 若小数有两位的四种情况
        if int(ckj[0]) == 0 and int(ckj[1]) != 0:
        chk = chk + u'零' + gdict[int(ckj[1])] + u'分'
        elif int(ckj[0]) == 0 and int(ckj[1]) == 0:
        chk = chk + u'整'
        elif int(ckj[0]) != 0 and int(ckj[1]) != 0:
        chk = chk + gdict[int(ckj[0])] + u'角' + gdict[int(ckj[1])] + u'分'
        else:
        chk = chk + gdict[int(ckj[0])] + u'角整'
        result = chk
      显示
      代码: spgz='{:.2f}'.format(env ['hr.payroll.function'] .get_emp_sumvalue_by_meta(employee.id, 1, ['spgz'] )) cdict = {1: u'', 2: u'拾', 3: u'佰', 4: u'仟'} result = spgz xdict = {1: u'元', 2: u'万', 3: u'亿', 4: u'兆'} # 数字标识符 gdict = {0: u'零', 1: u'壹', 2: u'贰', 3: u'叁', 4: u'肆', 5: u'伍', 6: u'陆', 7: u'柒', 8: u'捌', 9: u'玖'} cdata = str(spgz).split('.') cki = cdata [0] ckj = cdata [1] chk = u'' g = len(cki) % 4 cski = [] lx = len(cki) - 1 if g > 0: cski.append(cki [0:g] ) k = g while k <= lx: cski.append(cki [k:k + 4] ) k += 4 ikl = len(cski) # 获取拆分后的List长度 大写合并 for z in range(ikl): lenki = len(cski [z] ) lk = lenki cschange_cski = u'' for i in range(lenki): if int(cski [z] [i] ) == 0: if i < lenki - 1: if int(cski [z] [i + 1] ) != 0: cschange_cski = cschange_cski + gdict[int(cski [z] [i] )] else: cschange_cski = cschange_cski + gdict[int(cski [z] [i] )] + cdict [lk] lk -= 1 if cschange_cski == '': # 有可能一个字符串全是0的情况 chk = chk + cschange_cski # 此时不需要将数字标识符引入 else: chk = chk + cschange_cski + xdict [ikl - z] # 合并:前字符串大写+当前字符串大写+标识符 处理小数部分 lenkj = len(ckj) if lenkj == 1: # 若小数只有1位 if int(ckj [0] ) == 0: chk = chk + u'整' else: chk = chk + gdict[int(ckj [0] )] + u'角整' else: # 若小数有两位的四种情况 if int(ckj [0] ) == 0 and int(ckj [1] ) != 0: chk = chk + u'零' + gdict[int(ckj [1] )] + u'分' elif int(ckj [0] ) == 0 and int(ckj [1] ) == 0: chk = chk + u'整' elif int(ckj [0] ) != 0 and int(ckj [1] ) != 0: chk = chk + gdict[int(ckj [0] )] + u'角' + gdict[int(ckj [1] )] + u'分' else: chk = chk + gdict[int(ckj [0] )] + u'角整' result = chk

      因为测试站,只在1个薪资组上放了这个占位符的逻辑,但是正式站是都会增加的(除了社保组)

      因为员工证明需要出社平工资的值,所以希望能够在占位符那增加:取最新批次的员工的社平工资的值(注意待审批状态的批次不要取,因为值可能有问题)

      大小写显示,举例:税前人民币 (大写)陆仟柒佰捌拾玖元叁角伍分,(小写) 6,789.35 元

      https://issuat.peoplus.cn/
      system
      Rs660uaT

            grant.yang 杨光磊
            qiany 钱颖
            表决:
            0 为这个问题表决

              创建日期:
              已更新:
              已解决: