0

勤労手当と控除をロードする必要があります。
手当は固定と変動の2種類。
控除も固定・変動・特別の3種類。

次に、私のクラスには、この
許容量 one2many 固定
許容量 one2many 変数のような関係があります

控除 one2many 定額
控除 one2many 変数
控除 one2many 特別

私の最後の要件は、これらの控除と手当を 2 つの '' タグにロードすることです。それから onchange_worker. のメソッドを書きましたが、うまくいきませんでした。この問題を整理するのを手伝ってくれることを願っています (最初は固定手当のコードを書きました
)

私のクラスでの機能

def on_change_worker(self, cr, uid, ids, worker_id):
        fixed_v = {}
        fixed_list_v = {}
        fixed_list = []
        fixed_list_data = []
        if worker_id:            
            ind_allowance_id = self.pool.get('bpl.allowance.individual.data').search(cr, uid, [('worker_id', '=', worker_id)])
            ind_allowance_obj = self.pool.get('bpl.allowance.individual.data').browse(cr, uid, ind_allowance_id)[0]

            for allowance_record in ind_allowance_obj.fixed_allowance_ids:
                fixed_list.append({'allowance_id':allowance_record.allowance_id.id, 'allowance_name': allowance_record.allowance_name.id })
            fixed_v['allowance_ids'] = fixed_list
            fixed_list_data.append(fixed_v)
            fixed_list_v['fixed_allowance_ids'] = fixed_list_data
            return {'value':fixed_list_v}

view.xml

<form string='bpl_worker_summary' version='7.0'>
<sheet>
<group>
<group>
<field name='bpl_company_id' readonly="1" />
<field name='bpl_estate_id' />
<field name='worker_id' on_change="on_change_worker(worker_id)" />
</group>
</group>
<div name="Allowances"></div>
<separator string="Allowances" />
<notebook>
<page string="Allowances">
<field name='allowance_ids' nolabel='1'>
<tree string='List' editable='bottom'>
<field name='fixed_allowance_ids' nolabel='1'>
<tree string="fixed_allowance">
<field name='allowance_id' />
<field name='allowance_name' />
<field name='amount' />
</tree>
</field>
</tree>
</field>
</page>
<page string="Deductions">
<field name='deduction_ids' nolabel='1'>
</field>
</page>
</notebook>
</sheet>
</form>

まだレコードが表示されません。これを並べ替えるのを手伝ってください

編集済み

このように mu の結果を返す必要がありますか?

dict: {'fixed_allowance_ids': [{'allowance_ids': [{'allowance_id': 1, 'allowance_name': 1}]}]}

編集済み

以下のコードで完了

モデルクラス

def on_change_worker(self、cr、uid、ids、worker_id): fixed_v = {} fixed_list_v = {} fixed_list = [] fixed_list_data = []

if worker_id:            

    ind_allowance_id = self.pool.get('bpl.allowance.individual.data').search(cr, uid, [('worker_id', '=', worker_id)])
    ind_allowance_obj = self.pool.get('bpl.allowance.individual.data').browse(cr, uid, ind_allowance_id)[0]

    for allowance_record in ind_allowance_obj.fixed_allowance_ids:
        fixed_list.append({'allowance_id':allowance_record.allowance_id.id, 'allowance_name': allowance_record.allowance_name.id })
    fixed_v['fixed_allowance_ids'] = fixed_list
    fixed_list_data.append(fixed_v)
    fixed_list_v['allowance_ids'] = fixed_list_data
    return {'value':fixed_list_v}

view.xml

<page string="Allowances">
<field name='allowance_ids' nolabel='1'>
<field name='fixed_allowance_ids' nolabel='1'>
<tree string="fixed_allowance">
<field name='allowance_id' />
<field name='allowance_name' />
<field name='amount' />
</tree>
</field>
</field>
</page>

結果はこのようになりますが、ツリービューで値を取得する必要があります

正確な値を取得するための提案があれば、ここに投稿してください

画面

4

1 に答える 1

1

次のように返す必要があります。

dict: {'fixed_allowance_ids': [{'allowance_id': 1, 'allowance_name': 1}, {'allowance_id': 2, 'allowance_name': 2}]}

それはあなたのために働くはずです。

于 2013-04-30T11:50:20.797 に答える