跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. Openerp中的小数精度问题

Openerp中的小数精度问题

已定时 已固定 已锁定 已移动 Odoo 新手求助
7 帖子 5 发布者 7.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 1 离线
    1 离线
    1348647581qq.com
    写于 最后由 编辑
    #1

        我需要变单价的精度。我到product.product表中偷看标价的定义:

    'list_price': fields.float('Sale Price', digits_compute=dp.get_precision('Product Price'), help="Base price to compute the customer price. Sometimes called the catalog price."),
    


    对get_Precision的参数:Product Price莫名其妙。于是在开发群中得到joshua,shelly,ccdos,冰之星辰,东莞周等前辈的建议,发现oe单独开了一个模块来控制小数的精度:decimal_precision模块。在该模块中的py文件中,我找到了函数get_precision的定义:

    <br />&nbsp; &nbsp; def precision_get(self, cr, uid, application):<br />&nbsp; &nbsp; &nbsp; &nbsp; cr.execute(&#039;select digits from decimal_precision where name=%s&#039;, (application,))<br />&nbsp; &nbsp; &nbsp; &nbsp; res = cr.fetchone()<br />&nbsp; &nbsp; &nbsp; &nbsp; return res[0] if res else 2<br /><br />def get_precision(application):<br />&nbsp; &nbsp; def change_digit(cr):<br />&nbsp; &nbsp; &nbsp; &nbsp; res = pooler.get_pool(cr.dbname).get(&#039;decimal.precision&#039;).precision_get(cr, SUPERUSER_ID, application)<br />&nbsp; &nbsp; &nbsp; &nbsp; return (16, res)<br />&nbsp; &nbsp; return change_digit
    


    也明白了为什么默认精度是2位:(有源码就是幸福)

    _defaults = {<br />&nbsp; &nbsp; &nbsp; &nbsp; &#039;digits&#039;: 2,<br />&nbsp; &nbsp; }
    



    另外:用户界面的操作是:设置-数据库-小数精度

    ps.每一个在群里得到自己问题答案的人,都有义务发相关帖,以帮助更多人。

    1 条回复 最后回复
    0
    • wjfonhandW 离线
      wjfonhandW 离线
      wjfonhand
      写于 最后由 编辑
      #2

      这里的name叫application,真是贪大啊

      谢谢分享

      GoodERP -- Odoo China fork

      1 条回复 最后回复
      0
      • K 离线
        K 离线
        klm2242
        写于 最后由 编辑
        #3

        谢谢分享

        1 条回复 最后回复
        0
        • X 离线
          X 离线
          xuzan
          写于 最后由 编辑
          #4

          为什么我的用户界面设置进去没有数据库选项的

          1 条回复 最后回复
          0
          • Z 离线
            Z 离线
            zzsu
            写于 最后由 编辑
            #5

            设置-会计-凭证簿分录小数精度
            倒是可以调整,但似乎不影响单价。单价还是两位。

            求前辈解惑!谢谢。

            1 条回复 最后回复
            0
            • Z 离线
              Z 离线
              zzsu
              写于 最后由 编辑
              #6

              [quote author=xuzan link=topic=11922.msg29115#msg29115 date=1412897574]
              为什么我的用户界面设置进去没有数据库选项的
              [/quote]

              需要打开用户的“技术特性”设置。
              https://www.odoo.com/forum/help-1/question/how-to-change-products-cost-decimal-precision-1299

              1 条回复 最后回复
              0

              • 登录

              • 没有帐号? 注册

              • 登录或注册以进行搜索。
              • 第一个帖子
                最后一个帖子
              0
              • 版块
              • 标签
              • 热门
              • 用户
              • 群组