2016-08-17 81 views
0

我有,如果condition.if員工沒有帶薪休假計算基本工資是指無酬是不是有在工作日和投入下一張工資單,然後無薪休假應該是O(零)。 我試過下面的代碼,但它給出的錯誤。與薪酬規則Python代碼休假Odoo工資單

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) 

回答

1

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) 
+0

我已經嘗試了上面的代碼,但仍然沒有working.I想如果條件檢查員工是否採取無薪假期。 –

+0

你正在收到什麼錯誤信息? –

+0

爲工資規則Basic(BASIC)定義的錯誤python代碼。 –

0

您可以參考本博客查看詳細工資單規則扣除無薪休假和其計算和配置here

0

朋友你好我也面臨同樣的問題,但我得到的解決方案來獲得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 

我認爲這個代碼將幫助你解決你的問題在計算工資扣除或津貼時面臨薪資福利。