This commit is contained in:
Bakry 2024-09-19 14:24:36 +03:00
parent 9c9203b2fc
commit 474226b280
2 changed files with 65 additions and 81 deletions

View File

@ -7,85 +7,18 @@
<field name="partner_id" eval="False"/>
</record>
<record id="BASIC" model="hr.salary.rule.category">
<field name="name">Basic</field>
<field name="code">BASIC</field>
</record>
<record id="ALW" model="hr.salary.rule.category">
<field name="name">Allowance</field>
<field name="code">ALW</field>
<field name="rule_type">allowance</field>
</record>
<record id="GROSS" model="hr.salary.rule.category">
<field name="name">Gross</field>
<field name="code">GROSS</field>
</record>
<record id="DED" model="hr.salary.rule.category">
<field name="name">Deduction</field>
<field name="code">DED</field>
</record>
<record id="NET" model="hr.salary.rule.category">
<field name="name">Net</field>
<field name="code">NET</field>
</record>
<record id="COMP" model="hr.salary.rule.category">
<field name="name">Company Contribution</field>
<field name="code">COMP</field>
</record>
<record id="hr_rule_basic" model="hr.salary.rule">
<field name="name">Basic Salary</field>
<field name="sequence" eval="1"/>
<field name="code">BASIC</field>
<field name="category_id" ref="exp_hr_payroll.BASIC"/>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = contract.wage</field>
</record>
<record id="hr_rule_taxable" model="hr.salary.rule">
<field name="name">Gross</field>
<field name="sequence" eval="100"/>
<field name="code">GROSS</field>
<field name="category_id" ref="exp_hr_payroll.GROSS"/>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = categories.BASIC + categories.ALW</field>
</record>
<record id="hr_rule_unpaid" model="hr.salary.rule">
<field name="name">Unpaid Leave</field>
<field name="sequence" eval="100"/>
<field name="code">UNP</field>
<field name="category_id" ref="exp_hr_payroll.DED"/>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result=-(contract.wage / worked_days.WORK100.number_of_days) * worked_days.Unpaid.number_of_days</field>
</record>
<record id="hr_rule_net" model="hr.salary.rule">
<field name="name">Net Salary</field>
<field name="sequence" eval="200"/>
<field name="code">NET</field>
<field name="category_id" ref="exp_hr_payroll.NET"/>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = categories.BASIC + categories.ALW + categories.DED</field>
<field name="register_id" ref="contrib_register_employees"/>
</record>
<!-- Salary Structure -->
<record id="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_basic'), ref('hr_rule_taxable'),ref('hr_rule_net')])]" name="rule_ids"/>
<field name="company_id" ref="base.main_company"/>
<field name="rule_type">deduction</field>
</record>
<!-- Decimal Precision -->

View File

@ -1,23 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<data noupdate="1">
<!-- Salary Structure >
<record id="structure_base" model="hr.payroll.structure">
<field name="code">Scale</field>
<field name="name">Salary Scale</field>
<field name="transfer_type">all</field>
<field name="rule_ids" eval="[(6, 0, [ref('hr_rule_basic'), ref('hr_rule_house'),ref('hr_rule_transport'),ref('hr_rule_gosi')])]"/>
<field name="company_id" ref="base.main_company"/>
</record-->
<!-- advance salary rule -->
<record id="hr_payslip_rule_advance" model="hr.salary.rule">
<field name="code">SAR</field>
<field name="name">Advance Salary</field>
<field name="category_id" ref="exp_hr_payroll.DED"/>
<!--record id="hr_rule_basic" model="hr.salary.rule">
<field name="name">Basic Salary</field>
<field name="sequence" eval="1"/>
<field name="code">BASIC Salary</field>
<field name="category_id" ref="exp_hr_payroll.ALW"/>
<field name="rules_type">salary</field>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result = inputs.SAR and - (inputs.SAR.amount)</field>
<field name="appears_on_payslip" eval="True"/>
<field name="sequence" eval="190"/>
<field name="amount_python_compute">result = contract.salary</field>
</record>
<record id="hr_rule_input_advance" model="hr.rule.input">
<field name="code">SAR</field>
<field name="name">Salary Advance</field>
<field name="input_id" ref="hr_payslip_rule_advance"/>
<record id="hr_rule_house" model="hr.salary.rule">
<field name="name">House Allowance</field>
<field name="sequence" eval="2"/>
<field name="code">House</field>
<field name="category_id" ref="exp_hr_payroll.ALW"/>
<field name="salary_type">fixed</field>
<field name="related_benefits_discounts" eval="[(6, 0, [ref('hr_rule_basic')])]"/>
<field name="rules_type">house</field>
<field name="condition_select">none</field>
<field name="amount_select">percentage</field>
<field name="amount_percentage">25</field>
</record>
<record id="hr_rule_transport" model="hr.salary.rule">
<field name="name">Transport Allowance</field>
<field name="sequence" eval="3"/>
<field name="code">Transport</field>
<field name="category_id" ref="exp_hr_payroll.ALW"/>
<field name="salary_type">fixed</field>
<field name="related_benefits_discounts" eval="[(6, 0, [ref('hr_rule_basic')])]"/>
<field name="rules_type">transport</field>
<field name="condition_select">none</field>
<field name="amount_select">percentage</field>
<field name="amount_percentage">10</field>
</record>
<record id="hr_rule_gosi" model="hr.salary.rule">
<field name="name">GOSI Deduction</field>
<field name="sequence" eval="4"/>
<field name="code">GOSI</field>
<field name="category_id" ref="exp_hr_payroll.DED"/>
<field name="rules_type">insurnce</field>
<field name="condition_select">none</field>
<field name="amount_select">code</field>
<field name="amount_python_compute">result=0
if contract.employee_id.check_nationality==True and contract.is_gosi_deducted=='yes':
result =contract.salary*0.0975
if result > 4387.5:
result= 4387.5
else:
result=result</field>
</record-->
</data>
</odoo>