2015-10-06 2 views
1

я модель под названием hr_bank_account (osv.osv), и это выглядит следующим образом:Значение переменной прохождения eeror в OpenERP

class hr_bank_account(osv.osv): 

    def create(self, cr, uid, values, context=None): 
     vals = {} 
     acc_no = 'account_no' 
     bank = self.pool.get('hr.bank.register').browse(cr, uid, values['bank_id']).name 
     branch = self.pool.get('hr.branch.registration').browse(cr, uid, values['branch_id']).name 
     # name = str(bank) + '/' + str(branch) + '/' + str(values['account_no']) 
     # get 'account_no' and replace it with acc_no bellow. 
     name = str(bank) + '/' + str(branch) + '/' + acc_no 
     values.update({'name': name}) 
     return super(hr_bank_account, self).create(cr, uid, values, context=context) 


    _name = "hr.bank.account" 
    _description = "hr_bank_account" 
    _columns = { 
       'name': fields.char('Account No', size=256), 
       'bank_id': fields.many2one('hr.bank.register', 'Bank Name',), 
       'branch_id': fields.many2one('hr.branch.registration','Branch Name',domain="[('bank_id','=',bank_id)]"), 
       'account_no': fields.integer('account_no', size=64, required=True), 
    } 

hr_bank_account() 

У меня есть таблица с именем hr_employee и имеет следующее соотношение:

'bank_account_id': fields.one2many('hr.bank.account', 'account_no', 'Bank account'), 

Моя проблема заключается в том, что когда ему присваивается номер банковского счета, она пропускает неправильные значения, как показано ниже:

Число, которое я даю в качестве банковского счета ЕНТ число = 123456

Номер, который идет к БД = ACCOUNT_NO

Пожалуйста, помогите мне это исправил.

ответ

1

заменить создать метод с ->

def create(self, cr, uid, values, context=None): 
    vals = {} 
    for item in self.browse(cr, uid, ids, context=context): 
     acc_no = str(item.name) 
    bank = self.pool.get('hr.bank.register').browse(cr, uid, values['bank_id']).name 
    branch = self.pool.get('hr.branch.registration').browse(cr, uid, values['branch_id']).name 
    # name = str(bank) + '/' + str(branch) + '/' + str(values['account_no']) 
    # get 'account_no' and replace it with acc_no bellow. 
    name = str(bank) + '/' + str(branch) + '/' + acc_no 
    values.update({'name': name}) 
    return super(hr_bank_account, self).create(cr, uid, values, context=context) 

Надеется, что это помогает.

0

Заменить Ваш создать метод:

def create(self, cr, uid, values, context=None): 
    # Check all values are in values or not 
    if values.get('account_no','') and values.get('bank_id','') and values.get('branch_id',''): 
     acc_no = values.get('account_no','') 
     bank = self.pool.get('hr.bank.register').browse(cr, uid, values.get('bank_id','')).name 
     branch = self.pool.get('hr.branch.registration').browse(cr, uid, values.get('branch_id','')).name 
     # Concate all fields 
     name = str(bank) + '/' + str(branch) + '/' + acc_no 
     values.update({'name': name}) 
    return super(hr_bank_account, self).create(cr, uid, values, context=context) 
Смежные вопросы