콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
3 답글
10366 화면

Hello,

I need to add a new Salary rule in Base AS a data.xml file so it can compute the total allowances and deductions.

Here's my code:

<?xml version="1.0" encoding="utf-8"?>

<openerp>

<data noupdate="1">

<record id="ALLOWANCES" model="hr.salary.rule.category">

<field name="name">Allowances</field>

<field name="code">ALLOWANCES</field>

</record>

<record id="DEDUCTIONS" model="hr.salary.rule.category">

<field name="name">Deductions</field>

<field name="code">DEDUCTIONS</field>

</record>

<record id="hr_rule_allowances" model="hr.salary.rule">

<field name="name">Allowances</field>

<field name="sequence" eval="99"/>

<field name="code">ALLOWANCES</field>

<field name="category_id" ref="hr_payroll.ALLOWANCES"/>

<field name="condition_select">none</field>

<field name="amount_select">code</field>

<field name="amount_python_compute">result = categories.ALW</field>

</record>

<record id="hr_rule_deductions" model="hr.salary.rule">

<field name="name">Deductions</field>

<field name="sequence" eval="199"/>

<field name="code">DEDUCTIONS</field>

<field name="category_id" ref="hr_payroll.DEDUCTIONS"/>

<field name="condition_select">none</field>

<field name="amount_select">code</field>

<field name="amount_python_compute">result = categories.DED</field>

</record>

<!-- Salary Structure -->

<record id="structure_base_extend" model="hr.payroll.structure">

<field name="inherit_id" ref="hr_payroll.structure_base"/>

<field eval="[(6, 0, [ref('hr_rule_allowances'), ref('hr_rule_deductions')])]" name="rule_ids"/>

</record>

</data>

</openerp>


but I get this error: 

ParseError: "External ID not found in the system: hr_payroll.ALLOWANCES" while parsing /home/youta/odoo-8/my_addons/hr_wps/wps_data.xml:15, near

<record id="hr_rule_allowances" model="hr.salary.rule">


and when I tried to erase this line 

<field name="category_id" ref="hr_payroll.ALLOWANCES"/>

I got another error that category_id cannot be NULL


Any help will be appreciated

Thanks

아바타
취소
베스트 답변

Hello,

the ref works as :

module_name.record_id

So the ref="hr_payroll.ALLOWANCES" will not works because the hr_payroll module has no id with name ALLOWANCES

So you need to replace hr_payroll to your module name to be as:

<field name="category_id" ref="your_module_name.ALLOWANCES"/>

Update:

to override/modify already existing record you just need to make the record id as same as the targeting record.

E.g


<!-- Salary Structure -->

<record id="hr_payroll.structure_base" model="hr.payroll.structure">

<field name="code">BASE</field>

<field name="name">Base for new structures</field>

<field eval="[(6, 0, [ref('hr_rule_allowances'), ref('hr_rule_deductions')])]" name="rule_ids"/>

</record>

Hope this could helps

아바타
취소
작성자

Ok it's worked.. thanks for the advice.. But now it created duplicated BASE salary rule with the new two rows instead of being added to the original BASE. how can I edit these line of codes to inherit the BASE structure instead of creating new one ` BASE Base for new structures `

작성자 베스트 답변

Ok it worked.. thanks for the advice.. But now it created duplicated BASE salary rule with the new two rows instead of being added to the original BASE. how can I edit these line of codes to inherit the BASE structure instead of creating new one. Here's my code :

<!-- Salary Structure -->

<record id="structure_base_extend" model="hr.payroll.structure">

<field name="code">BASE</field>

<field name="name">Base for new structures</field>

<field name="inherit_id" ref="hr_payroll.structure_base"/>

<field eval="[(6, 0, [ref('hr_rule_allowances'), ref('hr_rule_deductions')])]" name="rule_ids"/>

</record>

아바타
취소

I've updated my answer ....

관련 게시물 답글 화면 활동
1
1월 23
2675
Download Odoo 8 해결 완료
1
5월 22
25857
3
8월 20
5246
0
2월 18
2789
0
3월 17
4165