2016-08-17 5 views
0

で支払う必要があります。従業員に未払いの休暇がない場合は基本給を計算する必要があります。未払いは未勤務日であり、給与は給与で入力してください。ゼロ)。 私は以下のコードを試しましたが、与えられたエラーです。Odoo給与は給与ルールPythonコード

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

私は上記のコードを試しましたが、まだ働いていません。従業員が無給休暇を取ったかどうかを確認する条件が必要です。 –

+0

取得しているエラーメッセージは何ですか? –

+0

給与規則基本(BASIC)で間違ったPythonコードが定義されています。 –

0

あなたが詳細はこのブログを参照することができます未払いの葉とその計算と構成を控除するためのルールを適用すること。here

0

こんにちは私は同じ問題に直面していますが、私は直面しないでnumber_of_days給与から契約に対する控除を計算します。

number_of_days = 0 

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

給与明細から支払わ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のための控除または手当を計算している間。