I'm overriding the write() method in validation of odoo hr_attendance
My code is
def write(self, cr, uid, ids, context=None):
for att in self.browse(cr, uid, ids, context=context):
prev_att_ids = self.search(cr, uid, [('employee_id', '=', att.employee_id.id), ('name', '<', att.name),
('action', 'in', ('sign_in', 'sign_out'))], limit=1, order='name DESC')
next_add_ids = self.search(cr, uid, [('employee_id', '=', att.employee_id.id), ('name', '>', att.name),
('action', 'in', ('sign_in', 'sign_out'))], limit=1, order='name ASC')
prev_atts = self.browse(cr, uid, prev_att_ids, context=context)
next_atts = self.browse(cr, uid, next_add_ids, context=context)
if prev_atts and prev_atts[0].action == att.action:
return self.write(cr, uid, ids, {'state': True})
if next_atts and next_atts[0].action == att.action: # next exists and is same action
return self.write(cr, uid, ids, {'state': True})
if (not prev_atts) and (not next_atts) and att.action != 'sign_in': # first attendance must be sign_in
return self.write(cr, uid, ids, {'state': True})
else:
return self.write(cr, uid, ids, {'state': False})
return True
This is my code. While writing a record in attendance it should check the three "if condition" and want to change the value of the field "state" either "true or false" according to the "if conditions".
But the problem is, in attendance module I have created a record and when I press save it show this error
"
ValidateError
Error while validating constraint
write() got multiple values for keyword argument 'context' "
How can I solve this issue? Help me
Thanks.
Regards,
Uppili Arivukkannu