[IMP]: implement passport, passport based contracts
bzr revid: mga@tinyerp.com-20100605073216-kfbka70jhkacfsmo
This commit is contained in:
@@ -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': [
|
||||
],
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user