@ -0,0 +1,39 @@ | 
				
			|||||
 | 
					Open HRMS Employee Transfer v11 | 
				
			||||
 | 
					=============================== | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Employee transfer between branches. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Depends | 
				
			||||
 | 
					======= | 
				
			||||
 | 
					[hr] addon Odoo | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Tech | 
				
			||||
 | 
					==== | 
				
			||||
 | 
					* [Python] - Models | 
				
			||||
 | 
					* [XML] - Odoo views | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Installation | 
				
			||||
 | 
					============ | 
				
			||||
 | 
					- www.odoo.com/documentation/11.0/setup/install.html | 
				
			||||
 | 
					- Install our custom addon | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Bug Tracker | 
				
			||||
 | 
					=========== | 
				
			||||
 | 
					Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					======= | 
				
			||||
 | 
					* Cybrosys Techno Solutions <https://www.cybrosys.com> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Author | 
				
			||||
 | 
					------ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Developer: Sreejith P @ cybrosys, sreejith@cybrosys.in | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Maintainer | 
				
			||||
 | 
					---------- | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					This module is maintained by Cybrosys Technologies. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					For support and more information, please visit https://www.cybrosys.com. | 
				
			||||
@ -0,0 +1,2 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from . import models | 
				
			||||
@ -0,0 +1,45 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					#    A part of Open HRMS Project <https://www.openhrms.com> | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Sreejith P (<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': 'Open HRMS Branch Transfer', | 
				
			||||
 | 
					    'version': '11.0.1.0.0', | 
				
			||||
 | 
					    'summary': 'Employee transfer between branches', | 
				
			||||
 | 
					    'category': 'Generic Modules/Human Resources', | 
				
			||||
 | 
					    'author': 'Cybrosys Techno solutions', | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': 'https://www.openhrms.com', | 
				
			||||
 | 
					    'depends': ['base', | 
				
			||||
 | 
					                'hr_employee_updation' | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					    'data': [ | 
				
			||||
 | 
					        'views/employee_transfer.xml', | 
				
			||||
 | 
					        'security/ir.model.access.csv', | 
				
			||||
 | 
					        'security/branch_security.xml', | 
				
			||||
 | 
					    ], | 
				
			||||
 | 
					    'images': ['static/description/banner.jpg'], | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'application': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					    'license': 'AGPL-3', | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,6 @@ | 
				
			|||||
 | 
					## Module hr_employee_transfer | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 21.04.2018 | 
				
			||||
 | 
					#### Version 11.0.1.0.0 | 
				
			||||
 | 
					##### ADD | 
				
			||||
 | 
					- Initial commit for OpenHrms Project | 
				
			||||
@ -0,0 +1,4 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from . import employee_transfer | 
				
			||||
 | 
					from . import hr_contract | 
				
			||||
 | 
					from . import res_company | 
				
			||||
@ -0,0 +1,106 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from datetime import date | 
				
			||||
 | 
					from odoo import models, fields, api, _ | 
				
			||||
 | 
					from odoo.tools import DEFAULT_SERVER_DATE_FORMAT | 
				
			||||
 | 
					from odoo.exceptions import Warning | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class EmployeeTransfer(models.Model): | 
				
			||||
 | 
					    _name = 'employee.transfer' | 
				
			||||
 | 
					    _description = 'Employee Transfer' | 
				
			||||
 | 
					    _order = "id desc" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def _default_employee(self): | 
				
			||||
 | 
					        emp_ids = self.env['hr.employee'].search([('user_id', '=', self.env.uid)]) | 
				
			||||
 | 
					        return emp_ids and emp_ids[0] or False | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    name = fields.Char(string='Name', help='Give a name to the Transfer', copy=False, default="/", readonly=True) | 
				
			||||
 | 
					    employee_id = fields.Many2one('hr.employee', string='Employee', required=True, | 
				
			||||
 | 
					                                  help='Select the employee you are going to transfer') | 
				
			||||
 | 
					    date = fields.Date(string='Date', default=fields.Date.today()) | 
				
			||||
 | 
					    branch = fields.Many2one('transfer.company', string='Transfer Branch', requried=True, copy=False, | 
				
			||||
 | 
					                             help='The Branch/Company which the employee is transferred') | 
				
			||||
 | 
					    state = fields.Selection( | 
				
			||||
 | 
					        [('draft', 'New'), ('cancel', 'Cancelled'), ('transfer', 'Transferred'), ('done', 'Done')], | 
				
			||||
 | 
					        string='Status', readonly=True, copy=False, default='draft', | 
				
			||||
 | 
					        help=" * The 'Draft' status is used when a transfer is created and unconfirmed Transfer.\n" | 
				
			||||
 | 
					             " * The 'Transferred' status is used when the user confirm the transfer. It stays in the open status till the other branch/company receive the employee.\n" | 
				
			||||
 | 
					             " * The 'Done' status is set automatically when the employee is Joined/Received.\n" | 
				
			||||
 | 
					             " * The 'Cancelled' status is used when user cancel Transfer." | 
				
			||||
 | 
					    ) | 
				
			||||
 | 
					    sequence_number = fields.Integer(string='Sequence Number', help='A unique sequence number for the Transfer', | 
				
			||||
 | 
					                                     default=1, copy=False) | 
				
			||||
 | 
					    company_id = fields.Many2one('res.company', string='Company', required=True, | 
				
			||||
 | 
					                                 related='employee_id.company_id', store=True) | 
				
			||||
 | 
					    note = fields.Text(string='Internal Notes') | 
				
			||||
 | 
					    responsible = fields.Many2one('hr.employee', string='Responsible', default=_default_employee, readonly=True) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.one | 
				
			||||
 | 
					    def transfer(self): | 
				
			||||
 | 
					        obj_emp = self.env['hr.employee'].browse(self.employee_id.id) | 
				
			||||
 | 
					        emp = {} | 
				
			||||
 | 
					        if not self.branch: | 
				
			||||
 | 
					            raise Warning(_( | 
				
			||||
 | 
					                'You should select the transfer branch/company.')) | 
				
			||||
 | 
					        for this in self: | 
				
			||||
 | 
					            emp = { | 
				
			||||
 | 
					                'name': self.employee_id.name, | 
				
			||||
 | 
					                'company_id': self.branch.company_id, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        new_emp = self.env['hr.employee'].create(emp) | 
				
			||||
 | 
					        if obj_emp.address_home_id: | 
				
			||||
 | 
					            obj_emp.address_home_id.active = False | 
				
			||||
 | 
					        for obj_contract in self.env['hr.contract'].search([('employee_id', '=', self.employee_id.id)]): | 
				
			||||
 | 
					            if obj_contract.date_end: | 
				
			||||
 | 
					                continue | 
				
			||||
 | 
					            if not obj_contract.date_end: | 
				
			||||
 | 
					                obj_contract.write({'date_end': date.today().strftime(DEFAULT_SERVER_DATE_FORMAT)}) | 
				
			||||
 | 
					                self.wage = obj_contract.wage | 
				
			||||
 | 
					        self.state = 'transfer' | 
				
			||||
 | 
					        self.employee_id = new_emp | 
				
			||||
 | 
					        obj_emp.write({'active': False}) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.multi | 
				
			||||
 | 
					    def receive_employee(self): | 
				
			||||
 | 
					        for this in self: | 
				
			||||
 | 
					            if this._context is None: | 
				
			||||
 | 
					                context = {} | 
				
			||||
 | 
					            partner = {} | 
				
			||||
 | 
					            for i in this: | 
				
			||||
 | 
					                partner = { | 
				
			||||
 | 
					                    'name': i.employee_id.name, | 
				
			||||
 | 
					                    'company_id': i.branch.company_id, | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					            partner_created = self.env['res.partner'].create(partner) | 
				
			||||
 | 
					            self.env['hr.employee'].browse(this.employee_id.id).write({'address_home_id': partner_created.id}) | 
				
			||||
 | 
					            return { | 
				
			||||
 | 
					                'name': _('Contract'), | 
				
			||||
 | 
					                'view_type': 'form', | 
				
			||||
 | 
					                'view_mode': 'form', | 
				
			||||
 | 
					                'res_model': 'hr.contract', | 
				
			||||
 | 
					                'type': 'ir.actions.act_window', | 
				
			||||
 | 
					                'target': 'current', | 
				
			||||
 | 
					                'context': {'default_employee_id': this.employee_id.id, | 
				
			||||
 | 
					                            'default_date_start': this.date, | 
				
			||||
 | 
					                            'default_emp_transfer': this.id, | 
				
			||||
 | 
					                            }, | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.one | 
				
			||||
 | 
					    def cancel_transfer(self): | 
				
			||||
 | 
					        obj_emp = self.env['hr.employee'].browse(self.employee_id.id) | 
				
			||||
 | 
					        emp = { | 
				
			||||
 | 
					            'name': self.employee_id.name, | 
				
			||||
 | 
					            'company_id': self.company_id.id, | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        obj_emp.write(emp) | 
				
			||||
 | 
					        for obj_contract in self.env['hr.contract'].search([('employee_id', '=', self.employee_id.id)]): | 
				
			||||
 | 
					            obj_contract.unlink() | 
				
			||||
 | 
					        self.state = 'cancel' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def create(self, vals): | 
				
			||||
 | 
					        vals['name'] = "Transfer Of " + self.env['hr.employee'].browse(vals['employee_id']).name | 
				
			||||
 | 
					        res = super(EmployeeTransfer, self).create(vals) | 
				
			||||
 | 
					        return res | 
				
			||||
@ -0,0 +1,16 @@ | 
				
			|||||
 | 
					from odoo import models, fields, api | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class HrContract(models.Model): | 
				
			||||
 | 
					    _inherit = 'hr.contract' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    company_id = fields.Many2one('res.company', 'Company', default=lambda self: self.env.user.company_id) | 
				
			||||
 | 
					    from_transfer = fields.Boolean(string='Transferred', default=False) | 
				
			||||
 | 
					    emp_transfer = fields.Many2one('employee.transfer', string='Transferred Employee') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def create(self, vals): | 
				
			||||
 | 
					        res = super(HrContract, self).create(vals) | 
				
			||||
 | 
					        if res.emp_transfer: | 
				
			||||
 | 
					            self.env['employee.transfer'].browse(res.emp_transfer.id).write({'state': 'done'}) | 
				
			||||
 | 
					        return res | 
				
			||||
@ -0,0 +1,19 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from odoo import models, fields, api | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class HrContract(models.Model): | 
				
			||||
 | 
					    _inherit = 'hr.employee' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    transfer_detail = fields.One2many('transfer.detail', 'employee_id', string='Transfer Details') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class TransferDetails(models.Model): | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _name = 'transfer.detail' | 
				
			||||
 | 
					    _description = 'Transfer Details' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    employee_id = fields.Many2one('hr.employee', string='Employee') | 
				
			||||
 | 
					    date = fields.Date(string='Date', copy=False) | 
				
			||||
 | 
					    company_id = fields.Many2one('res.company', string='Company') | 
				
			||||
 | 
					    pre_company = fields.Many2one('res.company', string='Previous Company') | 
				
			||||
@ -0,0 +1,40 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from odoo import models, fields, api | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class EmployeeTransfer(models.Model): | 
				
			||||
 | 
					    _name = 'transfer.company' | 
				
			||||
 | 
					    _description = 'Transfer Company' | 
				
			||||
 | 
					    _order = "id desc" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    name = fields.Char(string='Name', copy=False, ondelete='cascade') | 
				
			||||
 | 
					    company_id = fields.Integer(string='Company', help='Company name same as res.company', copy=False) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ResCompany(models.Model): | 
				
			||||
 | 
					    _inherit = 'res.company' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def init(self): | 
				
			||||
 | 
					        obj_company = self.env['res.company'].search([]) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        for company in obj_company: | 
				
			||||
 | 
					            obj_branch = self.env['transfer.company'].search([('company_id', '=', company.id)]) | 
				
			||||
 | 
					            com = {} | 
				
			||||
 | 
					            if not obj_branch: | 
				
			||||
 | 
					                com = { | 
				
			||||
 | 
					                    'name': company.name, | 
				
			||||
 | 
					                    'company_id': company.id, | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					                obj = self.env['transfer.company'].create(com) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def create(self, res): | 
				
			||||
 | 
					        result = super(ResCompany, self).create(res) | 
				
			||||
 | 
					        com = {} | 
				
			||||
 | 
					        com = { | 
				
			||||
 | 
					                'name': result.name, | 
				
			||||
 | 
					                'company_id': result.id, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        self.env['transfer.company'].create(com) | 
				
			||||
 | 
					        return result | 
				
			||||
@ -0,0 +1,18 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					        <record id="employee_rule" model="ir.rule"> | 
				
			||||
 | 
					            <field name="name">Employee Rule</field> | 
				
			||||
 | 
					            <field name="model_id" ref="hr.model_hr_employee"/> | 
				
			||||
 | 
					            <field name="global" eval="True"/> | 
				
			||||
 | 
					            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> | 
				
			||||
 | 
					        </record> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <record id="employee_contract_rule" model="ir.rule"> | 
				
			||||
 | 
					            <field name="name">Contract Rules</field> | 
				
			||||
 | 
					            <field name="model_id" ref="hr_contract.model_hr_contract"/> | 
				
			||||
 | 
					            <field name="global" eval="True"/> | 
				
			||||
 | 
					            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> | 
				
			||||
 | 
					        </record> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					</odoo> | 
				
			||||
		
		
			
  | 
| 
		 After Width: | Height: | Size: 17 KiB  | 
| 
		 After Width: | Height: | Size: 118 KiB  | 
| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
		 After Width: | Height: | Size: 104 KiB  | 
| 
		 After Width: | Height: | Size: 221 KiB  | 
| 
		 After Width: | Height: | Size: 50 KiB  | 
| 
		 After Width: | Height: | Size: 33 KiB  | 
@ -0,0 +1,111 @@ | 
				
			|||||
 | 
					
 | 
				
			||||
 | 
					<section class="oe_container oe_dark"> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced"> | 
				
			||||
 | 
					        <h2 class="oe_slogan">Open HRMS</h2> | 
				
			||||
 | 
					        <h3 class="oe_slogan">Most advanced open source HR management software</h3> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					<section class="oe_container"> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced oe_mt32"> | 
				
			||||
 | 
					        <div class="oe_span"> | 
				
			||||
 | 
					            <div class="oe_demo oe_picture oe_screenshot"> | 
				
			||||
 | 
					                <a href="https://www.openhrms.com/#request-demo"> | 
				
			||||
 | 
					                    <img src="HRMS-BUTTON.png"> | 
				
			||||
 | 
					                </a> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					<section class="oe_container oe_dark"> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced"> | 
				
			||||
 | 
					        <h2 class="oe_slogan">Branch Transfer</h2> | 
				
			||||
 | 
					        <h3 class="oe_slogan">Employee transfer between branches</h3> | 
				
			||||
 | 
					        <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced" style="padding-left:65px;"> | 
				
			||||
 | 
					        <h4>Features:</h4> | 
				
			||||
 | 
					        <div> | 
				
			||||
 | 
					            <span style="color:green;"> ☑ </span> Transfer Employee between branches.<br/> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<section class="oe_container "> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced"> | 
				
			||||
 | 
					        <div class="oe_picture"> | 
				
			||||
 | 
					            <h3 class="oe_slogan">Overview</h3> | 
				
			||||
 | 
					            <p class="oe_mt32 text-justify" style="text-align: center;"> | 
				
			||||
 | 
					                Transferring employees between company is a basic thing in a organization. Now Odoo lacks a provision for employee transfer. This module gives a basic structure for employee transfer<br/> | 
				
			||||
 | 
					                Make sure that you are multi company is enabled. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<section class="oe_container oe_dark"> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced"> | 
				
			||||
 | 
					        <h4 class="oe_slogan">Employee Transfer</h4> | 
				
			||||
 | 
					        <div class="oe_span12"> | 
				
			||||
 | 
					            <p class='oe_mt32'> | 
				
			||||
 | 
					                ☛ Create a Employee Transfer.<br> | 
				
			||||
 | 
					                ☛ Select the Transfer Company.<br> | 
				
			||||
 | 
					                ☛ Click on the sent button.<br> | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <div class="oe_row_img oe_centered"> | 
				
			||||
 | 
					                <img class="oe_picture oe_screenshot" src="create_a_transfer.png"> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<section class="oe_container "> | 
				
			||||
 | 
					    <div class="oe_row oe_spaced"> | 
				
			||||
 | 
					        <h4 class="oe_slogan">Contract</h4> | 
				
			||||
 | 
					        <div class="oe_span12"> | 
				
			||||
 | 
					            <p class='oe_mt32'> | 
				
			||||
 | 
					                ☛ Create new contract.<br> | 
				
			||||
 | 
					            <p> | 
				
			||||
 | 
					            <div class="oe_row_img oe_centered"> | 
				
			||||
 | 
					                <img class="oe_picture oe_screenshot" src="create_contract.png"> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<div class="row section-content"> | 
				
			||||
 | 
					 <div class="col-md-6 img-content"> | 
				
			||||
 | 
					 <h3>Our Odoo Services</h3> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					             </div>    <div class="bc-span col-md-12"><div class="inner-span"><a target="_blank" href="https://www.openhrms.com"><img class="img-border img-responsive thumbnail" src="cybro-service.png"></a></div></div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<section class="oe_container"> | 
				
			||||
 | 
					     <h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | 
				
			||||
 | 
					    <div class="oe_slogan" style="margin-top:10px !important;"> | 
				
			||||
 | 
					        <div> | 
				
			||||
 | 
					            <a | 
				
			||||
 | 
					            class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | 
				
			||||
 | 
					            href="https://www.cybrosys.com/contact/" target="_blank"><i | 
				
			||||
 | 
					            class="fa fa-phone"></i> Contact Us </a> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <a | 
				
			||||
 | 
					            class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | 
				
			||||
 | 
					            href="https://www.odoo.com/apps/modules/browse?search=open+hrms" target="_blank"><i | 
				
			||||
 | 
					            class="fa fa-suitcase"></i> Other Open HRMS Addons </a> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <a | 
				
			||||
 | 
					            class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | 
				
			||||
 | 
					            href="https://www.cybrosys.com/odoo-customization-and-installation/" target="_blank"><i | 
				
			||||
 | 
					            class="fa fa-wrench"></i> Request Customization </a> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <br> | 
				
			||||
 | 
					        <a href="https://www.cybrosys.com/" target="_blank"> | 
				
			||||
 | 
					            <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | 
				
			||||
 | 
					        </a> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</section> | 
				
			||||
@ -0,0 +1,80 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <record id="employee_transfer" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">Employee Transfer</field> | 
				
			||||
 | 
					        <field name="model">employee.transfer</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <form string="Employee Transfer"> | 
				
			||||
 | 
					                <header> | 
				
			||||
 | 
					                    <button name="transfer" string="Transfer" class="oe_highlight" type="object" states="draft" | 
				
			||||
 | 
					                    groups="hr.group_hr_manager"/> | 
				
			||||
 | 
					                    <button name="receive_employee" string="Receive" class="oe_highlight" type="object" | 
				
			||||
 | 
					                            groups="hr.group_hr_manager" states="transfer"/> | 
				
			||||
 | 
					                    <button name="cancel_transfer" string="Cancel" type="object" | 
				
			||||
 | 
					                        attrs="{'invisible':[('state','in',('draft', 'cancel'))]}" groups="hr.group_hr_manager"/> | 
				
			||||
 | 
					                    <field name="state" widget="statusbar" statusbar_visible="draft,transfer,done" /> | 
				
			||||
 | 
					                </header> | 
				
			||||
 | 
					                <sheet> | 
				
			||||
 | 
					                    <div class="oe_title oe_left"> | 
				
			||||
 | 
					                        <h2> | 
				
			||||
 | 
					                            <field name="name" class="oe_inline" placeholder="Name"/> | 
				
			||||
 | 
					                        </h2> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="employee_id" options="{'no_create': True}" attrs="{'readonly' : [('state', '!=', 'draft')] }"/> | 
				
			||||
 | 
					                            <field name="date" attrs="{'readonly' : [('state', '!=', 'draft')] }"/> | 
				
			||||
 | 
					                            <field name="branch" groups="base.group_multi_company" options="{'no_create': True}" | 
				
			||||
 | 
					                            attrs="{'readonly' : [('state', '!=', 'draft')] }"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="company_id" groups="base.group_multi_company" options="{'no_create': True}"/> | 
				
			||||
 | 
					                            <field name="responsible" options="{'no_create': True}"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                    </group> | 
				
			||||
 | 
					                    <notebook colspan="4"> | 
				
			||||
 | 
					                        <page string="Internal Notes" > | 
				
			||||
 | 
					                            <field name="note"/> | 
				
			||||
 | 
					                        </page> | 
				
			||||
 | 
					                    </notebook> | 
				
			||||
 | 
					                </sheet> | 
				
			||||
 | 
					            </form> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <record id="employee_transfer_tree" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">Employee Transfer Tree</field> | 
				
			||||
 | 
					        <field name="model">employee.transfer</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <tree string="Employee Transfer" decoration-info="state == 'draft'" decoration-muted="state in ('done','cancel')"> | 
				
			||||
 | 
					                <field name="name"/> | 
				
			||||
 | 
					                <field name="employee_id"/> | 
				
			||||
 | 
					                <field name="date"/> | 
				
			||||
 | 
					                <field name="branch" groups="base.group_multi_company"/> | 
				
			||||
 | 
					                <!--<field name="amount_total" sum="Amount total" widget="monetary"/>--> | 
				
			||||
 | 
					                <field name="company_id" groups="base.group_multi_company"/> | 
				
			||||
 | 
					                <field name="state"/> | 
				
			||||
 | 
					            </tree> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <record id="action_employee_transfer" model="ir.actions.act_window"> | 
				
			||||
 | 
					        <field name="name">Employee Transfer</field> | 
				
			||||
 | 
					        <field name="type">ir.actions.act_window</field> | 
				
			||||
 | 
					        <field name="res_model">employee.transfer</field> | 
				
			||||
 | 
					        <field name="view_type">form</field> | 
				
			||||
 | 
					        <field name="view_mode">tree,form</field> | 
				
			||||
 | 
					        <field name="view_id" eval="False"/> | 
				
			||||
 | 
					        <field name="domain">[]</field> | 
				
			||||
 | 
					        <field name="help" type="html"> | 
				
			||||
 | 
					            <p class="oe_view_nocontent_create"> | 
				
			||||
 | 
					                Click to create a new Transfer. | 
				
			||||
 | 
					            </p><p> | 
				
			||||
 | 
					                Use this menu to browse previous transfer. To record new | 
				
			||||
 | 
					                transfer, you may use the create button. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!--<menuitem id="menu_transfer_root" name="Employee Transfer" parent="hr.menu_hr_root" sequence="2" groups="hr.group_hr_manager"/>--> | 
				
			||||
 | 
					    <menuitem id="menu_employee_transfer" name="Employee Transfer" parent="hr_employee_updation.menu_hr_management" sequence="3" | 
				
			||||
 | 
					              action="action_employee_transfer" groups="hr.group_hr_manager"/> | 
				
			||||
 | 
					</odoo> | 
				
			||||