Skip to Content
Menu
This question has been flagged
2 Replies
1595 Views

Hello, what is the python code to retrieve the number of days worked or holidays on odoo 17 ...

CE code ne fonctionne pas et je ne sais pas quel erreur jai fais 

result =(contract.wage/22) * worked_days.LEAVE90.number_of_days






Avatar
Discard
Best Answer

Hello , 

In Odoo, the number of days worked or holidays can be retrieved using the hr.contract and hr.payslip models. Your code snippet appears to be attempting to calculate the result based on the number of days worked or holidays. However, it's important to consider a few things:

  1. worked_days Variable: The variable worked_days is not defined in your code snippet. You need to ensure that you have the correct reference to the hr.payslip object or any other object that contains the information about the worked days.
  2. LEAVE90: Make sure that LEAVE90 is the correct code for the leave type you want to consider. The leave types are usually defined in the system, and you need to use the correct code associated with the leave type you are interested in.

Here's a generic example based on the provided code snippet. This assumes that you have the correct reference to the worked_days object, and the leave type code is indeed LEAVE90:

pythonCopy coderesult = (contract.wage / 22) * worked_days.LEAVE90.number_of_days

If you want to calculate the number of days worked, you might need to adjust the code to consider worked days rather than leave days. Also, ensure that you have the necessary permissions to access and retrieve the required information.

Here's an example assuming you want to calculate based on worked days:

pythonCopy coderesult = (contract.wage / 22) * worked_days.number_of_days

Remember to replace worked_days with the actual reference to the object containing information about the worked days, and make sure the leave type code (LEAVE90 in your case) is accurate.


Avatar
Discard
Author

here is error i have

- Erreur : <class 'AttributeError'>: "'dict' object has no attribute 'LEAVE120'" while evaluating
'result = (contract.wage / 22) * worked_days.LEAVE90.number_of_days'

Author

Please tell me if I want to calculate based on vacation days how do I go about it?

Best Answer

The Python code you provided seems to be an attempt to calculate the salary for a specific leave type (LEAVE90) in Odoo. However, the syntax may not be correct, and there could be issues with accessing the number_of_days attribute or the way the worked_days variable is defined.

Assuming you are working within an Odoo model or method, you should have access to the self object, which represents the current record. Here's a general example of how you might retrieve the number of days worked or on leave: 

In this example:

  • self.contract_id assumes that the contract is a related field or a Many2one field on the model.
  • self.worked_days assumes that worked_days is a field or related field on the model, and LEAVE90 is a field or related field on the worked_days model.


result = (self.contract_id.wage / 22) * self.worked_days.LEAVE90

Avatar
Discard
Author

hello i tried your method but it still doesn't work

Related Posts Replies Views Activity
0
Sep 23
1663
0
Aug 16
3833
0
Jul 24
3437
0
Mar 15
4568
2
Jun 25
1435