【问题标题】:Change default value depend on Sales quotation or order odoo更改默认值取决于销售报价或订单 odoo
【发布时间】:2020-11-12 08:08:29
【问题描述】:

我想更改报价单和订单中某些字段的默认值。我的意思是,如果我创建报价单,默认值为一个,如果我创建订单,则默认值为另一个值。我该怎么做?我认为quote和sale order共享sale.order模型。可以吗?

【问题讨论】:

    标签: odoo


    【解决方案1】:

    您可以通过重写此函数来做到这一点:default_get() 或者您可以为声明中的字段设置默认值 default= your_value 希望对您有所帮助。

    【讨论】:

    • 我想知道每个报价单创建和销售订单创建的默认值是不同的。我认为您的答案将获得相同的默认值。
    • 对不起,我不太明白。你能解释一下吗
    【解决方案2】:

    您可以使用用于过滤订单报价的操作上下文值(或者您可以覆盖窗口操作并定义您的操作)。

    例如,如果设置了上下文属性search_default_my_quotation,则当前记录为引用。

    示例:

    def _get_default_value(self):
        if 'search_default_my_quotation' in self.env.context:
            return 'Quotation'
        else:
            return "Order"
    
    note = fields.Text(default=_get_default_value)
    

    【讨论】:

    • 根据上下文设置默认值成功了吗?
    【解决方案3】:

    报价和销售订单因阶段而异,毫无疑问两个模型(表)是相同的。

    但对于用户友好的架构,他们需要将它们与阶段分开。

    表示如果您有处于草稿阶段的报价,odoo 说它是报价,但如果报价得到确认,那么订单菜单中也会如此。

    对于默认值,您可以使用default_get 方法在字段中传递默认值。 但是如果您需要单独报价和销售订单,请加上他们的一些条件, 例如:- 如果self.state in ['draft', 'sent']: 则将您的默认值放在字段中以供引用。

    【讨论】:

    • 我认为您不能在计算默认值时检查记录字段,因为该记录尚不存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    相关资源
    最近更新 更多