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

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

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

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

Openerp中的小数精度问题



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

    &#039;list_price&#039;: fields.float(&#039;Sale Price&#039;, digits_compute=dp.get_precision(&#039;Product Price&#039;), help=&quot;Base price to compute the customer price. Sometimes called the catalog price.&quot;),
    

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

    <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
    

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

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

    <br /><br />另外:用户界面的操作是:设置-数据库-小数精度<br /><br />ps.每一个在群里得到自己问题答案的人,都有义务发相关帖,以帮助更多人。



  • 这里的name叫application,真是贪大啊<br /><br />谢谢分享



  • 谢谢分享



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



  • 设置-会计-凭证簿分录小数精度<br />倒是可以调整,但似乎不影响单价。单价还是两位。<br /><br />求前辈解惑!谢谢。



  • [quote author=xuzan link=topic=11922.msg29115#msg29115 date=1412897574]<br />为什么我的用户界面设置进去没有数据库选项的<br />[/quote]<br /><br />需要打开用户的“技术特性”设置。<br /> https://www.odoo.com/forum/help-1/question/how-to-change-products-cost-decimal-precision-1299