diff --git a/hr_holiday_multiple_approval/README.rst b/hr_holiday_multiple_approval/README.rst new file mode 100644 index 00000000..e13d8232 --- /dev/null +++ b/hr_holiday_multiple_approval/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +============================ +HR Holiday Multiple Approval +============================ + +This module extends the functionality of HR Holiday +to support a Multiple Approval process. + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-hr +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *HR Holiday Multiple Approval* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Andhitia Rama +* Michael Viriyananda + +Maintainer +---------- + +.. image:: https://simetri-sinergi.id/logo.png + :alt: PT. Simetri Sinergi Indonesia + :target: https://simetri-sinergi.id.com + +This module is maintained by the PT. Simetri Sinergi Indonesia. diff --git a/hr_holiday_multiple_approval/__init__.py b/hr_holiday_multiple_approval/__init__.py new file mode 100644 index 00000000..20b1ea98 --- /dev/null +++ b/hr_holiday_multiple_approval/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import( + models, +) + +from .hooks import ( + set_double_validation_false, +) diff --git a/hr_holiday_multiple_approval/__openerp__.py b/hr_holiday_multiple_approval/__openerp__.py new file mode 100644 index 00000000..39665c4a --- /dev/null +++ b/hr_holiday_multiple_approval/__openerp__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# pylint: disable=locally-disabled, manifest-required-author +{ + "name": "HR Holiday Multiple Approval", + "version": "8.0.1.0.0", + "website": "https://simetri-sinergi.id", + "author": "PT. Simetri Sinergi Indonesia, OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "auto_install": True, + "depends": [ + "hr_holidays", + ], + "data": [ + "views/hr_holidays_view.xml", + "views/hr_holidays_status_view.xml", + ], + "images": [ + ], + "post_init_hook": "set_double_validation_false", +} diff --git a/hr_holiday_multiple_approval/hooks.py b/hr_holiday_multiple_approval/hooks.py new file mode 100644 index 00000000..32578723 --- /dev/null +++ b/hr_holiday_multiple_approval/hooks.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openerp import SUPERUSER_ID + + +def set_double_validation_false(cr, registry): + obj_hr_holidays_status = registry["hr.holidays.status"] + criteria = [ + ("double_validation", "=", True) + ] + status_ids = \ + obj_hr_holidays_status.search(cr, SUPERUSER_ID, criteria) + if holidays_status_ids: + obj_hr_holidays_status.write( + cr, SUPERUSER_ID, status_ids, {"double_validation": False}) diff --git a/hr_holiday_multiple_approval/models/__init__.py b/hr_holiday_multiple_approval/models/__init__.py new file mode 100644 index 00000000..e1b5e5b7 --- /dev/null +++ b/hr_holiday_multiple_approval/models/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import( + hr_holidays, + tier_definition, +) diff --git a/hr_holiday_multiple_approval/models/hr_holidays.py b/hr_holiday_multiple_approval/models/hr_holidays.py new file mode 100644 index 00000000..7f99443c --- /dev/null +++ b/hr_holiday_multiple_approval/models/hr_holidays.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openerp import api, models + + +class HrHolidays(models.Model): + _name = "hr.holidays" + _inherit = [ + "hr.holidays", + "tier.validation", + ] + _state_from = [ + "draft", + "confirm", + ] + _state_to = [ + "validate", + ] + _cancel_state = "refuse" + + @api.multi + def validate_tier(self): + _super = super(HrHolidays, self) + _super.validate_tier() + for document in self: + if document.validated: + document.signal_workflow("validate") + + @api.multi + def restart_validation(self): + _super = super(HrHolidays, self) + _super.restart_validation() + for document in self: + document.request_validation() + + @api.multi + def holidays_confirm(self): + _super = super(HrHolidays, self) + _super.holidays_confirm() + for document in self: + document.request_validation() diff --git a/hr_holiday_multiple_approval/models/tier_definition.py b/hr_holiday_multiple_approval/models/tier_definition.py new file mode 100644 index 00000000..cdd5ee95 --- /dev/null +++ b/hr_holiday_multiple_approval/models/tier_definition.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Copyright 2020 OpenSynergy Indonesia +# Copyright 2020 PT. Simetri Sinergi Indonesia +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from openerp import api, models + + +class TierDefinition(models.Model): + _inherit = "tier.definition" + + @api.model + def _get_tier_validation_model_names(self): + res = super(TierDefinition, self)._get_tier_validation_model_names() + res.append("hr.holidays") + return res diff --git a/hr_holiday_multiple_approval/static/description/icon.png b/hr_holiday_multiple_approval/static/description/icon.png new file mode 100644 index 00000000..4c8e1127 Binary files /dev/null and b/hr_holiday_multiple_approval/static/description/icon.png differ diff --git a/hr_holiday_multiple_approval/views/hr_holidays_status_view.xml b/hr_holiday_multiple_approval/views/hr_holidays_status_view.xml new file mode 100644 index 00000000..90d49fef --- /dev/null +++ b/hr_holiday_multiple_approval/views/hr_holidays_status_view.xml @@ -0,0 +1,18 @@ + + + + + + hr.holidays.status.multiple.approval.form + hr.holidays.status + + + + 1 + + + + + diff --git a/hr_holiday_multiple_approval/views/hr_holidays_view.xml b/hr_holiday_multiple_approval/views/hr_holidays_view.xml new file mode 100644 index 00000000..090ed61b --- /dev/null +++ b/hr_holiday_multiple_approval/views/hr_holidays_view.xml @@ -0,0 +1,89 @@ + + + + + + hr.holidays.multiple.approval.form + hr.holidays + + + +