From 68630aaf6578720d952094a145d1533140f6d1d3 Mon Sep 17 00:00:00 2001 From: niyasraphy Date: Thu, 27 Jul 2023 09:47:53 +0000 Subject: [PATCH] [FIX] hr: singleton error on writing user to employee before this commit, on writing user_id to hr.employee on multiple record in raisng single ton error. after this commit, no error wont be raised on the same. closes odoo/odoo#130650 X-original-commit: ebc686b8abc84538f224ff4db205ce1231b747c3 Signed-off-by: Sofie Gvaladze (sgv) --- addons/hr/models/hr_employee.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/hr/models/hr_employee.py b/addons/hr/models/hr_employee.py index a1f78f90ed8..6171ff97196 100644 --- a/addons/hr/models/hr_employee.py +++ b/addons/hr/models/hr_employee.py @@ -393,20 +393,21 @@ class HrEmployeePrivate(models.Model): def write(self, vals): if 'work_contact_id' in vals: - account_id = vals.get('bank_account_id') or self.bank_account_id.id - if account_id: - bank_account = self.env['res.partner.bank'].browse(account_id) - if vals['work_contact_id'] != bank_account.partner_id.id: - if bank_account.allow_out_payment: - bank_account.sudo().allow_out_payment = False - bank_account.partner_id = vals['work_contact_id'] + account_ids = vals.get('bank_account_id') or self.bank_account_id.ids + if account_ids: + bank_accounts = self.env['res.partner.bank'].browse(account_ids) + for bank_account in bank_accounts: + if vals['work_contact_id'] != bank_account.partner_id.id: + if bank_account.allow_out_payment: + bank_account.sudo().allow_out_payment = False + bank_account.partner_id = vals['work_contact_id'] self.message_unsubscribe(self.work_contact_id.ids) if vals['work_contact_id']: self._message_subscribe([vals['work_contact_id']]) if 'user_id' in vals: # Update the profile pictures with user, except if provided vals.update(self._sync_user(self.env['res.users'].browse(vals['user_id']), - (bool(self.image_1920)))) + (bool(all(emp.image_1920 for emp in self))))) if 'work_permit_expiration_date' in vals: vals['work_permit_scheduled_activity'] = False res = super(HrEmployeePrivate, self).write(vals)