diff --git a/hr_leave_lop/README.rst b/hr_leave_lop/README.rst new file mode 100755 index 000000000..04f72f67d --- /dev/null +++ b/hr_leave_lop/README.rst @@ -0,0 +1,54 @@ +.. image:: https://img.shields.io/badge/license-OPL--1-red.svg + :target: https://www.odoo.com/documentation/16.0/legal/licenses.html#odoo-apps + :alt: License: OPL-1 + +Time Off LOP +============ +This module helps you to deduct loss of pay of an employee from the payslip. + +Configuration +============= +- www.odoo.com/documentation/17.0/setup/install.html +- Install the dependency package Pandas using the following commands + + * sudo pip3 install pandas + or + * sudo apt-get install pandas + +- Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Odoo Proprietary License v1.0 (OPL-1) +(https://www.odoo.com/documentation/16.0/legal/licenses.html#odoo-apps) + +Credits +------- +* Developer : (V16) Muhsina V, Contact : odoo@cybrosys.com + (V17) Noorjahan N A, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs 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: ``__ diff --git a/hr_leave_lop/__init__.py b/hr_leave_lop/__init__.py new file mode 100755 index 000000000..2d663b7c9 --- /dev/null +++ b/hr_leave_lop/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Noorjahan N A (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) It is forbidden to publish, distribute, sublicense, or +# sell copies of the Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +# THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +############################################################################### +from . import models diff --git a/hr_leave_lop/__manifest__.py b/hr_leave_lop/__manifest__.py new file mode 100755 index 000000000..c4961a07b --- /dev/null +++ b/hr_leave_lop/__manifest__.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Noorjahan N A (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) It is forbidden to publish, distribute, sublicense, or +# sell copies of the Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +# THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +############################################################################### +{ + 'name': 'Time Off LOP', + 'version': '17.0.1.0.0', + 'category': 'Human Resources', + 'summary': 'Deduct Loss of Pay Amount from the Payslip', + 'description': """Using this module Hr manger can set different LOP + conditions to deduct loss of pay from payslips.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['hr_payroll', 'hr_holidays'], + 'data': [ + 'security/ir.model.access.csv', + 'views/hr_leave_lop_views.xml', + ], + 'external_dependencies': { + 'python': ['pandas'], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'OPL-1', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/hr_leave_lop/doc/RELEASE_NOTES.md b/hr_leave_lop/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..6b18bd0e3 --- /dev/null +++ b/hr_leave_lop/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 30.07.2024 +#### Version 17.0.1.0.0 +##### ADD +- Initial Commit for Time Off LOP diff --git a/hr_leave_lop/models/__init__.py b/hr_leave_lop/models/__init__.py new file mode 100755 index 000000000..81db7a171 --- /dev/null +++ b/hr_leave_lop/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Noorjahan N A (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) It is forbidden to publish, distribute, sublicense, or +# sell copies of the Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +# THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +############################################################################### +from . import hr_leave_lop +from . import hr_payslip diff --git a/hr_leave_lop/models/hr_leave_lop.py b/hr_leave_lop/models/hr_leave_lop.py new file mode 100755 index 000000000..9bbbadb8f --- /dev/null +++ b/hr_leave_lop/models/hr_leave_lop.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Noorjahan N A (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) It is forbidden to publish, distribute, sublicense, or +# sell copies of the Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +# THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +############################################################################### +from odoo import fields, models, _ +from odoo.exceptions import ValidationError + + +class HrLeaveLOP(models.Model): + """Model for Time Off LOP (Loss of Pay)""" + _name = "hr.leave.lop" + _description = "Time Off LOP" + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string="Name", help="Set a name to identify the lop", + required=True) + leave_type = fields.Selection([ + ('before_holiday', 'Day Before Holiday'), + ('after_holiday', 'Day After Holiday'), + ('between_holidays', 'Between 2 holidays')], string="Leave Type", + required=True, + help="Set type of leave to consider as lop " + "\n\n'Day Before Holiday': Choose this option if the leave day" + "falls just before a holiday, and it's considered as a loss of " + "pay." + "\n\n'Day After Holiday': Select this option if the leave day is " + "immediately following a holiday and should be considered as a " + "loss of pay." + "\n\n'Between 2 Holidays': Use this option when the leave spans " + "between two holidays, and it's treated as a loss of pay.") + deduction_amount = fields.Float(string='Deduction Amount %', + help="Percentage of daily wage to be " + "deducted", required=True) + no_of_days = fields.Integer(string='No Of Holidays', + help="No of holidays to consider", + required=True) + + def copy(self, default=None): + raise ValidationError(_("Cannot duplicate a Time Off Lop!")) + return super().copy(default) diff --git a/hr_leave_lop/models/hr_payslip.py b/hr_leave_lop/models/hr_payslip.py new file mode 100755 index 000000000..9ce5b61b0 --- /dev/null +++ b/hr_leave_lop/models/hr_payslip.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Noorjahan N A (odoo@cybrosys.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 +# (OPL-1) It is forbidden to publish, distribute, sublicense, or +# sell copies of the Software or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT +# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +# THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +############################################################################### +import datetime +from pandas import date_range +from odoo import api, models +from odoo.tools import date_utils + + +class HrPayslip(models.Model): + """ Extended model for HR Payslip""" + _inherit = 'hr.payslip' + + def holiday(self, day): + """Get a list of dates for a given frequency. + Args: + day (str): Frequency of the dates (e.g., 'W-MON' for Mondays). + Returns: + list: List of dates in '%Y-%m-%d' format. + """ + return date_range( + start=str(date_utils.start_of( + self.date_from.replace(month=self.date_from.month - 1), + 'month')), + end=str(date_utils.end_of( + self.date_from.replace(month=self.date_from.month + 1), + 'month')), + freq=day).strftime( + '%Y-%m-%d').tolist() + + def get_all_holidays(self): + """Get all holidays based on the employee's working days. + Returns: + list: List of holiday dates in '%Y-%m-%d' format. + """ + holidays = [] + all_days = ['0', '1', '2', '3', '4', '5', '6'] + for working_hours in \ + self.employee_id.resource_calendar_id.attendance_ids: + if working_hours.dayofweek in all_days: + all_days.remove(working_hours.dayofweek) + for days in all_days: + if days == '0': + holidays += self.holiday('W-MON') + elif days == '1': + holidays += self.holiday('W-TUE') + elif days == '2': + holidays += self.holiday('W-WEN') + elif days == '3': + holidays += self.holiday('W-THU') + elif days == '4': + holidays += self.holiday('W-FRI') + elif days == '5': + holidays += self.holiday('W-SAT') + elif days == '6': + holidays += self.holiday('W-SUN') + return holidays + + @api.model + def _get_payslip_lines(self): + """Compute payslip lines including Loss of Pay (LOP) deduction. + Returns: + list: List of payslip line dictionaries. + """ + res = super(HrPayslip, self)._get_payslip_lines() + amount, lop_amount = 0, 0 + daily_wage = self.contract_id.wage / 30 + for leave in self.env['hr.leave'].search( + [('employee_id', '=', self.employee_id.id), + ('state', '=', 'validate'), + ('request_date_from', '>=', self.date_from), + ('request_date_to', '<=', self.date_to)]): + no_of_days, no_of_days_before, no_of_days_after = 0, 0, 0 + prev_flag, next_flag = 0, 0 + leave_type = '' + previous_date = leave.request_date_from - datetime.timedelta( + days=1) + next_date = leave.request_date_to + datetime.timedelta(days=1) + holidays = self.get_all_holidays() + for public_holiday in self.env['resource.calendar.leaves'].search( + [("resource_id", "=", False)]): + holiday_duration = len(date_range( + start=public_holiday.date_from.strftime('%Y-%m-%d'), + end=public_holiday.date_to.strftime('%Y-%m-%d'), + ).strftime('%Y-%m-%d').tolist()) + if str(previous_date) == str( + public_holiday.date_to.strftime('%Y-%m-%d')): + no_of_days += holiday_duration + no_of_days_before += holiday_duration + prev_flag = 1 + if str(next_date) == str( + public_holiday.date_from.strftime('%Y-%m-%d')): + no_of_days += holiday_duration + no_of_days_after += holiday_duration + next_flag = 1 + while str(previous_date) in holidays: + no_of_days += 1 + no_of_days_before += 1 + prev_flag = 1 + previous_date -= datetime.timedelta(days=1) + while str(next_date) in holidays: + no_of_days += 1 + no_of_days_after += 1 + next_flag = 1 + next_date += datetime.timedelta(days=1) + if not next_flag and prev_flag: + leave_type = 'after_holiday' + if next_flag and not prev_flag: + leave_type = 'before_holiday' + if next_flag and prev_flag: + leave_type = 'between_holidays' + if no_of_days_before > no_of_days_after: + no_of_days = no_of_days_before + no_of_days_after + else: + no_of_days = no_of_days_after + no_of_days_before + lop_amount += daily_wage * ( + self.env['hr.leave.lop'].search([ + ('no_of_days', '=', no_of_days), + ('leave_type', '=', leave_type)], + ).deduction_amount / 100) + amount = lop_amount + (leave.number_of_days_display-1) * daily_wage + res.append({'sequence': 250, + 'code': 'LOP', + 'name': 'Loss of Pay', + 'salary_rule_id': self.env['hr.salary.rule'].search( + [("name", "=", "Deduction"), + ("id", "in", self.struct_id.rule_ids.ids)]).id, + 'contract_id': self.contract_id.id, + 'employee_id': self.employee_id.id, + 'amount': -amount, + 'quantity': 1.0, + 'rate': 100, + 'slip_id': self.id + }) + return res diff --git a/hr_leave_lop/security/ir.model.access.csv b/hr_leave_lop/security/ir.model.access.csv new file mode 100755 index 000000000..f891f5dc0 --- /dev/null +++ b/hr_leave_lop/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_hr_leave_lop_manager,access.hr.leave.lop.manager,model_hr_leave_lop,hr_holidays.group_hr_holidays_manager,1,1,1,1 diff --git a/hr_leave_lop/static/description/assets/icons/check.png b/hr_leave_lop/static/description/assets/icons/check.png new file mode 100755 index 000000000..c8e85f51d Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/check.png differ diff --git a/hr_leave_lop/static/description/assets/icons/chevron.png b/hr_leave_lop/static/description/assets/icons/chevron.png new file mode 100755 index 000000000..2089293d6 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/chevron.png differ diff --git a/hr_leave_lop/static/description/assets/icons/cogs.png b/hr_leave_lop/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/cogs.png differ diff --git a/hr_leave_lop/static/description/assets/icons/consultation.png b/hr_leave_lop/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/consultation.png differ diff --git a/hr_leave_lop/static/description/assets/icons/ecom-black.png b/hr_leave_lop/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/ecom-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/education-black.png b/hr_leave_lop/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/education-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/hotel-black.png b/hr_leave_lop/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/hotel-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/license.png b/hr_leave_lop/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/license.png differ diff --git a/hr_leave_lop/static/description/assets/icons/lifebuoy.png b/hr_leave_lop/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/lifebuoy.png differ diff --git a/hr_leave_lop/static/description/assets/icons/logo.png b/hr_leave_lop/static/description/assets/icons/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/logo.png differ diff --git a/hr_leave_lop/static/description/assets/icons/manufacturing-black.png b/hr_leave_lop/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/manufacturing-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/pos-black.png b/hr_leave_lop/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/pos-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/puzzle.png b/hr_leave_lop/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/puzzle.png differ diff --git a/hr_leave_lop/static/description/assets/icons/restaurant-black.png b/hr_leave_lop/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/restaurant-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/service-black.png b/hr_leave_lop/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/service-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/trading-black.png b/hr_leave_lop/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/trading-black.png differ diff --git a/hr_leave_lop/static/description/assets/icons/training.png b/hr_leave_lop/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/training.png differ diff --git a/hr_leave_lop/static/description/assets/icons/update.png b/hr_leave_lop/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/update.png differ diff --git a/hr_leave_lop/static/description/assets/icons/user.png b/hr_leave_lop/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/user.png differ diff --git a/hr_leave_lop/static/description/assets/icons/wrench.png b/hr_leave_lop/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/hr_leave_lop/static/description/assets/icons/wrench.png differ diff --git a/hr_leave_lop/static/description/assets/misc/Cybrosys R.png b/hr_leave_lop/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/Cybrosys R.png differ diff --git a/hr_leave_lop/static/description/assets/misc/categories.png b/hr_leave_lop/static/description/assets/misc/categories.png new file mode 100755 index 000000000..bedf1e0b1 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/categories.png differ diff --git a/hr_leave_lop/static/description/assets/misc/check-box.png b/hr_leave_lop/static/description/assets/misc/check-box.png new file mode 100755 index 000000000..42caf24b9 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/check-box.png differ diff --git a/hr_leave_lop/static/description/assets/misc/compass.png b/hr_leave_lop/static/description/assets/misc/compass.png new file mode 100755 index 000000000..d5fed8faa Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/compass.png differ diff --git a/hr_leave_lop/static/description/assets/misc/corporate.png b/hr_leave_lop/static/description/assets/misc/corporate.png new file mode 100755 index 000000000..2eb13edbf Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/corporate.png differ diff --git a/hr_leave_lop/static/description/assets/misc/customer-support.png b/hr_leave_lop/static/description/assets/misc/customer-support.png new file mode 100755 index 000000000..79efc72ed Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/customer-support.png differ diff --git a/hr_leave_lop/static/description/assets/misc/cybrosys-logo.png b/hr_leave_lop/static/description/assets/misc/cybrosys-logo.png new file mode 100755 index 000000000..cc3cc0ccf Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/cybrosys-logo.png differ diff --git a/hr_leave_lop/static/description/assets/misc/features.png b/hr_leave_lop/static/description/assets/misc/features.png new file mode 100755 index 000000000..b41769f77 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/features.png differ diff --git a/hr_leave_lop/static/description/assets/misc/logo.png b/hr_leave_lop/static/description/assets/misc/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/logo.png differ diff --git a/hr_leave_lop/static/description/assets/misc/pictures.png b/hr_leave_lop/static/description/assets/misc/pictures.png new file mode 100755 index 000000000..56d255fe9 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/pictures.png differ diff --git a/hr_leave_lop/static/description/assets/misc/pie-chart.png b/hr_leave_lop/static/description/assets/misc/pie-chart.png new file mode 100755 index 000000000..426e05244 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/pie-chart.png differ diff --git a/hr_leave_lop/static/description/assets/misc/right-arrow.png b/hr_leave_lop/static/description/assets/misc/right-arrow.png new file mode 100755 index 000000000..730984a06 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/right-arrow.png differ diff --git a/hr_leave_lop/static/description/assets/misc/star.png b/hr_leave_lop/static/description/assets/misc/star.png new file mode 100755 index 000000000..2eb9ab29f Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/star.png differ diff --git a/hr_leave_lop/static/description/assets/misc/support.png b/hr_leave_lop/static/description/assets/misc/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/support.png differ diff --git a/hr_leave_lop/static/description/assets/misc/whatsapp.png b/hr_leave_lop/static/description/assets/misc/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/hr_leave_lop/static/description/assets/misc/whatsapp.png differ diff --git a/hr_leave_lop/static/description/assets/modules/1.png b/hr_leave_lop/static/description/assets/modules/1.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/1.png differ diff --git a/hr_leave_lop/static/description/assets/modules/2.png b/hr_leave_lop/static/description/assets/modules/2.png new file mode 100644 index 000000000..6949185dd Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/2.png differ diff --git a/hr_leave_lop/static/description/assets/modules/3.png b/hr_leave_lop/static/description/assets/modules/3.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/3.png differ diff --git a/hr_leave_lop/static/description/assets/modules/4.png b/hr_leave_lop/static/description/assets/modules/4.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/4.png differ diff --git a/hr_leave_lop/static/description/assets/modules/5.png b/hr_leave_lop/static/description/assets/modules/5.png new file mode 100755 index 000000000..272ec20f9 Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/5.png differ diff --git a/hr_leave_lop/static/description/assets/modules/6.png b/hr_leave_lop/static/description/assets/modules/6.png new file mode 100644 index 000000000..7d5c3154f Binary files /dev/null and b/hr_leave_lop/static/description/assets/modules/6.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/1.png b/hr_leave_lop/static/description/assets/screenshots/1.png new file mode 100755 index 000000000..1848089cf Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/1.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/2.png b/hr_leave_lop/static/description/assets/screenshots/2.png new file mode 100755 index 000000000..8b88d7924 Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/2.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/3.png b/hr_leave_lop/static/description/assets/screenshots/3.png new file mode 100755 index 000000000..f6f3482ea Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/3.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/4.png b/hr_leave_lop/static/description/assets/screenshots/4.png new file mode 100755 index 000000000..9fe26cf73 Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/4.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/5.png b/hr_leave_lop/static/description/assets/screenshots/5.png new file mode 100755 index 000000000..b23bfc5bb Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/5.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/6.png b/hr_leave_lop/static/description/assets/screenshots/6.png new file mode 100755 index 000000000..36a05e702 Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/6.png differ diff --git a/hr_leave_lop/static/description/assets/screenshots/hero.gif b/hr_leave_lop/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..7eb3bb34d Binary files /dev/null and b/hr_leave_lop/static/description/assets/screenshots/hero.gif differ diff --git a/hr_leave_lop/static/description/banner.jpg b/hr_leave_lop/static/description/banner.jpg new file mode 100644 index 000000000..e5dee7cc6 Binary files /dev/null and b/hr_leave_lop/static/description/banner.jpg differ diff --git a/hr_leave_lop/static/description/icon.png b/hr_leave_lop/static/description/icon.png new file mode 100644 index 000000000..531e8847e Binary files /dev/null and b/hr_leave_lop/static/description/icon.png differ diff --git a/hr_leave_lop/static/description/index.html b/hr_leave_lop/static/description/index.html new file mode 100644 index 000000000..47502ee34 --- /dev/null +++ b/hr_leave_lop/static/description/index.html @@ -0,0 +1,644 @@ + + + + + + + Odoo App 3 Index + + + + + + + + +
+
+
+
+
+ +
+
+ +
+ Enterprise +
+
+ Odoo.sh +
+
+
+
+
+
+

