Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
2 Odpovědi
5762 Zobrazení

Hi Guys

I Got Error (TypeError: 'int' object is not iterable)

My Code : (python :) def on_change_emp(self,cr,uid,ids,emp_id,context=None): vs = cr.execute('SELECT wage FROM hr_contract WHERE (id=%s)',(tuple(emp_id))).fetchone() if vs is not None: raise osv.except_osv((vs[0]),('Employee Wage')) else: pass

(XML :) <field name="emp_id" attrs="{'invisible':[('item_emp','!=',True)]}" on_change="on_change_emp(emp_id)"/>

Avatar
Zrušit

Hello Ali, you also have passed wrong "id" value in query. You are passing employee id in query and matching with contract "id". It will give wrong wage value too.

Nejlepší odpověď

Use below code to get wage: In PYTHON file:

_columns = {
    'name': fields.many2one('hr.employee', "Employee", required=True),
    'wage_amt': fields.float('Wage', digits=(16,2), required=True, help="Basic Salary of the employee"),
}

def onchange_employee_id(self, cr, uid, ids, employee_id, context=None):
    v = {}
    if employee_id:
        contract_sr = self.pool.get('hr.contract').search(cr, uid, [('employee_id','=',employee_id)], context=context)
        if contract_sr:
                contract_br = self.pool.get('hr.contract').browse(cr, uid, contract_sr, context=context)[0]
                v['wage_amt'] = contract_br.wage

    return {'value': v}

In XML file:

<field name="name" on_change="onchange_employee_id(name)"/>
<field name="wage_amt"/>
Avatar
Zrušit
Autor

Thanks a Lot It's Working My Friend

Nejlepší odpověď

Hello Ali,

I guess problem is in your query.

Try this:

cr.execute('SELECT wage FROM hr_contract WHERE id in %s', (tuple(emp_id),))
cr.fetchone()

Thanks,

Serpent Consulting Services.

Avatar
Zrušit
Autor

thanks for answer my friend but still give me that (TypeError: 'int' object is not iterable )

Did you try it after restart the server?

Related Posts Odpovědi Zobrazení Aktivita
2
kvě 24
1450
0
srp 24
1598
1
bře 23
2237
0
bře 15
4984
0
bře 25
1184