@ -1,43 +0,0 @@ |
|||
OHRMS Employee Shift v11 |
|||
======================== |
|||
|
|||
Easily create, manage, and track employee shift schedules |
|||
|
|||
Depends |
|||
======= |
|||
[hr] addon Odoo |
|||
|
|||
Tech |
|||
==== |
|||
* [Python] - Models |
|||
* [XML] - Odoo views |
|||
|
|||
Installation |
|||
============ |
|||
- www.odoo.com/documentation/10.0/setup/install.html |
|||
- Install our custom addon |
|||
|
|||
License |
|||
======= |
|||
GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (LGPLv3) |
|||
(http://www.gnu.org/licenses/agpl.html) |
|||
|
|||
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: Saritha Sahadevan, saritha@cybrosys.in |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
This module is maintained by Cybrosys Technologies. |
|||
|
|||
For support and more information, please visit https://www.cybrosys.com. |
@ -1,23 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from . import models |
@ -1,49 +0,0 @@ |
|||
# -*- 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: Saritha Sahadevan (<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 Employee Shift", |
|||
'version': '11.0.1.0.0', |
|||
'summary': """Easily create, manage, and track employee shift schedules.""", |
|||
'description': """Easily create, manage, and track employee shift schedules.""", |
|||
'category': 'Human Resource', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.openhrms.com", |
|||
'depends': ['hr', 'hr_payroll', 'resource'], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'security/hr_employee_shift_security.xml', |
|||
'views/hr_employee_shift_view.xml', |
|||
'views/hr_employee_contract_view.xml', |
|||
'views/hr_generate_shift_view.xml', |
|||
'views/templates.xml', |
|||
], |
|||
'demo': [ |
|||
'demo/shift_schedule_data.xml', |
|||
], |
|||
'images': ["static/description/banner.jpg"], |
|||
'license': "AGPL-3", |
|||
'installable': True, |
|||
'application': True, |
|||
} |
@ -1,25 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
<data> |
|||
<delete model="resource.calendar" search="[('id', '=', ref('resource.resource_calendar_std_35h'))]"/> |
|||
<delete model="resource.calendar" search="[('id', '=', ref('resource.resource_calendar_std_38h'))]"/> |
|||
<delete model="hr.contract" search="[('id', '=', ref('hr_payroll.hr_contract_firstcontract1'))]"/> |
|||
<delete model="hr.contract" search="[('id', '=', ref('hr_payroll.hr_contract_gilles_gravie'))]"/> |
|||
|
|||
<record id="resource_calendar_std_35h" model="resource.calendar"> |
|||
<field name="name">Morning</field> |
|||
<field name="company_id" ref="base.main_company"/> |
|||
<field name="hr_department" ref="hr.dep_management"/> |
|||
<field name="attendance_ids" |
|||
eval="[ |
|||
(0, 0, {'name': 'Monday Morning', 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': 'Tuesday Morning', 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': 'Wednesday Morning', 'dayofweek': '2', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': 'Thursday Morning', 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': 'Friday Morning', 'dayofweek': '4', 'hour_from': 8, 'hour_to': 12}), |
|||
]" |
|||
/> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -1,6 +0,0 @@ |
|||
## Module <hr_employee_shift> |
|||
|
|||
#### 21.04.2018 |
|||
#### Version 11.0.1.0.0 |
|||
##### ADD |
|||
- Initial commit for OpenHrms Project |
@ -1,23 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from . import hr_employee_shift, hr_employee_contract, hr_generate_shift, hr_shift_payroll |
@ -1,76 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from odoo.exceptions import Warning |
|||
from odoo import models, fields, api, _ |
|||
|
|||
|
|||
class HrEmployeeContract(models.Model): |
|||
_inherit = 'hr.contract' |
|||
|
|||
shift_schedule = fields.One2many('hr.shift.schedule', 'rel_hr_schedule', string="Shift Schedule") |
|||
working_hours = fields.Many2one('resource.calendar', string='Working Schedule') |
|||
department_id = fields.Many2one('hr.department', string="Department", |
|||
required=True) |
|||
|
|||
|
|||
class HrSchedule(models.Model): |
|||
_name = 'hr.shift.schedule' |
|||
|
|||
start_date = fields.Date(string="Date From", required=True) |
|||
end_date = fields.Date(string="Date To", required=True) |
|||
rel_hr_schedule = fields.Many2one('hr.contract') |
|||
hr_shift = fields.Many2one('resource.calendar', string="Shift", required=True) |
|||
|
|||
@api.onchange('start_date', 'end_date') |
|||
def get_department(self): |
|||
"""Adding domain to the hr_shift field""" |
|||
hr_department = None |
|||
if self.start_date: |
|||
hr_department = self.rel_hr_schedule.department_id.id |
|||
return { |
|||
'domain': { |
|||
'hr_shift': [('hr_department', '=', hr_department)] |
|||
} |
|||
} |
|||
|
|||
@api.multi |
|||
def write(self, vals): |
|||
self._check_overlap(vals) |
|||
return super(HrSchedule, self).write(vals) |
|||
|
|||
@api.model |
|||
def create(self, vals): |
|||
self._check_overlap(vals) |
|||
return super(HrSchedule, self).create(vals) |
|||
|
|||
def _check_overlap(self, vals): |
|||
if vals.get('start_date', False) and vals.get('end_date', False): |
|||
shifts = self.env['hr.shift.schedule'].search([('rel_hr_schedule', '=', vals.get('rel_hr_schedule'))]) |
|||
for each in shifts: |
|||
if each != shifts[-1]: |
|||
if each.end_date >= vals.get('start_date') or each.start_date >= vals.get('start_date'): |
|||
raise Warning(_('The dates may not overlap with one another.')) |
|||
if vals.get('start_date') > vals.get('end_date'): |
|||
raise Warning(_('Start date should be less than end date.')) |
|||
return True |
|||
|
@ -1,61 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from odoo.exceptions import ValidationError |
|||
from odoo import models, fields, api, _ |
|||
|
|||
|
|||
class HrEmployeeInherited(models.Model): |
|||
_inherit = 'hr.employee' |
|||
|
|||
resource_calendar_ids = fields.Many2one('resource.calendar', 'Working Hours') |
|||
|
|||
|
|||
class HrEmployeeShift(models.Model): |
|||
_inherit = 'resource.calendar' |
|||
|
|||
def _get_default_attendance_ids(self): |
|||
return [ |
|||
(0, 0, {'name': _('Monday Morning'), 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': _('Tuesday Morning'), 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': _('Wednesday Morning'), 'dayofweek': '2', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': _('Thursday Morning'), 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12}), |
|||
(0, 0, {'name': _('Friday Morning'), 'dayofweek': '4', 'hour_from': 8, 'hour_to': 12}), |
|||
] |
|||
|
|||
color = fields.Integer(string='Color Index') |
|||
hr_department = fields.Many2one('hr.department', string="Department", required=True) |
|||
sequence = fields.Integer(string="Sequence", required=True, default=1) |
|||
attendance_ids = fields.One2many( |
|||
'resource.calendar.attendance', 'calendar_id', 'Workingssss Time', |
|||
copy=True, default=_get_default_attendance_ids) |
|||
|
|||
@api.constrains('sequence') |
|||
def validate_seq(self): |
|||
record = self.env['resource.calendar'].search([('hr_department', '=', self.hr_department.id), |
|||
('sequence', '=', self.sequence) |
|||
]) |
|||
if len(record) > 1: |
|||
raise ValidationError("One record with same sequence is already active." |
|||
"You can't activate more than one record at a time") |
|||
|
|||
|
@ -1,101 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from odoo import models, fields |
|||
|
|||
|
|||
class HrGenerateShift(models.Model): |
|||
_name = 'hr.shift.generate' |
|||
|
|||
hr_department = fields.Many2one('hr.department', string="Department") |
|||
start_date = fields.Date(string="Start Date", required=True) |
|||
end_date = fields.Date(string="End Date", required=True) |
|||
|
|||
def action_schedule_shift(self): |
|||
"""Create mass schedule for all departments based on the shift scheduled in corresponding employee's contract""" |
|||
|
|||
if self.hr_department: |
|||
for contract in self.env['hr.contract'].search([('department_id', '=', self.hr_department.id)]): |
|||
if contract.shift_schedule: |
|||
for shift_val in contract.shift_schedule: |
|||
shift = shift_val.hr_shift |
|||
start_date = self.start_date |
|||
end_date = self.end_date |
|||
shift_obj = self.env['resource.calendar'].search([('hr_department', '=', self.hr_department.id), |
|||
('name', '=', shift.name)], limit=1) |
|||
sequence = shift_obj.sequence |
|||
seq_no = sequence + 1 |
|||
new_shift = self.env['resource.calendar'].search([ |
|||
('sequence', '=', seq_no), ('hr_department', '=', self.hr_department.id)], limit=1) |
|||
if new_shift: |
|||
shift_ids = [(0, 0, { |
|||
'hr_shift': new_shift.id, |
|||
'start_date': start_date, |
|||
'end_date': end_date |
|||
})] |
|||
contract.shift_schedule = shift_ids |
|||
else: |
|||
seq_no = 1 |
|||
new_shift = self.env['resource.calendar'].search([ |
|||
('sequence', '=', seq_no), ('hr_department', '=', self.hr_department.id)], limit=1) |
|||
if new_shift: |
|||
shift_ids = [(0, 0, { |
|||
'hr_shift': new_shift.id, |
|||
'start_date': start_date, |
|||
'end_date': end_date |
|||
})] |
|||
contract.shift_schedule = shift_ids |
|||
else: |
|||
for contract in self.env['hr.contract'].search([]): |
|||
if contract.shift_schedule and contract.department_id: |
|||
for shift_val in contract.shift_schedule: |
|||
shift = shift_val.hr_shift |
|||
start_date = self.start_date |
|||
end_date = self.end_date |
|||
shift_obj = self.env['resource.calendar'].search([('hr_department', '=', contract.department_id.id), |
|||
('name', '=', shift.name)], limit=1) |
|||
sequence = shift_obj.sequence |
|||
seq_no = sequence + 1 |
|||
new_shift = self.env['resource.calendar'].search([ |
|||
('sequence', '=', seq_no), ('hr_department', '=', contract.department_id.id)], limit=1) |
|||
if new_shift: |
|||
shift_ids = [(0, 0, { |
|||
'hr_shift': new_shift.id, |
|||
'start_date': start_date, |
|||
'end_date': end_date |
|||
})] |
|||
contract.shift_schedule = shift_ids |
|||
else: |
|||
seq_no = 1 |
|||
new_shift = self.env['resource.calendar'].search([ |
|||
('sequence', '=', seq_no), ('hr_department', '=', contract.department_id.id)], limit=1) |
|||
shift_ids = [(0, 0, { |
|||
'hr_shift': new_shift.id, |
|||
'start_date': start_date, |
|||
'end_date': end_date |
|||
})] |
|||
contract.shift_schedule = shift_ids |
|||
|
|||
|
|||
|
|||
|
|||
|
@ -1,109 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHrms Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Saritha Sahadevan (<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/>. |
|||
# |
|||
################################################################################### |
|||
from datetime import datetime, timedelta |
|||
from odoo import models, fields, api, _, tools |
|||
|
|||
|
|||
class HrPayroll(models.Model): |
|||
_inherit = 'hr.payslip' |
|||
|
|||
@api.model |
|||
def get_worked_day_lines(self, contract_ids, date_from, date_to): |
|||
""" |
|||
@param contract_ids: list of contract id |
|||
@return: returns a list of dict containing the input that should be applied for the given contract between date_from and date_to |
|||
""" |
|||
|
|||
def was_on_leave_interval(employee_id, date_from, date_to): |
|||
date_from = fields.Datetime.to_string(date_from) |
|||
date_to = fields.Datetime.to_string(date_to) |
|||
return self.env['hr.holidays'].search([ |
|||
('state', '=', 'validate'), |
|||
('employee_id', '=', employee_id), |
|||
('type', '=', 'remove'), |
|||
('date_from', '<=', date_from), |
|||
('date_to', '>=', date_to) |
|||
], limit=1) |
|||
|
|||
res = [] |
|||
# fill only if the contract as a working schedule linked |
|||
uom_day = self.env.ref('product.product_uom_day', raise_if_not_found=False) |
|||
for contract in self.env['hr.contract'].browse(contract_ids).filtered(lambda contract: contract): |
|||
uom_hour = contract.employee_id.resource_id.calendar_id.uom_id or self.env.ref('product.product_uom_hour', |
|||
raise_if_not_found=False) |
|||
interval_data = [] |
|||
holidays = self.env['hr.holidays'] |
|||
attendances = { |
|||
'name': _("Normal Working Days paid at 100%"), |
|||
'sequence': 1, |
|||
'code': 'WORK100', |
|||
'number_of_days': 0.0, |
|||
'number_of_hours': 0.0, |
|||
'contract_id': contract.id, |
|||
} |
|||
leaves = {} |
|||
|
|||
# Gather all intervals and holidays |
|||
for days in contract.shift_schedule: |
|||
start_date = datetime.strptime(days.start_date, tools.DEFAULT_SERVER_DATE_FORMAT) |
|||
end_date = datetime.strptime(days.end_date, tools.DEFAULT_SERVER_DATE_FORMAT) |
|||
|
|||
nb_of_days = (end_date - start_date).days + 1 |
|||
for day in range(0, nb_of_days): |
|||
|
|||
working_intervals_on_day = days.hr_shift.get_working_intervals_of_day( |
|||
start_dt=start_date + timedelta(days=day)) |
|||
for interval in working_intervals_on_day: |
|||
interval_data.append( |
|||
(interval, was_on_leave_interval(contract.employee_id.id, interval[0], interval[1]))) |
|||
|
|||
# Extract information from previous data. A working interval is considered: |
|||
# - as a leave if a hr.holiday completely covers the period |
|||
# - as a working period instead |
|||
for interval, holiday in interval_data: |
|||
holidays |= holiday |
|||
hours = (interval[1] - interval[0]).total_seconds() / 3600.0 |
|||
if holiday: |
|||
# if he was on leave, fill the leaves dict |
|||
if holiday.holiday_status_id.name in leaves: |
|||
leaves[holiday.holiday_status_id.name]['number_of_hours'] += hours |
|||
else: |
|||
leaves[holiday.holiday_status_id.name] = { |
|||
'name': holiday.holiday_status_id.name, |
|||
'sequence': 5, |
|||
'code': holiday.holiday_status_id.name, |
|||
'number_of_days': 0.0, |
|||
'number_of_hours': hours, |
|||
'contract_id': contract.id, |
|||
} |
|||
else: |
|||
# add the input vals to tmp (increment if existing) |
|||
attendances['number_of_hours'] += hours |
|||
# Clean-up the results |
|||
leaves = [value for key, value in leaves.items()] |
|||
for data in [attendances] + leaves: |
|||
data['number_of_days'] = uom_hour._compute_quantity(data['number_of_hours'], uom_day) \ |
|||
if uom_day and uom_hour \ |
|||
else data['number_of_hours'] / 8.0 |
|||
res.append(data) |
|||
return res |
@ -1,16 +0,0 @@ |
|||
<?xml version="1.0" ?> |
|||
<odoo> |
|||
<record id="property_rule_hr_shift" model="ir.rule"> |
|||
<field name="name">Hr Shift Multi Company</field> |
|||
<field name="model_id" ref="model_hr_shift_schedule"/> |
|||
<field eval="True" name="global"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
<record id="property_rule_hr_shift_generate" model="ir.rule"> |
|||
<field name="name">Hr Shift Genarate Multi Company</field> |
|||
<field name="model_id" ref="model_hr_shift_generate"/> |
|||
<field eval="True" name="global"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
</odoo> |
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 34 KiB |
@ -1,136 +0,0 @@ |
|||
<section class="oe_container bg-gray-lighter" xmlns="http://www.w3.org/1999/html"> |
|||
<div class="oe_row"> |
|||
<div class="oe_span"> |
|||
<h2 class="oe_slogan">Open HRMS</h2> |
|||
<h3 class="oe_slogan">Most advanced open source HR management software</h3> |
|||
</div> |
|||
</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"> |
|||
<div class="oe_span12"> |
|||
<h2 class="oe_slogan">Employee Shift Management</h2> |
|||
<h3 class="oe_slogan">Easily create, manage, and track employee shift schedules.</h3> |
|||
<h3 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h3> |
|||
</div> |
|||
<div class="oe_row oe_spaced"> |
|||
<h4><p style="margin-left: 42px;">Major Features:</p></h4> |
|||
<ul> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ★</span> Define list of Work Shifts</li> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ★</span> Define flexible hour wise shift</li> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ★</span> Assign shift in employee contract</li> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ★</span> Assign new shift automatically</li> |
|||
</ul> |
|||
</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"> |
|||
Employee Shift Management is a component of Open HRMS suit. |
|||
This module allows the user to create and manage employee work shifts. |
|||
Administrator can create various shifts according to the working hours and assign the Shift in |
|||
employee work contract. The module also helps to automatically assign new shift according to |
|||
the shift sequence |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12"> |
|||
<p><h2>Create Employee Shift</h2> </p> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<img src="create_shift.png"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<p><h2>Employee Shift In Contract</h2> </p> |
|||
<div class="oe_span6"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<img src="contract1.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<p>Have an option to schedule shift in employee contract form. |
|||
It is very important to create atleast one shift schedule manually in contract form</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<p><h2>Generate Automatic Shifts</h2></p> |
|||
<p class="oe_mt32"> |
|||
<p>Automatically assign new shift according to the shift sequence</p> |
|||
</p> |
|||
<div class="oe_span6"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<img src="generate_schedule.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span6"> |
|||
<p><h2> Employee Shifts</h2> </p> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<img src="shift.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> |
Before Width: | Height: | Size: 99 KiB |
@ -1,7 +0,0 @@ |
|||
|
|||
.style_shift{ |
|||
color: black !important; |
|||
font-size: 15px; |
|||
text-align: center; |
|||
padding: 10px 0px 2px 3px; |
|||
} |
@ -1,18 +0,0 @@ |
|||
@dashboard-bg-color: white; |
|||
|
|||
.o_kanban_view.o_kanban_dashboard.o_shift_kanban { |
|||
@sale-table-spacing: 20px; |
|||
|
|||
.o_kanban_record { |
|||
min-height: 150px; |
|||
max-width: 250px !important; |
|||
@media (min-width: @screen-sm-min) { |
|||
min-width: 20px; |
|||
|
|||
} |
|||
} |
|||
.oe_kanban_content{ |
|||
padding-top: 50px!important; |
|||
} |
|||
|
|||
} |
@ -1,29 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="employee_contract_form_inherited" model="ir.ui.view"> |
|||
<field name="name">employee.contract</field> |
|||
<field name="model">hr.contract</field> |
|||
<field name="inherit_id" ref="hr_contract.hr_contract_view_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='resource_calendar_id']" position="replace"> |
|||
<field name="resource_calendar_id" invisible="1"/> |
|||
</xpath> |
|||
<xpath expr="//field[@name='department_id']" position="replace"> |
|||
<field name="department_id"/> |
|||
</xpath> |
|||
<xpath expr="//group[@name='duration_group']" position="after"> |
|||
<group colspan="2" string="Shift Schedule"> |
|||
<field name="shift_schedule" nolabel="1"> |
|||
<tree editable="1"> |
|||
<field name="start_date"/> |
|||
<field name="end_date"/> |
|||
<field name="hr_shift"/> |
|||
</tree> |
|||
</field> |
|||
</group> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -1,91 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
|
|||
<record id="employee_form_inherited" model="ir.ui.view"> |
|||
<field name="name">hr.employee.resource</field> |
|||
<field name="model">hr.employee</field> |
|||
<field name="inherit_id" ref="hr.view_employee_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='resource_calendar_id']" position="replace"> |
|||
<field name="resource_calendar_ids"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="resource_calendar_form" model="ir.ui.view"> |
|||
<field name="name">resource.calendar</field> |
|||
<field name="model">resource.calendar</field> |
|||
<field name="inherit_id" ref="resource.resource_calendar_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='name']" position="after"> |
|||
<field name="hr_department"/> |
|||
<field name="sequence"/> |
|||
<field name="color" invisible="1"/> |
|||
</xpath> |
|||
<xpath expr="//field[@name='attendance_ids']" position="replace"> |
|||
<field name="attendance_ids"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="shift_template_kanban_view" model="ir.ui.view"> |
|||
<field name="name">employee.shift.kanban</field> |
|||
<field name="model">resource.calendar</field> |
|||
<field name="arch" type="xml"> |
|||
<kanban class="oe_background_grey o_kanban_dashboard o_shift_kanban"> |
|||
<field name="color"/> |
|||
<templates> |
|||
<t t-name="kanban-box"> |
|||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click "> |
|||
<div class="o_dropdown_kanban dropdown"> |
|||
<a class="dropdown-toggle btn" data-toggle="dropdown" href="#" > |
|||
<span class="fa fa-bars fa-lg"/> |
|||
</a> |
|||
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> |
|||
<t t-if="widget.editable"><li><a type="edit">Edit</a></li></t> |
|||
<t t-if="widget.deletable"><li><a type="delete">Delete</a></li></t> |
|||
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li> |
|||
</ul> |
|||
</div> |
|||
<div class="oe_kanban_content"> |
|||
<div class="row"> |
|||
<div class="o_primary style_shift"> |
|||
<div class="text-center"><strong><field name="name"/></strong></div> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="oe_kanban_details"> |
|||
<strong> |
|||
<div class="text-center"> |
|||
<span t-if="record.hr_department.value">[<field name="hr_department"/>]</span> |
|||
</div> |
|||
</strong> |
|||
</div> |
|||
</div> |
|||
</t> |
|||
</templates> |
|||
</kanban> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="resource.action_resource_calendar_form" model="ir.actions.act_window"> |
|||
<field name="name">Shift Working Time</field> |
|||
<field name="res_model">resource.calendar</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">kanban,tree,form</field> |
|||
<field name="view_id" eval="False"/> |
|||
<field name="search_view_id" ref="resource.view_resource_calendar_search"/> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
Define working hours and time table that could be scheduled to your project members |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<menuitem name="Shifts" id="hr_employee_shift.menu_shift" parent="hr.menu_human_resources_configuration" |
|||
action="resource.action_resource_calendar_form"/> |
|||
|
|||
</data> |
|||
</odoo> |
@ -1,50 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
|
|||
<odoo> |
|||
<data> |
|||
<!-- explicit wizard view definition --> |
|||
<record model="ir.ui.view" id="hr_employee_shift.generate_schedule_form"> |
|||
<field name="name">hr_employee_shift_generate_schedule form</field> |
|||
<field name="model">hr.shift.generate</field> |
|||
<field name="arch" type="xml"> |
|||
<form create="false" edit="false"> |
|||
<sheet> |
|||
<group> |
|||
<group> |
|||
<field name="hr_department"/> |
|||
</group> |
|||
</group> |
|||
<group> |
|||
<group> |
|||
<field name="start_date"/> |
|||
</group> |
|||
<group> |
|||
<field name="end_date"/> |
|||
</group> |
|||
</group> |
|||
<footer> |
|||
<button string="Generate" name="action_schedule_shift" type="object" |
|||
class="oe_highlight"/> |
|||
<button string="Cancel" special="cancel" |
|||
class="oe_link"/> |
|||
</footer> |
|||
</sheet> |
|||
|
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<!-- actions opening views on models --> |
|||
<record model="ir.actions.act_window" id="hr_employee_shift.generate_schedule_action_window"> |
|||
<field name="name">Employee Shift</field> |
|||
<field name="res_model">hr.shift.generate</field> |
|||
<field name="view_mode">form</field> |
|||
<field name="target">new</field> |
|||
</record> |
|||
|
|||
<!-- menu item --> |
|||
<menuitem name="Employee Shift" id="menu_shift_schedule_generate_id_menu" parent="hr.menu_hr_root" action="hr_employee_shift.generate_schedule_action_window" groups="hr.group_hr_manager"/> |
|||
<menuitem name="Generate Schedule" id="hr_employee_shift.menu_shift_schedule_generate_id" parent="menu_shift_schedule_generate_id_menu" action="hr_employee_shift.generate_schedule_action_window" groups="hr.group_hr_manager"/> |
|||
|
|||
</data> |
|||
</odoo> |
@ -1,9 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="assets_backend" name="project assets" inherit_id="web.assets_backend"> |
|||
<xpath expr="." position="inside"> |
|||
<link rel="stylesheet" href="/hr_employee_shift/static/src/css/shift_dashboard.css"/> |
|||
<link rel="stylesheet" href="/hr_employee_shift/static/src/less/shift_dashboard.less"/> |
|||
</xpath> |
|||
</template> |
|||
</odoo> |
@ -1,39 +0,0 @@ |
|||
OHRMS Employee Insurance Management v10 |
|||
======================================= |
|||
|
|||
Employee insurance management for Open HRMS. |
|||
|
|||
Depends |
|||
======= |
|||
[hr] addon Odoo |
|||
|
|||
Tech |
|||
==== |
|||
* [Python] - Models |
|||
* [XML] - Odoo views |
|||
|
|||
Installation |
|||
============ |
|||
- www.odoo.com/documentation/10.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: Treesa Maria Jude @ cybrosys, treesa@cybrosys.in |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
This module is maintained by Cybrosys Technologies. |
|||
|
|||
For support and more information, please visit https://www.cybrosys.com. |
@ -1,6 +0,0 @@ |
|||
## Module hr_insurance |
|||
|
|||
#### 21.04.2018 |
|||
#### Version 11.0.1.0.0 |
|||
##### ADD |
|||
- Initial commit for OpenHrms Project |
@ -1,24 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Treesa Maria Jude (<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/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import models |
@ -1,49 +0,0 @@ |
|||
# -*- 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: Treesa Maria Jude (<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 Employee Insurance', |
|||
'version': '11.0.1.0.0', |
|||
'summary': """Employee Insurance Management for Open HRMS.""", |
|||
'description': """Manages insurance amounts for employees to be deducted from salary""", |
|||
'category': 'Human Resources', |
|||
'author': 'Cybrosys Techno solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': 'https://www.openhrms.com', |
|||
'depends': [ |
|||
'base', 'hr', 'hr_payroll', |
|||
], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'security/hr_insurance_security.xml', |
|||
'views/employee_insurance_view.xml', |
|||
'views/insurance_salary_stucture.xml', |
|||
'views/policy_management.xml', |
|||
], |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'AGPL-3', |
|||
'installable': True, |
|||
'auto_install': False, |
|||
'application': False, |
|||
} |
@ -1,25 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Treesa Maria Jude (<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/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import policy_details |
|||
from . import employee_insurance |
@ -1,120 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Treesa Maria Jude (<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/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
import time |
|||
from datetime import datetime |
|||
from dateutil import relativedelta |
|||
from odoo import models, fields, api, _ |
|||
|
|||
|
|||
class EmployeeInsurance(models.Model): |
|||
_name = 'hr.insurance' |
|||
_description = 'HR Insurance' |
|||
_rec_name = 'employee_id' |
|||
|
|||
employee_id = fields.Many2one('hr.employee', string='Employee', required=True) |
|||
policy_id = fields.Many2one('insurance.policy', string='Policy', required=True) |
|||
amount = fields.Float(string='Policy Amount', required=True) |
|||
sum_insured = fields.Float(string="Sum Insured", required=True) |
|||
policy_coverage = fields.Selection([('monthly', 'Monthly'), ('yearly', 'Yearly')], |
|||
required=True, default='monthly', |
|||
string='Policy Coverage',) |
|||
date_from = fields.Date(string='Date From', |
|||
default=time.strftime('%Y-%m-%d'), readonly=True) |
|||
date_to = fields.Date(string='Date To', readonly=True, |
|||
default=str(datetime.now() + relativedelta.relativedelta(months=+1, day=1, days=-1))[:10]) |
|||
state = fields.Selection([('active', 'Active'), |
|||
('expired', 'Expired'), ], |
|||
default='active', string="State",compute='get_status') |
|||
company_id = fields.Many2one('res.company', string='Company', required=True, |
|||
default=lambda self: self.env.user.company_id) |
|||
|
|||
def get_status(self): |
|||
current_datetime = datetime.now() |
|||
for i in self: |
|||
x = datetime.strptime(i.date_from, '%Y-%m-%d') |
|||
y = datetime.strptime(i.date_to, '%Y-%m-%d') |
|||
if x <= current_datetime and y >= current_datetime: |
|||
i.state = 'active' |
|||
|
|||
else: |
|||
i.state = 'expired' |
|||
|
|||
@api.constrains('policy_coverage') |
|||
@api.onchange('policy_coverage') |
|||
def get_policy_period(self): |
|||
|
|||
if self.policy_coverage == 'monthly': |
|||
self.date_to = str(datetime.now() + relativedelta.relativedelta(months=+1, day=1, days=-1))[:10] |
|||
if self.policy_coverage == 'yearly': |
|||
self.date_to = str(datetime.now() + relativedelta.relativedelta(months=+12))[:10] |
|||
|
|||
|
|||
class HrInsurance(models.Model): |
|||
_inherit = 'hr.employee' |
|||
|
|||
insurance_percentage = fields.Float(string="Company Percentage ") |
|||
deduced_amount_per_month = fields.Float(string="Salary deduced per month", compute="get_deduced_amount") |
|||
deduced_amount_per_year = fields.Float(string="Salary deduced per year", compute="get_deduced_amount") |
|||
insurance = fields.One2many('hr.insurance', 'employee_id', string="Insurance", |
|||
domain=[('state', '=', 'active')]) |
|||
|
|||
def get_deduced_amount(self): |
|||
current_datetime = datetime.now() |
|||
for emp in self: |
|||
ins_amount = 0 |
|||
for ins in emp.insurance: |
|||
|
|||
x = datetime.strptime(ins.date_from, '%Y-%m-%d') |
|||
y = datetime.strptime(ins.date_to, '%Y-%m-%d') |
|||
if x < current_datetime and y > current_datetime: |
|||
if ins.policy_coverage == 'monthly': |
|||
|
|||
ins_amount = ins_amount + (ins.amount*12) |
|||
else: |
|||
|
|||
ins_amount = ins_amount + ins.amount |
|||
|
|||
emp.deduced_amount_per_year = ins_amount-((ins_amount*emp.insurance_percentage)/100) |
|||
emp.deduced_amount_per_month = emp.deduced_amount_per_year/12 |
|||
|
|||
|
|||
class InsuranceRuleInput(models.Model): |
|||
_inherit = 'hr.payslip' |
|||
|
|||
# insurance_amount = fields.Float("Insurance amount", compute='get_inputs') |
|||
|
|||
def get_inputs(self, contract_ids, date_from, date_to): |
|||
"""This Compute the other inputs to employee payslip. |
|||
""" |
|||
res = super(InsuranceRuleInput, self).get_inputs(contract_ids, date_from, date_to) |
|||
|
|||
contract_obj = self.env['hr.contract'] |
|||
for i in contract_ids: |
|||
if contract_ids[0]: |
|||
emp_id = contract_obj.browse(i[0].id).employee_id |
|||
for result in res: |
|||
if emp_id.deduced_amount_per_month != 0 and result.get('code') == 'INSUR': |
|||
result['amount'] = emp_id.deduced_amount_per_month |
|||
return res |
|||
|
@ -1,33 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Treesa Maria Jude (<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/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from odoo import models, fields, api |
|||
|
|||
|
|||
class InsurancePolicy(models.Model): |
|||
_name = 'insurance.policy' |
|||
|
|||
name = fields.Char(string='Name', required=True) |
|||
note_field = fields.Html(string='Comment') |
|||
company_id = fields.Many2one('res.company', string='Company', required=True, |
|||
default=lambda self: self.env.user.company_id) |
@ -1,16 +0,0 @@ |
|||
<?xml version="1.0" ?> |
|||
<odoo> |
|||
<record id="property_rule_hr_shift" model="ir.rule"> |
|||
<field name="name">Hr Insurancy Company</field> |
|||
<field name="model_id" ref="model_hr_insurance"/> |
|||
<field eval="True" name="global"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
|
|||
<record id="property_rule_hr_shift_generate" model="ir.rule"> |
|||
<field name="name">Hr Insurance Policy company</field> |
|||
<field name="model_id" ref="model_insurance_policy"/> |
|||
<field eval="True" name="global"/> |
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> |
|||
</record> |
|||
</odoo> |
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 32 KiB |
@ -1,120 +0,0 @@ |
|||
<section class="oe_container bg-gray-lighter" xmlns="http://www.w3.org/1999/html"> |
|||
<div class="oe_row"> |
|||
<div class="oe_span"> |
|||
<h2 class="oe_slogan">OpenHRMS</h2> |
|||
<h3 class="oe_slogan">Most advanced open source HR management software</h3> |
|||
</div> |
|||
|
|||
|
|||
</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">OHRMS Employee Insurance Management</h2> |
|||
<h3 class="oe_slogan">Employee Insurance Management for OHRMS</h3> |
|||
<h4 class="oe_slogan">Cybrosys Technologies , www.cybrosys.com</h4> |
|||
<p class='oe_mt32'> |
|||
This module allows tracking the insurance details allowed for employees. Also |
|||
efficiently manages the insurance allowances with the salary. You can manage |
|||
the percentage of insurance amount to be deduced from the salary. |
|||
</p> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_padded"> |
|||
<h2 class="oe_slogan">Set Insurance For Employees</h2> |
|||
<div class="oe_span12"> |
|||
|
|||
</div> |
|||
<div class="oe_span13"> |
|||
<div class="oe_demo oe_screenshot"> |
|||
<img src="insurance.png"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_padded"> |
|||
<h2 class="oe_slogan">Policy Management</h2> |
|||
|
|||
<div class="oe_span13"> |
|||
<div class="oe_demo oe_screenshot"> |
|||
<img src="policy.png"> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</section> |
|||
|
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_padded"> |
|||
<div class="oe_span12"> |
|||
<h2 class="oe_slogan">Employee Insurance Details</h2> |
|||
|
|||
</div> |
|||
<div class="oe_span13"> |
|||
<div class="oe_demo oe_screenshot"> |
|||
<img src="employee.png"> |
|||
</div> |
|||
</div></div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_padded"> |
|||
<div class="oe_span12"> |
|||
<h2 class="oe_slogan">Amount Deduced On Payslip</h2> |
|||
</div> |
|||
<div class="oe_span13"> |
|||
<div class="oe_demo oe_screenshot"> |
|||
<img src="payslip.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> |
|||
|
|||
<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="http://www.cybrosys.com"><i |
|||
class="fa fa-envelope"></i> Email </a> <a |
|||
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
|||
href="http://www.cybrosys.com/contact/"><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="http://www.cybrosys.com/odoo-customization-and-installation/"><i |
|||
class="fa fa-check-square"></i> Request Customization </a> |
|||
</div> |
|||
<br> |
|||
<img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> |
|||
</div> |
|||
</section> |
|||
|
|||
|
Before Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 77 KiB |
@ -1,105 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
|
|||
<record id="hr_employee_insurance_form" model="ir.ui.view"> |
|||
<field name="name">hr.employee.Insurance_form</field> |
|||
<field name="model">hr.employee</field> |
|||
<field name="inherit_id" ref="hr.view_employee_form"/> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//page[@name='hr_settings']" position="after"> |
|||
<page name="insurance" string="Insurance"> |
|||
<group> |
|||
<group> |
|||
<field name="insurance_percentage">%</field> |
|||
</group> |
|||
<group> |
|||
<field name="deduced_amount_per_year"/> |
|||
<field name="deduced_amount_per_month"/> |
|||
</group> |
|||
</group> |
|||
<field name="insurance" context="{'default_employee_id':id}"/> |
|||
|
|||
</page> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
|
|||
|
|||
|
|||
<record id="employee_insurance__details_form" model="ir.ui.view"> |
|||
<field name="name">Employee Insurance</field> |
|||
<field name="model">hr.insurance</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Employee Insurance"> |
|||
<header> |
|||
<field name="state" widget="statusbar" statusbar_visible="active,expired"/> |
|||
</header> |
|||
<sheet> |
|||
<!--<header>--> |
|||
<!--<field name="state" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}'/>--> |
|||
<!--</header>--> |
|||
<group> |
|||
<group> |
|||
<field name="employee_id"/> |
|||
<field name="policy_coverage"/> |
|||
<label for="date_from" string="Policy Period"/> |
|||
<div> |
|||
<field name="date_from" class="oe_inline" on_change="1" modifiers="{'readonly': [['state', 'not in', ['draft']]], 'required': true}"/> |
|||
- |
|||
<field name="date_to" class="oe_inline" on_change="1" modifiers="{'readonly': [['state', 'not in', ['draft']]], 'required': true}"/> |
|||
</div> |
|||
</group> |
|||
<group> |
|||
<field name="policy_id"/> |
|||
<field name="sum_insured"/> |
|||
<field name="amount"/> |
|||
<field name="company_id"/> |
|||
</group> |
|||
</group> |
|||
|
|||
</sheet> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
<record id="employee_insurance_details_tree" model="ir.ui.view"> |
|||
<field name="name">Employee Insurance</field> |
|||
<field name="model">hr.insurance</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Employee Insurance"> |
|||
<field name="employee_id"/> |
|||
<field name="policy_id"/> |
|||
<field name="policy_coverage"/> |
|||
<field name="sum_insured"/> |
|||
<field name="amount"/> |
|||
<field name="date_from" /> |
|||
<field name="date_to"/> |
|||
<field name="company_id"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
<record id="action_employee_insurance_details" model="ir.actions.act_window"> |
|||
<field name="name">Employee Insurance</field> |
|||
<field name="res_model">hr.insurance</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
You have'nt created any policy yet. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<menuitem |
|||
id="hr_insurance_main_menu" |
|||
parent ="hr.menu_hr_root" |
|||
name="HR Insurance"/> |
|||
|
|||
<menuitem |
|||
id="hr_employee_insurance_menu" |
|||
name="Employee Insurance" |
|||
parent="hr_insurance_main_menu" |
|||
action="action_employee_insurance_details"/> |
|||
</data> |
|||
</odoo> |
@ -1,41 +0,0 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<odoo> |
|||
<data> |
|||
|
|||
<!--<record id="hr_payslip_rule_insurance" model="hr.salary.rule">--> |
|||
<!--<field name="code">INSUR</field>--> |
|||
<!--<field name="name">Insurance Amount</field>--> |
|||
<!--<field name="category_id" ref="hr_payroll.DED"/>--> |
|||
<!--<field name="amount_select">code</field>--> |
|||
<!--<field name="amount_python_compute">result = -(payslip.insurance_amount)</field>--> |
|||
<!--<field name="appears_on_payslip" eval="True"/>--> |
|||
<!--<field name="sequence" eval="190"/>--> |
|||
<!--</record>--> |
|||
|
|||
|
|||
<!--<!–<record id="hr_payroll.structure_base" model="hr.payroll.structure">–>--> |
|||
<!--<!–<field eval="[(4, ref('hr_payslip_rule_warning')), (4, ref('hr_payslip_rule_reward'))]"–>--> |
|||
<!--<!–name="rule_ids"/>–>--> |
|||
<!--<!–</record>–>--> |
|||
<!-- Insurance rule --> |
|||
<record id="hr_payslip_rule_insurance" model="hr.salary.rule"> |
|||
<field name="code">INSUR</field> |
|||
<field name="name">Insurance Amount</field> |
|||
<field name="category_id" ref="hr_payroll.DED"/> |
|||
<field name="amount_select">code</field> |
|||
<field name="amount_python_compute">result = -(inputs.INSUR.amount)</field> |
|||
<field name="appears_on_payslip" eval="True"/> |
|||
<field name="sequence" eval="190"/> |
|||
</record> |
|||
|
|||
<record id="hr_rule_input_insurance" model="hr.rule.input"> |
|||
<field name="code">INSUR</field> |
|||
<field name="name">Insurance Amount</field> |
|||
<field name="input_id" ref="hr_payslip_rule_insurance"/> |
|||
</record> |
|||
|
|||
<record id="hr_payroll.structure_base" model="hr.payroll.structure"> |
|||
<field eval="[(4, ref('hr_payslip_rule_insurance'))]" |
|||
name="rule_ids"/> |
|||
</record> |
|||
</data></odoo> |
@ -1,59 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="insurance_policy_details_form" model="ir.ui.view"> |
|||
<field name="name">Insurance Policy Details</field> |
|||
<field name="model">insurance.policy</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Policy Details"> |
|||
<sheet> |
|||
|
|||
<group> |
|||
<group> |
|||
<field name="name"/> |
|||
|
|||
</group> |
|||
<group> |
|||
<field name="company_id"/> |
|||
</group> |
|||
|
|||
</group> |
|||
<notebook> |
|||
<page string="Extra Notes"> |
|||
<field name="note_field"/> |
|||
</page> |
|||
</notebook> |
|||
</sheet> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
<record id="insurance_policy_details_tree" model="ir.ui.view"> |
|||
<field name="name">Insurance Policy Details</field> |
|||
<field name="model">insurance.policy</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Policy Details"> |
|||
<field name="name"/> |
|||
<field name="company_id"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
<record id="action_insurance_policy_management" model="ir.actions.act_window"> |
|||
<field name="name">Insurance Policy </field> |
|||
<field name="res_model">insurance.policy</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
You have'nt created any policy yet. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<menuitem |
|||
id="policy_management_menu" |
|||
name="Policy" |
|||
parent="hr_insurance_main_menu" |
|||
action="action_insurance_policy_management"/> |
|||
</data> |
|||
</odoo> |
|||
|
@ -1,25 +0,0 @@ |
|||
Open HRMS Leave Request Aliasing |
|||
-------------------------------- |
|||
Supporting Addon for Open HRMS, Allows You To Create Leave Request Automatically From Incoming Emails. |
|||
|
|||
Connect with experts |
|||
-------------------- |
|||
|
|||
If you have any question/queries/additional works on OpenHRMS or this module, You can drop an email directly to Cybrosys. |
|||
|
|||
Technical Notes |
|||
--------------- |
|||
|
|||
Here you need to send leave request through email with the following rules. |
|||
* You must send leave request through your registered email id. |
|||
* Mail subject must be start with 'LEAVE REQUEST ' |
|||
* Mail body must contain date as per given format (%d/%m/%Y) |
|||
|
|||
Contacts |
|||
-------- |
|||
info - info@cybrosys.com |
|||
Jesni Banu - jesni@cybrosys.in |
|||
|
|||
Website: |
|||
https://www.openhrms.com |
|||
https://www.cybrosys.com |
@ -1,25 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Jesni Banu (<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/>. |
|||
# |
|||
################################################################################### |
|||
from . import models |
|||
|
|||
|
@ -1,45 +0,0 @@ |
|||
# -*- 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: Jesni Banu (<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 Leave Request Aliasing', |
|||
'version': '11.0.1.0.0', |
|||
'summary': """Allows You To Create Leave Request Automatically From Incoming Mails""", |
|||
'description': 'This module allows you to create leave request directly from incoming mails.', |
|||
'category': 'Generic Modules/Human Resources', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.openhrms.com", |
|||
'depends': ['base_setup', 'hr_holidays'], |
|||
'data': [ |
|||
'data/web_planner_data.xml', |
|||
'views/hr_leave_template.xml', |
|||
'views/leave_request_alias_view.xml', |
|||
'views/res_config_views.xml', |
|||
], |
|||
'demo': [], |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'AGPL-3', |
|||
'installable': True, |
|||
'auto_install': False, |
|||
'application': False, |
|||
} |
@ -1,81 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<template id="hr_leave_planner"> |
|||
<t t-call="web_planner.pages"> |
|||
<t t-call="web_planner.category"> |
|||
<t t-set="menu_categorytitle">Setup</t> |
|||
<t t-set="menu_categoryclasses" t-value="'fa-magic'"/> |
|||
<t t-call="web_planner.page"> |
|||
<t t-set="page_title">Get Mobile</t> |
|||
<t t-if="not (alias_name and alias_domain)"> |
|||
<div class="alert alert-warning" role="alert"> |
|||
<strong>Your email gateway is not configured.</strong> Please configure your email |
|||
gateway from the Settings app, menu <i>General Settings</i>. |
|||
</div> |
|||
<p> |
|||
Once your email gateway is configured, come back to this screen |
|||
to setup the next steps. |
|||
</p> |
|||
</t> |
|||
<t t-if="alias_name and alias_domain"> |
|||
<p> |
|||
To create leave request by email, send leave request by email with the following |
|||
information: |
|||
</p> |
|||
|
|||
<dl class="dl-horizontal"> |
|||
<dt>From: Your Email</dt> |
|||
<dd>Your Email Address</dd> |
|||
<dt>To:</dt> |
|||
<dd><t t-esc="alias_name"/>@<t t-esc="alias_domain"/></dd> |
|||
<dt>Subject: </dt> |
|||
<dd><strong class="text-info">LEAVE REQUEST</strong> Free Description with Date From: and Date To:<strong class="text-primary"></strong></dd> |
|||
</dl> |
|||
<hr class="mb32"/> |
|||
<p> |
|||
The <strong class="text-info">LEAVE REQUEST</strong> is mandatory and should be in the |
|||
subject of your email. This |
|||
will root the leave request automatically on your |
|||
Odoo. |
|||
</p><p> |
|||
Also you need to set <strong class="text-primary">Date From: and Date To:</strong> |
|||
at the end of the body of your email. |
|||
</p> |
|||
<div class="alert alert-info" role="alert"> |
|||
<b>Note:</b> Set the same email address on your employee form(working email) than |
|||
the one you use are your "From:". Otherwise, your |
|||
leave request will not be accepted by email. |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</t> |
|||
|
|||
<t t-call="web_planner.page"> |
|||
<t t-set="page_title">End</t> |
|||
<t t-set="hide_title" t-value="True"/> |
|||
<t t-set="hide_from_menu" t-value="True"/> |
|||
<t t-set="hide_mark_as_done" t-value="True"/> |
|||
<h1 class="text-center o_planner_trophy" data-icon="" /> |
|||
<div class="text-center"> |
|||
<h1>Congratulations, you're done!</h1> |
|||
<h3>We hope this feature helped you manage your leave request efficiently.</h3> |
|||
<h4>Don't hesitate to <a href="mailto:info@cybrosys.com" target="_blank">send us an email</a> to describe<br/> your experience or to suggest improvements!</h4> |
|||
|
|||
<p>Have a wonderful day,<br/>- Cybrosys</p> |
|||
<img src="/hr_leave_request_aliasing/static/description/cybro_logo.png"/> |
|||
</div> |
|||
</t> |
|||
</t> |
|||
</template> |
|||
|
|||
<record id="planner_hr_leave" model="web.planner"> |
|||
<field name="name">Leave strategy planner</field> |
|||
<field name="view_id" ref="hr_leave_planner"/> |
|||
<field name="menu_id" ref="hr_holidays.menu_hr_holidays_root"/> |
|||
<field name="planner_application">planner_hr_leave</field> |
|||
<field name="tooltip_planner"><![CDATA[ |
|||
Send receipts by email to create leave request efficiently. |
|||
]]> |
|||
</field> |
|||
</record> |
|||
</odoo> |
@ -1,6 +0,0 @@ |
|||
## Module <hr_leave_request_aliasing> |
|||
|
|||
#### 24.03.2018 |
|||
#### Version 11.0.1.0.0 |
|||
##### ADD |
|||
- Initial commit for Open HRMS Project |
@ -1,27 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Jesni Banu (<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/>. |
|||
# |
|||
################################################################################### |
|||
from . import leave_request_alias |
|||
from . import res_config |
|||
from . import web_planner |
|||
|
|||
|
@ -1,73 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Jesni Banu (<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/>. |
|||
# |
|||
################################################################################### |
|||
import re |
|||
from datetime import datetime, timedelta |
|||
from odoo import models, api |
|||
from odoo.tools import email_split |
|||
|
|||
|
|||
class HrLeaveAlias(models.Model): |
|||
_inherit = 'hr.holidays' |
|||
|
|||
@api.model |
|||
def message_new(self, msg_dict, custom_values=None): |
|||
"""This function extracts required fields of hr.holidays from incoming mail then creating records""" |
|||
try: |
|||
if custom_values is None: |
|||
custom_values = {} |
|||
msg_subject = msg_dict.get('subject', '') |
|||
subject = re.search('LEAVE REQUEST', msg_subject) |
|||
if subject is not None: |
|||
email_address = email_split(msg_dict.get('email_from', False))[0] |
|||
employee = self.env['hr.employee'].sudo().search([ |
|||
'|', |
|||
('work_email', 'ilike', email_address), |
|||
('user_id.email', 'ilike', email_address) |
|||
], limit=1) |
|||
msg_body = msg_dict.get('body', '') |
|||
cleaner = re.compile('<.*?>') |
|||
clean_msg_body = re.sub(cleaner, '', msg_body) |
|||
date_list = re.findall(r'\d{2}/\d{2}/\d{4}', clean_msg_body) |
|||
if len(date_list) > 0: |
|||
date_from = date_list[0] |
|||
if len(date_list) > 1: |
|||
start_date = datetime.strptime(date_list[1], '%d/%m/%Y') |
|||
date_to = start_date + timedelta(days=0) |
|||
else: |
|||
start_date = datetime.strptime(date_list[0], '%d/%m/%Y') |
|||
date_to = start_date + timedelta(days=1) |
|||
no_of_days_temp = (datetime.strptime(str(date_to), "%Y-%m-%d %H:%M:%S") - |
|||
datetime.strptime(date_from, '%d/%m/%Y')).days |
|||
custom_values.update({ |
|||
'name': msg_subject.strip(), |
|||
'employee_id': employee.id, |
|||
'holiday_status_id': 1, |
|||
'date_from': date_from, |
|||
'date_to': date_to, |
|||
'no_of_days_temp': no_of_days_temp |
|||
}) |
|||
return super(HrLeaveAlias, self).message_new(msg_dict, custom_values) |
|||
except: |
|||
pass |
|||
|
|||
|
@ -1,48 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Jesni Banu (<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/>. |
|||
# |
|||
################################################################################### |
|||
from odoo import api, fields, models |
|||
|
|||
|
|||
class HrLeaveConfigSettings(models.TransientModel): |
|||
_inherit = 'res.config.settings' |
|||
|
|||
alias_prefix = fields.Char(string='Default Alias Name for Leave', help='Default Alias Name for Leave') |
|||
alias_domain = fields.Char(string='Alias Domain', help='Default Alias Domain for Leave', |
|||
default=lambda self: self.env["ir.config_parameter"].get_param("mail.catchall.domain")) |
|||
|
|||
def set_values(self): |
|||
super(HrLeaveConfigSettings, self).set_values() |
|||
set_param = self.env['ir.config_parameter'].set_param |
|||
set_param('alias_prefix', self.alias_prefix) |
|||
set_param('alias_domain', self.alias_domain ) |
|||
|
|||
@api.model |
|||
def get_values(self): |
|||
res = super(HrLeaveConfigSettings, self).get_values() |
|||
get_param = self.env['ir.config_parameter'].sudo().get_param |
|||
res.update( |
|||
alias_prefix=get_param('alias_prefix', default=''), |
|||
alias_domain=get_param('alias_domain', default=''), |
|||
) |
|||
return res |
|||
|
@ -1,44 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Jesni Banu (<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/>. |
|||
# |
|||
################################################################################### |
|||
from odoo import api, models |
|||
|
|||
|
|||
class PlannerHrLeave(models.Model): |
|||
"""This class is used to activate web.planner feature in 'hr_leave_request_aliasing' module""" |
|||
|
|||
_inherit = 'web.planner' |
|||
|
|||
@api.model |
|||
def _get_planner_application(self): |
|||
planner = super(PlannerHrLeave, self)._get_planner_application() |
|||
planner.append(['planner_hr_leave', 'Leave Planner']) |
|||
return planner |
|||
|
|||
@api.model |
|||
def _prepare_planner_hr_leave_data(self): |
|||
alias_record = self.env.ref('hr_leave_request_aliasing.mail_alias_leave') |
|||
return { |
|||
'alias_domain': alias_record.alias_domain, |
|||
'alias_name': alias_record.alias_name, |
|||
} |
|||
|
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 221 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 31 KiB |
@ -1,102 +0,0 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row"> |
|||
<h2 class="oe_slogan"><a href="https://www.openhrms.com">Open HRMS</a></h2> |
|||
<h3 class="oe_slogan">Most advanced open source HR management software</h3> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<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"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">Open HRMS Leave Request Aliasing</h2> |
|||
<h3 class="oe_slogan">Creating Leave Request, Automatically From Incoming Emails</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> Automation on Leaves Request Mails.<br/> |
|||
<span style="color:green;"> ☑ </span> Option to Set Aliasing Domain Separately for Leave Request.<br/> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<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;"> |
|||
Email aliasing is a default feature in Odoo which allows the user to fetch contents to ERP records directly from incoming emails. |
|||
The feature is a type of automation. Since we can configure the E-mails to fetch contents directly. |
|||
So here we are providing one of the new module to create leave request automatically from incoming email. |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12" style="text-align: center;"> |
|||
<div class="oe_demo oe_picture oe_screenshot"> |
|||
<img style="border:8px solid white;" src="mail_aliasing.png"> |
|||
</div> |
|||
<span> |
|||
<i>Here we can send leave request through our registered email id. Then it will create leave |
|||
request in Odoo. We must ensure that our mail subject must start with 'LEAVE REQUEST ' and date |
|||
format must be as '%d/%m/%Y'.</i> |
|||
</span> |
|||
</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> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<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> |
Before Width: | Height: | Size: 96 KiB |
@ -1,6 +0,0 @@ |
|||
odoo.define('planner_hr_leave.planner', function (require) { |
|||
"use strict"; |
|||
|
|||
var planner = require('web.planner.common'); |
|||
|
|||
}); |
@ -1,11 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<template id="assets_backend_expense" name="hr_leave assets" inherit_id="web.assets_backend"> |
|||
<xpath expr="." position="inside"> |
|||
<script type="text/javascript" src="/hr_leave_request_aliasing/static/src/js/web_planner_hr_leave.js"></script> |
|||
</xpath> |
|||
</template> |
|||
</data> |
|||
</odoo> |
|||
|
@ -1,9 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<record id="mail_alias_leave" model="mail.alias"> |
|||
<field name="alias_name">leave</field> |
|||
<field name="alias_model_id" ref="model_hr_holidays"/> |
|||
<field name="alias_user_id" ref="base.user_root"/> |
|||
<field name="alias_contact">employees</field> |
|||
</record> |
|||
</odoo> |
@ -1,54 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="view_hr_leave_configuration" model="ir.ui.view"> |
|||
<field name="name">Configure Leave</field> |
|||
<field name="model">res.config.settings</field> |
|||
<field name="priority" eval="50"/> |
|||
<field name="inherit_id" ref="base.res_config_settings_view_form" /> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//div[hasclass('settings')]" position="inside"> |
|||
<div class="app_settings_block" data-string="Leaves" data-key="hr_leave_request_aliasing" groups="hr_holidays.group_hr_holidays_manager"> |
|||
<h2>Leaves</h2> |
|||
<div class="row mt16 o_settings_container" name="config_leave"> |
|||
<div class="col-xs-12 col-md-6 o_setting_box" name="config_leave_alias"> |
|||
<div class="o_setting_right_pane"> |
|||
<label string="Leave Email Alias"/> |
|||
<div class="text-muted"> |
|||
You can setup a generic email alias to create |
|||
incoming leave request easily. Write an email with the desired |
|||
format to create leave request in one click. |
|||
Format:- Start subject with 'LEAVE REQUEST'. After your mail content mention |
|||
'Date From:' and 'Date To:'. |
|||
</div> |
|||
<div class="content-group"> |
|||
<div class="row mt16"> |
|||
<label string="Prefix" class="col-md-3"/> |
|||
<field name="alias_prefix"/> |
|||
</div> |
|||
<div class="row mt16"> |
|||
<label string="Domain" class="col-md-3"/> |
|||
<field name="alias_domain"/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="action_hr_general_config" model="ir.actions.act_window"> |
|||
<field name="name">Leaves Config</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">res.config.settings</field> |
|||
<field name="view_mode">form</field> |
|||
<field name="target">inline</field> |
|||
<field name="context">{'module' : 'hr_leave_request_aliasing'}</field> |
|||
</record> |
|||
|
|||
<menuitem id="menu_hr_leave_global_settings" name="Leaves Config" |
|||
parent="hr_holidays.menu_hr_holidays_root" sequence="96" action="action_hr_general_config" groups="base.group_system"/> |
|||
</data> |
|||
</odoo> |
@ -1,14 +0,0 @@ |
|||
Payroll-Payslip Reporting v11 |
|||
============================= |
|||
This Module help Human resource managers to get a over all view for the payslips as pivot. |
|||
|
|||
Features |
|||
======== |
|||
|
|||
* Pivot view for HR payslips. |
|||
* Group By options like Employee wise, department wise, job title wise, date wise, status wise and Company wise. |
|||
* Spot Export to XLS Report. |
|||
|
|||
Credits |
|||
======= |
|||
Nikhil Krishnan @ cybrosys, nikhil@cybrosys.in |
@ -1,22 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
|||
# Author: Nikhil krishnan(<https://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <https://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from . import models |
@ -1,43 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
|||
# Author: Nikhil krishnan(<https://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <https://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
{ |
|||
'name': 'Payroll-Payslip Reporting', |
|||
'version': '11.0.1.0.0', |
|||
'summary': """Payslip Pivot View Report.""", |
|||
'description': """Payslip monthly report. |
|||
This module gives a pivot view for the HR managers. they can see all the 'NET' amount of payslips in all states""", |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'maintainer': 'Cybrosys Techno Solutions', |
|||
'website': 'https://www.cybrosys.com', |
|||
'category': 'Generic Modules/Human Resources', |
|||
'depends': ['hr_payroll'], |
|||
'license': 'LGPL-3', |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'views/menu_payslip_report.xml' |
|||
], |
|||
'demo': [], |
|||
'images': ['static/description/banner.jpg'], |
|||
'installable': True, |
|||
'auto_install': False, |
|||
} |
@ -1,45 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). |
|||
# Author: Nikhil krishnan(<http://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
{ |
|||
'name': 'Payroll-Payslip Reporting', |
|||
'version': '10.0.1.0.0', |
|||
'summary': """Payslip Pivot View Report.""", |
|||
'description': """Payslip monthly report. |
|||
This module gives a pivot view for the HR managers. they can see all the 'NET' amount of payslips in all states""", |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': 'http://www.cybrosys.com', |
|||
'category': 'Human Resources', |
|||
'depends': ['hr_payroll'], |
|||
'license': 'LGPL-3', |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'views/menu_payslip_report.xml' |
|||
], |
|||
'demo': [], |
|||
'images': ['static/description/banner.jpg'], |
|||
'installable': True, |
|||
'auto_install': False, |
|||
} |
@ -1,24 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
|||
# Author: Nikhil krishnan(<https://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <https://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from . import hr_payroll_report |
|||
|
@ -1,70 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). |
|||
# Author: Nikhil krishnan(<https://www.cybrosys.com>) |
|||
# you can modify it under the terms of the GNU LESSER |
|||
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. |
|||
# |
|||
# It is forbidden to publish, distribute, sublicense, or sell copies |
|||
# of the Software or modified copies of the Software. |
|||
# |
|||
# 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 |
|||
# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. |
|||
# If not, see <https://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
from odoo import fields, models, tools, api |
|||
|
|||
|
|||
class PayrollReportView(models.Model): |
|||
_name = 'hr.payroll.report.view' |
|||
_auto = False |
|||
|
|||
name = fields.Many2one('hr.employee', string='Employee') |
|||
date_from = fields.Date(string='From') |
|||
date_to = fields.Date(string='To') |
|||
state = fields.Selection([('draft', 'Draft'), ('verify', 'Waiting'), ('done', 'Done'), ('cancel', 'Rejected')], |
|||
string='Status') |
|||
job_id = fields.Many2one('hr.job', string='Job Title') |
|||
company_id = fields.Many2one('res.company', string='Company') |
|||
department_id = fields.Many2one('hr.department', string='Department') |
|||
net = fields.Float(string='Net Salary') |
|||
|
|||
def _select(self): |
|||
select_str = """ |
|||
min(ps.id) as id,emp.id as name,jb.id as job_id, |
|||
dp.id as department_id,cmp.id as company_id, |
|||
ps.date_from, ps.date_to, sum(psl.total) as net, ps.state as state |
|||
""" |
|||
return select_str |
|||
|
|||
def _from(self): |
|||
from_str = """ |
|||
hr_payslip_line psl join hr_payslip ps on (ps.employee_id=psl.employee_id and ps.id=psl.slip_id) |
|||
join hr_employee emp on (ps.employee_id=emp.id) join hr_department dp on (emp.department_id=dp.id) |
|||
join hr_job jb on (emp.department_id=jb.id) join res_company cmp on (cmp.id=ps.company_id) where psl.code='NET' |
|||
""" |
|||
return from_str |
|||
|
|||
def _group_by(self): |
|||
group_by_str = """ |
|||
group by emp.id,psl.total,ps.date_from, ps.date_to, ps.state,jb.id,dp.id,cmp.id |
|||
""" |
|||
return group_by_str |
|||
|
|||
@api.model_cr |
|||
def init(self): |
|||
tools.drop_view_if_exists(self.env.cr, self._table) |
|||
self.env.cr.execute("""CREATE or REPLACE VIEW %s as ( SELECT |
|||
%s |
|||
FROM %s |
|||
%s |
|||
)""" % (self._table, self._select(), self._from(), self._group_by())) |
|||
|
|
Before Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 14 KiB |
@ -1,124 +0,0 @@ |
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">Payroll-Payslip Reporting</h2> |
|||
<h3 class="oe_slogan">Get an overview of the pay slips as pivot</h3> |
|||
<h4 class="oe_slogan">Author : Cybrosys Techno Solutions , www.cybrosys.com</h4> |
|||
<div> |
|||
<h4><p>Features:</p></h4> |
|||
<ul> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ☑</span> <b>Retrieve pivot view of pay slips.</b></li> |
|||
<li style="list-style:none !important;"><span style="color:green; "> ☑</span> <b>Able to get Reports</b> </li> |
|||
<ul style="padding-left: 36px;padding-top: 2px;"> |
|||
<li style="list-style:outside !important;">Employee wise,</li> |
|||
<li style="list-style:outside !important;">Employee's department wise,</li> |
|||
<li style="list-style:outside !important;">Employee's job title wise,</li> |
|||
<li style="list-style:outside !important;">Pay slip's date wise,</li> |
|||
<li style="list-style:outside !important;">Pay slip's status wise,</li> |
|||
<li style="list-style:outside !important;">Company wise.</li> |
|||
</ul> |
|||
<li style="list-style:none !important;"><span style="color:green;"> ☑</span> <b>Spot Export to XLS Report.</b></li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h2 class="oe_slogan">Payroll Monthly Statement in Pivot View</h2> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12"> |
|||
<p class="oe_mt32"> |
|||
This report helps in payroll analysis. This helps you to check your pay slips and sorting it out from different group |
|||
criteria (Employee, Job title, Department, Company, Pay slip etc.). |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Payroll report as Pivot</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img class="oe_picture oe_screenshot" src="HR Payslip Report view.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span12"> |
|||
<p class="oe_mt32"> |
|||
HR managers need a complete payroll statement and also payroll monthly statement. From |
|||
this pivot view we can easily generate the custom payroll report views in excel format. Also |
|||
we can download it from there. From Odoo payroll report we can get only individual employee |
|||
pay slip reports. To make the use of HR payroll management system easier we can use this pivot |
|||
view to get the payroll/pay slip statement. |
|||
</p> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Group by the pivot view</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img class="oe_picture oe_screenshot" src="HR report group by.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span12"> |
|||
<p class="oe_mt32"> |
|||
In this View we can easily generate custom reports by using the + button, |
|||
That is we can make the filters by groups, also we can get the counts too, from the "Measures" Button |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container"> |
|||
<div class="oe_row oe_spaced"> |
|||
<h3 class="oe_slogan">Graph View</h3> |
|||
<div class="oe_row oe_spaced"> |
|||
<div class="oe_span12"> |
|||
<div class="oe_row_img oe_centered"> |
|||
<img class="oe_picture oe_screenshot" src="Payslip Graph Report.png"> |
|||
</div> |
|||
</div> |
|||
<div class="oe_span12"> |
|||
<p class="oe_mt32"> |
|||
In Pivot view we can easily generate custom Graphs like Pie Chart,Bar Chart, Line Chart. |
|||
With date and net salary or date and pay slip's counts. |
|||
</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="oe_container oe_dark"> |
|||
<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="http://www.cybrosys.com"><i |
|||
class="fa fa-envelope"></i> Email </a> <a |
|||
class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" |
|||
href="http://www.cybrosys.com/contact/"><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="http://www.cybrosys.com/odoo-customization-and-installation/"><i |
|||
class="fa fa-check-square"></i> Request Customization </a> |
|||
</div> |
|||
<br> |
|||
<img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> |
|||
<div> |
|||
<a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> |
|||
<a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> |
|||
<a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> |
|||
<a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> |
|||
<a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> |
|||
</div> |
|||
</div> |
|||
</section> |
@ -1,67 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="hr_payroll_report_view_pivot" model="ir.ui.view"> |
|||
<field name="name">hr.payslip.pivot</field> |
|||
<field name="model">hr.payroll.report.view</field> |
|||
<field name="arch" type="xml"> |
|||
<pivot string="Payslip Analysis"> |
|||
<field name="name" type="row"/> |
|||
<field name="date_from" interval="month" type="col"/> |
|||
<field name="net" type="measure"/> |
|||
</pivot> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="hr_payroll_report_view_graph" model="ir.ui.view"> |
|||
<field name="name">hr.payslip.graph</field> |
|||
<field name="model">hr.payroll.report.view</field> |
|||
<field name="arch" type="xml"> |
|||
<graph string="Payslip Analysis"> |
|||
<field name="date_from" type="row"/> |
|||
<field name="net" type="measure"/> |
|||
</graph> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="hr_payroll_report_view_search" model="ir.ui.view"> |
|||
<field name="name">hr.payslip.search</field> |
|||
<field name="model">hr.payroll.report.view</field> |
|||
<field name="arch" type="xml"> |
|||
<search string="Payslip Analysis"> |
|||
<field name="name"/> |
|||
<field name="date_from"/> |
|||
<field name="company_id" groups="base.group_multi_company"/> |
|||
<filter string="This Year" name="year" domain="[('date_from','<=', time.strftime('%%Y-12-31')),('date_from','>=',time.strftime('%%Y-01-01')),('date_to','<=', time.strftime('%%Y-12-31')),('date_to','>=',time.strftime('%%Y-01-01'))]"/> |
|||
<filter name="Salary" string="Salary" domain="[('state','=', 'done')]"/> |
|||
<filter name="Draft" string="Draft" domain="[('state','=','draft')]"/> |
|||
<separator/> |
|||
<field name="department_id"/> |
|||
<group expand="1" string="Group By"> |
|||
<filter string="Employee" name="Employee" context="{'group_by':'name'}"/> |
|||
<filter string="Job" context="{'group_by':'job_id'}"/> |
|||
<filter string="Department" context="{'group_by':'department_id'}"/> |
|||
<filter name="status" string="Status" context="{'group_by':'state'}"/> |
|||
<filter string="Company" groups="base.group_multi_company" context="{'group_by':'company_id'}"/> |
|||
</group> |
|||
</search> |
|||
</field> |
|||
</record> |
|||
|
|||
|
|||
<record id="action_hr_payslip_view_report" model="ir.actions.act_window"> |
|||
<field name="res_model">hr.payroll.report.view</field> |
|||
<field name="name">Payslips</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">pivot,graph</field> |
|||
<field name="context">{'search_default_year':1}</field> |
|||
<field name="help">This report helps in payroll analysis. This helps you to check your pay slips and sorting it out from different group |
|||
criteria (Employee, Job title, Department, Company, Pay slip etc.).</field> |
|||
</record> |
|||
|
|||
<menuitem name="Reports" id="menu_hr_payslip_reports" parent="hr_payroll.menu_hr_payroll_root" /> |
|||
<menuitem id="menu_hr_payslip_view_report" name="Payslip Report" |
|||
parent="menu_hr_payslip_reports" action="action_hr_payslip_view_report" |
|||
groups="hr.group_hr_manager" sequence="10"/> |
|||
</data> |
|||
</odoo> |
@ -1,112 +0,0 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data> |
|||
<record id="act_sale_order_2_revised" model="ir.actions.act_window"> |
|||
<field name="name">Revised Quotation Orders</field> |
|||
<field name="res_model">sale.order</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="sale.view_quotation_tree"/> |
|||
<field name="domain">[('parent_so_id', '=', active_id)]</field> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
Revised order against this Quotation Order. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<!--In sale order menu, we need to avoid the 'revised' state orders. --> |
|||
|
|||
<record id="sale.action_orders" model="ir.actions.act_window"> |
|||
<field name="name">Sales Orders</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">sale.order</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,kanban,form,calendar,pivot,graph</field> |
|||
<field name="search_view_id" ref="sale.sale_order_view_search_inherit_sale"/> |
|||
<field name="context">{}</field> |
|||
<field name="domain">[('state', 'not in', ('draft','revised','sent', 'cancel'))]</field> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
Create a Quotation, the first step of a new sale. |
|||
</p><p> |
|||
Once the quotation is confirmed, it becomes a sales order. |
|||
You'll be able to invoice it and collect payments. |
|||
From the <i>Sales Orders</i> menu, you can track delivery |
|||
orders or services. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="sale.action_quotations" model="ir.actions.act_window"> |
|||
<field name="name">Quotations</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">sale.order</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_id" ref="sale.view_quotation_tree"/> |
|||
<field name="view_mode">tree,kanban,form,calendar,pivot,graph</field> |
|||
<field name="context">{}</field> |
|||
<field name="domain">[('state','in',('pre','draft','sent','cancel'))]</field> |
|||
<field name="search_view_id" ref="sale.view_sales_order_filter"/> |
|||
<field name="help" type="html"> |
|||
<p class="oe_view_nocontent_create"> |
|||
Create a Quotation, the first step of a new sale. |
|||
</p><p> |
|||
Your next actions should flow efficiently: confirm the Quotation |
|||
to a Sale Order, then create the Invoice and collect the Payment. |
|||
</p><p> |
|||
Note that once a Quotation becomes a Sale Order, it will be moved |
|||
from the Quotations list to the Sales Order list. |
|||
</p> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_order_form_revised" model="ir.ui.view"> |
|||
<field name="name">sale.order.form</field> |
|||
<field name="model">sale.order</field> |
|||
<field name="inherit_id" ref="sale.view_order_form" /> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//button[@name='action_confirm']" position="after"> |
|||
<button name="make_revision" string="Revise the Quotation" type="object" states="sent" class="btn-primary"/> |
|||
<button name="action_quotation_send" string="Send by Email" type="object" states="pre" class="btn-primary"/> |
|||
<button name="print_quotation" string="Print" type="object" states="pre" class="btn-primary"/> |
|||
<button name="action_cancel" states="pre" type="object" string="Cancel"/> |
|||
</xpath> |
|||
|
|||
<xpath expr="//div[@name='button_box']" position="inside"> |
|||
<button class="oe_inline oe_stat_button" type="action" name="%(act_sale_order_2_revised)d" |
|||
icon="fa-bars" attrs="{'invisible':[('state','in',[('draft','revised')]}"> |
|||
<field string="Revised Quotation Orders" name="revised_order_count" widget="statinfo"/> |
|||
</button> |
|||
</xpath> |
|||
|
|||
<xpath expr="//field[@name='order_line']" position="attributes"> |
|||
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute> |
|||
</xpath> |
|||
|
|||
<xpath expr="//field[@name='payment_term_id']" position="attributes"> |
|||
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute> |
|||
</xpath> |
|||
|
|||
<xpath expr="//field[@name='user_id']" position="attributes"> |
|||
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute> |
|||
</xpath> |
|||
|
|||
<xpath expr="//field[@name='team_id']" position="attributes"> |
|||
<attribute name="attrs">{'readonly': [('state', 'in', ('sent','revised','done','cancel'))]}</attribute> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_quotation_handler_tree" model="ir.ui.view"> |
|||
<field name="name">sale.order.tree</field> |
|||
<field name="model">sale.order</field> |
|||
<field name="inherit_id" ref="sale.view_quotation_tree" /> |
|||
<field name="arch" type="xml"> |
|||
<xpath expr="//field[@name='state']" position="replace"> |
|||
<field name="state"/> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</odoo> |
@ -1,39 +0,0 @@ |
|||
Open HRMS Reminders Todo V11 |
|||
============================ |
|||
|
|||
HR Reminder For OHRMS |
|||
|
|||
Depends |
|||
======= |
|||
[hr] addon Odoo |
|||
|
|||
Tech |
|||
==== |
|||
* [Python] - Models |
|||
* [XML] - Odoo views |
|||
|
|||
Installation |
|||
============ |
|||
- www.odoo.com/documentation/10.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: Treesa Maria Jude @ cybrosys, treesa@cybrosys.in |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
This module is maintained by Cybrosys Technologies. |
|||
|
|||
For support and more information, please visit https://www.cybrosys.com. |
@ -1,25 +0,0 @@ |
|||
# -*- coding: utf-8 -*- |
|||
################################################################################### |
|||
# A part of OpenHRMS Project <https://www.openhrms.com> |
|||
# |
|||
# Cybrosys Technologies Pvt. Ltd. |
|||
# Copyright (C) 2018-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). |
|||
# Author: Treesa Maria Jude (<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/>. |
|||
# |
|||
################################################################################### |
|||
|
|||
from . import models |
|||
from . import controllers |
@ -1,45 +0,0 @@ |
|||
# -*- 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: Treesa Maria Jude (<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 Reminders Todo', |
|||
'version': '11.0.1.0.0', |
|||
'category': 'Extra Tools', |
|||
'summary': 'HR Reminder For OHRMS', |
|||
'author': 'Cybrosys Techno Solutions', |
|||
'company': 'Cybrosys Techno Solutions', |
|||
'website': "https://www.openhrms.com", |
|||
'depends': ['base', 'hr'], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'security/hr_reminder_security.xml', |
|||
'views/hr_reminder_view.xml', |
|||
'views/reminder_template.xml', |
|||
], |
|||
'qweb': [ |
|||
'static/src/xml/reminder_topbar.xml', ], |
|||
'images': ['static/description/banner.jpg'], |
|||
'license': 'AGPL-3', |
|||
'installable': True, |
|||
'auto_install': False, |
|||
'application': False, |
|||
} |