diff --git a/odex25_hr/hr_permission_holidays/__manifest__.py b/odex25_hr/hr_permission_holidays/__manifest__.py
index 4f7d9f0b5..023d6ca5e 100644
--- a/odex25_hr/hr_permission_holidays/__manifest__.py
+++ b/odex25_hr/hr_permission_holidays/__manifest__.py
@@ -1,17 +1,16 @@
# -*- coding: utf-8 -*-
{
- 'name': 'Hr Holiday Permission',
+ 'name': 'HR Holiday Permission',
'version': '1.0',
- 'summary': """Hr Holiday Permission""",
- 'description': """Hr Holiday Permission.
+ 'summary': """HR Holiday Permission""",
+ 'description': """HR Holiday Permission.
This module gives Feature of deduct Permissions from holidays""",
- 'category': 'Odex25-HR/Odex25-HR',
+ 'category': 'HR-Odex',
'author': 'Expert Co. Ltd.',
'website': 'http://exp-sa.com',
'depends': ['hr_holidays_public', 'employee_requests'],
'license': 'LGPL-3',
'data': [
- 'views/resource_view.xml',
'views/permission_view.xml',
'views/hr_holiday_view.xml',
],
diff --git a/odex25_hr/hr_permission_holidays/i18n/ar_001.po b/odex25_hr/hr_permission_holidays/i18n/ar_001.po
index 12c5a1986..c0753f02f 100644
--- a/odex25_hr/hr_permission_holidays/i18n/ar_001.po
+++ b/odex25_hr/hr_permission_holidays/i18n/ar_001.po
@@ -17,8 +17,9 @@ msgstr ""
#. module: hr_permission_holidays
#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission__deduct_from_holiday
-msgid "Deduct From Holiday"
-msgstr "الخصم من رصيد الاجازة"
+#: model_terms:ir.ui.view,arch_db:hr_permission_holidays.hr_view_tree_inherit_permissions_holiday
+msgid "Half Day Off"
+msgstr "نصف يوم من الإجازة السنوية"
#. module: hr_permission_holidays
#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays__display_name
@@ -71,8 +72,8 @@ msgstr "رقم الإذن"
#. module: hr_permission_holidays
#: model:ir.model.fields,field_description:hr_permission_holidays.field_resource_calendar__holiday_permission_deducted
-msgid "Permission to Deduct From holiday"
-msgstr "خصم الاذن من الاجازة"
+msgid "Number Permission Holiday"
+msgstr "عدد إستئذانات الاجازة"
#. module: hr_permission_holidays
#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays__permission_ids
@@ -81,8 +82,8 @@ msgstr "الاذونات"
#. module: hr_permission_holidays
#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays_status__permission_annual_holiday
-msgid "Permissions Deduct From Holiday"
-msgstr "خصم الإذن من الاجازة السنوية"
+msgid "Permissions Half Day Off"
+msgstr "نصف يوم من الإجازة السنوية"
#. module: hr_permission_holidays
#: model:ir.model,name:hr_permission_holidays.model_resource_calendar
@@ -95,31 +96,35 @@ msgstr "فترة عمل المورد"
msgid "Sorry You Have No annual Leave To Deduct Permission"
msgstr "عذرا ليس هنالك اجازة سنوية لخصم الاذن"
+#. module: hr_permission_holidays
+#: code:addons/hr_permission_holidays/models/permission.py:0
+#, python-format
+msgid "Sorry You Have Used All Your Permission In This Day you have one permission per a Day"
+msgstr "لايمكن طلب اذن مره أخرى في نفس اليوم"
+
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
msgid "Sorry You Have Used All Your Permission Hours In This Month"
-msgstr "تم استخدام كل الاذونات المسموح بها خلال هذا الشهر"
+msgstr "تم استخدام كل ساعات الإستئذانات المسموح بها خلال هذا الشهر"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
-msgid ""
-"Sorry You Have Used All Your Permission In This Day you have one permission "
-"per a Day"
-msgstr "عذرًا ، لقد استخدمت كل الأذونات الخاصة بك في هذا اليوم ، لديك إذن واحد لكل يوم"
+msgid "This Duration Must Be Greater Than Zero"
+msgstr "فترة الاذن يجب ان تكون اكبر من الصفر"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
-msgid "Sorry You Have Used All Your Permission To Deduct From Holidays"
+msgid "Sorry You Have Used All Your Permission To Half Day Off"
msgstr "تم استخدام كل الاذونات المسموح بخصمها من الاجازة السنوية!"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
msgid "Sorry You Need To use Basic Permission Before Use Holidays"
-msgstr "عذرا لايمكنك طلب خصم من اجازة وانت ﻻتمتلك رصيد إذن غير مستخدم"
+msgstr "عذرا لايمكنك طلب خصم من اجازة وانت لديك رصيد إذن غير مستخدم "
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
@@ -128,11 +133,6 @@ msgstr "عذرا لايمكنك طلب خصم من اجازة وانت ﻻتمت
msgid "Sorry you Have No leave balance"
msgstr "لايوجد رصيد اجازة سنوية للخصم منه"
-#. module: hr_permission_holidays
-#: model:ir.model.fields,help:hr_permission_holidays.field_resource_calendar__holiday_permission_deducted
-msgid "The Number of permission deducted From The Annual Holiday balance"
-msgstr "عدد الإذن المقتطع من رصيد الإجازة السنوية"
-
#. module: hr_permission_holidays
#: model:ir.model.fields,help:hr_permission_holidays.field_hr_personal_permission__permission_number
msgid "The Remaining Number of Hours permission This Month"
@@ -141,30 +141,50 @@ msgstr "إذن العدد المتبقي من الساعات هذا الشهر"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
-msgid "This Duration Must Be Greater Than Zero"
-msgstr "يجب أن تكون هذه المدة أكبر من الصفر"
+msgid "This Duration must be Greater than or equal to the Permission Limit"
+msgstr "فترة الاذن يجب ان تكون اكبر من او يساوي فترة الإستئذانات المسموح بها"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
-msgid "This Duration must be less than or equal to the Permission Limit"
-msgstr "يجب أن تكون هذه المدة أقل من أو تساوي حد الإذن"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:0
-#, python-format
-msgid ""
-"This Duration not Allowed it must be Less Than or equal Permission Hours in "
-"Month"
-msgstr "هذه المدة غير مسموح بها يجب أن تكون أقل من أو تساوي ساعات الإذن في الشهر"
+msgid "This Duration not Allowed it must be Less Than or equal Permission Hours in Month"
+msgstr "فترة الإذن يجب ان تكون اقل من او يساوي فترة الإستئذانات المسموح بها خلال الشهر"
#. module: hr_permission_holidays
#: code:addons/hr_permission_holidays/models/permission.py:0
#, python-format
msgid "You can not Request Permission The Employee have Not First Hiring Date"
-msgstr "لا يمكنك طلب الإذن ليس للموظف تاريخ التعيين الأول"
+msgstr "لا يمكنك طلب إستئذان لموظف وليس لديه تاريخ مباشرة عمل"
#. module: hr_permission_holidays
#: model:ir.model,name:hr_permission_holidays.model_hr_personal_permission
msgid "hr.personal.permission"
-msgstr ""
+msgstr "الإستئذانات"
+
+#. module: hr_permission_holidays
+#: code:addons/hr_permission_holidays/models/permission.py:0
+#, python-format
+msgid "The Number Of Hours should Be %s Hours For the Half Day Leave"
+msgstr "يجب ان تكون ساعات طلب نصف يوم من الاجازة السنوية %s ساعات"
+
+#. module: hr_permission_holidays
+#: code:addons/hr_permission_holidays/models/permission.py:0
+#, python-format
+msgid "Sorry, Must Be a Half Day Period Within Working Hours"
+msgstr "يجب ان تكون فترة نصف يوم خلال ساعات العمل"
+
+#. module: hr_permission_holidays
+#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_type__half_holiday
+#: model_terms:ir.ui.view,arch_db:hr_permission_holidays.hr_personal_permission_type_view_form_inherit
+msgid "Half Holiday"
+msgstr "نصف إجازة"
+
+#. module: hr_permission_holidays
+#: model:ir.model.fields,help:hr_permission_holidays.field_hr_personal_permission_type__half_holiday
+msgid "The permission deducted From The Annual Holiday balance"
+msgstr "يتم خصم نص يوم من رصيد الاجازة السنوية"
+
+#. module: employee_requests
+#: model:ir.model.fields,field_description:employee_requests.field_hr_personal_permission_type__monthly_hours
+msgid "Monthly Hours"
+msgstr "ساعات/مرات شهرية"
diff --git a/odex25_hr/hr_permission_holidays/i18n/ar_EG.po b/odex25_hr/hr_permission_holidays/i18n/ar_EG.po
deleted file mode 100644
index bf9b2f600..000000000
--- a/odex25_hr/hr_permission_holidays/i18n/ar_EG.po
+++ /dev/null
@@ -1,112 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * hr_permission_holidays
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 11.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-20 14:09+0000\n"
-"PO-Revision-Date: 2020-04-20 14: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: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_deduct_from_holiday
-msgid "Deduct From Holiday"
-msgstr "الخصم من رصيد الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_holiday
-msgid "Holiday"
-msgstr "يوم الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_holidays
-msgid "Leave"
-msgstr "الاجازات"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_holidays_status
-msgid "Leave Type"
-msgstr "نوع الإجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_permission_amount
-msgid "Permission Amount"
-msgstr "مقدار الاذن"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_resource_calendar_holiday_permission_deducted
-msgid "Permission to Deduct From holiday"
-msgstr "خصم الاذن من الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays_permission_ids
-msgid "Permissions"
-msgstr "الاذونات"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays_status_permission_annual_holiday
-msgid "Permissions Deduct From Holiday"
-msgstr "خصم الإذن من الاجازة السنوية"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_resource_calendar
-msgid "Resource Calendar"
-msgstr "تقويم المورد"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:68
-#, python-format
-msgid "Sorry You Have No annual Leave To Deduct Permission"
-msgstr "عذرا ليس هنالك اجازة سنوية لخصم الاذن"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:108
-#, python-format
-msgid "Sorry You Have Used All Your Permission In This Day you have one permission per a Day"
-msgstr "لايمكن طلب اذن مره اخرى في نفس اليوم"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:47
-#: code:addons/hr_permission_holidays/models/permission.py:66
-#, python-format
-msgid "Sorry You Have Used All Your Permission In This Month"
-msgstr "تم استخدام كل الاذونات المسموح بها خلال هذا الشهر!"
-
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:47
-#: code:addons/hr_permission_holidays/models/permission.py:66
-#, python-format
-msgid "Sorry You Have Used All Your Permission To Deduct From Holidays"
-msgstr "تم استخدام كل الاذونات المسموح بخصمها من الاجازة السنوية!"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:70
-#, python-format
-msgid "Sorry You Need To use Basic Permission Before Use Holidays"
-msgstr "عذرا لايمكنك طلب خصم من اجازة وانت ﻻتمتلك رصيد إذن غير مستخدم "
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:64
-#: code:addons/hr_permission_holidays/models/permission.py:78
-#, python-format
-msgid "Sorry you Have No leave balance"
-msgstr "لايوجد رصيد اجازة سنوية للخصم منه"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:116
-#, python-format
-msgid "This Duration not Allowed it must be Less Than or equal to Balance And Not Equal Zero"
-msgstr "فترة الاذن يجب ان تكون اكبر من الصفر واقل من او يساوي فترة الاذن المسموح بها"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_personal_permission
-msgid "hr.personal.permission"
-msgstr "اذن الخروج"
diff --git a/odex25_hr/hr_permission_holidays/i18n/ar_SY.po b/odex25_hr/hr_permission_holidays/i18n/ar_SY.po
deleted file mode 100644
index ffaadb7d6..000000000
--- a/odex25_hr/hr_permission_holidays/i18n/ar_SY.po
+++ /dev/null
@@ -1,129 +0,0 @@
-# Translation of Odoo Server.
-# This file contains the translation of the following modules:
-# * hr_permission_holidays
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Odoo Server 11.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-04-20 14:09+0000\n"
-"PO-Revision-Date: 2020-04-20 14: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: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_deduct_from_holiday
-msgid "Deduct From Holiday"
-msgstr "الخصم من رصيد الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_holiday
-msgid "Holiday"
-msgstr "يوم الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_holidays
-msgid "Leave"
-msgstr "الاجازات"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_holidays_status
-msgid "Leave Type"
-msgstr "نوع الإجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_personal_permission_permission_amount
-msgid "Permission Amount"
-msgstr "مقدار الاذن"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_resource_calendar_holiday_permission_deducted
-msgid "Permission to Deduct From holiday"
-msgstr "خصم الاذن من الاجازة"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays_permission_ids
-msgid "Permissions"
-msgstr "الاذونات"
-
-#. module: hr_permission_holidays
-#: model:ir.model.fields,field_description:hr_permission_holidays.field_hr_holidays_status_permission_annual_holiday
-msgid "Permissions Deduct From Holiday"
-msgstr "خصم الإذن من الاجازة السنوية"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_resource_calendar
-msgid "Resource Calendar"
-msgstr "تقويم المورد"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:68
-#, python-format
-msgid "Sorry You Have No annual Leave To Deduct Permission"
-msgstr "عذرا ليس هنالك اجازة سنوية لخصم الاذن"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:108
-#, python-format
-msgid "Sorry You Have Used All Your Permission In This Day you have one permission per a Day"
-msgstr "لايمكن طلب اذن مره أخرى في نفس اليوم"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:47
-#, python-format
-msgid "Sorry You Have Used All Your Permission In This Month"
-msgstr "تم استخدام كل الاذونات المسموح بها خلال هذا الشهر!"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:47
-#: code:addons/hr_permission_holidays/models/permission.py:66
-#, python-format
-msgid "Sorry You Have Used All Your Permission To Deduct From Holidays"
-msgstr "تم استخدام كل الاذونات المسموح بخصمها من الاجازة السنوية!"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:70
-#, python-format
-msgid "Sorry You Need To use Basic Permission Before Use Holidays"
-msgstr "عذرا لايمكنك طلب خصم من اجازة وانت لديك رصيد إذن غير مستخدم "
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:64
-#: code:addons/hr_permission_holidays/models/permission.py:78
-#, python-format
-msgid "Sorry you Have No leave balance"
-msgstr "لايوجد رصيد اجازة سنوية للخصم منه"
-
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:49
-#, python-format
-msgid "Sorry You Have Used All Your Permission Hours In This Month"
-msgstr "تم استخدام كل ساعات الإذن المسموح بها خلال هذا الشهر"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:116
-#, python-format
-msgid "This Duration Must Be Greater Than Zero"
-msgstr "فترة الاذن يجب ان تكون اكبر من الصفر"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:117
-#, python-format
-msgid "This Duration must be less than or equal to the Permission Limit"
-msgstr "فترة الاذن يجب ان تكون اقل من او يساوي فترة الاذن المسموح بها"
-
-#. module: hr_permission_holidays
-#: code:addons/hr_permission_holidays/models/permission.py:118
-#, python-format
-msgid "This Duration not Allowed it must be Less Than or equal Permission Hours in Month"
-msgstr "فترة الإذن يجب ان تكون اقل من او يساوي فترة الاذن المسموح بها خلال الشهر"
-
-#. module: hr_permission_holidays
-#: model:ir.model,name:hr_permission_holidays.model_hr_personal_permission
-msgid "hr.personal.permission"
-msgstr "اذن الخروج"
diff --git a/odex25_hr/hr_permission_holidays/models/__init__.py b/odex25_hr/hr_permission_holidays/models/__init__.py
index 2a6de9096..ee4b9acd5 100644
--- a/odex25_hr/hr_permission_holidays/models/__init__.py
+++ b/odex25_hr/hr_permission_holidays/models/__init__.py
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
-from . import resource
from . import permission
from . import hr_holiday
diff --git a/odex25_hr/hr_permission_holidays/models/hr_holiday.py b/odex25_hr/hr_permission_holidays/models/hr_holiday.py
index 6e7f8e549..2aa022059 100644
--- a/odex25_hr/hr_permission_holidays/models/hr_holiday.py
+++ b/odex25_hr/hr_permission_holidays/models/hr_holiday.py
@@ -5,7 +5,7 @@ from odoo import fields, models
class HrHolidaysStatus(models.Model):
_inherit = 'hr.holidays.status'
- permission_annual_holiday = fields.Boolean(string="Permissions Deduct From Holiday")
+ permission_annual_holiday = fields.Boolean(string="Permissions Half Day Off")
class HRHolidays(models.Model):
diff --git a/odex25_hr/hr_permission_holidays/models/permission.py b/odex25_hr/hr_permission_holidays/models/permission.py
index 5f7014386..75ed0f7be 100644
--- a/odex25_hr/hr_permission_holidays/models/permission.py
+++ b/odex25_hr/hr_permission_holidays/models/permission.py
@@ -1,19 +1,28 @@
# -*- coding: utf-8 -*-
-from odoo import models, fields, api, _
-from datetime import datetime
-from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
+from odoo import models, fields, api,_
+from datetime import datetime,timedelta
+import time
+from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT,DEFAULT_SERVER_DATE_FORMAT
from odoo.exceptions import ValidationError
class HrPersonalPermission(models.Model):
_inherit = 'hr.personal.permission'
- deduct_from_holiday = fields.Boolean(string="Deduct From Holiday")
- holiday = fields.Many2one('hr.holidays', string="Holiday")
+ deduct_from_holiday = fields.Boolean(related='permission_type_id.half_holiday', string="Half Day Off")
+ holiday = fields.Many2one('hr.holidays',string="Holiday")
permission_amount = fields.Float(string="Permission Amount")
permission_number = fields.Float(compute="get_permission_number", store=True)
+
+ def send(self):
+ res = super(HrPersonalPermission,self).send()
+ self.get_permission_number()
+ #self._get_date_constrains(employee_permissions)
+ self.permission_number_decrement()
+ return res
+
def get_date_to_constrains_value(self):
current_date = datetime.strptime(str(self.date_to), DEFAULT_SERVER_DATETIME_FORMAT)
current_month = datetime.strptime(str(self.date_to), DEFAULT_SERVER_DATETIME_FORMAT).month
@@ -24,7 +33,7 @@ class HrPersonalPermission(models.Model):
employee_permissions = self.search([
('employee_id', '=', self.employee_id.id),
('permission_type_id', '=', self.permission_type_id.id),
- ('state', '=', 'approve'),
+ ('state', 'in', ('send', 'approve')),
('date_from', '>=', date_from),
('date_to', '<=', date_to)])
return date_from, date_to, employee_permissions
@@ -37,8 +46,9 @@ class HrPersonalPermission(models.Model):
basic = employee_permissions.filtered(lambda r: r.deduct_from_holiday == False)
permission_type_id = rec.permission_type_id
all_perission = 0.0
- for item in employee_permissions:
- all_perission += item.duration
+ for item in employee_permissions.filtered(lambda r: r.id != self.id):
+ if item.deduct_from_holiday == False:
+ all_perission += item.duration
if permission_type_id.monthly_hours - all_perission > 0:
rec.permission_number = round(permission_type_id.monthly_hours - all_perission, 2)
@@ -51,38 +61,47 @@ class HrPersonalPermission(models.Model):
raise ValidationError(_('You can not Request Permission The Employee have Not First Hiring Date'))
if rec.date_to:
rec.check_holiday_mission()
+
date_from, date_to, employee_permissions = rec.get_date_to_constrains_value()
calender = rec.employee_id.resource_calendar_id
day_hours = calender.work_hour
- rec.permission_amount = rec.duration / day_hours
- basic = employee_permissions.filtered(lambda r: r.deduct_from_holiday == False)
+ rec.permission_amount = rec.duration/day_hours
+ basic = employee_permissions.filtered(lambda r:r.deduct_from_holiday == False and r.id != self.id)
- employee_permissions_holiday = employee_permissions.filtered(lambda r: r.deduct_from_holiday == True)
+ for item in employee_permissions.filtered(lambda r:r.id != self.id):
+
+ if item.date_to and rec.date_to:
+ permission_date1 = datetime.strptime(str(item.date_to),DEFAULT_SERVER_DATETIME_FORMAT).date()
+ date_to_value1 = datetime.strptime(str(rec.date_to), DEFAULT_SERVER_DATETIME_FORMAT).date()
+ if permission_date1 == date_to_value1:
+ raise ValidationError(_('Sorry You Have Used All Your Permission In This Day you have one permission per a Day'))
+
+ employee_permissions_holiday = employee_permissions.filtered(lambda r: r.deduct_from_holiday == True and r.id != self.id)
if rec.deduct_from_holiday:
- if rec.permission_number <= 0.0:
+ if rec.permission_number >= 0.0:
rec._get_date_constrains(employee_permissions_holiday)
- annual = rec.env['hr.holidays.status'].search(
- [('leave_type', '=', 'annual'), ('permission_annual_holiday', '=', True)])
+ annual = rec.env['hr.holidays.status'].search([('leave_type', '=', 'annual')
+ ,('permission_annual_holiday', '=',True),])
for itm in annual:
if rec.employee_id and itm:
- holiday = rec.env['hr.holidays'].search(
- [('employee_id', '=', rec.employee_id.id), ('type', '=', 'add'),
- ('holiday_status_id', '=', itm.id),
- ('check_allocation_view', '=', 'balance')
- ], order='id desc', limit=1)
- if holiday:
+ holiday = rec.env['hr.holidays'].search([('employee_id', '=', rec.employee_id.id),('type', '=', 'add'),
+ ('holiday_status_id', '=', itm.id),
+ ('check_allocation_view', '=', 'balance')
+ ], order='id desc', limit=1)
+ if holiday:
rec.holiday = holiday.id
balance = holiday.remaining_leaves or 0.0
- if len(employee_permissions_holiday) < calender.holiday_permission_deducted:
+ if len(employee_permissions_holiday) < rec.permission_type_id.monthly_hours:
if balance < rec.permission_amount:
raise ValidationError(_('Sorry you Have No leave balance'))
else:
- raise ValidationError(
- _('Sorry You Have Used All Your Permission To Deduct From Holidays'))
+ raise ValidationError(_
+ ('Sorry You Have Used All Your Permission To Half Day Off'))
+
else:
raise ValidationError(_('Sorry You Have No annual Leave To Deduct Permission'))
- else:
- raise ValidationError(_('Sorry You Need To use Basic Permission Before Use Holidays'))
+ #else:
+ #raise ValidationError(_('Sorry You Need To use Basic Permission Before Use Holidays'))
else:
rec._get_date_constrains(basic)
@@ -100,25 +119,26 @@ class HrPersonalPermission(models.Model):
self.holiday.leaves_taken -= self.permission_amount
def approve(self):
- res = super(HrPersonalPermission, self).approve()
+ res = super(HrPersonalPermission,self).approve()
self.leave_balance_process()
+ self.get_permission_number()
return res
def draft_state(self):
if self.state == 'approve' and self.deduct_from_holiday:
self.cancel_leave_balance_process()
- res = super(HrPersonalPermission, self).draft_state()
+ res = super(HrPersonalPermission,self).draft_state()
return res
def _get_date_constrains(self, employee_permissions):
for item in self:
number_of_per = item.permission_type_id.monthly_hours
- if employee_permissions:
- # employee_permissions_to = employee_permissions.mapped('date_to')
+ if employee_permissions.filtered(lambda r: r.id != self.id):
+ employee_permissions_to = employee_permissions.mapped('date_to')
date_to_value = datetime.strptime(str(item.date_to), DEFAULT_SERVER_DATETIME_FORMAT).date()
- for employee_permission in employee_permissions:
- permission_date = datetime.strptime(str(employee_permission.date_to), DEFAULT_SERVER_DATETIME_FORMAT).date()
- if permission_date == date_to_value and item.id != employee_permission.id:
+ for emp_date in employee_permissions_to:
+ permission_date = datetime.strptime(str(emp_date), DEFAULT_SERVER_DATETIME_FORMAT).date()
+ if permission_date == date_to_value:
raise ValidationError(
_('Sorry You Have Used All Your Permission In This Day you have one permission per a Day'))
start_date_value = datetime.strptime(str(item.date_from), "%Y-%m-%d %H:%M:%S")
@@ -127,19 +147,48 @@ class HrPersonalPermission(models.Model):
days = (end_date - start_date_value).days
seconds_diff = (end_date - start_date_value).seconds
item.duration = (days * 24) + seconds_diff / 3600
- all_perission = 0
- for rec in employee_permissions:
- all_perission += rec.duration
- if number_of_per < all_perission:
+ all_perission=0
+ for rec in employee_permissions:
+ if rec.deduct_from_holiday == False:
+ all_perission += rec.duration
+
+ if number_of_per < all_perission :
raise ValidationError(_('Sorry You Have Used All Your Permission Hours In This Month'))
if item.duration <= 0.0:
raise ValidationError(_('This Duration Must Be Greater Than Zero'))
+ if not item.deduct_from_holiday:
+ if item.duration < item.balance and item.duration < item.permission_number:
+ raise ValidationError(_('This Duration must be Greater than or equal to the Permission Limit'))
- if item.duration < item.balance:
- raise ValidationError(_('This Duration must be less than or equal to the Permission Limit'))
+ if item.duration > item.permission_number and item.deduct_from_holiday== False:
+ raise ValidationError(_('This Duration not Allowed it must be Less Than or equal Permission Hours in Month'))
- if item.duration > item.permission_number and not item.deduct_from_holiday:
- raise ValidationError(
- _('This Duration not Allowed it must be Less Than or equal Permission Hours in Month'))
+#################### Half day holiday 4 hours ##########
+ if item.deduct_from_holiday:
+ date_from = datetime.strptime(str(item.date_from), "%Y-%m-%d %H:%M:%S")
+ date_to = datetime.strptime(str(item.date_to), "%Y-%m-%d %H:%M:%S")
+ date_from_time = (date_from + timedelta(hours=3)).time()
+ date_to_time = (date_to + timedelta(hours=3)).time()
+ hour_from = date_from_time.hour + date_from_time.minute / 60.0
+ hour_to = date_to_time.hour + date_to_time.minute / 60.0
+ #print('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>',hour_from,hour_to)
+
+ if item.duration != item.permission_type_id.daily_hours:
+ raise ValidationError(_('The Number Of Hours should Be %s Hours For the Half Day Leave') % item.permission_type_id.daily_hours)
+
+ if item.employee_id.contract_id.working_hours.is_full_day== True:
+ hour_sign = item.employee_id.contract_id.working_hours.full_min_sign_in
+ hour_sign_out = item.employee_id.contract_id.working_hours.full_max_sign_out
+ #print('######################################',hour_sign,hour_sign_out)
+ if hour_from < hour_sign or hour_to > hour_sign_out:
+ raise ValidationError(_('Sorry, Must Be a Half Day Period Within Working Hours'))
+
+
+class HrPersonalPermissionType(models.Model):
+ _inherit = 'hr.personal.permission.type'
+
+ half_holiday = fields.Boolean(string="Half Holiday",
+ help='The permission deducted From The Annual Holiday balance')
+
diff --git a/odex25_hr/hr_permission_holidays/views/permission_view.xml b/odex25_hr/hr_permission_holidays/views/permission_view.xml
index f7b81ede4..93f018ca5 100644
--- a/odex25_hr/hr_permission_holidays/views/permission_view.xml
+++ b/odex25_hr/hr_permission_holidays/views/permission_view.xml
@@ -8,10 +8,46 @@
100
-
+
+
+
+ {'invisible':[('deduct_from_holiday','=',True)]}
+
+
+
+ {'invisible':[('deduct_from_holiday','=',True)]}
+
+
+
+
+
+
+
+
+
+ Permission Types
+ hr.personal.permission.type
+
+
+
+
+
+
+