Ir al contenido
Menú
Se marcó esta pregunta
3 Respuestas
3190 Vistas

How to create an automated action that gives an internal note if the employee is filed due to dismissal or resignation and within the internal note the person responsible for the employee is posted in odoo enterprice 14

Avatar
Descartar
Mejor respuesta

Hello Matias,

I hope you are doing well.

Here, you can find example of automated action for the internal note to notify the person responsible for the employee is filed due to dismissal or resignation in odoo.

Find Example in comment. 

I hope this can help you.

Thanks & Regards,
Email:   odoo@aktivsoftware.com 

Skype: kalpeshmaheshwari

Avatar
Descartar

Please find code example here :-

For Example -
Note - Check Indentation of the code after pasting the code.
- Change the f String as per your requirement.
- 'employee' object refers to the employee who has been fired or filed resignation.
- 'employee.parent_id' refers to the responsible person or the Manager.

- Create an automated action by adding
name, model( Employee (hr.employee) as per your requirement),
trigger(update as per your requirement), Trigger fields (Departure Reason (hr.employee), Apply on ( Paste the Below Domain in the Code editor ) as per your requirement), Action To Do ( Execute Python Code ).

Apply on Domain :- ["|", ("departure_reason_id.name", "=", "Fired"), ("departure_reason_id.name", "=", "Resigned"), ("active", "=", False)]

- In the Python Code Below Paste this code:-

for employee in records:
if employee.parent_id:
employee.parent_id.message_post(message_type="notification" ,body=f"Notification: {employee.name} has recently {'faced termination' if employee.departure_reason_id.name == 'Fired' else 'resigned'} from their position within our organization.")

Autor Mejor respuesta

doing an automatic action with: action to perform: execute python code trigger condition: on update monitored field: departure_reason apply on: (departure_reason == 'fired' | departure_reason == 'resigned') & active == False With that, the code will be executed with the conditions I want, what I can't find is that the python code sends an internal note notification **to the responsible employee** of the subordinate who was fired or resigned and only he receives the notification. On the other hand, the f-string function, as you propose, does not work with {} objects inside, since it is taken as an error or as a string, none of these options works.

Avatar
Descartar
Mejor respuesta

Hi,

for this Create an Automated action (Settings->Automated Actions->Scheduled Actions), with Model "Employee" and in Action to Do  - select Execute Python Code

Suppose in your employee form you have the field with name "employee_state" , you can write the python code as below:

filed_employees = self.env['hr.employee'].search([('employee_state', 'in', ['dismiss', 'resign'])])

for employee in filed_employees:
note = f"The employee has been filed due to {employee.state}." \
f" The responsible person is {employee.parent_id.name}."

employee.message_post(body=note, subtype='mt_note')

Hope this will help you

Thanks

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
3
ago 24
5710
2
nov 22
2155
1
dic 22
1918
2
nov 24
20827
3
may 25
1781