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

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

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

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

[求助]弱弱的问题,一个很小的开发。



  • 我想在仓库产品列表里添加一个行项目subtotal 计算real shtok 和list pirce 的乘积!
    [attach]401[/attach]
    在view里添加了相应的视图!
    在对象product_product添加了price_subtotal
    然后尝试用
    def _amount_line(self, cr, uid, ids, prop, unknow_none,unknow_dict):
    res = {}
    cur_obj=self.pool.get('res.currency')
    for line in self.browse(cr, uid, ids):
    cur = line.order_id.pricelist_id.currency_id
    res[line.id] = cur_obj.round(cr, uid, cur, line.[color=#800080]qty_available[/color] * line.[color=#800080]lst_price[/color] )
    return res

    来取这个数!但是程序报错! 有哪位大侠可以解释下 cur = line.order_id.pricelist_id.currency_id, 我理解是从表order的ID,读出Pricelist_id,然后根据currency_id 读出currency!

    不知道是不是这样的?
    谢谢了!
    还有,我将这些操作放在 model 里product 里对么?因为这个是仓库管理模块的显示!
    [attach]402[/attach][attach]403[/attach]



  • 我想在仓库产品列表里添加一个行项目subtotal 计算real shtok 和list pirce 的乘积!
    [attach]401[/attach]
    在view里添加了相应的视图!
    在对象product_product添加了price_subtotal
    然后尝试用
    def _amount_line(self, cr, uid, ids, prop, unknow_none,unknow_dict):
    res = {}
    cur_obj=self.pool.get('res.currency')
    for line in self.browse(cr, uid, ids):
    cur = line.order_id.pricelist_id.currency_id
    res[line.id] = cur_obj.round(cr, uid, cur, line.[color=#800080]qty_available[/color] * line.[color=#800080]lst_price[/color] )
    return res

    来取这个数!但是程序报错! 有哪位大侠可以解释下 cur = line.order_id.pricelist_id.currency_id, 我理解是从表order的ID,读出Pricelist_id,然后根据currency_id 读出currency!

    不知道是不是这样的?
    谢谢了!
    还有,我将这些操作放在 model 里product 里对么?因为这个是仓库管理模块的显示!
    [attach]402[/attach][attach]403[/attach]



  • cur = line.order_id.pricelist_id.currency_id # 这个是取当前价格表中的货币类型.. 默认情况下应该是CNY

            res[line.id] = cur_obj.round(cr, uid, cur, line.qty_available * line.lst_price )
    

    我觉得 应该写成

            res[line.id]['price_subtotal'] = cur_obj.round(cr, uid, cur, line.qty_available *line.lst_price )
    

    你试一下...


  • 管理员

    你大概是从销售模块中拷贝来的代码。
    既然是product_product类上的方法,怎么会有line.order_id?
    如果是在Product列表中显示金额,就不需要考虑币种的问题,不需要做汇率的换算,直接:
    [code]res[line.id] = line.qty_available * line.standard_price[/code]

    另外,你是否设置了对应的函数字段。请贴出完整的代码。

    建议把它作成一个模块。



  • 谢谢 digtalsatori,
    我想我现在明白了!我现在再重新做一下,试试1!

    [[i] 本帖最后由 lygping 于 2010-3-14 11:17 编辑 [/i]]



  • def _amount_line(self, cr, uid, ids, prop, unknow_none,unknow_dict):
    res = {}
    for line in self.browse(cr, uid, ids):
    res[line.id] = (line.qty_available * line.standard_price)
    return res
    经过楼上的各位大侠的指导,我终于搞定了!
    谢谢啊!


  • 管理员

    其实这个小改进还是挺实用的。
    如果可以的话,请将它做成模块并上传到我们的[url=code.google.com/p/openerp-community-addons/]googlecode[/url] svn库

    请告知你的google account, 我会将你添加到贡献者团队中,谢谢。



  • 抱歉啊,我现在还在初始阶段,
    只是在现有的模块上进行了简单的修改!
    如果上传了,也只是原有的模块
    您是需要我做成单独的模块么?
    我恐怕还不具备那个能力!呵呵


登录后回复
 

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