diff --git a/expense_report_odoo/README.rst b/expense_report_odoo/README.rst new file mode 100755 index 000000000..51012a121 --- /dev/null +++ b/expense_report_odoo/README.rst @@ -0,0 +1,42 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Employee Expense Report +======================= +The administrator has the ability to view the expense reports of any employee they choose, while regular users can only access and view their own expense reports. + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +Developer: (V16) Anfas Faisal K, Contact: odoo@cybrosys.com + +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/expense_report_odoo/__init__.py b/expense_report_odoo/__init__.py new file mode 100644 index 000000000..11d392517 --- /dev/null +++ b/expense_report_odoo/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Anfas Faisal K (odoo@cybrosys.info) +# +# 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 wizard diff --git a/expense_report_odoo/__manifest__.py b/expense_report_odoo/__manifest__.py new file mode 100644 index 000000000..ef78c28e5 --- /dev/null +++ b/expense_report_odoo/__manifest__.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Anfas Faisal K (odoo@cybrosys.info) +# +# 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': "Employee Expense Report", + 'version': "16.0.1.0.0", + 'category': 'Human Resources', + 'summary': 'The administrator has the ability to view the expense reports ' + 'of any employee they choose, while regular users can only ' + 'access and view their own expense reports.', + 'description': "This apps helps Admin to print multiples employee " + "expense reports with custom dates and the print" + "the report of the current status like to submit, " + "submitted, approved, paid, refused, all, etc.", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'hr_expense'], + 'data': [ + 'security/ir.model.access.csv', + 'report/expense_reports.xml', + 'report/expense_report_templates.xml', + 'wizard/expense_report_filter_views.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/expense_report_odoo/doc/RELEASE_NOTES.md b/expense_report_odoo/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..2f9b66b41 --- /dev/null +++ b/expense_report_odoo/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 10.08.2023 +#### Version 16.0.1.0.0 +#### ADD + +- Initial commit for Employee Expense Report diff --git a/expense_report_odoo/report/expense_report_templates.xml b/expense_report_odoo/report/expense_report_templates.xml new file mode 100644 index 000000000..226e5f905 --- /dev/null +++ b/expense_report_odoo/report/expense_report_templates.xml @@ -0,0 +1,126 @@ + + + + + diff --git a/expense_report_odoo/report/expense_reports.xml b/expense_report_odoo/report/expense_reports.xml new file mode 100644 index 000000000..558942d95 --- /dev/null +++ b/expense_report_odoo/report/expense_reports.xml @@ -0,0 +1,11 @@ + + + + + Expense Report + expense.report.filter + qweb-pdf + expense_report_odoo.report_expense_report_details + expense_report_odoo.report_expense_report_details + + diff --git a/expense_report_odoo/security/ir.model.access.csv b/expense_report_odoo/security/ir.model.access.csv new file mode 100644 index 000000000..5d87dfc3b --- /dev/null +++ b/expense_report_odoo/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_expense_report_filter,access.expense.report.filter,model_expense_report_filter,base.group_user,1,1,1,1 diff --git a/expense_report_odoo/static/description/assets/icons/check.png b/expense_report_odoo/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/check.png differ diff --git a/expense_report_odoo/static/description/assets/icons/chevron.png b/expense_report_odoo/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/chevron.png differ diff --git a/expense_report_odoo/static/description/assets/icons/cogs.png b/expense_report_odoo/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/cogs.png differ diff --git a/expense_report_odoo/static/description/assets/icons/consultation.png b/expense_report_odoo/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/consultation.png differ diff --git a/expense_report_odoo/static/description/assets/icons/ecom-black.png b/expense_report_odoo/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/ecom-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/education-black.png b/expense_report_odoo/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/education-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/hotel-black.png b/expense_report_odoo/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/hotel-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/license.png b/expense_report_odoo/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/license.png differ diff --git a/expense_report_odoo/static/description/assets/icons/lifebuoy.png b/expense_report_odoo/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/lifebuoy.png differ diff --git a/expense_report_odoo/static/description/assets/icons/manufacturing-black.png b/expense_report_odoo/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/manufacturing-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/pos-black.png b/expense_report_odoo/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/pos-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/puzzle.png b/expense_report_odoo/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/puzzle.png differ diff --git a/expense_report_odoo/static/description/assets/icons/restaurant-black.png b/expense_report_odoo/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/restaurant-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/service-black.png b/expense_report_odoo/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/service-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/trading-black.png b/expense_report_odoo/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/trading-black.png differ diff --git a/expense_report_odoo/static/description/assets/icons/training.png b/expense_report_odoo/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/training.png differ diff --git a/expense_report_odoo/static/description/assets/icons/update.png b/expense_report_odoo/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/update.png differ diff --git a/expense_report_odoo/static/description/assets/icons/user.png b/expense_report_odoo/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/user.png differ diff --git a/expense_report_odoo/static/description/assets/icons/wrench.png b/expense_report_odoo/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/expense_report_odoo/static/description/assets/icons/wrench.png differ diff --git a/expense_report_odoo/static/description/assets/misc/categories.png b/expense_report_odoo/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/categories.png differ diff --git a/expense_report_odoo/static/description/assets/misc/check-box.png b/expense_report_odoo/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/check-box.png differ diff --git a/expense_report_odoo/static/description/assets/misc/compass.png b/expense_report_odoo/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/compass.png differ diff --git a/expense_report_odoo/static/description/assets/misc/corporate.png b/expense_report_odoo/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/corporate.png differ diff --git a/expense_report_odoo/static/description/assets/misc/customer-support.png b/expense_report_odoo/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/customer-support.png differ diff --git a/expense_report_odoo/static/description/assets/misc/cybrosys-logo.png b/expense_report_odoo/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/cybrosys-logo.png differ diff --git a/expense_report_odoo/static/description/assets/misc/features.png b/expense_report_odoo/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/features.png differ diff --git a/expense_report_odoo/static/description/assets/misc/logo.png b/expense_report_odoo/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/logo.png differ diff --git a/expense_report_odoo/static/description/assets/misc/pictures.png b/expense_report_odoo/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/pictures.png differ diff --git a/expense_report_odoo/static/description/assets/misc/pie-chart.png b/expense_report_odoo/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/pie-chart.png differ diff --git a/expense_report_odoo/static/description/assets/misc/right-arrow.png b/expense_report_odoo/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/right-arrow.png differ diff --git a/expense_report_odoo/static/description/assets/misc/star.png b/expense_report_odoo/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/star.png differ diff --git a/expense_report_odoo/static/description/assets/misc/support.png b/expense_report_odoo/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/support.png differ diff --git a/expense_report_odoo/static/description/assets/misc/whatsapp.png b/expense_report_odoo/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/expense_report_odoo/static/description/assets/misc/whatsapp.png differ diff --git a/expense_report_odoo/static/description/assets/modules/1.png b/expense_report_odoo/static/description/assets/modules/1.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/1.png differ diff --git a/expense_report_odoo/static/description/assets/modules/2.png b/expense_report_odoo/static/description/assets/modules/2.png new file mode 100644 index 000000000..ac5cbdc80 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/2.png differ diff --git a/expense_report_odoo/static/description/assets/modules/3.png b/expense_report_odoo/static/description/assets/modules/3.png new file mode 100644 index 000000000..489f44e86 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/3.png differ diff --git a/expense_report_odoo/static/description/assets/modules/4.png b/expense_report_odoo/static/description/assets/modules/4.png new file mode 100644 index 000000000..8658f1826 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/4.png differ diff --git a/expense_report_odoo/static/description/assets/modules/5.png b/expense_report_odoo/static/description/assets/modules/5.png new file mode 100644 index 000000000..57eebc5b2 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/5.png differ diff --git a/expense_report_odoo/static/description/assets/modules/6.png b/expense_report_odoo/static/description/assets/modules/6.png new file mode 100644 index 000000000..a3060d797 Binary files /dev/null and b/expense_report_odoo/static/description/assets/modules/6.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/enter1.png b/expense_report_odoo/static/description/assets/screenshots/enter1.png new file mode 100644 index 000000000..510753535 Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/enter1.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new1.png b/expense_report_odoo/static/description/assets/screenshots/new1.png new file mode 100644 index 000000000..b21da8088 Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new1.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new2.png b/expense_report_odoo/static/description/assets/screenshots/new2.png new file mode 100644 index 000000000..a527a8753 Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new2.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new3.png b/expense_report_odoo/static/description/assets/screenshots/new3.png new file mode 100644 index 000000000..22f614fad Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new3.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new4.png b/expense_report_odoo/static/description/assets/screenshots/new4.png new file mode 100644 index 000000000..e2018dcfb Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new4.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new5.png b/expense_report_odoo/static/description/assets/screenshots/new5.png new file mode 100644 index 000000000..3c5b059a7 Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new5.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/new6.png b/expense_report_odoo/static/description/assets/screenshots/new6.png new file mode 100644 index 000000000..18f335ddf Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/new6.png differ diff --git a/expense_report_odoo/static/description/assets/screenshots/v16-hero.gif b/expense_report_odoo/static/description/assets/screenshots/v16-hero.gif new file mode 100644 index 000000000..e0343a363 Binary files /dev/null and b/expense_report_odoo/static/description/assets/screenshots/v16-hero.gif differ diff --git a/expense_report_odoo/static/description/banner.png b/expense_report_odoo/static/description/banner.png new file mode 100644 index 000000000..0fbd02ebe Binary files /dev/null and b/expense_report_odoo/static/description/banner.png differ diff --git a/expense_report_odoo/static/description/icon.png b/expense_report_odoo/static/description/icon.png new file mode 100644 index 000000000..b06f54a88 Binary files /dev/null and b/expense_report_odoo/static/description/icon.png differ diff --git a/expense_report_odoo/static/description/index.html b/expense_report_odoo/static/description/index.html new file mode 100644 index 000000000..b45632ca1 --- /dev/null +++ b/expense_report_odoo/static/description/index.html @@ -0,0 +1,557 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+ +
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Employee Expense Reports +

