【问题标题】:Pass custom field values from oppertunity to quotation in odoo 10将自定义字段值从机会传递到odoo 10中的报价单
【发布时间】:2017-02-01 07:08:06
【问题描述】:

我在opportunity 中添加了一个自定义字段,在quotation 中添加了相同的字段,我想在opportunity 的自定义字段中添加值,并将该值传递给同一字段中的Quotation

在 odoo 8 中,它是通过覆盖 makeOrder 方法完成的,但现在在 odoo 10 中,我不知道该怎么做。 有人请帮助我。谢谢!

【问题讨论】:

  • 我不明白。所以你创建了一个新字段,你想看看它的价值,是吗?模型之间有什么关系吗?如果是,您应该使用relation field。能解决你的问题吗?
  • 是的,sales.order 中有一个关系字段机会_id,我通过 onchange 完成了它。非常感谢您的建议

标签: openerp odoo-8 odoo-9 odoo-10


【解决方案1】:

当您编写字段定义时,您可以解决它。它将即时更改,如果您将“存储”属性设置为 True,那么它会将其写入数据库,因此这将与您的解决方案等效。如果我知道的话,我的方式会更快,这是正确的方式。更透明的代码管理。

opportunity_id = fields.Many2One('opportunity', string='Opportunity')
x_description = fields.Text(related='opportunity_id.x_description', store=True)

【讨论】:

    【解决方案2】:

    谢谢你,这也是我几周来一直在努力的事情。 我的如下(将“res.company”下设置的价值佣金转移到“sale.order”模型中使用:(我不知道“company_it”是关系字段)

    class YourCompany(models.Model):
        _inherit = "res.company"
    
        company_commission =  fields.Float( default =15.00)
        commission_ids = fields.One2many( 'sale.order', 'company_id', 
            string="Commission_ids")
    
    class SaleOrder(models.Model):
        _inherit = "sale.order"
        company_id = fields.Many2one('res.company', string='company_id', 
              required=True)
        company_commission = 
                    fields.Float(related='company_id.company_commission', 
             string="Comm", store = True)
    

    【讨论】:

      【解决方案3】:

      我找到了这个解决方案,对我来说效果很好。

      @api.onchange('opportunity_id')
          def _get_description(self):
              if self.opportunity_id.id:
                  self.x_description = self.opportunity_id.x_description 
      

      【讨论】:

      • 这不是美容解决方案,我不明白你为什么要这样做。我会尽快写出我的意思来解决你的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多