diff --git a/hr_payslip_monthly_report/README.rst b/hr_payslip_monthly_report/README.rst
new file mode 100644
index 000000000..ce66e3c2e
--- /dev/null
+++ b/hr_payslip_monthly_report/README.rst
@@ -0,0 +1,42 @@
+Payroll Advanced Features
+=========================
+* Payroll Advanced Features for Odoo 15 community edition
+
+Installation
+============
+ - www.odoo.com/documentation/15.0/setup/install.html
+ - Install our custom addon
+
+License
+-------
+Affero General Public License, Version 3 (AGPL v3).
+(https://www.odoo.com/documentation/user/13.0/legal/licenses/licenses.html)
+
+Company
+-------
+* 'Cybrosys Techno Solutions `__
+
+Contacts
+--------
+* Mail Contact : odoo@cybrosys.com
+
+Credits
+--------
+* Developer: Anusha @ cybrosys
+(v14) Jibin James @ cybrosys
+(v15) Aneesh @ Cybrosys
+
+Bug Tracker
+-----------
+Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
+
+Maintainer
+==========
+This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit https://www.cybrosys.com
+
+Further information
+===================
+HTML Description: ``__
+
diff --git a/hr_payslip_monthly_report/__init__.py b/hr_payslip_monthly_report/__init__.py
new file mode 100644
index 000000000..7ba707783
--- /dev/null
+++ b/hr_payslip_monthly_report/__init__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from . import models
+from . import report
+from . import wizard
+
diff --git a/hr_payslip_monthly_report/__manifest__.py b/hr_payslip_monthly_report/__manifest__.py
new file mode 100644
index 000000000..bbd7d55be
--- /dev/null
+++ b/hr_payslip_monthly_report/__manifest__.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+{
+ 'name': 'Payroll Advanced Features',
+ 'summary': 'Payroll Advanced Features For Odoo 15 Community.',
+ 'description': 'Payroll Advanced Features For Odoo 15 Community,'
+ 'Payroll-Payslip Reporting, Automatic Mail During '
+ 'Confirmation of Payslip, Mass Confirm Payslip ',
+ 'category': 'Generic Modules/Human Resources',
+ 'version': '15.0.1.0.0',
+ 'author': 'Cybrosys Techno Solutions',
+ 'company': 'Cybrosys Techno Solutions',
+ 'maintainer': 'Cybrosys Techno Solutions',
+ 'website': 'https://www.cybrosys.com',
+ 'depends': [
+ 'hr_payroll_community', 'mail',
+ ],
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'views/hr_payslip.xml',
+ 'views/res_config_settings_views.xml',
+ 'data/payslip_mail_template.xml',
+ 'wizard/hr_payslip_mass_confirm.xml',
+ 'report/hr_payslip_report.xml',
+ ],
+ 'images': ['static/description/banner.png'],
+ 'license': 'AGPL-3',
+ 'installable': True,
+ 'auto_install': False,
+ 'application': False,
+}
+
diff --git a/hr_payslip_monthly_report/data/payslip_mail_template.xml b/hr_payslip_monthly_report/data/payslip_mail_template.xml
new file mode 100644
index 000000000..33dfdbea1
--- /dev/null
+++ b/hr_payslip_monthly_report/data/payslip_mail_template.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ Monthly Payslip Email
+
+ {{(user.email)}}
+ {{object.employee_id.private_email}}
+ Ref {{object.number}}
+
+ Hi,
+
Here by attaching payslip details of this month
+ ]]>
+
+
+ {{(object.number or '').replace('/','_')}}
+
+
+
\ No newline at end of file
diff --git a/hr_payslip_monthly_report/doc/RELEASE_NOTES.md b/hr_payslip_monthly_report/doc/RELEASE_NOTES.md
new file mode 100644
index 000000000..886bb0de1
--- /dev/null
+++ b/hr_payslip_monthly_report/doc/RELEASE_NOTES.md
@@ -0,0 +1,7 @@
+## Module
+
+#### 12.10.2021
+#### Version 15.0.1.0.0
+#### ADD
+- Initial commit
+
diff --git a/hr_payslip_monthly_report/models/__init__.py b/hr_payslip_monthly_report/models/__init__.py
new file mode 100644
index 000000000..a47a0d167
--- /dev/null
+++ b/hr_payslip_monthly_report/models/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from . import hr_payslip
+from . import res_config_settings
diff --git a/hr_payslip_monthly_report/models/hr_payslip.py b/hr_payslip_monthly_report/models/hr_payslip.py
new file mode 100644
index 000000000..300027258
--- /dev/null
+++ b/hr_payslip_monthly_report/models/hr_payslip.py
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+import logging
+from odoo import models, _
+
+_logger = logging.getLogger(__name__)
+
+
+class HrPayslip(models.Model):
+ _inherit = 'hr.payslip'
+
+ def action_payslip_done(self):
+ """Checking auto email option is set.if set email containing payslip
+ details will be send on confirmation"""
+ res = super(HrPayslip, self).action_payslip_done()
+ if self.env['ir.config_parameter'].sudo().get_param(
+ 'send_payslip_by_email'):
+ for payslip in self:
+ if payslip.employee_id.private_email:
+ template = self.env.ref(
+ 'hr_payslip_monthly_report.email_template_payslip')
+ template.sudo().send_mail(payslip.id, force_send=True)
+ _logger.info("Payslip details for %s send by mail",
+ payslip.employee_id.name)
+ return res
+
+ def action_payslip_send(self):
+ """opens a window to compose an email,
+ with template message loaded by default"""
+ self.ensure_one()
+ ir_model_data = self.env['ir.model.data']
+ try:
+ template_id = \
+ ir_model_data._xmlid_lookup('hr_payslip_monthly_report.email_template_payslip')[2]
+ except ValueError:
+ template_id = False
+ try:
+ compose_form_id = ir_model_data._xmlid_lookup('mail.email_compose_message_wizard_form')[2]
+ except ValueError:
+ compose_form_id = False
+ ctx = {
+ 'default_model': 'hr.payslip',
+ 'default_res_id': self.ids[0],
+ 'default_use_template': bool(template_id),
+ 'default_template_id': template_id,
+ 'default_composition_mode': 'comment',
+ }
+ return {
+ 'name': _('Compose Email'),
+ 'type': 'ir.actions.act_window',
+ 'view_mode': 'form',
+ 'res_model': 'mail.compose.message',
+ 'views': [(compose_form_id, 'form')],
+ 'view_id': compose_form_id,
+ 'target': 'new',
+ 'context': ctx,
+ }
diff --git a/hr_payslip_monthly_report/models/res_config_settings.py b/hr_payslip_monthly_report/models/res_config_settings.py
new file mode 100644
index 000000000..51e4d7bcf
--- /dev/null
+++ b/hr_payslip_monthly_report/models/res_config_settings.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from odoo import fields, models, api
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ send_payslip_by_email = fields.Boolean(string="Automatic Send Payslip By Mail")
+
+ @api.model
+ def get_values(self):
+ res = super(ResConfigSettings, self).get_values()
+ params = self.env['ir.config_parameter'].sudo()
+ send_payslip_by_email = params.get_param('send_payslip_by_email', default=False)
+ res.update(
+ send_payslip_by_email=send_payslip_by_email
+ )
+ return res
+
+ def set_values(self):
+ super(ResConfigSettings, self).set_values()
+ self.env['ir.config_parameter'].sudo().set_param("send_payslip_by_email",
+ self.send_payslip_by_email)
+
+
+
diff --git a/hr_payslip_monthly_report/report/__init__.py b/hr_payslip_monthly_report/report/__init__.py
new file mode 100644
index 000000000..ac5e36282
--- /dev/null
+++ b/hr_payslip_monthly_report/report/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from . import hr_payslip_report
diff --git a/hr_payslip_monthly_report/report/hr_payslip_report.py b/hr_payslip_monthly_report/report/hr_payslip_report.py
new file mode 100644
index 000000000..501dcd34c
--- /dev/null
+++ b/hr_payslip_monthly_report/report/hr_payslip_report.py
@@ -0,0 +1,81 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from odoo import fields, models, tools
+from datetime import date
+import time
+from calendar import monthrange
+
+
+class PayrollReportView(models.Model):
+ _name = 'hr.payroll.report.view'
+ _auto = False
+
+ now = date.today()
+ month_day = monthrange(now.year, now.month)
+ start_date = fields.Date(string="Start Date", default=time.strftime('%Y-%m-01'), invisible=True)
+ end_date = fields.Date(string="End Date", default=time.strftime('%Y-%m-' + str(month_day[1]) + ''), invisible=True)
+ 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')
+ rule_name = fields.Many2one('hr.salary.rule.category', string="Rule Category")
+ rule_amount = fields.Float(string="Amount")
+ struct_id = fields.Many2one('hr.payroll.structure', string="Salary Structure")
+ rule_id = fields.Many2one('hr.salary.rule', string="Salary Rule")
+
+ def _select(self):
+ select_str = """
+ min(psl.id),ps.id,ps.number,emp.id as name,dp.id as department_id,jb.id as job_id,cmp.id as company_id,ps.date_from, ps.date_to, ps.state as state ,rl.id as rule_name,
+ psl.total as rule_amount,ps.struct_id as struct_id,rlu.id as rule_id"""
+ return select_str
+
+ def _from(self):
+ from_str = """
+ hr_payslip_line psl
+ join hr_payslip ps on ps.id=psl.slip_id
+ join hr_salary_rule rlu on rlu.id = psl.salary_rule_id
+ join hr_employee emp on ps.employee_id=emp.id
+ join hr_salary_rule_category rl on rl.id = psl.category_id
+ left join hr_department dp on emp.department_id=dp.id
+ left join hr_job jb on emp.job_id=jb.id
+ join res_company cmp on cmp.id=ps.company_id
+ """
+ return from_str
+
+ def _group_by(self):
+ group_by_str = """group by ps.number,ps.id,emp.id,dp.id,jb.id,cmp.id,ps.date_from,ps.date_to,ps.state,
+ psl.total,psl.name,psl.category_id,rl.id,rlu.id"""
+ return group_by_str
+
+ 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()))
+
+
diff --git a/hr_payslip_monthly_report/report/hr_payslip_report.xml b/hr_payslip_monthly_report/report/hr_payslip_report.xml
new file mode 100644
index 000000000..54c885b8b
--- /dev/null
+++ b/hr_payslip_monthly_report/report/hr_payslip_report.xml
@@ -0,0 +1,78 @@
+
+
+
+
+ hr.payslip.pivot
+ hr.payroll.report.view
+
+
+
+
+
+
+
+
+
+
+ hr.payslip.graph
+ hr.payroll.report.view
+
+
+
+
+
+
+
+
+
+ hr.payslip.search
+ hr.payroll.report.view
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hr.payroll.report.view
+ Payslips
+ pivot,graph
+ {'search_default_year':1}
+ 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.).
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hr_payslip_monthly_report/security/ir.model.access.csv b/hr_payslip_monthly_report/security/ir.model.access.csv
new file mode 100644
index 000000000..602a1d38f
--- /dev/null
+++ b/hr_payslip_monthly_report/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_hr_payslip_monthly_report_manager,hr.payroll.report.view,hr_payslip_monthly_report.model_hr_payroll_report_view,hr_payroll_community.group_hr_payroll_community_user,1,1,1,1
+
+access_group_user,Access User,model_payslip_confirm,hr_payroll_community.group_hr_payroll_community_user,1,1,1,1
\ No newline at end of file
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/check.png b/hr_payslip_monthly_report/static/description/assets/icons/check.png
new file mode 100644
index 000000000..c8e85f51d
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/check.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/chevron.png b/hr_payslip_monthly_report/static/description/assets/icons/chevron.png
new file mode 100644
index 000000000..2089293d6
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/chevron.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/cogs.png b/hr_payslip_monthly_report/static/description/assets/icons/cogs.png
new file mode 100644
index 000000000..95d0bad62
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/cogs.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/consultation.png b/hr_payslip_monthly_report/static/description/assets/icons/consultation.png
new file mode 100644
index 000000000..8319d4baa
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/consultation.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/ecom-black.png b/hr_payslip_monthly_report/static/description/assets/icons/ecom-black.png
new file mode 100644
index 000000000..a9385ff13
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/ecom-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/education-black.png b/hr_payslip_monthly_report/static/description/assets/icons/education-black.png
new file mode 100644
index 000000000..3eb09b27b
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/education-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/hotel-black.png b/hr_payslip_monthly_report/static/description/assets/icons/hotel-black.png
new file mode 100644
index 000000000..130f613be
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/hotel-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/license.png b/hr_payslip_monthly_report/static/description/assets/icons/license.png
new file mode 100644
index 000000000..a5869797e
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/license.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/lifebuoy.png b/hr_payslip_monthly_report/static/description/assets/icons/lifebuoy.png
new file mode 100644
index 000000000..658d56ccc
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/lifebuoy.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/manufacturing-black.png b/hr_payslip_monthly_report/static/description/assets/icons/manufacturing-black.png
new file mode 100644
index 000000000..697eb0e9f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/manufacturing-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/pos-black.png b/hr_payslip_monthly_report/static/description/assets/icons/pos-black.png
new file mode 100644
index 000000000..97c0f90c1
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/pos-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/puzzle.png b/hr_payslip_monthly_report/static/description/assets/icons/puzzle.png
new file mode 100644
index 000000000..65cf854e7
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/puzzle.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/restaurant-black.png b/hr_payslip_monthly_report/static/description/assets/icons/restaurant-black.png
new file mode 100644
index 000000000..4a35eb939
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/restaurant-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/service-black.png b/hr_payslip_monthly_report/static/description/assets/icons/service-black.png
new file mode 100644
index 000000000..301ab51cb
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/service-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/trading-black.png b/hr_payslip_monthly_report/static/description/assets/icons/trading-black.png
new file mode 100644
index 000000000..9398ba2f1
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/trading-black.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/training.png b/hr_payslip_monthly_report/static/description/assets/icons/training.png
new file mode 100644
index 000000000..884ca024d
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/training.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/update.png b/hr_payslip_monthly_report/static/description/assets/icons/update.png
new file mode 100644
index 000000000..ecbc5a01a
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/update.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/user.png b/hr_payslip_monthly_report/static/description/assets/icons/user.png
new file mode 100644
index 000000000..6ffb23d9f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/user.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/icons/wrench.png b/hr_payslip_monthly_report/static/description/assets/icons/wrench.png
new file mode 100644
index 000000000..6c04dea0f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/icons/wrench.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/approval_image.png b/hr_payslip_monthly_report/static/description/assets/modules/approval_image.png
new file mode 100644
index 000000000..84fe94e80
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/approval_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/dynamic_image.png b/hr_payslip_monthly_report/static/description/assets/modules/dynamic_image.png
new file mode 100644
index 000000000..f55c47e0f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/dynamic_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/list_view_image.png b/hr_payslip_monthly_report/static/description/assets/modules/list_view_image.png
new file mode 100644
index 000000000..510d36ae9
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/list_view_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/multiple_ref_image.png b/hr_payslip_monthly_report/static/description/assets/modules/multiple_ref_image.png
new file mode 100644
index 000000000..3fe90e552
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/multiple_ref_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/print_image.png b/hr_payslip_monthly_report/static/description/assets/modules/print_image.png
new file mode 100644
index 000000000..b470725a1
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/print_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/modules/product_return_image.png b/hr_payslip_monthly_report/static/description/assets/modules/product_return_image.png
new file mode 100644
index 000000000..3afc14722
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/modules/product_return_image.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/screenshots/hero.png b/hr_payslip_monthly_report/static/description/assets/screenshots/hero.png
new file mode 100644
index 000000000..1d4264989
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/screenshots/hero.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot1.png b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot1.png
new file mode 100644
index 000000000..4330a9674
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot1.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot2.png b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot2.png
new file mode 100644
index 000000000..86d0b5369
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot2.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot3.png b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot3.png
new file mode 100644
index 000000000..e4e08777e
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot3.png differ
diff --git a/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot4.png b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot4.png
new file mode 100644
index 000000000..3645acb7f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/assets/screenshots/screenshot4.png differ
diff --git a/hr_payslip_monthly_report/static/description/banner.png b/hr_payslip_monthly_report/static/description/banner.png
new file mode 100644
index 000000000..37ac2e5a1
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/banner.png differ
diff --git a/hr_payslip_monthly_report/static/description/icon.png b/hr_payslip_monthly_report/static/description/icon.png
new file mode 100644
index 000000000..fcbec695f
Binary files /dev/null and b/hr_payslip_monthly_report/static/description/icon.png differ
diff --git a/hr_payslip_monthly_report/static/description/index.html b/hr_payslip_monthly_report/static/description/index.html
new file mode 100644
index 000000000..e227d3ab7
--- /dev/null
+++ b/hr_payslip_monthly_report/static/description/index.html
@@ -0,0 +1,592 @@
+
+
+
+
+ Payroll Advanced Features
+
+ Payroll Advanced Features For Odoo 15 Community
+
+ Payroll-Payslip reporting. Email sending option in Payslip Configure and automatic sending of payslip
+ details to employees during confirmation. Option to Mass confirm Payslips.
+
+
+
+
+
+
+
+
+ Features
+
+
+
+
+
+
+
+
+
+ Payroll-Payslip Reporting
+
+ Payroll-Payslip reporting options
+
+
+
+
+
+
+
+
+
+ Automatic Mail During Confirmation of Payslip
+
+ Automatic Payslip Mail to an employee during the confirmation of payslip.
\ No newline at end of file
diff --git a/hr_payslip_monthly_report/views/hr_payslip.xml b/hr_payslip_monthly_report/views/hr_payslip.xml
new file mode 100644
index 000000000..bc6efdb2e
--- /dev/null
+++ b/hr_payslip_monthly_report/views/hr_payslip.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ hr.payslip.view.form.inherit.mrp.workorder
+ hr.payslip
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hr_payslip_monthly_report/views/res_config_settings_views.xml b/hr_payslip_monthly_report/views/res_config_settings_views.xml
new file mode 100644
index 000000000..6901487aa
--- /dev/null
+++ b/hr_payslip_monthly_report/views/res_config_settings_views.xml
@@ -0,0 +1,29 @@
+
+
+
+ res.config.settings.view.form.inherit.hr.payroll
+ res.config.settings
+
+
+
+
+
+
+
+
+
+
+
+
+ Automatically send Email with Payslip details On Confirmation of Payslip.
+
+
+
+
+
+
+
+
diff --git a/hr_payslip_monthly_report/wizard/__init__.py b/hr_payslip_monthly_report/wizard/__init__.py
new file mode 100644
index 000000000..127355966
--- /dev/null
+++ b/hr_payslip_monthly_report/wizard/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from . import hr_payslip_mass_confirm
diff --git a/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.py b/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.py
new file mode 100644
index 000000000..22351d4a7
--- /dev/null
+++ b/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2021-TODAY Cybrosys Technologies().
+# Author: odoo@cybrosys.com
+# You can modify it under the terms of the GNU AFFERO
+# GENERAL PUBLIC LICENSE (AGPL 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details.
+#
+# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
+# (AGPL v3) along with this program.
+# If not, see .
+#
+#############################################################################
+
+from odoo import models
+
+
+class MassConfirmPayslip(models.TransientModel):
+ _name = 'payslip.confirm'
+ _description = 'Mass Confirm Payslip'
+
+ def confirm_payslip(self):
+ """Mass Confirmation of Payslip"""
+ context = self._context
+ record_ids = context.get('active_ids', [])
+ for each in record_ids:
+ payslip_id = self.env['hr.payslip'].search([('id', '=', each),
+ ('state', 'not in', ['cancel', 'done'])])
+ if payslip_id:
+ payslip_id.action_payslip_done()
diff --git a/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.xml b/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.xml
new file mode 100644
index 000000000..20c37f7bd
--- /dev/null
+++ b/hr_payslip_monthly_report/wizard/hr_payslip_mass_confirm.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Confirm Payslip
+ payslip.confirm
+
+
+
+
+
+
+ Confirm Payslip
+ ir.actions.act_window
+ payslip.confirm
+ form
+ new
+
+ list
+
+