İçereği Atla
Menü
Bu soru işaretlendi
4 Cevaplar
1555 Görünümler

How to pass value from employee to contact on odoo 16 using code

Avatar
Vazgeç
En İyi Yanıt

Employee and partner are connected by 'address_id' field in odoo 17.
you can pass values from employee by inheriting 'create' or 'write' method or by calling your custom method.

@api.model
def create(self, vals):
result = super(ClassName, self).create(vals)
result.address_id.write({'field_in_partner': value_from_employee}
return result
def write(self, vals):
res = super(ClassName, self).write(vals)
​ self.address_id.write({'field_in_partner': value_from_employee}
return res
Avatar
Vazgeç
En İyi Yanıt

from odoo import models


class HrEmployee(models.Model):

    _inherit = 'hr.employee'


    def sync_employee_to_contact(self):

        for employee in self:

            if employee.address_home_id:

                contact = employee.address_home_id

                contact.write({

                    'email': employee.work_email or employee.private_email,

                    'phone': employee.work_phone,

                    'function': employee.job_title,

                })

Avatar
Vazgeç
En İyi Yanıt

from odoo import models


class HrEmployee(models.Model):

    _inherit = 'hr.employee'


    def get_partner_country(self):

        for employee in self:

            if employee.related_partner_id and employee.related_partner_id.country_id:

                partner_country = employee.related_partner_id.country_id.name

                print('Partner Country:', partner_country)

            else:

                print('No related partner or country assigned.')

Hope it helps you

Avatar
Vazgeç
En İyi Yanıt

Hi,


In the 'hr.employee' model, a many2one field named 'related_partner_id' connects the 'hr.employee' (Employee) with the 'res.partner' (Contact). This field allows us to access all the fields in the 'res.partner' model.


Eg:

class HrEmployee(models.Model):
_inherit = 'hr.employee'

def get_partner_country(self):
partner_country = self.related_partner_id.country_id
print('Partner Country',partner_country)

Hope it helps

Avatar
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Tem 25
802
1
Nis 25
863
0
Mar 25
805
1
Eyl 24
1892
0
Ağu 24
1224