[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:
mtr 2011-03-03 15:22:26 +05:30
parent 183e37aaef
commit d840425793
5 changed files with 75 additions and 88 deletions

View File

@ -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
}

View File

@ -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>

View File

@ -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>

View File

@ -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">

View File

@ -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

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
6 access_hr_payroll_advice_line hr.payroll.advice.line model_hr_payroll_advice_line base.group_hr_user 1 1 1 1
7 access_hr_contibution_register hr.contibution.register model_hr_contibution_register base.group_hr_user 1 1 1 1
8 access_hr_contibution_register_line hr.contibution.register.line model_hr_contibution_register_line base.group_hr_user 1 1 1 1
9 access_hr_allounce_deduction_category access_hr_salary_head hr.allounce.deduction.category hr.salary.head model_hr_allounce_deduction_categoty model_hr_salary_head base.group_hr_user 1 1 1 1
10 access_hr_payslip hr.payslip model_hr_payslip base.group_hr_user 1 1 1 1
11 access_hr_payslip_line hr.payslip.line model_hr_payslip_line base.group_hr_user 1 1 1 1
12 access_res_partner_payroll res.partner.payroll base.model_res_partner base.group_hr_user 1 1 1 1