+ Time Off LOP

+

+ Deduct Loss of Pay Amount from the Payslip. +

+
+ +
+
+
+
+
+

Key Highlights +

+
+
+
+
+
+ +
+
+

Enterprise & SH Support

+

Available in Odoo 17.0 Enterprise & SH. +

+
+
+
+
+
+
+ +
+
+

Configuration of lop structures

+

HR manager can set variuos LOP structures +

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

Loss of Pay Deduction

+

Based on the percentage the loss of pay is deducted from the salary +

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

+ Create Time Off LOP

+
+ Go to Time Off => Configuration => Time Off LOP. + +
+
+
+
+
+
+
+ +
+
+

+ Day Before Holiday

+
+ To create a new Loss of Pay (LOP) scenario, select the leave type as "Day Before Holiday." Set the deduction amount to be 100% of the daily wage for this LOP. Define the number of holidays to which this LOP applies as 2 days. + +In the "Day Before Holiday" scenario, if an employee takes leave just before a specified consecutive number of holidays, it will be considered as a loss of pay. + +In summary, this LOP type is triggered when an employee takes leave right before the given consecutive number of holidays. + +
+
+
+
+
+
+
+ +
+
+

+ Generate Payslip

+
+ Navigate to Payroll => Payslips => To Pay, and generate payslips for the month. Compute the payroll for the month of September. + + +
+
+
+
+
+
+
+ +
+
+

