2013-04-30 7 views
0

Мне нужно загрузить рабочие пособия & вычеты.
Прививки 2 типа фиксированные & переменная.
Выводы также 3 типа фиксированные, переменные & специальные.
OpenERP one2many и one2many

тогда мои классы имеют отношения как этот
пособия one2many фиксированные
пособия one2many переменной

дедукции one2many фиксированной
вычета one2many переменной
дедукции one2many специальный

мой последний Requirment является загрузите эти вычеты и надбавки в двух '' тегах , тогда я написал метод для onchange_worker.but его нет т работал & надеюсь, что вы поможете мне SORTOUT этому вопросу
благодаря
(изначально я написал код для фиксированных надбавок)

функции в моем классе

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> 

еще не отображает никаких записей. Пожалуйста, помогите мне разобраться в этом

EDITED

необходимость возврата мю результат, как это.?

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

EDITED

сделан с ниже кодами

класс модели

Защиту on_change_worker (сам, кр, UID, идентификаторы, 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> 

Теперь результат приходит как это, но все равно нужно получить значения на дереве

, если любое предложение, чтобы получить точные значения, пожалуйста, напишите здесь

screen

ответ

1

Вам необходимо вернуться следующим образом:

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

Он должен работать на вас.

+0

сообщение отредактировано , пожалуйста, проверьте и совет. –

Смежные вопросы