Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Openerp中的小数精度问题



  •     我需要变单价的精度。我到product.product表中偷看标价的定义:
    [code]'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."),[/code]
    对get_Precision的参数:Product Price莫名其妙。于是在开发群中得到joshua,shelly,ccdos,冰之星辰,东莞周等前辈的建议,发现oe单独开了一个模块来控制小数的精度:decimal_precision模块。在该模块中的py文件中,我找到了函数get_precision的定义:
    [code]
        def precision_get(self, cr, uid, application):
            cr.execute('select digits from decimal_precision where name=%s', (application,))
            res = cr.fetchone()
            return res[0] if res else 2

    def get_precision(application):
        def change_digit(cr):
            res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, application)
            return (16, res)
        return change_digit[/code]
    也明白了为什么默认精度是2位:(有源码就是幸福)
    [code]_defaults = {
            'digits': 2,
        }[/code]

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

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



  •     我需要变单价的精度。我到product.product表中偷看标价的定义:
    [code]'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."),[/code]
    对get_Precision的参数:Product Price莫名其妙。于是在开发群中得到joshua,shelly,ccdos,冰之星辰,东莞周等前辈的建议,发现oe单独开了一个模块来控制小数的精度:decimal_precision模块。在该模块中的py文件中,我找到了函数get_precision的定义:
    [code]
        def precision_get(self, cr, uid, application):
            cr.execute('select digits from decimal_precision where name=%s', (application,))
            res = cr.fetchone()
            return res[0] if res else 2

    def get_precision(application):
        def change_digit(cr):
            res = pooler.get_pool(cr.dbname).get('decimal.precision').precision_get(cr, SUPERUSER_ID, application)
            return (16, res)
        return change_digit[/code]
    也明白了为什么默认精度是2位:(有源码就是幸福)
    [code]_defaults = {
            'digits': 2,
        }[/code]

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

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



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

    谢谢分享



  • 谢谢分享



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



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

    求前辈解惑!谢谢。



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

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


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待