diff --git a/employee_visa_management/README.rst b/employee_visa_management/README.rst new file mode 100644 index 000000000..cc51982ba --- /dev/null +++ b/employee_visa_management/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg + :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Visa Management +=============== +Employees can create visa application, approval of the visa is done by the manager. +We can also print the visa Management report + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +(http://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +Developer: (V15) Hridhya D, Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs Edited are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ \ No newline at end of file diff --git a/employee_visa_management/__init__.py b/employee_visa_management/__init__.py new file mode 100644 index 000000000..c5f8274f2 --- /dev/null +++ b/employee_visa_management/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/employee_visa_management/__manifest__.py b/employee_visa_management/__manifest__.py new file mode 100644 index 000000000..b60d3f8f8 --- /dev/null +++ b/employee_visa_management/__manifest__.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Visa Management', + 'version': '15.0.1.0.0', + 'category': 'Human Resources', + 'summary': 'This module helps to manage visa of the employees', + 'description': """Employees can create visa application, approval + of the visa is done by the manager + We can also print the visa Management report""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "http://www.cybrosys.com", + 'depends': ['hr'], + 'data': [ + 'security/employee_visa_management_groups.xml', + 'security/employee_visa_security.xml', + 'security/ir.model.access.csv', + 'data/ir_cron_data.xml', + 'data/ir_sequence_data.xml', + 'views/visa_approval_views.xml', + 'views/visa_application_views.xml', + 'views/hr_employee_views.xml', + 'report/visa_approval_reports.xml', + 'report/visa_approval_templates.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/employee_visa_management/data/ir_cron_data.xml b/employee_visa_management/data/ir_cron_data.xml new file mode 100644 index 000000000..d964a98d2 --- /dev/null +++ b/employee_visa_management/data/ir_cron_data.xml @@ -0,0 +1,13 @@ + + + + + Check Expired Date + + code + model.update_state() + 1 + days + -1 + + diff --git a/employee_visa_management/data/ir_sequence_data.xml b/employee_visa_management/data/ir_sequence_data.xml new file mode 100644 index 000000000..0e71624cc --- /dev/null +++ b/employee_visa_management/data/ir_sequence_data.xml @@ -0,0 +1,14 @@ + + + + + Visa Management + visa.management + TRUE + VP + 9 + 1 + 1 + + + diff --git a/employee_visa_management/doc/RELEASE_NOTES.md b/employee_visa_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..619f203ed --- /dev/null +++ b/employee_visa_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 02.12.2023 +#### Version 15.0.1.0.0 +#### ADD +- Initial commit for Visa Management diff --git a/employee_visa_management/models/__init__.py b/employee_visa_management/models/__init__.py new file mode 100644 index 000000000..ab6448e40 --- /dev/null +++ b/employee_visa_management/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import hr_employee +from . import visa_application +from . import visa_approval diff --git a/employee_visa_management/models/hr_employee.py b/employee_visa_management/models/hr_employee.py new file mode 100644 index 000000000..67f5bccf5 --- /dev/null +++ b/employee_visa_management/models/hr_employee.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class HrEmployee(models.Model): + """The class HrEmployee for the model hr_employee which + is for customization regarding Employee Visa page""" + _inherit = "hr.employee" + + employee_visa_ids = fields.One2many('visa.approval', 'employee_id', + string="Visa Application no", + help="Visa Application no") diff --git a/employee_visa_management/models/visa_application.py b/employee_visa_management/models/visa_application.py new file mode 100644 index 000000000..35dad33c6 --- /dev/null +++ b/employee_visa_management/models/visa_application.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class VisaApplication(models.Model): + """This class VisaApplication is to view applied Visa""" + _name = 'visa.application' + _description = 'Visa Application' + + name = fields.Char(string='name', readonly=True, help="Name") + visa_approvals_ids = fields.One2many('visa.approval', + 'visa_application_no_id', + string="Visa Approvals", + readonly=True, help="Visa Approvals") + company_id = fields.Many2one('res.company', string='Company', + help="If set, corresponding record are shown " + "for this specific company") diff --git a/employee_visa_management/models/visa_approval.py b/employee_visa_management/models/visa_approval.py new file mode 100644 index 000000000..a84710323 --- /dev/null +++ b/employee_visa_management/models/visa_approval.py @@ -0,0 +1,225 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Hridhya D () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from datetime import datetime +from werkzeug import urls +from odoo import api, fields, models, _ + + +class VisaApproval(models.Model): + """The class VisaApproval is for applying the Visa""" + _name = 'visa.approval' + _description = 'Visa Approval' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string="Approval No", readonly=True, + default='New', help="Approval No") + application_date = fields.Date(default=datetime.today(), + string="Application Date", + help="Date of Applying Visa") + visa_application_no_id = fields.Many2one('visa.application', + string="Visa Application No", + help="Visa application number" + " of employee") + expire_date = fields.Date(string="Expire Date", + help="Expiry Date of the Visa") + is_expired = fields.Boolean(string='Is Expired', + compute='_compute_is_expired', + search='_search_is_expired', + help="If enabled, the Visa is expired") + state = fields.Selection( + [('draft', 'Draft'), ('submit', 'Submitted'), ('approved', 'Approved'), + ('expired', 'Expired'), + ('reject', 'Rejected')], default='draft', + help="State of visa approval", + string='State of approval') + employee_id = fields.Many2one("hr.employee", string="Employee Name", + help="Name of the Employee") + visa_type = fields.Selection([ + ('tourist', 'Tourist'), + ('immigration', 'Immigration'), + ('student', 'Student'), + ('work', 'Work'), + ('other', 'Other')], string="Visa Type", help="Type of visa") + nationality_id = fields.Many2one(related="employee_id.country_id", + string="Nationality", + help="Nationality of the employee") + department_id = fields.Many2one(related="employee_id.department_id", + string="Department", + help="Department of the employee") + profession = fields.Char(related="employee_id.job_title", + string="Profession", + help="Profession of the employee") + passport = fields.Char(related="employee_id.passport_id", + string="Passport No", + help="Passport of the employee") + gender = fields.Selection([ + ('male', 'Male'), + ('female', 'Female'), + ('other', 'Other')], related="employee_id.gender", + help="Gender of the employee", string="Gender of the employee") + company_id = fields.Many2one('res.company', string="Company", + help="If set, corresponding record are shown " + "for this specific company") + + @api.model + def update_state(self): + """This function updates the state to expired if the visa is expired""" + for rec in self.search([('expire_date', '<', fields.date.today())]): + rec.write({'state': 'expired'}) + + @api.model + def create(self, vals): + """This function is used to generate sequence number for visa + approval""" + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'visa.management') or 'New' + result = super(VisaApproval, self).create(vals) + return result + + def action_visa_approve(self): + """This function is used to approve the visa""" + self.state = 'approved' + base_url = self.env['ir.config_parameter'].sudo().get_param( + 'web.base.url') + page_url = urls.url_join(base_url, + 'web#id=%(id)s&model=visa.approval&view_type=form' + % {'id': self.id}) + mail_content = _('Hi %s,
' + '
' + 'Your VISA Application have been approved.
' + 'You can check further details by clicking on the ' + 'button below:
' + '' + 'View
' + ) % (self.employee_id.name, page_url) + email_to = self.employee_id.work_email + main_content = { + 'subject': _('Visa Approved'), + 'body_html': mail_content, + 'email_to': email_to + } + mail_id = self.env['mail.mail'].create(main_content) + mail_id.mail_message_id.body = mail_content + mail_id.send() + + def action_visa_submit(self): + """This function is used to submit the visa application and it sends a + mail to the mail given in the company + provided in the address_id in the corresponding employee""" + self.state = 'submit' + base_url = self.env['ir.config_parameter'].sudo().get_param( + 'web.base.url') + page_url = urls.url_join(base_url, + 'web#id=%(id)s&model=visa.approval&view_type=form' + % {'id': self.id}) + mail_content = _('Hi,
' + '
' + 'The details of visa application and further details ' + 'can be viewed by ' + 'clicking on the button below:
' + '' + 'View
' + ) % (page_url) + email_to = self.employee_id.address_id.email + main_content = { + 'subject': _('Visa Application'), + 'body_html': mail_content, + 'email_to': email_to + } + mail_id = self.env['mail.mail'].create(main_content) + mail_id.mail_message_id.body = mail_content + mail_id.send() + + def action_renew(self): + """This function changes the state back to draft state""" + self.write({'state': 'draft'}) + + def action_reject(self): + """This function is used to reject the visa application and it sends + a mail to the employee""" + self.state = 'reject' + base_url = self.env['ir.config_parameter'].sudo().get_param( + 'web.base.url') + Urls = urls.url_join(base_url, + 'web#id=%(id)s&model=visa.approval&view_type=form' + % {'id': self.id}) + mail_content = _('Hi %s,
' + '
' + 'Your VISA Application have been rejected.
' + 'You can check further details by clicking on the ' + 'button below:
' + '' + 'View
' + ) % \ + (self.employee_id.name, Urls) + email_to = self.employee_id.work_email + main_content = { + 'subject': _('Visa Rejected'), + 'body_html': mail_content, + 'email_to': email_to + } + mail_id = self.env['mail.mail'].create(main_content) + mail_id.mail_message_id.body = mail_content + mail_id.send() + + def _compute_is_expired(self): + """This function is used to compute the is_expired field""" + now = fields.Datetime.now() + for rec in self: + rec.is_expired = now.date() > rec.expire_date + + def _search_is_expired(self): + """This function is used to search the is_expired field""" + now = fields.Datetime.now() + ids = self.env['visa.approval']._search([('expire_date', '<', now)]) + return [('id', 'in', ids)] diff --git a/employee_visa_management/report/visa_approval_reports.xml b/employee_visa_management/report/visa_approval_reports.xml new file mode 100644 index 000000000..ae7c0d4fd --- /dev/null +++ b/employee_visa_management/report/visa_approval_reports.xml @@ -0,0 +1,13 @@ + + + + + Visa Management + visa.approval + qweb-pdf + employee_visa_management.report_visa_management + employee_visa_management.report_visa_management + + report + + diff --git a/employee_visa_management/report/visa_approval_templates.xml b/employee_visa_management/report/visa_approval_templates.xml new file mode 100644 index 000000000..9045a36e1 --- /dev/null +++ b/employee_visa_management/report/visa_approval_templates.xml @@ -0,0 +1,61 @@ + + + + + diff --git a/employee_visa_management/security/employee_visa_management_groups.xml b/employee_visa_management/security/employee_visa_management_groups.xml new file mode 100644 index 000000000..51b64bd1c --- /dev/null +++ b/employee_visa_management/security/employee_visa_management_groups.xml @@ -0,0 +1,13 @@ + + + + Visa + Visa Management + 20 + + + + Manager + + + diff --git a/employee_visa_management/security/employee_visa_security.xml b/employee_visa_management/security/employee_visa_security.xml new file mode 100644 index 000000000..51b3a6cf9 --- /dev/null +++ b/employee_visa_management/security/employee_visa_security.xml @@ -0,0 +1,14 @@ + + + + + Visa Application multi-company + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + Visa Approval multi-company + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + diff --git a/employee_visa_management/security/ir.model.access.csv b/employee_visa_management/security/ir.model.access.csv new file mode 100644 index 000000000..95d2eec8d --- /dev/null +++ b/employee_visa_management/security/ir.model.access.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +access_visa_approval_user,access.visa.approval.user,model_visa_approval,base.group_user,1,1,1,1 +access_visa_application_user,access.visa.application.user,model_visa_application,base.group_user,1,1,1,1 diff --git a/employee_visa_management/static/description/assets/icons/check.png b/employee_visa_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/check.png differ diff --git a/employee_visa_management/static/description/assets/icons/chevron.png b/employee_visa_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/chevron.png differ diff --git a/employee_visa_management/static/description/assets/icons/cogs.png b/employee_visa_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/cogs.png differ diff --git a/employee_visa_management/static/description/assets/icons/consultation.png b/employee_visa_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/consultation.png differ diff --git a/employee_visa_management/static/description/assets/icons/ecom-black.png b/employee_visa_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/ecom-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/education-black.png b/employee_visa_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/education-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/hotel-black.png b/employee_visa_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/hotel-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/license.png b/employee_visa_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/license.png differ diff --git a/employee_visa_management/static/description/assets/icons/lifebuoy.png b/employee_visa_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/lifebuoy.png differ diff --git a/employee_visa_management/static/description/assets/icons/logo.png b/employee_visa_management/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/logo.png differ diff --git a/employee_visa_management/static/description/assets/icons/manufacturing-black.png b/employee_visa_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/pos-black.png b/employee_visa_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/pos-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/puzzle.png b/employee_visa_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/puzzle.png differ diff --git a/employee_visa_management/static/description/assets/icons/restaurant-black.png b/employee_visa_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/restaurant-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/service-black.png b/employee_visa_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/service-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/trading-black.png b/employee_visa_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/trading-black.png differ diff --git a/employee_visa_management/static/description/assets/icons/training.png b/employee_visa_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/training.png differ diff --git a/employee_visa_management/static/description/assets/icons/update.png b/employee_visa_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/update.png differ diff --git a/employee_visa_management/static/description/assets/icons/user.png b/employee_visa_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/user.png differ diff --git a/employee_visa_management/static/description/assets/icons/wrench.png b/employee_visa_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/employee_visa_management/static/description/assets/icons/wrench.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_checklist.png b/employee_visa_management/static/description/assets/modules/employee_checklist.png new file mode 100644 index 000000000..c1ba9df62 Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_checklist.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_checklist_image.png b/employee_visa_management/static/description/assets/modules/employee_checklist_image.png new file mode 100644 index 000000000..0bad2f051 Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_checklist_image.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_image.png b/employee_visa_management/static/description/assets/modules/employee_image.png new file mode 100644 index 000000000..30ad58232 Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_image.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_insurance.png b/employee_visa_management/static/description/assets/modules/employee_insurance.png new file mode 100644 index 000000000..33427287a Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_insurance.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_stages.png b/employee_visa_management/static/description/assets/modules/employee_stages.png new file mode 100644 index 000000000..7f48b87ac Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_stages.png differ diff --git a/employee_visa_management/static/description/assets/modules/employee_vehicle_request.png b/employee_visa_management/static/description/assets/modules/employee_vehicle_request.png new file mode 100644 index 000000000..5a9eead0a Binary files /dev/null and b/employee_visa_management/static/description/assets/modules/employee_vehicle_request.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/hero.gif b/employee_visa_management/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..5e46b0172 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/hero.gif differ diff --git a/employee_visa_management/static/description/assets/screenshots/visa0.png b/employee_visa_management/static/description/assets/screenshots/visa0.png new file mode 100644 index 000000000..cc2154dda Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visa0.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visa1.png b/employee_visa_management/static/description/assets/screenshots/visa1.png new file mode 100644 index 000000000..0a252210a Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visa1.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visa2.png b/employee_visa_management/static/description/assets/screenshots/visa2.png new file mode 100644 index 000000000..9c03d2f7c Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visa2.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visag0.png b/employee_visa_management/static/description/assets/screenshots/visag0.png new file mode 100644 index 000000000..bbec24c5a Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visag0.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visag1.png b/employee_visa_management/static/description/assets/screenshots/visag1.png new file mode 100644 index 000000000..3c3268815 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visag1.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visag2.png b/employee_visa_management/static/description/assets/screenshots/visag2.png new file mode 100644 index 000000000..6ca25b9a8 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visag2.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visag3.png b/employee_visa_management/static/description/assets/screenshots/visag3.png new file mode 100644 index 000000000..02202c795 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visag3.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visam0.png b/employee_visa_management/static/description/assets/screenshots/visam0.png new file mode 100644 index 000000000..f8c592af9 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visam0.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visam1.png b/employee_visa_management/static/description/assets/screenshots/visam1.png new file mode 100644 index 000000000..547345bf6 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visam1.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visam2.png b/employee_visa_management/static/description/assets/screenshots/visam2.png new file mode 100644 index 000000000..7ac7ac9e1 Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visam2.png differ diff --git a/employee_visa_management/static/description/assets/screenshots/visap.png b/employee_visa_management/static/description/assets/screenshots/visap.png new file mode 100644 index 000000000..9f5fb9b9e Binary files /dev/null and b/employee_visa_management/static/description/assets/screenshots/visap.png differ diff --git a/employee_visa_management/static/description/banner.png b/employee_visa_management/static/description/banner.png new file mode 100644 index 000000000..a96bb6cd4 Binary files /dev/null and b/employee_visa_management/static/description/banner.png differ diff --git a/employee_visa_management/static/description/icon.png b/employee_visa_management/static/description/icon.png new file mode 100644 index 000000000..6b351c30c Binary files /dev/null and b/employee_visa_management/static/description/icon.png differ diff --git a/employee_visa_management/static/description/index.html b/employee_visa_management/static/description/index.html new file mode 100644 index 000000000..05a6fd5e3 --- /dev/null +++ b/employee_visa_management/static/description/index.html @@ -0,0 +1,669 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+ + +
+
+
+

+ Visa Management

+

+ Manage Visa of the Employees +

` + +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ This module helps to systematically manage the visa of the employee. Using this app we can apply for + visa and also renew the visa after + visa gets expired. +

+
+ +
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Helps to Manage Employee Visa

+
+
+ +
+
+ +
+
+

+ Manger receives an email if an employee has applied for Visa/ Renewal of Visa

+
+
+
+
+ +
+
+

+ Employee receives an Email if the manager has approved or rejected the application. +

+
+
+ +
+ +
+
+

+ Screenshots +

+
+
+

+ Applying for Visa

+ +

+ The employee can apply for Visa by filling the visa application form. On filling the employee name, + remaining details of the employee gets filled automatically based on the information given.
+ Here, employee can also choose the visa type. After filling the form, the employee clicks on the submit + button.
The employees can even renew the application if the visa is expired. In the expired application forms an addition button appears inorder to renew the visa. + +

+ +
+ +
+

+ It sends a mail to the company mail based on the submission, where the company can approve and reject + the application. +

+ +
+
+

+ Manager

+

On clicking view button in the mail, it redirects us to the visa + application form. Here, managers can + either approve or reject the application.
+ On rejecting, it sends mail back to the employee with content + that the application is rejected.
+ On approving, it sends a mail with content that the application + have been approved.

+ +
+ +
+

And the details such as visa application number and expire date can be filled. These 2 fields can only be + filled by the manager.

+ + +
+ +
+

+ Visa Report

+

+ The employee can print the application form on clicking the print button. +

+ +
+ + +
+

+ Visa Applications

+

+ All the visa applications can be viewed from the visa application menu under visa management menu.

+ +
+
+

+ Employee

+

+ When checking the employee we can see a new page which contains information about the visa

+ +
+ + +
+

+ How to set Visa Manager?

+ + +

+ Inorder to set the manager, who can approve and reject the application. Go to the setting. +

+ +

+ Under user and companies menu select the groups

+ +

+ Select Manager group and add the manager.

+ + +
+ + + +
+
+

Suggested Products

+
+ + +
+
+ + + +
+
+
+

Our Services

+
+
+ +
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + + +
+
+
+

Our Industries

+
+
+ +
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+ +
+
+ + + + + +
+
+
+

Need Help?

+
+
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
+
\ No newline at end of file diff --git a/employee_visa_management/views/hr_employee_views.xml b/employee_visa_management/views/hr_employee_views.xml new file mode 100644 index 000000000..ce12485df --- /dev/null +++ b/employee_visa_management/views/hr_employee_views.xml @@ -0,0 +1,22 @@ + + + + + hr.employee.view.form.inherit.employee.visa.management + hr.employee + + + + + + + + + + + + + + + + diff --git a/employee_visa_management/views/visa_application_views.xml b/employee_visa_management/views/visa_application_views.xml new file mode 100644 index 000000000..9b8222ad7 --- /dev/null +++ b/employee_visa_management/views/visa_application_views.xml @@ -0,0 +1,35 @@ + + + + + visa.application.view.form + visa.application + +
+ +

+ +

+ + + + + + +
+
+
+
+ + + Visa Applications + ir.actions.act_window + visa.application + tree,form + + + +
diff --git a/employee_visa_management/views/visa_approval_views.xml b/employee_visa_management/views/visa_approval_views.xml new file mode 100644 index 000000000..9f17124e3 --- /dev/null +++ b/employee_visa_management/views/visa_approval_views.xml @@ -0,0 +1,108 @@ + + + + + visa.approval.view.form + visa.approval + +
+
+ +
+ +

+ +

+ + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+ + + visa.approval.view.form.inherit.employee.visa.management + visa.approval + + + + + 0 + + + 0 + + + + + + visa.approval.view.tree + visa.approval + + + + + + + + + + + + visa.approval.search + visa.approval + + + + + + + + + Visa Approval + ir.actions.act_window + visa.approval + tree,form + + + + + + +