2013-05-31 82 views
4

我需要將自定義模塊中的字段與放置在OpenErp的Purchase Order格式中的按鈕相關聯。關聯自定義模塊字段 - 產品 - OpenErp

當確認產品採摘時,此按鈕將「排出」填充到我的自定義模塊的「數量」字段中的該產品的數量。

例如:

class certificados_line(osv.osv): 

    _name = 'certificados.line' 
    _description = "Items del Certificado" 


    def multi_a_b(self, cr, uid, ids, name, arg, context=None): 
     res = {} 
     for record in self.browse(cr, uid, ids,context): 
      res[record.id] = record.Cantidad * record.Precio_Unitario_Declarado 
     return res 

    _columns = { 
     'codigo_n' : fields.related(
       'product_id', 
       'codigo_n', 
       type='char', 
       size=64, 
       string='Codigo Arancelario', 
       store=True, 
       readonly=True, 
       ), 
     'product_id' : fields.many2one(
       'product.product', 
       'Material', 
       ), 
     'Descripcion_Arancelaria' : fields.many2one(
       'product.category', 
       'Descripcion Arancelaria', 
       change_default=True, 
       domain="[('type','=','normal')]", 
       ), 
     'tec_esp': fields.related(
       'product_id', 
       'tec_esp', 
       type='char', 
       size=64, 
       string='Especificaciones tecnicas', 
       store=True, 
       readonly=True, 
       ), 
     'Cantidad' : fields.float(
       'Cantidad', 
       ), 
     'Unidad_de_Medida': fields.many2one(
       'product.uom', 
       'Unidad de Medida', 
       ), 
     'Precio_Unitario_Declarado' : fields.float(
       'Precio Unitario Declarado', 
       ), 
     'Moneda' : fields.many2one(
       'res.currency', 
       'Moneda', 
       ), 
     'Valor_En_Divisas' : fields.function(
       multi_a_b, 
       type='integer', 
       string='Valor En Divisas', 
       ), 
     'requisicion_id' : fields.many2one(
       'certificados.certificados', 
       'Certificados de No Produccion', 
       ondelete='cascade', 
       ), 
     'Cantidad_Consumida' : fields.related(
       'product_id', 
       'outgoing_qty', 
       type='float', 
       string='Cantidad Consumida', 
       store=True, 
       readonly=True, 
       ), 
     'Cantidad_Disponible' : fields.related(
       'product_id', 
       'qty_available', 
       type='float', 
       string='Cantidad Disponible', 
       store=True, 
       readonly=True, 
       ), 
    } 
certificados_line() 

這裏,Cantidad應該是場被自動與採購訂單,我的意思是,在「詢價」和「採購訂單」中的OpenERP,當揀貨確認倉庫中的Product庫存自動更新,「product_qty」。

我需要做同樣的事情,但不是在OpenErp中的庫存或倉庫,而是在我的自定義模塊中的Cantidad字段中,因爲有些項目可以從倉庫和其他模塊中進行購買和管理。

我見過的Purchase Order形式的按鈕,我可以創建這個任務一個新的,但我的問題是,如何與這個領域的Purchase Order在我的自定義模塊,同時保持與股市的常規關係?

爲了進一步瞭解,它不會是一個自動更新,只是一個獨立的更新,取決於這個按鈕被點擊的時間。

我希望我已經解釋了我自己。

在此先感謝。

回答

1

我不確定我是否清楚地理解了您的問題,但讓我試着爲您介紹一種通用方法。

首先,您需要了解OpenERP中庫存地點和產品庫存的概念。

OpenERP庫存的基本構建塊是產品交易/產品移動。如果您將產品AAA從位置XXX移至位置YYY,則您將在YYY上將該股票折價爲AAA,並且AAA的股票將在XXX上減少。當您購買產品時,產品將從「供應商地點」移至「庫存地點」。當你賣東西時,你正在將產品從「庫存地點」移動到「客戶地點」。因此,特定地點的產品庫存將成爲搬入和搬出產品的摘要。

如果您想更新openERP中的產品庫存,您需要做的是使庫存從「庫存地點」移動到其他虛擬地點(如客戶位置,庫存損失,生產地點等)

從這個角度讓我知道你的想法,我會更新答案,專注於爲你解決問題。

+0

準確地說,我的意思是當我從我的模塊移動產品AAA時,假設我使用產品AAA,假設我有6個產品單元,這6個單元將作爲庫存地點XXX, – NeoVe

+0

當我創建一個在openerp的購買應用程序中的購買訂單,當這個購買訂單被確認(接收產品)時,它將會有另一個按鈕,如果你點擊它,它將「減少」你從XXX位置購買的這個產品...假設我爲這個字段(XXX股票)上已有的同樣6個單位的AAA產品訂購採購訂單,當採購訂單確認後,openerp將從「供應商地點」減少並增加「庫存地點」, – NeoVe

+0

我需要這個按鈕被點擊時,它也會從這個模塊字段中減少,它將作爲一個額外的「供應商地點」,不知道如果我是在自我解釋:( – NeoVe