+

+ Generate Employee Expense Reports As Per The Specified Requirements. +

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

Explore This Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ This application facilitates the printing of employee reports, offering the admin the flexibility to generate multiple expense reports using custom dates. Additionally, the admin can print reports based on various status categories, such as to submit, submitted, approved, paid, refused, or view all reports. +
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Easy to print employee expense reports by daily, weekly, monthly, yearly. +
+
+ + Employees have the option to print their own expense reports. + +
+
+ + Employees can print the report by status like to submit, submitted, approved, paid, refused, all, etc. + +
+
+
+ +
+ + Admin can print multiple employee expense reports. + + +
+
+ + Employees can print expense reports using a date filter + . +
+ + +
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+
+

Click "Expense Report" to print Report.

+

Under Expenses > Expense Report.

+ +
+ +
+

Admin can + print any Employee Report or can print Multiple Employee Reports at a time. +

+ +
+
+

The format of the Expense Report is as follows: +

+ +
+ +
+ +
+ +
+

A Particular Employee + can only print their own Report. + +

+ +
+ +
+

The format of the Expense Report is as follows:

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

Related Products

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

Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + + +
+
+ +
+

Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ +
+
+ +
+

Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/expense_report_odoo/wizard/__init__.py b/expense_report_odoo/wizard/__init__.py new file mode 100644 index 000000000..29b313683 --- /dev/null +++ b/expense_report_odoo/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Anfas Faisal K (odoo@cybrosys.info) +# +# 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 expense_report_filter diff --git a/expense_report_odoo/wizard/expense_report_filter.py b/expense_report_odoo/wizard/expense_report_filter.py new file mode 100644 index 000000000..f75d14971 --- /dev/null +++ b/expense_report_odoo/wizard/expense_report_filter.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +################################################################################ +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies(). +# Author: Anfas Faisal K (odoo@cybrosys.info) +# +# 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 api, fields, models, _ +from odoo.exceptions import ValidationError + + +class ExpenseReportFilter(models.TransientModel): + _name = 'expense.report.filter' + _description = 'Expense Report Wizard' + + from_date = fields.Date(string='Start Date', + help="The start date for the expense period") + to_date = fields.Date(string='End Date', + help="The end date for the expense period") + employee_name_ids = fields.Many2many('hr.employee', string="Employee Name", + default=lambda self: [ + (4, self.env.user.employee_id.id)], + help="The employees associated with " + "the expenses") + state = fields.Selection([ + ('draft', 'To Submit'), + ('reported', 'Submitted'), + ('approved', 'Approved'), + ('done', 'Paid'), + ('refused', 'Refused') + ], string='Status', copy=False, index=True, default='draft', + help="The current status of the expense report") + + @api.model + def create(self, vals): + """This method ensures that an employee_name_ids field is + set when creating an ExpenseWizard record, unless the + current user has the 'base.group_system' security group.""" + if not vals.get('employee_name_ids') and not self.env.user.has_group( + 'base.group_system'): + vals['employee_name_ids'] = [(4, self.env.user.employee_id.id)] + return super().create(vals) + + def action_expense_report(self): + """This method ensures that generates a report of expenses based on + various filters and the Values are passed + to the Report Template""" + query = """Select hr_expense.date,hr_expense.product_id, + hr_expense.name,hr_expense.employee_id, + hr_expense.unit_amount,hr_expense.quantity, + hr_expense.currency_id, + hr_expense.total_amount,hr_expense.state,pl.name as t2,ep.name as + t3,currency.symbol as t4 from hr_expense LEFT JOIN product_product + pd ON pd.id = hr_expense.product_id left join product_template + pl on pl.id = pd.product_tmpl_id + left join hr_employee ep on ep.id = hr_expense.employee_id + left join res_currency currency ON currency.id = hr_expense.currency_id + where 1=1""" + params = [] + if self.from_date: + query += " AND date >= %s" + params.append(self.from_date) + if self.to_date: + if self.from_date and self.to_date < self.from_date: + raise ValidationError(_("End date cannot be before start date")) + query += " AND date <= %s" + params.append(self.to_date) + if self.employee_name_ids: + employee_ids = tuple(self.employee_name_ids.ids) + if len(employee_ids) > 1: + query += " AND employee_id IN %s" + params.append(employee_ids) + else: + query += " AND employee_id = %s" + params.append(employee_ids[0]) + emp_name = self.employee_name_ids.mapped('name') + else: + all_employees = self.env['hr.employee'].search([]) + query += " AND employee_id IN %s" + params.append(tuple(all_employees.ids)) + emp_name = all_employees.mapped('name') + if self.state: + query += " AND state = %s" + params.append(self.state) + self.env.cr.execute(query, params) + data = { + 'model_id': self.id, + 'from_date': self.from_date, + 'to_date': self.to_date, + 'emp_name': emp_name, + 'state': self.state, + 'data_pdf': self.env.cr.dictfetchall() + } + return self.env.ref('expense_report_odoo.action_expense_request_report') \ + .report_action(None, data=data) diff --git a/expense_report_odoo/wizard/expense_report_filter_views.xml b/expense_report_odoo/wizard/expense_report_filter_views.xml new file mode 100644 index 000000000..21095417c --- /dev/null +++ b/expense_report_odoo/wizard/expense_report_filter_views.xml @@ -0,0 +1,38 @@ + + + + + expense.report.filter.view.form + expense.report.filter + +
+ + + + + + +
+
+
+
+
+ + + + Expense Report + ir.actions.act_window + expense.report.filter + form + + new + + + + +
\ No newline at end of file