我必须用if条件来计算基本工资。如果员工没有带薪休假,则表示未工作的工作日期间没有工资,而工资单下的输入则为无薪假,则应为o(零)。 我已经尝试了下面的代码但它给出了错误。
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)
答案 0 :(得分:1)
python中的in命令用于检查成员资格。
例如。 :3 in [1, 2, 3]
结果为True。
我不确定您的代码中payslip的用途是什么,但据我所知,您可以尝试这样做:
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)
答案 1 :(得分:0)
您可以在此博客中查看详细的工资单规则,以扣除未付款的树叶及其计算和配置here
答案 2 :(得分:0)
您好朋友我也遇到了同样的问题,但我得到了解决方案,无需面对错误就可以获得number_of_days,并根据工资计算扣除合同。
从payslip获得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
我认为此代码可以帮助您解决在计算Payslip的扣除或补贴时遇到的问题。