+ Compute Payslip

+
+For the employee named "Demo" with a monthly wage of 1000, let's calculate the payslip for the month of May. The employee took a leave on May 10th, which is considered a normal loss of pay, as the 11th and 12th of May were also leaves. + +In this payslip, we observe a deduction for Loss of Pay, amounting to 100% of the daily wage. For employee "Demo," the daily wage is 33.33. + + +
+
+
+
+
+
+
+ +
+
+

+ Day After Holiday

+
+Let's explore the functionality of "Day After Holiday" for creating a new Loss of Pay (LOP) scenario. Begin by providing a name and selecting the leave type as "Day After Holiday." Set the deduction amount to be 50% of the daily wage for this LOP. Define the number of holidays to which this LOP applies as 2 days. + +In the "Day After Holiday" scenario, if an employee takes leave immediately after a specified consecutive number of holidays, it will be considered as a loss of pay. + +In summary, this LOP type is triggered when an employee takes leave right after the given consecutive number of holidays. + + +
+
+
+
+
+
+
+ +
+
+

+ Compute Payslip +

+
+Compute the payslip for the employee named "Demo" by granting a leave on a day after two consecutive holidays. +In this payslip, we observe a deduction for Loss of Pay, amounting to 50% of the daily wage. For employee "Demo," the daily wage is 33.33. + + +
+
+
+
+ +
+
+
+
    +
  • + Based on the conditions and the deduction percentage, the corresponding amount is deducted from the payslip as Loss of Pay. +
  • + +
