0

我真的需要在我的销售订单对象上添加一个额外的“状态”值。从 7.0 版开始,'sale_stock' 模块已经做到了这一点。当您尝试从自己的模块中执行相同的操作时,您的键值将被忽略。有没有其他选择可以实现这一目标?
正如我发现的那样,这似乎是两年前的一个老问题,正如这个线程中所解释的那样。建议的解决方法是执行以下操作:

_inherit = 'sale.order'
def __init__(self, pool, cr):
    super(sale_order, self)._columns['state'].selection.append(('keyx', 'valuex'))

我发现这种方法是合乎逻辑的,但它导致了以下错误:

`File "/home/nicolas/Eclipse/OpenERP/7.0/src/openerp/osv/orm.py", line 2958, in _auto_init
    self._field_create(cr, context=context)
File "/home/nicolas/Eclipse/OpenERP/7.0/src/openerp/osv/orm.py", line 764, in _field_create
    ir_model_fields_obj = self.pool.get('ir.model.fields')
AttributeError: 'sale.order' object has no attribute 'pool'`

应该在启动板上报告此错误还是意外使用?您还能建议哪些其他可能的解决方案?提前致谢。

4

3 回答 3

0

尝试这个

from openerp.osv import osv, fields
class sale_order(osv.osv):
    _inherit = 'sale.order'
    selection_list = [];#add your selection list here.
    _columns = {
        'state': fields.selection(selection_list,'State');#add necessary arguments
    }
sale_order()
于 2013-02-22T12:16:16.367 回答
0

只需继承 sale.order 模型并添加您在现有模型中定义的状态字段,添加您需要添加的外部状态

例如:

class sale_order(osv.osv)

    _inherit ='sale.order'

    _columns = {
       'state': fields.selection([
        ('draft', 'Quotation'),
        ('waiting_date', 'Waiting Schedule'),
        ('manual', 'To Invoice'),
        ('progress', 'In Progress'),
        ('shipping_except', 'Shipping Exception'),
        ('invoice_except', 'Invoice Exception'),
        ('done', 'Done'),
        ('cancel', 'Cancelled'),
        **('key','value')**,  

上面这将是您新添加的选择值序列无关紧要。

        ], 'Order State', readonly=True, help="Gives the state of the quotation or sales order. \nThe exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). \nThe 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the order date.", select=True),

    }

sale_order()

高于键值将是您的附加选择字段,您可以根据您的要求在序列中的任何位置设置它。

于 2013-02-23T06:14:24.380 回答
0

有同样的问题,我看了一下线程,你注意到了。我想问题出在我们的模块和 sale_stock 是“冲突的”这一事实,因为它们修改了 sale.order 对象中的相同字段('state')并且不相互依赖。一种解决方案是修改您自己的模块并在 openerp .py 的“依赖”列表中添加“sale_stock

depends : ['sale_stock',...]

您可以在此模块中看到一个示例,该示例在状态字段中有另一个(键,值):http ://bazaar.launchpad.net/~agaplan/agaplan-addons/7.0/files/head:/sale_double_validation/

希望能帮助到你

于 2014-06-14T05:47:34.403 回答