在stock.piking模型,我已经存储在数据库中的个性化值:sbf_releve如何添加值从插件/ stock_account/stock.py发票在Odoo
我需要发送此值帐户。发票,当它创建
发票数据在插件/ stock_account/stock.py
class stock_picking(osv.osv):
_inherit = 'stock.picking'
def _get_invoice_vals(self, cr, uid, key, inv_type, journal_id, origin, context=None):
if context is None:
context = {}
partner, currency_id, company_id, user_id = key
if inv_type in ('out_invoice', 'out_refund'):
account_id = partner.property_account_receivable.id
payment_term = partner.property_payment_term.id or False
else:
account_id = partner.property_account_payable.id
payment_term = partner.property_supplier_payment_term.id or False
return {
'origin': origin,
'date_invoice': context.get('date_inv', False),
'user_id': user_id,
'partner_id': partner.id,
'account_id': account_id,
'payment_term': payment_term,
'type': inv_type,
'fiscal_position': partner.property_account_position.id,
'company_id': company_id,
'currency_id': currency_id,
'journal_id': journal_id,
}
准备在我自己的模块,新的发票,我试图重写此方法:
from openerp.osv import fields, osv
class stock_picking(osv.osv):
_name = "stock.picking"
_inherit = 'stock.picking'
_columns = {
'sbf_regroupement': fields.boolean('Regroupement', copy=True),
'sbf_releve': fields.boolean('Relevé', copy=True),
}
def create(self, cr, user, vals, context=None):
context = context or {}
if ('name' not in vals) or (vals.get('name') in ('/', False)):
ptype_id = vals.get('picking_type_id', context.get('default_picking_type_id', False))
sequence_id = self.pool.get('stock.picking.type').browse(cr, user, ptype_id, context=context).sequence_id.id
vals['name'] = self.pool.get('ir.sequence').get_id(cr, user, sequence_id, 'id', context=context)
opartner = self.pool.get('res.partner').browse(cr, user, vals['partner_id'])
if ('sbf_releve' not in vals):
vals['sbf_releve'] = opartner.sbf_releve
if ('sbf_regroupement' not in vals):
vals['sbf_regroupement'] = opartner.sbf_regroupement
# self.pool.get('product.product').browse(cr, uid, [prod_id], context=ctx)[0]
return super(stock_picking, self).create(cr, user, vals, context)
def _get_invoice_vals(self, cr, uid, key, inv_type, journal_id, origin, context=None):
if context is None:
context = {}
partner, currency_id, company_id, user_id = key
if inv_type in ('out_invoice', 'out_refund'):
account_id = partner.property_account_receivable.id
payment_term = partner.property_payment_term.id or False
else:
account_id = partner.property_account_payable.id
payment_term = partner.property_supplier_payment_term.id or False
sbf_releve = partner.sbf_releve
vals = super(stock_picking, self)._get_invoice_vals(cr, uid, key, inv_type, journal_id, origin, context)
vals['sbf_releve'] = True
return vals
但它只是没有工作。为什么?它的工作原理应对来自sale.order值时stock.picking但不account.invoice