2013-04-05 36 views
0

我得到這個錯誤,當我點擊模塊中的「確認申請」按鈕,「採購申請單」問題與採購申請模塊 - OpenERP的

File "C:\Program Files\OpenERP 7.0-20130321-002353\Server\server\openerp\addons\purchase_requisition\purchase_requisition.py", line 215, in wkf_confirm_order AttributeError: 'purchase.order' object has no attribute 'signal_purchase_cancel' 

在「purchase_requisition.py」錯誤代碼如下:

class purchase_order(osv.osv): 
_inherit = "purchase.order" 
_columns = { 
    'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition') 
} 

def wkf_confirm_order(self, cr, uid, ids, context=None): 
    res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context=context) 
    proc_obj = self.pool.get('procurement.order') 
    for po in self.browse(cr, uid, ids, context=context): 
     if po.requisition_id and (po.requisition_id.exclusive=='exclusive'): 
      for order in po.requisition_id.purchase_ids: 
       if order.id != po.id: 
        proc_ids = proc_obj.search(cr, uid, [('purchase_id', '=', order.id)]) 
        if proc_ids and po.state=='confirmed': 
         proc_obj.write(cr, uid, proc_ids, {'purchase_id': po.id}) 
        self.signal_purchase_cancel(cr, uid, [order.id]) 
       po.requisition_id.tender_done(context=context) 
    return res 
purchase_order() 

我沒有開發這個模塊,所以這個錯誤的原因是什麼?

任何幫助將不勝感激,在此先感謝!

+0

可以檢查有最新的代碼? – user1576199 2013-04-05 05:09:15

+0

是的,以及apps.openerp.com上的最新版本 – NeoVe 2013-04-05 05:24:28

+0

但是,只有當我在報價單上「確認訂單」時纔會發生這種情況。 – NeoVe 2013-04-05 05:26:16

回答

1

我想你還沒有最新的代碼。

在我的本地代碼是這樣的:

class purchase_order(osv.osv): 
    _inherit = "purchase.order" 
    _columns = { 
     'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition') 
    } 
    def wkf_confirm_order(self, cr, uid, ids, context=None): 
     res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context=context) 
     proc_obj = self.pool.get('procurement.order') 
     for po in self.browse(cr, uid, ids, context=context): 
      if po.requisition_id and (po.requisition_id.exclusive=='exclusive'): 
       for order in po.requisition_id.purchase_ids: 
        if order.id<>po.id: 
         proc_ids = proc_obj.search(cr, uid, [('purchase_id', '=', order.id)]) 
         if proc_ids and po.state=='confirmed': 
          proc_obj.write(cr, uid, proc_ids, {'purchase_id': po.id}) 
         wf_service = netsvc.LocalService("workflow") 
         wf_service.trg_validate(uid, 'purchase.order', order.id, 'purchase_cancel', cr) 
        po.requisition_id.tender_done(context=context) 
     return res 
+0

你從哪裏得到這個?發射臺? – NeoVe 2013-04-05 05:40:09

+0

我用這段代碼替換了這個類,但它給了我另一個錯誤,認爲我想要完全升級模塊,但是我已經下載了它的最新版本apps.openerp.com – NeoVe 2013-04-05 05:42:34

+0

yes從launchapd – user1576199 2013-04-05 05:45:55