diff --git a/attendance_regularization/README.rst b/attendance_regularization/README.rst new file mode 100755 index 000000000..33b3494a7 --- /dev/null +++ b/attendance_regularization/README.rst @@ -0,0 +1,51 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Open HRMS Attendance Regularization +=================================== +Manage Attendances for Onsight Jobs. + +Configuration +============= +* No Additional configuration is needed. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL-3). +( https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +Developer: Sayooj A O @ Cybrosys + Version 14: Muhammed Nafih @Cybrosys + Version 15: Mily S @Cybrosys + Version 16: Aiswarya M @Cybrosys + Version 17: Sabeel B @Cybrosys + Version 18: Raneesha M K @Cybrosys + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/attendance_regularization/__init__.py b/attendance_regularization/__init__.py new file mode 100755 index 000000000..35381bf65 --- /dev/null +++ b/attendance_regularization/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/attendance_regularization/__manifest__.py b/attendance_regularization/__manifest__.py new file mode 100755 index 000000000..ae7c23537 --- /dev/null +++ b/attendance_regularization/__manifest__.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': "Open HRMS Attendance Regularization", + 'version': '18.0.1.0.0', + 'category': 'Human Resource', + 'summary': """Assigning Attendance for the Employees with Onsight Jobs""", + 'description': """Assigning Attendance for the Employees with Onsight Jobs + through the requests by Employees """, + 'author': 'Cybrosys Techno solutions,Open HRMS', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.openhrms.com", + 'depends': ['hr_attendance', 'hr_holidays', + 'oh_employee_creation_from_user'], + 'data': [ + 'security/ir.model.access.csv', + 'security/attendance_regularization_security.xml', + 'views/reg_categories_views.xml', + 'views/attendance_regularization_views.xml', + ], + 'demo': ['data/regularization_data.xml'], + 'images': ['static/description/banner.jpg'], + 'license': "LGPL-3", + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/attendance_regularization/data/regularization_data.xml b/attendance_regularization/data/regularization_data.xml new file mode 100644 index 000000000..53390e2be --- /dev/null +++ b/attendance_regularization/data/regularization_data.xml @@ -0,0 +1,35 @@ + + + + + Building 3, Third Floor + + + + + Ronnie + Chief Medical Officer + + ronnie@example.com + (376)-3852-7863 + + + + + Onsight + + + Business Trip + + + Client Meeting + + + + + Going for onsight + + 2021-02-12 10:17:56 + 2021-02-26 10:17:56 + + diff --git a/attendance_regularization/doc/RELEASE_NOTES.md b/attendance_regularization/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..fa60d24d4 --- /dev/null +++ b/attendance_regularization/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 19.03.2025 +#### Version 18.0.1.0.0 +##### ADD +- Initial commit for Open HRMS Attendance Regularization diff --git a/attendance_regularization/i18n/ar_001.po b/attendance_regularization/i18n/ar_001.po new file mode 100644 index 000000000..e9f497a19 --- /dev/null +++ b/attendance_regularization/i18n/ar_001.po @@ -0,0 +1,369 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * attendance_regularization +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-02-12 04:09+0000\n" +"PO-Revision-Date: 2020-02-12 04:09+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_needaction +msgid "Action Needed" +msgstr "الإجراءات اللازمة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_ids +msgid "Activities" +msgstr "أنشطة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_exception_decoration +msgid "Activity Exception Decoration" +msgstr "نشاط استثناء الديكور" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_state +msgid "Activity State" +msgstr "حالة النشاط" + +#. module: attendance_regularization +#: model:ir.model,name:attendance_regularization.model_attendance_regular +msgid "Approval Request" +msgstr "طلب مقبول" + +#. module: attendance_regularization +#: model_terms:ir.ui.view,arch_db:attendance_regularization.attendance_regular11 +msgid "Approve" +msgstr "يوافق" + +#. module: attendance_regularization +#: model_terms:ir.ui.view,arch_db:attendance_regularization.view_regular_approve_tree +msgid "Approve Regularization" +msgstr "الموافقة على التنظيم" + +#. module: attendance_regularization +#: model:ir.model.fields.selection,name:attendance_regularization.selection__attendance_regular__state_select__approved +msgid "Approved" +msgstr "وافق" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_attachment_count +msgid "Attachment Count" +msgstr "عدد المرفقات" + +#. module: attendance_regularization +#: model:ir.model,name:attendance_regularization.model_hr_attendance +msgid "Attendance" +msgstr "الحضور" + +#. module: attendance_regularization +#: model:ir.ui.menu,name:attendance_regularization.regular_onsight +#: model_terms:ir.ui.view,arch_db:attendance_regularization.view_regular_tree1 +msgid "Attendance Regularization" +msgstr "تنظيم الحضور" + +#. module: attendance_regularization +#: model:ir.actions.act_window,name:attendance_regularization.action_view_request_regularization +msgid "Attendance Regularization Approval" +msgstr "الموافقة على تنظيم الحضور" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__type +msgid "Category" +msgstr "الفئة" + +#. module: attendance_regularization +#: model_terms:ir.actions.act_window,help:attendance_regularization.action_view_request_regularization +msgid "Create new Record" +msgstr "إنشاء سجل جديد" + +#. module: attendance_regularization +#: model_terms:ir.actions.act_window,help:attendance_regularization.action_view_regularization1 +msgid "Create new Request" +msgstr "إنشاء طلب جديد" + +#. module: attendance_regularization +#: model_terms:ir.actions.act_window,help:attendance_regularization.action_view_job_cats +msgid "Create new record" +msgstr "إنشاء سجل جديد" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__create_uid +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__create_uid +msgid "Created by" +msgstr "انشأ من قبل" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__create_date +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__create_date +msgid "Created on" +msgstr "تم إنشاؤها على" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__display_name +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__display_name +msgid "Display Name" +msgstr "اسم العرض" + +#. module: attendance_regularization +#: model:ir.model.fields.selection,name:attendance_regularization.selection__attendance_regular__state_select__draft +msgid "Draft" +msgstr "مشروع" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__employee_id +msgid "Employee" +msgstr "موظف" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_follower_ids +msgid "Followers" +msgstr "متابعون" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_channel_ids +msgid "Followers (Channels)" +msgstr "(المتابعون (القنوات" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_partner_ids +msgid "Followers (Partners)" +msgstr "(المتابعون (الشركاء" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__from_date +msgid "From Date" +msgstr "من التاريخ" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__id +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__id +msgid "ID" +msgstr "هوية شخصية" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_exception_icon +msgid "Icon" +msgstr "أيقونة" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__activity_exception_icon +msgid "Icon to indicate an exception activity." +msgstr "أيقونة للإشارة إلى نشاط استثناء." + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_needaction +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_unread +msgid "If checked, new messages require your attention." +msgstr ".إذا تم تحديد ذلك ، فإن الرسائل الجديدة تتطلب اهتمامك" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_has_error +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_has_sms_error +msgid "If checked, some messages have a delivery error." +msgstr ".إذا تم التحقق ، فبعض الرسائل بها خطأ في التسليم" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_is_follower +msgid "Is Follower" +msgstr "هو تابع" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular____last_update +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories____last_update +msgid "Last Modified on" +msgstr "آخر تعديل في" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__write_uid +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__write_uid +msgid "Last Updated by" +msgstr "آخر تحديث بواسطة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__write_date +#: model:ir.model.fields,field_description:attendance_regularization.field_reg_categories__write_date +msgid "Last Updated on" +msgstr "آخر تحديث في" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_main_attachment_id +msgid "Main Attachment" +msgstr "المرفق الرئيسي" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_has_error +msgid "Message Delivery error" +msgstr "خطأ في تسليم الرسالة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_ids +msgid "Messages" +msgstr "رسائل" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_date_deadline +msgid "Next Activity Deadline" +msgstr "آخر نشاط الموعد النهائي" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_summary +msgid "Next Activity Summary" +msgstr "ملخص النشاط التالي" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_type_id +msgid "Next Activity Type" +msgstr "نوع النشاط التالي" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_needaction_counter +msgid "Number of Actions" +msgstr "عدد الإجراءات" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_has_error_counter +msgid "Number of errors" +msgstr "عدد الاخطاء" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_needaction_counter +msgid "Number of messages which requires an action" +msgstr "عدد الرسائل التي تتطلب إجراء" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_has_error_counter +msgid "Number of messages with delivery error" +msgstr "عدد الرسائل مع خطأ التسليم" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__message_unread_counter +msgid "Number of unread messages" +msgstr "عدد الرسائل غير المقروءة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__reg_reason +msgid "Reason" +msgstr "السبب" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_hr_attendance__regularization +#: model_terms:ir.ui.view,arch_db:attendance_regularization.attendance_regular11 +msgid "Regularization" +msgstr "تسوية" + +#. module: attendance_regularization +#: model:ir.ui.menu,name:attendance_regularization.approving_regular +msgid "Regularization Approval" +msgstr "الموافقة على التنظيم" + +#. module: attendance_regularization +#: model:ir.actions.act_window,name:attendance_regularization.action_view_job_cats +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__reg_category +#: model:ir.ui.menu,name:attendance_regularization.jobs_catagories +#: model_terms:ir.ui.view,arch_db:attendance_regularization.job_cate +msgid "Regularization Category" +msgstr "فئة التنظيم" + +#. module: attendance_regularization +#: model:ir.actions.act_window,name:attendance_regularization.action_view_regularization1 +msgid "Regularization Request" +msgstr "طلب تسوية" + +#. module: attendance_regularization +#: model_terms:ir.ui.view,arch_db:attendance_regularization.attendance_regular11 +msgid "Reject" +msgstr "رفض" + +#. module: attendance_regularization +#: model:ir.model.fields.selection,name:attendance_regularization.selection__attendance_regular__state_select__reject +msgid "Rejected" +msgstr "" + +#. module: attendance_regularization +#: model:ir.ui.menu,name:attendance_regularization.applying_regular1 +msgid "Request Regularization" +msgstr "طلب تنظيم" + +#. module: attendance_regularization +#: model:ir.model.fields.selection,name:attendance_regularization.selection__attendance_regular__state_select__requested +msgid "Requested" +msgstr "طلب" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__activity_user_id +msgid "Responsible User" +msgstr "المستخدم المسؤول" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_has_sms_error +msgid "SMS Delivery error" +msgstr "خطأ في تسليم الرسائل القصيرة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__state_select +msgid "State" +msgstr "حالة" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__activity_state +msgid "" +"Status based on activities\n" +"Overdue: Due date is already passed\n" +"Today: Activity date is today\n" +"Planned: Future activities." +msgstr "" + "الحالة على أساس الأنشطة\n" + "المتأخرة: تاريخ الاستحقاق مر\n" + "اليوم: تاريخ النشاط هو اليوم\n" + "المخطط: الأنشطة المستقبلية." + + +#. module: attendance_regularization +#: model_terms:ir.ui.view,arch_db:attendance_regularization.attendance_regular11 +msgid "Submit" +msgstr "إرسال" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__to_date +msgid "To Date" +msgstr "حتى تاريخه" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__activity_exception_decoration +msgid "Type of the exception activity on record." +msgstr ".نوع نشاط الاستثناء في السجل" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_unread +msgid "Unread Messages" +msgstr "رسائل غير مقروءة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__message_unread_counter +msgid "Unread Messages Counter" +msgstr "عداد الرسائل غير المقروءة" + +#. module: attendance_regularization +#: model:ir.model.fields,field_description:attendance_regularization.field_attendance_regular__website_message_ids +msgid "Website Messages" +msgstr "رسائل الموقع" + +#. module: attendance_regularization +#: model:ir.model.fields,help:attendance_regularization.field_attendance_regular__website_message_ids +msgid "Website communication history" +msgstr "سجل اتصالات الموقع" + +#. module: attendance_regularization +#: model:ir.model,name:attendance_regularization.model_reg_categories +msgid "reg.categories" +msgstr "" diff --git a/attendance_regularization/models/__init__.py b/attendance_regularization/models/__init__.py new file mode 100755 index 000000000..6313c2586 --- /dev/null +++ b/attendance_regularization/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import attendance_regularization +from . import hr_attendance +from . import reg_categories diff --git a/attendance_regularization/models/attendance_regularization.py b/attendance_regularization/models/attendance_regularization.py new file mode 100755 index 000000000..34e023eec --- /dev/null +++ b/attendance_regularization/models/attendance_regularization.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class AttendanceRegular(models.Model): + """Model to record regularization attendance""" + _name = 'attendance.regular' + _rec_name = 'employee_id' + _description = 'Attendance Regular' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + def _get_employee_id(self): + """Get the ID of the currently logged-in employee""" + employee_rec = self.env['hr.employee'].search([ + ('user_id', '=', self.env.uid)], limit=1) + return employee_rec.id + + reg_category = fields.Many2one('reg.categories', + string='Regularization Category', + required=True, + help='Choose the category of attendance ' + 'regularization') + from_date = fields.Datetime(string='From Date', required=True, + help='Start Date') + to_date = fields.Datetime(string='To Date', required=True, + help='End Date') + reg_reason = fields.Text(string='Reason', required=True, + help='Reason for the attendance regularization') + employee_id = fields.Many2one('hr.employee', string="Employee", + default=_get_employee_id, readonly=True, + required=True, help='Employee') + state_select = fields.Selection([('draft', 'Draft'), + ('requested', 'Requested'), + ('reject', 'Rejected'), + ('approved', 'Approved') + ], default='draft', + copy=False, + track_visibility='onchange', + string='State', help='Status of record') + def action_submit_reg(self): + """Change state to 'requested' upon submission""" + self.ensure_one() + self.sudo().write({ + 'state_select': 'requested' + }) + return + + def action_regular_approval(self): + """Approve the attendance regularization""" + self.write({ + 'state_select': 'approved' + }) + vals = { + 'check_in': self.from_date, + 'check_out': self.to_date, + 'employee_id': self.employee_id.id, + 'regularization': True + } + self.env['hr.attendance'].sudo().create(vals) + return + + def action_regular_rejection(self): + """Reject the attendance regularization""" + self.write({ + 'state_select': 'reject' + }) + return diff --git a/attendance_regularization/models/hr_attendance.py b/attendance_regularization/models/hr_attendance.py new file mode 100755 index 000000000..5a793ffe7 --- /dev/null +++ b/attendance_regularization/models/hr_attendance.py @@ -0,0 +1,31 @@ + # -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class HrAttendance(models.Model): + """Inherited hr_attendance model to add new fields""" + _inherit = 'hr.attendance' + + regularization = fields.Boolean(string="Regularization", + help="Regularized attendance") diff --git a/attendance_regularization/models/reg_categories.py b/attendance_regularization/models/reg_categories.py new file mode 100644 index 000000000..7982db6f3 --- /dev/null +++ b/attendance_regularization/models/reg_categories.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################# +# A part of Open HRMS Project +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class RegCategory(models.Model): + """Model to manage regularization categories""" + _name = 'reg.categories' + _description = 'Reg Categories' + _rec_name = 'type' + + type = fields.Char(string='Category', help='Type of regularization') diff --git a/attendance_regularization/security/attendance_regularization_security.xml b/attendance_regularization/security/attendance_regularization_security.xml new file mode 100755 index 000000000..7a53d7b77 --- /dev/null +++ b/attendance_regularization/security/attendance_regularization_security.xml @@ -0,0 +1,17 @@ + + + + + Attendance Visibility + + [('employee_id.user_id','=',user.id)] + + + + + Admin Visibility + + [] + + + diff --git a/attendance_regularization/security/ir.model.access.csv b/attendance_regularization/security/ir.model.access.csv new file mode 100755 index 000000000..7a4ad4e39 --- /dev/null +++ b/attendance_regularization/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_attendance_regular_user,access.request.regular,model_attendance_regular,base.group_user,1,1,1,0 +access_attendance_regular_categories_user,access.request.regular.categories.user,model_reg_categories,base.group_user,1,0,0,0 +access_attendance_categories_admin,access.request.categories.admin,model_reg_categories,hr_attendance.group_hr_attendance_manager,1,1,1,1 diff --git a/attendance_regularization/static/description/assets/icons/arrows-repeat.svg b/attendance_regularization/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/banner-bg.png b/attendance_regularization/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/banner-bg.png differ diff --git a/attendance_regularization/static/description/assets/icons/banner-bg.svg b/attendance_regularization/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/banner-call.svg b/attendance_regularization/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/attendance_regularization/static/description/assets/icons/banner-logo-pattern.svg b/attendance_regularization/static/description/assets/icons/banner-logo-pattern.svg new file mode 100644 index 000000000..2ba63930a --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/banner-logo-pattern.svg @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/banner-mail.svg b/attendance_regularization/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/attendance_regularization/static/description/assets/icons/banner-promo.svg b/attendance_regularization/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg b/attendance_regularization/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg new file mode 100644 index 000000000..1df614b00 Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/blue-abstract-gradient-wave-wallpaper.jpg differ diff --git a/attendance_regularization/static/description/assets/icons/close-icon.svg b/attendance_regularization/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/attendance_regularization/static/description/assets/icons/collabarate-icon.svg b/attendance_regularization/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/attendance_regularization/static/description/assets/icons/cybro-logo.png b/attendance_regularization/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/cybro-logo.png differ diff --git a/attendance_regularization/static/description/assets/icons/down (1).svg b/attendance_regularization/static/description/assets/icons/down (1).svg new file mode 100644 index 000000000..ecc984f88 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/down (1).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/attendance_regularization/static/description/assets/icons/email (2).svg b/attendance_regularization/static/description/assets/icons/email (2).svg new file mode 100644 index 000000000..ea2d8b15d --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/email (2).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/attendance_regularization/static/description/assets/icons/feature-icon.svg b/attendance_regularization/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/gear.svg b/attendance_regularization/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/hire-odoo.svg b/attendance_regularization/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/key-benefits-pattern.svg b/attendance_regularization/static/description/assets/icons/key-benefits-pattern.svg new file mode 100644 index 000000000..29cf22ed8 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/key-benefits-pattern.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/key-benefits.svg b/attendance_regularization/static/description/assets/icons/key-benefits.svg new file mode 100644 index 000000000..5b14887dc --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/key-benefits.svg @@ -0,0 +1,3 @@ + + + diff --git a/attendance_regularization/static/description/assets/icons/life-ring-icon.svg b/attendance_regularization/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/logo-openhrms.png b/attendance_regularization/static/description/assets/icons/logo-openhrms.png new file mode 100644 index 000000000..e64152348 Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/logo-openhrms.png differ diff --git a/attendance_regularization/static/description/assets/icons/mail.svg b/attendance_regularization/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/attendance_regularization/static/description/assets/icons/notification icon.svg b/attendance_regularization/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/odoo-consultancy.svg b/attendance_regularization/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/attendance_regularization/static/description/assets/icons/odoo-licencing.svg b/attendance_regularization/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/attendance_regularization/static/description/assets/icons/odoo-logo.png b/attendance_regularization/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/odoo-logo.png differ diff --git a/attendance_regularization/static/description/assets/icons/patter.svg b/attendance_regularization/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/pattern1.png b/attendance_regularization/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/attendance_regularization/static/description/assets/icons/pattern1.png differ diff --git a/attendance_regularization/static/description/assets/icons/puzzle-piece-icon.svg b/attendance_regularization/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/replace-icon.svg b/attendance_regularization/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/skype.svg b/attendance_regularization/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/attendance_regularization/static/description/assets/icons/translate.svg b/attendance_regularization/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/icons/wrench-icon.svg b/attendance_regularization/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/attendance_regularization/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/attendance_regularization/static/description/assets/modules/1.gif b/attendance_regularization/static/description/assets/modules/1.gif new file mode 100644 index 000000000..d19e2b352 Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/1.gif differ diff --git a/attendance_regularization/static/description/assets/modules/2.png b/attendance_regularization/static/description/assets/modules/2.png new file mode 100644 index 000000000..823bd9143 Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/2.png differ diff --git a/attendance_regularization/static/description/assets/modules/3.png b/attendance_regularization/static/description/assets/modules/3.png new file mode 100644 index 000000000..669b087bf Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/3.png differ diff --git a/attendance_regularization/static/description/assets/modules/4.png b/attendance_regularization/static/description/assets/modules/4.png new file mode 100644 index 000000000..3a4079b61 Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/4.png differ diff --git a/attendance_regularization/static/description/assets/modules/5.png b/attendance_regularization/static/description/assets/modules/5.png new file mode 100644 index 000000000..7a8e17804 Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/5.png differ diff --git a/attendance_regularization/static/description/assets/modules/6.png b/attendance_regularization/static/description/assets/modules/6.png new file mode 100644 index 000000000..b3112fff8 Binary files /dev/null and b/attendance_regularization/static/description/assets/modules/6.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/1.png b/attendance_regularization/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..8a60725de Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/1.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/2.png b/attendance_regularization/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..35a27fb00 Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/2.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/3.png b/attendance_regularization/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..9b18421da Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/3.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/4.png b/attendance_regularization/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..01ebff4f4 Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/4.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/5.png b/attendance_regularization/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..2b990db15 Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/5.png differ diff --git a/attendance_regularization/static/description/assets/screenshots/hero.gif b/attendance_regularization/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..bed694a6c Binary files /dev/null and b/attendance_regularization/static/description/assets/screenshots/hero.gif differ diff --git a/attendance_regularization/static/description/banner.jpg b/attendance_regularization/static/description/banner.jpg new file mode 100644 index 000000000..aa49d1806 Binary files /dev/null and b/attendance_regularization/static/description/banner.jpg differ diff --git a/attendance_regularization/static/description/icon.png b/attendance_regularization/static/description/icon.png new file mode 100644 index 000000000..5c7b9635c Binary files /dev/null and b/attendance_regularization/static/description/icon.png differ diff --git a/attendance_regularization/static/description/index.html b/attendance_regularization/static/description/index.html new file mode 100644 index 000000000..ddb237593 --- /dev/null +++ b/attendance_regularization/static/description/index.html @@ -0,0 +1,1036 @@ + + + + + + app index + + + + + + + + + + +
+
+ +
+
Community +
+
+
+
+
+

Open HRMS Attendance Regularization +

+

+ This module Manages Attendance For Onsight Jobs +

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

Key + Highlights

+
+
+
+
+ +
+
+ Managing Requests From Onsight Employees +
+

+ It manages requests From onsight employees in OHRMS modules.

+
+
+
+
+
+ +
+
+ Automatic Addition Of Attendance Through Approval +
+

+ It manages automatic addition of attendance through approval in OHRMS modules +

+
+
+
+
+ +
+
+
+ Open HRMS Attendance Regularization +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + +
+
+ +
+
+
+
+ acc_bg +
+
+
+
+
+

+ Set User Access + +

+
+
+

+ Select the User and set the "Attendances" field to 'Administrator' + +

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

+ Create Attendance Regularization + +

+
+
+

+ Fill the mandatory fields and click "Submit" to send request +

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

+ Approve / Reject the request + +

+
+
+

+ Now the Attendance Request is generated the manager can either 'Approve' + or 'Reject' the request +

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

+ Approve Request + +

+
+
+

+ Click on 'Approve' to add the attendance + +

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

+ Attendance Registry + +

+
+
+

+ Now we can see the attendance is added in the attendance registry + +

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

+ Managing Requests From Onsight Employees

+
+
+
+
+
+
+
+ +
+

+ Automatic Addition Of Attendance Through Approval +

+
+
+
+
+
+
+
+
+

+ FAQ + + +

+
+
+
+
+ +
+ +
+ +
+

+ The Open HRMS Attendance Regularization module allows employees to request attendance regularization, especially for onsite jobs where standard attendance tracking might not apply. +

+
+
+ +
+ +
+

+ Employees can submit a request for attendance regularization through the system, which managers can review and approve based on the details of the onsite job. +

+
+
+ +
+ +
+

+ Attendance regularization requests can be reviewed and approved by managers or administrators, based on permissions set in the security configuration of the module. +

+
+
+ +
+ +
+

+ Yes, employees can track the status of their regularization requests from submission to approval through the module’s interface. +

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

+ Release 18.0.1.0.0 +

+ + 17th October, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + + + + + + + +
+
+

Our Services

+
+ + +
+
+ + +
+
+ .... +
+
+ +
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/attendance_regularization/views/attendance_regularization_views.xml b/attendance_regularization/views/attendance_regularization_views.xml new file mode 100755 index 000000000..5439515a2 --- /dev/null +++ b/attendance_regularization/views/attendance_regularization_views.xml @@ -0,0 +1,103 @@ + + + + + attendance.regular.view.list + attendance.regular + + + + + + + + + + + + + + + attend.regular.approve.view.form + attendance.regular + +
+
+
+ + + + + + + + + + + +
+
+ + + Attendance Regularization + attendance.regular + list,form + [] + {'create': False} + +

Create new Request +

+
+
+ + + Attendance Regularization Approve + attendance.regular + list,form + + [('state_select','!=','approved'),('state_select','!=','reject')] + + +

Create new Record +

+
+
+ + + + + + +
diff --git a/attendance_regularization/views/reg_categories_views.xml b/attendance_regularization/views/reg_categories_views.xml new file mode 100644 index 000000000..7992afe7a --- /dev/null +++ b/attendance_regularization/views/reg_categories_views.xml @@ -0,0 +1,29 @@ + + + + + reg.categories.view.list + reg.categories + + + + + + + + + Regularization Category + reg.categories + list + [] + +

Create new record +

+
+
+ + +