[IMP] hr_payroll:renamed 'hr.allounce.deduction.categoty' to 'hr.salary.head' and improved its object and fields
bzr revid: mtr@mtr-20110303095226-kga2d2ulq0mhb4ne
This commit is contained in:
parent
183e37aaef
commit
d840425793
|
@ -653,43 +653,34 @@ class hr_salary_head_type(osv.osv):
|
|||
|
||||
hr_salary_head_type()
|
||||
|
||||
class payment_category(osv.osv):
|
||||
class hr_salary_head(osv.osv):
|
||||
"""
|
||||
Allowance, Deduction Heads
|
||||
House Rent Allowance, Medical Allowance, Food Allowance
|
||||
Professional Tax, Advance TDS, Providend Funds, etc
|
||||
Salary Head
|
||||
"""
|
||||
|
||||
_name = 'hr.allounce.deduction.categoty'
|
||||
_description = 'Allowance Deduction Heads'
|
||||
_name = 'hr.salary.head'
|
||||
_description = 'Salary Head'
|
||||
_columns = {
|
||||
'name':fields.char('Category Name', size=64, required=True, readonly=False),
|
||||
'code':fields.char('Category Code', size=64, required=True, readonly=False),
|
||||
'name':fields.char('Salary Head', size=64, required=True, readonly=False),
|
||||
'code':fields.char('Salary Head Code', size=64, required=True, readonly=False),
|
||||
'type':fields.many2one('hr.salary.head.type', 'Type', required=True, help="It is used only for the reporting purpose."),
|
||||
'base':fields.text('Based on', required=True, readonly=False, help='This will use to computer the % fields values, in general its on basic, but You can use all heads code field in small letter as a variable name i.e. hra, ma, lta, etc...., also you can use, static varible basic'),
|
||||
'condition':fields.char('Condition', size=1024, required=True, readonly=False, help='Applied this head for calculation if condition is true'),
|
||||
'sequence': fields.integer('Sequence', required=True, help='Use to arrange calculation sequence'),
|
||||
'note': fields.text('Description'),
|
||||
'user_id':fields.char('User', size=64, required=False, readonly=False),
|
||||
'state':fields.char('Label', size=64, required=False, readonly=False),
|
||||
'company_id':fields.many2one('res.company', 'Company', required=False),
|
||||
'dispaly_payslip_report': fields.boolean('Display on Payslip Report', help="Used for the display of head on Payslip Report."),
|
||||
'computation_based':fields.selection([
|
||||
('rules','List of Rules'),
|
||||
('exp','Expression'),
|
||||
],'Computation Based On', select=True, required=True),
|
||||
# 'computation_based':fields.selection([
|
||||
# ('rules','List of Rules'),
|
||||
# ('exp','Expression'),
|
||||
# ],'Computation Based On', select=True, required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'condition': lambda *a: 'True',
|
||||
'base': lambda *a:'basic',
|
||||
'sequence': lambda *a:5,
|
||||
'company_id': lambda self, cr, uid, context: \
|
||||
self.pool.get('res.users').browse(cr, uid, uid,
|
||||
context=context).company_id.id,
|
||||
'dispaly_payslip_report': 1,
|
||||
'computation_based':'rules',
|
||||
}
|
||||
payment_category()
|
||||
hr_salary_head()
|
||||
|
||||
class hr_holidays_status(osv.osv):
|
||||
|
||||
|
@ -701,8 +692,8 @@ class hr_holidays_status(osv.osv):
|
|||
('unpaid','Un-Paid Holiday'),
|
||||
('halfpaid','Half-Pay Holiday')
|
||||
], string='Payment'),
|
||||
'head_id': fields.many2one('hr.allounce.deduction.categoty', 'Payroll Head', domain=[('type','=','deduction')]),
|
||||
# 'code': fields.related('head_id','code', type='char', relation='hr.allounce.deduction.categoty', string='Code'),
|
||||
'head_id': fields.many2one('hr.salary.head', 'Payroll Head', domain=[('type','=','deduction')]),
|
||||
# 'code': fields.related('head_id','code', type='char', relation='hr.salary.head', string='Code'),
|
||||
'code':fields.char('Code', size=64, required=False, readonly=False),
|
||||
}
|
||||
_defaults = {
|
||||
|
@ -1202,7 +1193,7 @@ class hr_payslip_line(osv.osv):
|
|||
res = {
|
||||
}
|
||||
if category_id:
|
||||
category = self.pool.get('hr.allounce.deduction.categoty').browse(cr, uid, category_id)
|
||||
category = self.pool.get('hr.salary.head').browse(cr, uid, category_id)
|
||||
res.update({
|
||||
'sequence':category.sequence,
|
||||
'name':category.name,
|
||||
|
@ -1225,7 +1216,7 @@ class hr_payslip_line(osv.osv):
|
|||
'name':fields.char('Name', size=256, required=True, readonly=False),
|
||||
'base':fields.char('Formula', size=1024, required=False, readonly=False),
|
||||
'code':fields.char('Code', size=64, required=False, readonly=False),
|
||||
'category_id':fields.many2one('hr.allounce.deduction.categoty', 'Category', required=True),
|
||||
'category_id':fields.many2one('hr.salary.head', 'Category', required=True),
|
||||
'type':fields.many2one('hr.salary.head.type', 'Type', required=True),
|
||||
'amount_type':fields.selection([
|
||||
('per','Percentage (%)'),
|
||||
|
@ -1237,7 +1228,6 @@ class hr_payslip_line(osv.osv):
|
|||
'company_contrib': fields.float('Company Contribution', readonly=True, digits=(16, 4)),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'note':fields.text('Description'),
|
||||
'exp':fields.text('Expression'),
|
||||
}
|
||||
_order = 'sequence'
|
||||
_defaults = {
|
||||
|
@ -1252,15 +1242,22 @@ class hr_salary_rule(osv.osv):
|
|||
_name = 'hr.salary.rule'
|
||||
_columns = {
|
||||
'appears_on_payslip': fields.boolean('Appears on Payslip', help="Used for the display of rule on payslip"),
|
||||
'min_range': fields.float('Minimum Range', required=False, help="The minimum amount, applied for this rule."),
|
||||
'max_range': fields.float('Maximum Range', required=False, help="The maximum amount, applied for this rule."),
|
||||
'condition_range_min': fields.float('Minimum Range', required=False, help="The minimum amount, applied for this rule."),
|
||||
'condition_range_max': fields.float('Maximum Range', required=False, help="The maximum amount, applied for this rule."),
|
||||
'sal_rule_id':fields.many2one('hr.salary.rule', 'Parent Salary Structure', select=True),
|
||||
'child_depend':fields.boolean('Children Rule'),
|
||||
'child_ids':fields.one2many('hr.salary.rule', 'sal_rule_id', 'Child Salary Sructure'),
|
||||
'company_id':fields.many2one('res.company', 'Company', required=False),
|
||||
'register_id':fields.many2one('hr.contibution.register', 'Contri Reg', select=True),
|
||||
'computational_expression':fields.text('Computational Expression', required=True, readonly=False, help='This will use to computer the % fields values, in general its on basic, but You can use all heads code field in small letter as a variable name i.e. hra, ma, lta, etc...., also you can use, static varible basic'),
|
||||
'conditions':fields.char('Condition', size=1024, required=True, readonly=False, help='Applied this head for calculation if condition is true'),
|
||||
'sequence': fields.integer('Sequence', required=True, help='Use to arrange calculation sequence'),
|
||||
}
|
||||
_defaults = {
|
||||
'conditions': lambda *a: 'True',
|
||||
'computational_expression': lambda *a:'basic',
|
||||
'sequence': lambda *a:5,
|
||||
# 'computation_based':'rules',
|
||||
'appears_on_payslip': 1
|
||||
}
|
||||
|
||||
|
|
|
@ -12,112 +12,112 @@
|
|||
<field name="code">DED</field>
|
||||
</record>
|
||||
|
||||
<record id="HRA" model="hr.allounce.deduction.categoty">
|
||||
<record id="HRA" model="hr.salary.head">
|
||||
<field name="code">HRA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">House Rent Allowance</field>
|
||||
<field name="sequence" eval="5"/>
|
||||
</record>
|
||||
|
||||
<record id="CA" model="hr.allounce.deduction.categoty">
|
||||
<record id="CA" model="hr.salary.head">
|
||||
<field name="code">CA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Conveyance Allowance</field>
|
||||
<field name="sequence" eval="10"/>
|
||||
</record>
|
||||
|
||||
<record id="MA" model="hr.allounce.deduction.categoty">
|
||||
<record id="MA" model="hr.salary.head">
|
||||
<field name="code">MA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Medical Allowance</field>
|
||||
<field name="sequence" eval="15"/>
|
||||
</record>
|
||||
|
||||
<record id="TELA" model="hr.allounce.deduction.categoty">
|
||||
<record id="TELA" model="hr.salary.head">
|
||||
<field name="code">TELA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Telephone Allowance</field>
|
||||
<field name="sequence" eval="20"/>
|
||||
</record>
|
||||
|
||||
<record id="LTA" model="hr.allounce.deduction.categoty">
|
||||
<record id="LTA" model="hr.salary.head">
|
||||
<field name="code">LTA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Leave Travel Allowance</field>
|
||||
<field name="sequence" eval="25"/>
|
||||
</record>
|
||||
|
||||
<record id="NA" model="hr.allounce.deduction.categoty">
|
||||
<record id="NA" model="hr.salary.head">
|
||||
<field name="code">NA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Newspaper Allowance</field>
|
||||
<field name="sequence" eval="30"/>
|
||||
</record>
|
||||
|
||||
<record id="TA" model="hr.allounce.deduction.categoty">
|
||||
<record id="TA" model="hr.salary.head">
|
||||
<field name="code">TA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Traveling Allowance</field>
|
||||
<field name="sequence" eval="35"/>
|
||||
</record>
|
||||
|
||||
<record id="FA" model="hr.allounce.deduction.categoty">
|
||||
<record id="FA" model="hr.salary.head">
|
||||
<field name="code">FA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Food Allowance</field>
|
||||
<field name="sequence" eval="40"/>
|
||||
</record>
|
||||
|
||||
<record id="DA" model="hr.allounce.deduction.categoty">
|
||||
<record id="DA" model="hr.salary.head">
|
||||
<field name="code">DA</field>
|
||||
<field name="type" ref="AL"/>
|
||||
<field name="name">Dearness Allowance</field>
|
||||
<field name="sequence" eval="45"/>
|
||||
</record>
|
||||
|
||||
<record id="PF" model="hr.allounce.deduction.categoty">
|
||||
<record id="PF" model="hr.salary.head">
|
||||
<field name="code">PF</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Provident Fund</field>
|
||||
<field name="sequence" eval="50"/>
|
||||
</record>
|
||||
|
||||
<record id="PT" model="hr.allounce.deduction.categoty">
|
||||
<record id="PT" model="hr.salary.head">
|
||||
<field name="code">PT</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Professional Tax</field>
|
||||
<field name="sequence" eval="55"/>
|
||||
</record>
|
||||
|
||||
<record id="WF" model="hr.allounce.deduction.categoty">
|
||||
<record id="WF" model="hr.salary.head">
|
||||
<field name="code">WF</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Welfare</field>
|
||||
<field name="sequence" eval="60"/>
|
||||
</record>
|
||||
|
||||
<record id="TDS" model="hr.allounce.deduction.categoty">
|
||||
<record id="TDS" model="hr.salary.head">
|
||||
<field name="code">TDS</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Tax Deduct at Source</field>
|
||||
<field name="sequence" eval="65"/>
|
||||
</record>
|
||||
|
||||
<record id="LWP" model="hr.allounce.deduction.categoty">
|
||||
<record id="LWP" model="hr.salary.head">
|
||||
<field name="code">LWP</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Leave without pay</field>
|
||||
<field name="sequence" eval="70"/>
|
||||
</record>
|
||||
|
||||
<record id="FC" model="hr.allounce.deduction.categoty">
|
||||
<record id="FC" model="hr.salary.head">
|
||||
<field name="code">FC</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Food Coupons</field>
|
||||
<field name="sequence" eval="75"/>
|
||||
</record>
|
||||
|
||||
<record id="ESI" model="hr.allounce.deduction.categoty">
|
||||
<record id="ESI" model="hr.salary.head">
|
||||
<field name="code">ESI</field>
|
||||
<field name="type" ref="DED"/>
|
||||
<field name="name">Employee's State Insurance</field>
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
</record>
|
||||
|
||||
<!-- Employee Contract -->
|
||||
<record id="hr_contract_firstcontract1" model="hr.contract">
|
||||
<!-- <record id="hr_contract_firstcontract1" model="hr.contract">
|
||||
<field name="wage_type_id" ref="hr_contract.hr_contract_monthly_gross"/>
|
||||
<field name="name">First Contract</field>
|
||||
<field name="type_id" ref="hr_contract.hr_contract_type_emp"/>
|
||||
|
@ -80,9 +80,9 @@
|
|||
<field eval="4000.0" name="wage"/>
|
||||
<field eval="5" name="working_days_per_week"/>
|
||||
</record>
|
||||
|
||||
-->
|
||||
<!-- Payslip -->
|
||||
<record id="hr_payslip_salaryslipofbonamyforjune0" model="hr.payslip">
|
||||
<!-- <record id="hr_payslip_salaryslipofbonamyforjune0" model="hr.payslip">
|
||||
<field name="number">SLIP/001</field>
|
||||
<field name="deg_id" ref="hr_payroll.structure_001"/>
|
||||
<field name="employee_id" ref="hr_employee_bonamy0"/>
|
||||
|
@ -90,6 +90,6 @@
|
|||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="date" eval="time.strftime('%Y-%m')+'-5'"/>
|
||||
<field name="name" eval="'Salary Slip of Bonamy for June-'+time.strftime('%Y')"/>
|
||||
</record>
|
||||
</record>-->
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -465,51 +465,39 @@
|
|||
<menuitem action="action_view_hr_payslip_form" id="menu_department_tree" parent="menu_hr_root_payroll"/>
|
||||
|
||||
<!-- Payment Heads -->
|
||||
<record id="hr_allounce_deduction_categoty_form" model="ir.ui.view">
|
||||
<field name="name">hr.allounce.deduction.categoty.form</field>
|
||||
<field name="model">hr.allounce.deduction.categoty</field>
|
||||
<record id="hr_salary_head_form" model="ir.ui.view">
|
||||
<field name="name">hr.salary.head.form</field>
|
||||
<field name="model">hr.salary.head</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Salary Heads">
|
||||
<group col="6" colspan="6">
|
||||
<group col="6" colspan="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="sequence"/>
|
||||
<field name="type" select="1"/>
|
||||
<field name="dispaly_payslip_report"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="4" string="Dynamic Computation"/>
|
||||
<field name="computation_based" select="1"/>
|
||||
<separator colspan="4" string="Expression"/>
|
||||
<field name="base" colspan="4" nolabel="1"/>
|
||||
</group>
|
||||
<group col="3" colspan="6">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="type" select="1"/>
|
||||
<field name="dispaly_payslip_report"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Description"/>
|
||||
<field name="note" colspan="4" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="hr_allounce_deduction_categoty_tree" model="ir.ui.view">
|
||||
<field name="name">hr.allounce.deduction.categoty.tree</field>
|
||||
<field name="model">hr.allounce.deduction.categoty</field>
|
||||
<record id="hr_salary_head_tree" model="ir.ui.view">
|
||||
<field name="name">hr.salary.head.tree</field>
|
||||
<field name="model">hr.salary.head</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Salary Heads">
|
||||
<field name="name"/>
|
||||
<field name="code"/>
|
||||
<field name="type"/>
|
||||
<field name="base"/>
|
||||
<field name="condition"/>
|
||||
<field name="sequence"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_allounce_deduction_categoty_filter" model="ir.ui.view">
|
||||
<field name="name">hr.allounce.deduction.categoty.select</field>
|
||||
<field name="model">hr.allounce.deduction.categoty</field>
|
||||
<record id="view_hr_salary_head_filter" model="ir.ui.view">
|
||||
<field name="name">hr.salary.head.select</field>
|
||||
<field name="model">hr.salary.head</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Salary Heads">
|
||||
|
@ -521,23 +509,22 @@
|
|||
<field name="type"/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="4" col="4" groups="base.group_extended">
|
||||
<filter string="Based" icon="terp-go-month" domain="[]" context="{'group_by':'base'}"/>
|
||||
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_allounce_deduction_tree" model="ir.actions.act_window">
|
||||
<record id="action_hr_salary_head" model="ir.actions.act_window">
|
||||
<field name="name">Salary Heads</field>
|
||||
<field name="res_model">hr.allounce.deduction.categoty</field>
|
||||
<field name="res_model">hr.salary.head</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="hr_allounce_deduction_categoty_tree"/>
|
||||
<field name="search_view_id" ref="view_allounce_deduction_categoty_filter"/>
|
||||
<field name="view_id" ref="hr_salary_head_tree"/>
|
||||
<field name="search_view_id" ref="view_hr_salary_head_filter"/>
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_hr_allounce_deduction_tree"
|
||||
action="hr_allounce_deduction_tree"
|
||||
id="menu_hr_salary_head"
|
||||
action="action_hr_salary_head"
|
||||
parent="payroll_configure"
|
||||
/>
|
||||
<!-- End Payment Heads -->
|
||||
|
@ -801,24 +788,27 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Salary Rules">
|
||||
<group col="3" colspan="6">
|
||||
<group col="6" colspan="6">
|
||||
<field name="name"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="min_range"/>
|
||||
<field name="max_range"/>
|
||||
<field name="appears_on_payslip"/>
|
||||
<field name="condition_range_min"/>
|
||||
<field name="condition_range_max"/>
|
||||
</group>
|
||||
<group col="6" colspan="6">
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="4" string="Calculations"/>
|
||||
<field name="category_id" on_change="onchange_category(category_id)"/>
|
||||
<field name="type"/>
|
||||
<field name="amount_type"/>
|
||||
<field name="amount" on_change="onchange_amount(amount, amount_type)" attrs="{'readonly':[('amount_type','=','func')]}"/>
|
||||
<field name="sequence" groups="base.group_extended"/>
|
||||
<field name="sequence" />
|
||||
<field name="conditions"/>
|
||||
</group>
|
||||
<group col="2" colspan="4">
|
||||
<separator colspan="4" string="Computational Expression"/>
|
||||
<field name="computational_expression" colspan="4" nolabel="1"/>
|
||||
</group>
|
||||
<group col="2" colspan="2" attrs="{'invisible':[('amount_type','!=','code')]}">
|
||||
<separator colspan="2" string="Applicable code (if Amount Type = Python code)"/>
|
||||
<field name="exp" nolabel="1" attrs="{'readonly':[('amount_type','!=','code')],'required':[('amount_type','=','code')]}"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Child Rules" groups="base.group_extended">
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"access_hr_payroll_advice_line","hr.payroll.advice.line","model_hr_payroll_advice_line","base.group_hr_user",1,1,1,1
|
||||
"access_hr_contibution_register","hr.contibution.register","model_hr_contibution_register","base.group_hr_user",1,1,1,1
|
||||
"access_hr_contibution_register_line","hr.contibution.register.line","model_hr_contibution_register_line","base.group_hr_user",1,1,1,1
|
||||
"access_hr_allounce_deduction_category","hr.allounce.deduction.category","model_hr_allounce_deduction_categoty","base.group_hr_user",1,1,1,1
|
||||
"access_hr_salary_head","hr.salary.head","model_hr_salary_head","base.group_hr_user",1,1,1,1
|
||||
"access_hr_payslip","hr.payslip","model_hr_payslip","base.group_hr_user",1,1,1,1
|
||||
"access_hr_payslip_line","hr.payslip.line","model_hr_payslip_line","base.group_hr_user",1,1,1,1
|
||||
"access_res_partner_payroll","res.partner.payroll","base.model_res_partner","base.group_hr_user",1,1,1,1
|
||||
|
|
|
Loading…
Reference in New Issue