我正在尝试使用odoo中的onchange方法更新字段。在
我的.py代码是
class hr_contract(osv.osv):
_name = 'hr.contract'
_description = 'Contract'
def _wage(self, cr, uid, ids,context=None):
res = {}
pay_slip = 0
pay_slip1 = 0
for obj in self.browse(cr, uid, ids, context=context):
s1 = ("""select schedule_pay from hr_contract where employee_id=%s""" % (obj.employee_id.id))
cr.execute(s1)
l1 = cr.fetchone()
value10 = l1[0]
if value10 == 'bi-weekly':
s4 = (
"""select salary from hr_contract where employee_id=%s """ % (
obj.employee_id.id))
cr.execute(s4)
l4 = cr.fetchone()
salary = l4[0]
# **************************************************************#
######### Week1 #############
s5 = ("""select week1 from hr_contract where employee_id=%s """ % (
obj.employee_id.id))
cr.execute(s5)
l5 = cr.fetchone()
week1 = l5[0]
print "week1", week1
if week1 != None:
if week1 > 48.00:
weeked1 = week1 - 48.00
total_amt = salary * (weeked1 * 1.5)
total_pay = 48.00 * salary
pay_slip = total_amt + total_pay
pay_slip1 += pay_slip
print "payslip..", pay_slip
cr.execute(""" update hr_contract set week1=%s where employee_id=%s""" % (
week1, obj.employee_id.id))
else:
pay_slip = week1 * salary
pay_slip1 += pay_slip
print "payslip..", pay_slip1
当我更改字段并将其保存时,错误显示为
^{pr2}$如果我从for循环中删除上下文,它将采用前面的计算值。在
我怎么解决这个问题?在
我使用xml中的onchange调用函数
^{3}$该字段在py中设置为float
'wage': fields.float('Per Hour Wages'),
'week1': fields.float('Week 1'),
这是
TypeError: 'float' object is not iterable"
的意思:count=7
比如说for i in count:
的意思是{in
后面的位应该是iterable类型,而不是数字。试试这个:正如评论中提到的,把你的问题隔离开来,以获得更清晰的答案。在
相关问题 更多 >
编程相关推荐