+
+
+
+
+
+
Version + 17.0.1.0.0|Released on:29 July 2024 +
+

+ Initial Commit for Chatter Attachments as ZIP

+
+
+
+
+
+
+
+

Related Products

+
+
+ +
+
+

Our Services

+ +
+
+
+
+
+
+
+
+ service-icon +
+
+

Odoo Customization

+
+
+
+
+
+
+ service-icon +
+
+

Odoo Implementation

+
+
+
+
+
+
+ service-icon +
+
+

Odoo Support

+
+
+
+
+
+
+ service-icon +
+
+

Hire Odoo Developer

+
+
+
+
+ +
+
+ service-icon +
+
+

Odoo Integration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo Migration

+
+
+
+
+
+
+ service-icon +
+
+

Odoo Consultancy

+
+
+
+
+
+
+ service-icon +
+
+

Odoo Implementation

+
+
+
+
+
+
+ service-icon +
+
+

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

+
+
+
+
+
+
+

Support

+
+
+
+
+
+
+
+ +
+ Need + Help? +

Got questions or need help? Get in touch.

+
odoo@cybrosys.com +
+
+
+
+
+
+
+
+ +
+ WhatsApp +

Say hi to us on WhatsApp!

+
+91 + 99456767686
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/hr_leave_lop/views/hr_leave_lop_views.xml b/hr_leave_lop/views/hr_leave_lop_views.xml new file mode 100755 index 000000000..0b0ac533d --- /dev/null +++ b/hr_leave_lop/views/hr_leave_lop_views.xml @@ -0,0 +1,58 @@ + + + + + hr.leave.lop.view.tree + hr.leave.lop + + + + + + + + + + + hr.leave.lop.view.search + hr.leave.lop + + + + + + + + + + + hr.leave.lop.view.form + hr.leave.lop + +
+ + + + + + + + +
+ + +
+
+
+
+ + + Time Off LOP + hr.leave.lop + tree,form + + + +