[IMP]: implement passport, passport based contracts

bzr revid: mga@tinyerp.com-20100605073216-kfbka70jhkacfsmo
This commit is contained in:
Mantavya Gajjar
2010-06-05 13:02:16 +05:30
parent a8cda443b4
commit 6d29e1ec65
3 changed files with 205 additions and 6 deletions
+5 -5
View File
@@ -46,11 +46,11 @@
],
'update_xml': [
'hr_payroll_view.xml',
'hr_payroll_workflow.xml',
'hr_payroll_sequence.xml',
'hr_paroll_report.xml',
'hr_payroll_data.xml',
'hr_payroll_wizard.xml'
# 'hr_payroll_workflow.xml',
# 'hr_payroll_sequence.xml',
# 'hr_paroll_report.xml',
# 'hr_payroll_data.xml',
# 'hr_payroll_wizard.xml'
],
'demo_xml': [
],
+72
View File
@@ -20,3 +20,75 @@
#
##############################################################################
import time
import netsvc
from osv import osv
from osv import fields
from tools import config
from tools.translate import _
class hr_passport(osv.osv):
'''
Passport Detail
'''
_name = 'hr.passport'
_description = 'Passport Detail'
_columns = {
'employee_id':fields.many2one('hr.employee', 'Employee', required=True),
'name':fields.char('Passport No', size=64, required=True, readonly=False),
'country_id':fields.many2one('res.country', 'Country of Issue', required=True),
'date_issue': fields.date('Passport Issue Date'),
'date_expire': fields.date('Passport Expire Date'),
'address_id':fields.many2one('res.partner.address', 'Address', required=False, help="Address mention in Passport"),
'contracts_ids':fields.one2many('hr.contract', 'passport_id', 'Contracts', required=False, readonly=True),
'note': fields.text('Description'),
}
hr_passport()
class hr_payroll_structure(osv.osv):
'''
Salary Structure
'''
_name = 'hr.payroll.structure'
_description = 'Salary structure'
_columns = {
'name':fields.char('Name', size=64, required=True),
'code':fields.char('Code', size=64, required=True),
# 'line_ids':fields.one2many('hr.payslip.line', 'function_id', 'Salary Structure', required=False),
'account_id':fields.many2one('account.analytic.account', 'Analytic Account', required=False),
'company_id':fields.many2one('res.company', 'Company', required=False),
}
_defaults = {
'company_id': lambda self, cr, uid, context: \
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
}
def copy(self, cr, uid, id, default=None, context=None):
code = self.browse(cr, uid, id).code
default = {
'code':code+"(copy)",
'company_id':self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
}
res_id = super(hr_employee_grade, self).copy(cr, uid, id, default, context)
return res_id
hr_payroll_structure()
class hr_contract(osv.osv):
'''
Passport based Contract
'''
_inherit = 'hr.contract'
_description = 'Employee Contract'
_columns = {
'permit_no':fields.char('Work Permit No', size=256, required=False, readonly=False),
'passport_id':fields.many2one('hr.passport', 'Passport', required=False),
'visa_no':fields.char('Visa No', size=64, required=False, readonly=False),
'visa_expire': fields.date('Visa Expire Date'),
'struct_id' : fields.many2one('hr.payroll.structure', 'Salary Structure'),
}
hr_contract()
+128 -1
View File
@@ -1,8 +1,135 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Root Menus -->
<menuitem id="menu_hr_payroll_root" parent="hr.menu_hr_root" name="Payroll"/>
<menuitem id="menu_payroll_configure_root" parent="hr.menu_hr_configuration" name="Payroll"/>
<!-- Passport Views -->
<record id="hr_passport_form" model="ir.ui.view">
<field name="name">hr.passport.form</field>
<field name="model">hr.passport</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Passport">
<group col="6" colspan="4">
<field name="name" select="1" colspan="4"/>
<field name="employee_id" select="1"/>
</group>
<group col="2" colspan="2">
<separator string="Passport Location" colspan="2"/>
<field name="country_id" select="1"/>
<field name="address_id"/>
</group>
<group col="2" colspan="2">
<separator string="Valid From" colspan="2"/>
<field name="date_issue" select="1"/>
<field name="date_expire" select="1"/>
</group>
<notebook colspan="4">
<page string="Contracts">
<field name="contracts_ids" colspan="4" nolabel="1"/>
</page>
<page string="Remarks">
<separator string="Remarks" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
<record id="hr_passport_tree" model="ir.ui.view">
<field name="name">hr.passport.tree</field>
<field name="model">hr.passport</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Passports">
<field name="name"/>
<field name="employee_id"/>
<field name="country_id"/>
<field name="date_issue" select="1"/>
<field name="date_expire"/>
</tree>
</field>
</record>
<record id="action_hr_passport_tree" model="ir.actions.act_window">
<field name="name">Passports</field>
<field name="res_model">hr.passport</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_passport_tree"/>
</record>
<menuitem
id="menu_action_hr_passport_tree"
action="action_hr_passport_tree"
parent="menu_payroll_configure_root"
/>
<!-- End Passport Views -->
<!-- Employee Contract -->
<record id="hr_contract.hr_contract_view_form" model="ir.ui.view">
<field name="name">hr.contract.view.form</field>
<field name="model">hr.contract</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Contract">
<group colspan="3" col="6">
<field name="name" select="1"/>
<field name="employee_id" select="1"/>
<field name="job_id"/>
<field name="wage"/>
<field name="wage_type_id" widget="selection"/>
<field name="type_id" widget="selection"/>
</group>
<notebook>
<page string="Main Data">
<group col="2" colspan="2">
<separator colspan="2" string="Duration"/>
<field name="date_start" select="1"/>
<field name="date_end" select="1"/>
<field name="working_hours"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Advantages"/>
<field name="struct_id" select="1"/>
<field name="advantages_net"/>
<field name="advantages_gross"/>
<field name="advantages" nolabel="1" colspan="2"/>
</group>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="notes" nolabel="1"/>
</page>
<page string="Visa and Work Permit">
<group col="2" colspan="2">
<separator colspan="2" string="Passport"/>
<field name="passport_id"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Work Permit"/>
<field name="visa_no"/>
<field name="permit_no"/>
<field name="visa_expire"/>
</group>
</page>
</notebook>
</form>
</field>
</record>
<record id="action_hr_contract" model="ir.actions.act_window">
<field name="name">Payroll Contract</field>
<field name="res_model">hr.contract</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
</record>
<menuitem
action="action_hr_contract"
name="Employee Contract"
id="hr_menu_contract"
parent="menu_payroll_configure_root"
/>
<!-- End Employee Contract -->
</data>
</openerp>