Odoo工资单中休假的工资规则python代码



我必须根据这个条件计算基本工资。如果员工没有无薪休假意味着在工作日和工资单下没有无薪休假,则无薪休假应为0(零)。我已经尝试了下面的代码,但它给出的错误。

day=contract.wage/30
if not worked_days.Unpaid.number_of_days in payslip:
      result=day*(30-0)
else:
      result=day*(30-worked_days.Unpaid.number_of_days)

python中的in命令用于检查成员关系。例如:3 in [1, 2, 3]结果为True。我不太确定你代码中工资单的目的是什么,但据我所知,你可以试试这个:

day=contract.wage/30
if Not(worked_days.Unpaid.number_of_days):
    result=day*(30-0)
else:
    result=day*(30-worked_days.Unpaid.number_of_days)

注释后编辑:

day=contract.wage/30
if worked_days.Unpaid and worked_days.Unpaid.number_of_days or False:
    result=day*(30-0)
else:
    result=day*(30-worked_days.Unpaid.number_of_days)

您可以参考此博客了解扣减无薪休假的详细工资单规则及其计算和配置

你好,朋友们,我也面临着同样的问题,但我得到了解决方案,得到number_of_days没有面对错误,并计算扣除合同从工资。

从工资单中获取应付天数

number_of_days = 0
for line in payslip.worked_days_line_ids:
    number_of_days += line.number_of_days

计算DAC(工资扣除合同)

if contract.deduct_salary_from_payslip == True:
    if payslip.date_from <= employee.joining_date and employee.joining_date <= payslip.date_to:
        result = -(number_of_days*(contract.wage/30))*.10
    else:
        result = -(contract.wage * 0.10)
else:
    result=0.0

我想这个代码将帮助你解决你在计算工资条的扣除或津贴时所面临的问题。

最新更新