Browse Source

Oct 5: [UPDT] Module Updated 'manufacturing_reports'

pull/254/merge
AjmalCybro 2 years ago
parent
commit
2cd5e30f33
  1. 24
      manufacturing_reports/README.rst
  2. 6
      manufacturing_reports/__init__.py
  3. 25
      manufacturing_reports/__manifest__.py
  4. 8
      manufacturing_reports/controllers/__init__.py
  5. 25
      manufacturing_reports/controllers/manufacturing_reports.py
  6. 7
      manufacturing_reports/doc/RELEASE_NOTES.md
  7. 11
      manufacturing_reports/report/mrp_report_reports.xml
  8. 8
      manufacturing_reports/report/mrp_report_templates.xml
  9. 2
      manufacturing_reports/security/ir.model.access.csv
  10. 0
      manufacturing_reports/static/description/assets/icons/check.png
  11. 0
      manufacturing_reports/static/description/assets/icons/chevron.png
  12. 0
      manufacturing_reports/static/description/assets/icons/cogs.png
  13. 0
      manufacturing_reports/static/description/assets/icons/consultation.png
  14. 0
      manufacturing_reports/static/description/assets/icons/ecom-black.png
  15. 0
      manufacturing_reports/static/description/assets/icons/education-black.png
  16. 0
      manufacturing_reports/static/description/assets/icons/hotel-black.png
  17. 0
      manufacturing_reports/static/description/assets/icons/license.png
  18. 0
      manufacturing_reports/static/description/assets/icons/lifebuoy.png
  19. 0
      manufacturing_reports/static/description/assets/icons/logo.png
  20. 0
      manufacturing_reports/static/description/assets/icons/manufacturing-black.png
  21. 0
      manufacturing_reports/static/description/assets/icons/pos-black.png
  22. 0
      manufacturing_reports/static/description/assets/icons/puzzle.png
  23. 0
      manufacturing_reports/static/description/assets/icons/restaurant-black.png
  24. 0
      manufacturing_reports/static/description/assets/icons/service-black.png
  25. 0
      manufacturing_reports/static/description/assets/icons/trading-black.png
  26. 0
      manufacturing_reports/static/description/assets/icons/training.png
  27. 0
      manufacturing_reports/static/description/assets/icons/update.png
  28. 0
      manufacturing_reports/static/description/assets/icons/user.png
  29. 0
      manufacturing_reports/static/description/assets/icons/wrench.png
  30. BIN
      manufacturing_reports/static/description/assets/misc/categories.png
  31. BIN
      manufacturing_reports/static/description/assets/misc/check-box.png
  32. BIN
      manufacturing_reports/static/description/assets/misc/compass.png
  33. BIN
      manufacturing_reports/static/description/assets/misc/corporate.png
  34. BIN
      manufacturing_reports/static/description/assets/misc/customer-support.png
  35. BIN
      manufacturing_reports/static/description/assets/misc/cybrosys-logo.png
  36. BIN
      manufacturing_reports/static/description/assets/misc/features.png
  37. BIN
      manufacturing_reports/static/description/assets/misc/pictures.png
  38. BIN
      manufacturing_reports/static/description/assets/misc/pie-chart.png
  39. BIN
      manufacturing_reports/static/description/assets/misc/right-arrow.png
  40. BIN
      manufacturing_reports/static/description/assets/misc/star.png
  41. BIN
      manufacturing_reports/static/description/assets/misc/support.png
  42. BIN
      manufacturing_reports/static/description/assets/misc/whatsapp.png
  43. BIN
      manufacturing_reports/static/description/assets/modules/1.png
  44. BIN
      manufacturing_reports/static/description/assets/modules/3.png
  45. BIN
      manufacturing_reports/static/description/assets/modules/4.png
  46. BIN
      manufacturing_reports/static/description/assets/modules/5.gif
  47. BIN
      manufacturing_reports/static/description/assets/modules/6.png
  48. BIN
      manufacturing_reports/static/description/assets/modules/budget_image.png
  49. BIN
      manufacturing_reports/static/description/assets/modules/credit_image.png
  50. BIN
      manufacturing_reports/static/description/assets/modules/employee_image.png
  51. BIN
      manufacturing_reports/static/description/assets/modules/export_image.png
  52. 0
      manufacturing_reports/static/description/assets/modules/gantt_image.png
  53. BIN
      manufacturing_reports/static/description/assets/modules/quotation_image.png
  54. BIN
      manufacturing_reports/static/description/assets/screenshots/01.png
  55. BIN
      manufacturing_reports/static/description/assets/screenshots/02.png
  56. BIN
      manufacturing_reports/static/description/assets/screenshots/14_1.png
  57. BIN
      manufacturing_reports/static/description/assets/screenshots/14_2.png
  58. 0
      manufacturing_reports/static/description/assets/screenshots/14_3.png
  59. 0
      manufacturing_reports/static/description/assets/screenshots/14_4.png
  60. BIN
      manufacturing_reports/static/description/assets/screenshots/Manufacturing-reports-gif.gif
  61. BIN
      manufacturing_reports/static/description/assets/screenshots/hero.png
  62. 0
      manufacturing_reports/static/description/banner.png
  63. 0
      manufacturing_reports/static/description/icon.png
  64. 545
      manufacturing_reports/static/description/index.html
  65. 12
      manufacturing_reports/static/src/js/action_manager.js
  66. 10
      manufacturing_reports/views/manufacturing_report_menus.xml
  67. 8
      manufacturing_reports/wizard/__init__.py
  68. 175
      manufacturing_reports/wizard/manufacturing_report.py
  69. 28
      manufacturing_reports/wizard/manufacturing_report_views.xml
  70. 285
      manufacturing_reports/wizard/mrp_report.py

24
manufacturing_reports/README.rst

@ -1,30 +1,34 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: https://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
Manufacturing Reports Manufacturing Reports
===================== =====================
Provides an option to print XLSX and PDF report for the Manufacturing module. This module allow to manage manufacturing reports.
Configuration
=============
* No additional configurations needed
Installation Installation
============ ============
- www.odoo.com/documentation/15.0/setup/install.html - www.odoo.com/documentation/15.0/setup/install.html
- Install our custom addon - Install our custom addon
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
License License
------- -------
Affero General Public License v3.0 (AGPL v3) GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3)
(https://www.gnu.org/licenses/agpl-3.0-standalone.html) (https://www.gnu.org/licenses/agpl-3.0-standalone.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits Credits
------- -------
* Developer: (V9) Cybrosys Technologies. * Developer:
(V14) Javid A (V14) Javid A, Contact: odoo@cybrosys.com
(V15) Javid A (V15) Javid A, Contact: odoo@cybrosys.com
Contacts Contacts
-------- --------

6
manufacturing_reports/__init__.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################### #############################################################################
# #
# Cybrosys Technologies Pvt. Ltd. # Cybrosys Technologies Pvt. Ltd.
# #
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) # Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (odoo@cybrosys.com) # Author: Javid A (<https://www.cybrosys.com>)
# #
# You can modify it under the terms of the GNU AFFERO # You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@ -18,6 +18,6 @@
# (AGPL v3) along with this program. # (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################### #############################################################################
from . import controllers from . import controllers
from . import wizard from . import wizard

25
manufacturing_reports/__manifest__.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################### #############################################################################
# #
# Cybrosys Technologies Pvt. Ltd. # Cybrosys Technologies Pvt. Ltd.
# #
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) # Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (odoo@cybrosys.com) # Author: Javid A (<https://www.cybrosys.com>)
# #
# You can modify it under the terms of the GNU AFFERO # You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@ -18,34 +18,31 @@
# (AGPL v3) along with this program. # (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################### #############################################################################
{ {
'name': 'Manufacturing Reports', 'name': 'Manufacturing Reports',
'version': '15.0.1.0.0', 'version': '15.0.1.0.0',
'category': 'Manufacturing',
'summary': 'PDF & XLS Reports For Manufacturing Module', 'summary': 'PDF & XLS Reports For Manufacturing Module',
'description': """This module crafted by Cybrosys Technologies provides 'description': 'Advanced filters for PDF and XLS reports for '
an option to print PDF & XLS report for MRP systems, 'manufacturing module',
also you can view the product image in the report. This 'category': 'Manufacturing',
works well for large and small business MRP systems.""",
'author': 'Cybrosys Techno Solutions', 'author': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "http://www.cybrosys.com", 'website': "http://www.cybrosys.com",
'images': ['static/description/banner.png'],
'company': 'Cybrosys Techno Solutions', 'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'depends': ['base', 'mrp'], 'depends': ['base', 'mrp'],
'data': [ 'data': [
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'reports/mrp_report_templates.xml', 'wizard/manufacturing_report_views.xml',
'reports/mrp_report_views.xml', 'report/mrp_report_templates.xml',
'wizard/mrp_report_views.xml', 'report/mrp_report_reports.xml',
'views/manufacturing_report_menus.xml',
], ],
'assets': { 'assets': {
'web.assets_backend': [ 'web.assets_backend': [
'manufacturing_reports/static/src/js/action_manager.js', 'manufacturing_reports/static/src/js/action_manager.js',
] ]
}, },
'images': ['static/description/banner.png'],
'license': 'AGPL-3', 'license': 'AGPL-3',
'installable': True, 'installable': True,
'auto_install': False, 'auto_install': False,

8
manufacturing_reports/controllers/__init__.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################### #############################################################################
# #
# Cybrosys Technologies Pvt. Ltd. # Cybrosys Technologies Pvt. Ltd.
# #
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) # Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (odoo@cybrosys.com) # Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
# #
# You can modify it under the terms of the GNU AFFERO # You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@ -18,5 +18,5 @@
# (AGPL v3) along with this program. # (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################### #############################################################################
from . import main from . import manufacturing_reports

25
manufacturing_reports/controllers/main.py → manufacturing_reports/controllers/manufacturing_reports.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################### #############################################################################
# #
# Cybrosys Technologies Pvt. Ltd. # Cybrosys Technologies Pvt. Ltd.
# #
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) # Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (odoo@cybrosys.com) # Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
# #
# You can modify it under the terms of the GNU AFFERO # You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@ -18,35 +18,38 @@
# (AGPL v3) along with this program. # (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################### #############################################################################
import json import json
from odoo import http from odoo import http
from odoo.http import content_disposition, request from odoo.http import content_disposition, request
from odoo.addons.web.controllers.main import _serialize_exception
from odoo.tools import html_escape from odoo.tools import html_escape
from odoo.addons.web.controllers.main import _serialize_exception
class XLSXReportController(http.Controller): class XLSXReportController(http.Controller):
"""Class for the controller class XLSXReportController. """ Route to create a xlsx sheet report returning the function
Contains the function to print XLSX report.""" get_xlsx_report() """
@http.route('/xlsx_reports', type='http', auth='user', methods=['POST'], @http.route('/xlsx_reports', type='http', auth='user', methods=['POST'],
csrf=False) csrf=False)
def get_report_xlsx(self, model, options, output_format, report_name): def get_report_xlsx(self, model, options, output_format, report_name,
**kw):
"""
Gets the Excel report data from the get_xlsx_report response with
parameters options and response
"""
uid = request.session.uid uid = request.session.uid
report_obj = request.env[model].with_user(uid) report_obj = request.env[model].with_user(uid)
options = json.loads(options) options = json.loads(options)
token = 'dummy-because-api-expects-one'
try: try:
if output_format == 'xlsx': if output_format == 'xlsx':
response = request.make_response( response = request.make_response(
None, None,
headers=[('Content-Type', 'application/vnd.ms-excel'), headers=[('Content-Type', 'application/vnd.ms-excel'),
('Content-Disposition', ('Content-Disposition',
content_disposition(report_name + '.xlsx')) content_disposition(report_name + '.xlsx'))]
]
) )
report_obj.get_xlsx_report(options, response) report_obj.get_xlsx_report(options, response)
response.set_cookie('fileToken', token)
return response return response
except Exception as e: except Exception as e:
se = _serialize_exception(e) se = _serialize_exception(e)

7
manufacturing_reports/doc/RELEASE_NOTES.md

@ -1,11 +1,6 @@
## Module <manufacturing_reports> ## Module <manufacturing_reports>
#### 17.02.2023 #### 23.08.2023
#### Version 15.0.1.0.0 #### Version 15.0.1.0.0
##### ADD ##### ADD
- Initial commit for Manufacturing Reports - Initial commit for Manufacturing Reports
#### 10.07.2023
#### Version 15.0.1.0.0
#### UPDT
- Bug Fix for the xlsx report not printing issue in Manufacturing Reports

11
manufacturing_reports/reports/mrp_report_views.xml → manufacturing_reports/report/mrp_report_reports.xml

@ -1,12 +1,11 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<!-- Manufacturing Report--> <record id="action_report_mrp" model="ir.actions.report">
<record id="action_mrp_report" model="ir.actions.report">
<field name="name">Manufacturing Report</field> <field name="name">Manufacturing Report</field>
<field name="model">mrp.report</field> <field name="model">manufacturing.report</field>
<field name="report_type">qweb-pdf</field> <field name="report_type">qweb-pdf</field>
<field name="report_name">manufacturing_reports.report_mrp_order</field> <field name="report_name">manufacturing_reports.report_mrp</field>
<field name="report_file">manufacturing_reports.report_mrp_order</field> <field name="report_file">manufacturing_reports.report_mrp</field>
<field name="binding_type">report</field> <field name="binding_type">report</field>
</record> </record>
</odoo> </odoo>

8
manufacturing_reports/reports/mrp_report_templates.xml → manufacturing_reports/report/mrp_report_templates.xml

@ -1,7 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0" encoding="UTF-8" ?>
<odoo> <odoo>
<!-- Template for the manufacturing report.--> <template id="report_mrp">
<template id="report_mrp_order">
<t t-call="web.html_container"> <t t-call="web.html_container">
<t t-call="web.external_layout"> <t t-call="web.external_layout">
<div class="page"> <div class="page">
@ -39,8 +38,7 @@
<t t-esc="rec['name']"/> <t t-esc="rec['name']"/>
</td> </td>
<td> <td>
<img t-attf-src="data:image/png;base64,{{rec['image']}}" <img t-attf-src="data:image/png;base64,{{rec['image']}}" style="width:70%;" margin="right"/>
style="width:70%;" margin="right"/>
</td> </td>
<td> <td>
<t t-esc="rec['product']"/> <t t-esc="rec['product']"/>

2
manufacturing_reports/security/ir.model.access.csv

@ -1,2 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_mrp_report,access.mrp.report,model_mrp_report,base.group_user,1,1,1,1 access_manufacturing_report,access.manufacturing.report,model_manufacturing_report,mrp.group_mrp_manager,1,1,1,1

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_mrp_report access_manufacturing_report access.mrp.report access.manufacturing.report model_mrp_report model_manufacturing_report base.group_user mrp.group_mrp_manager 1 1 1 1

0
manufacturing_reports/static/description/assets/icons/check.png

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

0
manufacturing_reports/static/description/assets/icons/chevron.png

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 310 B

0
manufacturing_reports/static/description/assets/icons/cogs.png

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
manufacturing_reports/static/description/assets/icons/consultation.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
manufacturing_reports/static/description/assets/icons/ecom-black.png

Before

Width:  |  Height:  |  Size: 576 B

After

Width:  |  Height:  |  Size: 576 B

0
manufacturing_reports/static/description/assets/icons/education-black.png

Before

Width:  |  Height:  |  Size: 733 B

After

Width:  |  Height:  |  Size: 733 B

0
manufacturing_reports/static/description/assets/icons/hotel-black.png

Before

Width:  |  Height:  |  Size: 911 B

After

Width:  |  Height:  |  Size: 911 B

0
manufacturing_reports/static/description/assets/icons/license.png

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
manufacturing_reports/static/description/assets/icons/lifebuoy.png

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
manufacturing_reports/static/description/assets/misc/logo.png → manufacturing_reports/static/description/assets/icons/logo.png

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
manufacturing_reports/static/description/assets/icons/manufacturing-black.png

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 673 B

0
manufacturing_reports/static/description/assets/icons/pos-black.png

Before

Width:  |  Height:  |  Size: 878 B

After

Width:  |  Height:  |  Size: 878 B

0
manufacturing_reports/static/description/assets/icons/puzzle.png

Before

Width:  |  Height:  |  Size: 653 B

After

Width:  |  Height:  |  Size: 653 B

0
manufacturing_reports/static/description/assets/icons/restaurant-black.png

Before

Width:  |  Height:  |  Size: 905 B

After

Width:  |  Height:  |  Size: 905 B

0
manufacturing_reports/static/description/assets/icons/service-black.png

Before

Width:  |  Height:  |  Size: 839 B

After

Width:  |  Height:  |  Size: 839 B

0
manufacturing_reports/static/description/assets/icons/trading-black.png

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 427 B

0
manufacturing_reports/static/description/assets/icons/training.png

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 627 B

0
manufacturing_reports/static/description/assets/icons/update.png

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
manufacturing_reports/static/description/assets/icons/user.png

Before

Width:  |  Height:  |  Size: 988 B

After

Width:  |  Height:  |  Size: 988 B

0
manufacturing_reports/static/description/assets/icons/wrench.png

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
manufacturing_reports/static/description/assets/misc/categories.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
manufacturing_reports/static/description/assets/misc/check-box.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
manufacturing_reports/static/description/assets/misc/compass.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

BIN
manufacturing_reports/static/description/assets/misc/corporate.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

BIN
manufacturing_reports/static/description/assets/misc/customer-support.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

BIN
manufacturing_reports/static/description/assets/misc/cybrosys-logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

BIN
manufacturing_reports/static/description/assets/misc/features.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

BIN
manufacturing_reports/static/description/assets/misc/pictures.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

BIN
manufacturing_reports/static/description/assets/misc/pie-chart.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

BIN
manufacturing_reports/static/description/assets/misc/right-arrow.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 967 B

BIN
manufacturing_reports/static/description/assets/misc/star.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
manufacturing_reports/static/description/assets/misc/support.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

BIN
manufacturing_reports/static/description/assets/misc/whatsapp.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

BIN
manufacturing_reports/static/description/assets/modules/1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

BIN
manufacturing_reports/static/description/assets/modules/3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

BIN
manufacturing_reports/static/description/assets/modules/4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

BIN
manufacturing_reports/static/description/assets/modules/5.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

BIN
manufacturing_reports/static/description/assets/modules/6.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

BIN
manufacturing_reports/static/description/assets/modules/budget_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

BIN
manufacturing_reports/static/description/assets/modules/credit_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
manufacturing_reports/static/description/assets/modules/employee_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
manufacturing_reports/static/description/assets/modules/export_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

0
manufacturing_reports/static/description/assets/modules/2.png → manufacturing_reports/static/description/assets/modules/gantt_image.png

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

BIN
manufacturing_reports/static/description/assets/modules/quotation_image.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/01.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/02.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/14_1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/14_2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

0
manufacturing_reports/static/description/assets/screenshots/14_3.png

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

0
manufacturing_reports/static/description/assets/screenshots/14_4.png

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/Manufacturing-reports-gif.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

BIN
manufacturing_reports/static/description/assets/screenshots/hero.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

0
manufacturing_reports/static/description/banner.png

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

0
manufacturing_reports/static/description/icon.png

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

545
manufacturing_reports/static/description/index.html

@ -1,288 +1,315 @@
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;"> <div class="container" style="padding: 1rem !important; margin-bottom: 1rem !important;">
<!-- TITLE BAR --> <div class="row">
<div class="d-flex align-items-center justify-content-between" <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" style="border-bottom: 1px solid #d5d5d5;">
style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;"> <div class="my-3">
<img src="assets/misc/cybrosys-logo.png" width="42" height="42" style="width: 42px; height: 42px;" /> <img src="./assets/icons/logo.png" style="width: auto !important; height: 40px !important;">
<div> </div>
<div class="my-3 d-flex align-items-center">
<div <div
style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;">
class="mr-2">
<i class="fa fa-check mr-1"></i>Community <i class="fa fa-check mr-1"></i>Community
</div> </div>
<div <div
style="color: #875A7B; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;">
class="mr-2">
<i class="fa fa-check mr-1"></i>Enterprise <i class="fa fa-check mr-1"></i>Enterprise
</div> </div>
<div
style="color: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;"
class="mr-2">
<i class="fa fa-check mr-1"></i>Odoo.sh
</div> </div>
</div> </div>
</div> </div>
<!-- END OF TITLE BAR --> </div>
<div class="container">
<div class="row"> <div class="container" style="padding: 0rem 1.5rem 4rem !important">
<div class="col-sm-12 col-md-12 col-lg-12"> <div class="row" style="height: 900px !important;">
<!-- APP HERO --> <div class="col-sm-12 col-md-12 col-lg-12"
<h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;"> style="padding: 4rem 1rem !important; background-color: #714B67 !important; height: 600px !important; border-radius: 20px !important;">
<h1
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #FFFFFF !important; font-size: 3.5rem !important; text-align: center !important;">
Manufacturing Reports</h1> Manufacturing Reports</h1>
<p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;"> <p
PDF & XLSX Reports For Manufacturing Module</p> style="font-family: 'Montserrat', sans-serif !important; font-weight: 300 !important; color: #FFFFFF !important; font-size: 1.4rem !important; text-align: center !important;">
<!-- END OF APP HERO --> PDF & XLS Reports For Manufacturing Module
<img src="assets/screenshots/hero.png" class="img-responsive" </p>
style="width: 100%; margin-left: auto; margin-right: auto;" /> <img src="assets/screenshots/Manufacturing-reports-gif.gif" class="img-responsive" width="100%" height="auto" />
</div> </div>
</div> </div>
<div class="row">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-compass mr-2"></i>Explore this module
</h2>
<div class="row">
<div class="col-md-6">
<a href="#overview" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Overview</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
Learn more about this module</p>
</div>
<div class="col-4 text-right d-flex justify-content-end align-items-center">
<i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
</div> </div>
</div> </div>
<!-- NAVIGATION SECTION --> </a>
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/compass.png" />
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Explore This <div class="col-md-6">
Module</h2> <a href="#features" style="text-decoration: none !important;">
<div class="row"
style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div class="col-8">
<h3
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
Features</h3>
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
View features of this module</p>
</div> </div>
<div class="row my-4" style="font-family: 'Montserrat', sans-serif;"> <div class="col-4 text-right d-flex justify-content-end align-items-center">
<div class="col-sm-12 col-md-6 my-3"> <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
<a href="#overview">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">Learn
more about this
module</span>
</div> </div>
<img src="assets/misc/right-arrow.png" width="36" height="36" />
</div> </div>
</a> </a>
</div> </div>
<div class="col-sm-12 col-md-6 my-3"> <div class="col-md-6">
<a href="#features"> <a href="#screenshots" style="text-decoration: none !important;">
<div class="d-flex justify-content-between align-items-center" <div class="row"
style="background-color: #f5f5f5; padding: 30px; width: 100%;"> style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;">
<div> <div class="col-8">
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span> <h3
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;">
features of this Screenshots</h3>
module</span> <p
</div> style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;">
<img src="assets/misc/right-arrow.png" width="36" height="36" /> See key screenshots of this module</p>
</div> </div>
</a> <div class="col-4 text-right d-flex justify-content-end align-items-center">
</div> <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i>
<div class="col-sm-12 col-md-6 my-3">
<a href="#screenshots">
<div class="d-flex justify-content-between align-items-center"
style="background-color: #f5f5f5; padding: 30px; width: 100%;">
<div>
<span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span>
<span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33; display: block;">View
screenshots for this
module</span>
</div> </div>
<img src="assets/misc/right-arrow.png" width="36" height="36" />
</div> </div>
</a> </a>
</div> </div>
</div> </div>
<!-- END OF NAVIGATION SECTION --> </div>
<!-- OVERVIEW SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="overview">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/pie-chart.png" />
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Overview
<div class="row" id="overview">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-pie-chart mr-2"></i>Overview
</h2> </h2>
</div> </div>
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 py-4"> <div class="col-mg-12 pl-3">
<p
style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;">
Manufacturing Reports is a free Cybrosys MRP software which helps to generate advanced Manufacturing Reports is a free Cybrosys MRP software which helps to generate advanced
report for MRP module(Material requirements planning).This allows both PDF & XLS report report for MRP (Material requirements planning) module.This allows both PDF & XLS report
for MRP systems, also you can view the product image in the report. This works well for for MRP systems. Also, you can view the product image in the report. This works well for
large and small business MRP systems. large and small business MRP systems.
</p>
</div> </div>
</div>
<!-- END OF OVERVIEW SECTION -->
<!-- FEATURES SECTION -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="features">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/features.png" />
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Features
<div class="row" id="features">
<div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
<h2
style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<i class="fa fa-star mr-2"></i>Features
</h2> </h2>
</div> </div>
<div class="row" style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;">
<div class="col-sm-12 col-md-6"> <div class="col-md-6 pl-3 py-3 d-flex">
<div class="d-flex align-items-center" style="margin-top: 40px; margin-bottom: 40px"> <div>
<img src="assets/misc/check-box.png" class="mr-2" /> <img src="assets/icons/check.png">
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Filter manufacturing orders by product.</span>
</div> </div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px"> <div>
<img src="assets/misc/check-box.png" class="mr-2" /> <h4
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Filter manufacturing orders by start date. Filter manufacturing orders based on Product</h4>
</span>
</div> </div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2" />
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">
Filter manufacturing orders by responsible person.
</span>
</div> </div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px">
<img src="assets/misc/check-box.png" class="mr-2" /> <div class="col-md-6 pl-3 py-3 d-flex">
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> <div>
Filter orders based on the status of the production.</span> <img src="assets/icons/check.png">
</div> </div>
<div class="d-flex align-items-center" style="margin-top: 30px; margin-bottom: 30px"> <div>
<img src="assets/misc/check-box.png" class="mr-2" /> <h4
<span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;"> style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Compatible with Community, Enterprise and Odoo.sh.</span> Filter the orders date</h4>
</div> </div>
</div> </div>
<div class="col-md-6 pl-3 py-3 d-flex">
<div>
<img src="assets/icons/check.png">
</div>
<div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Filter orders based on the status of the production</h4>
</div>
</div> </div>
<!-- END OF FEATURES SECTION -->
<!-- SCREENSHOTS SECTION --> <div class="col-md-6 pl-3 py-3 d-flex">
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;" id="screenshots"> <div>
<div class="d-flex justify-content-center align-items-center mr-2" <img src="assets/icons/check.png">
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> </div>
<img src="assets/misc/pictures.png" /> <div>
<h4
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
Filter based on the responsible person for production</h4>
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Screenshots
</h2>
</div> </div>
<div class="row">
<div class="col-sm-12">
<div style="display: block; margin: 30px auto;">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">
Go to Manufacturing >> Reporting >> Manufacturing Reports to print the reports.
</p>
<img src="assets/screenshots/14_1.png" class="img-thumbnail">
</div> </div>
<div style="display: block; margin: 30px auto;"> <div class="row" id="screenshots">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important">
You can print PDF and XLS report. You can also filter it by products, State, <h2
Start Date and Responsible Person</p> style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;">
<img src="assets/screenshots/14_2.png" class="img-thumbnail"> <i class="fa fa-image mr-2"></i>Screenshots
</h2>
</div> </div>
<div style="display: block; margin: 30px auto;"> <div class="col-lg-12 my-2">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <h4 class="mt-2"
PDF report with images.</p> style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
<img src="assets/screenshots/14_3.png" class="img-thumbnail"> Go to Manufacturing >> Reporting >> Manufacturing Reports to print the reports.</h4>
<img src="assets/screenshots/01.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div> </div>
<div style="display: block; margin: 30px auto;">
<p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> <div class="col-lg-12 my-3">
XLS report <h4 class="mt-3"
</p> style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
<img src="assets/screenshots/14_4.png" class="img-thumbnail"> You can print PDF and XLS report. You can also filter it by products, State,
Start Date and Responsible Person</h4>
<img src="assets/screenshots/02.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div> </div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
PDF report with images.</h4>
<img src="assets/screenshots/14_3.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div> </div>
<div class="col-lg-12 my-3">
<h4 class="mt-3"
style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;">
XLS report</h4>
<img src="assets/screenshots/14_4.png" class="img-responsive img-thumbnail border" width="100%"
height="auto" />
</div> </div>
<!-- END OF SCREENSHOTS SECTION -->
<!-- RELATED PRODUCTS -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/categories.png" />
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Related
Products
</h2>
</div> </div>
<!-- SUGGESTED PRODUCTS -->
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-lg-12 d-flex flex-column justify-content-center"
style="text-align: center; padding: 2.5rem 1rem !important;">
<h2 style="color: #212529 !important;">Suggested Products</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
<div id="demo1" class="row carousel slide" data-ride="carousel"> <div id="demo1" class="row carousel slide" data-ride="carousel">
<!-- The slideshow --> <!-- The slideshow -->
<div class="carousel-inner" style="padding:30px"> <div class="carousel-inner">
<div class="carousel-item" style="min-height:198.656px"> <div class="carousel-item active" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/whatsapp_redirect/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/export_stockinfo_xls/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/1.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/export_image.png">
</div> </div>
</a> </a>
</div> </div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/hr_payroll_community/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/custom_gantt_view/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/2.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/gantt_image.png">
</div> </div>
</a> </a>
</div> </div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/crm_dashboard/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/sales_credit_limit/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/3.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/credit_image.png">
</div> </div>
</a> </a>
</div> </div>
</div> </div>
<div class="carousel-item active" style="min-height:198.656px"> <div class="carousel-item" style="min-height:0px">
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/export_stockinfo_xls/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/base_account_budget/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/4.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/budget_image.png">
</div> </div>
</a> </a>
</div> </div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/sale_discount_total/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/product_to_quotation/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/5.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/quotation_image.png">
</div> </div>
</a> </a>
</div> </div>
<div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left">
<a href="https://apps.odoo.com/apps/modules/16.0/fleet_rental/" target="_blank"> <a href="https://apps.odoo.com/apps/modules/15.0/employee_documents_expiry/" target="_blank">
<div style="border-radius:10px"> <div style="border-radius:10px">
<img class="img img-responsive center-block" style="border-radius:0px" <img class="img img-responsive center-block"
src="//apps.odoocdn.com/apps/assets/16.0/base_accounting_kit/assets/modules/6.png?6d5ca15"> style="border-top-left-radius:10px; border-top-right-radius:10px"
src="./assets/modules/employee_image.png">
</div> </div>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- Left and right controls --> <!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo1" data-slide="prev" style="width:35px; color:#000"> <span <a class="carousel-control-prev" href="#demo1" data-slide="prev" style="left:-25px;width: 35px;color: #000;">
class="carousel-control-prev-icon"><i class="fa fa-chevron-left" <span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span> </a>
style="font-size:24px"></i></span> <a class="carousel-control-next" href="#demo1" data-slide="next" style="right:-25px;width: 35px;color: #000;">
</a> <a class="carousel-control-next" href="#demo1" data-slide="next" style="width:35px; color:#000">
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span> <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
</a> </a>
</div> </div>
</div> </div>
</div> </div>
<!-- END OF RELATED PRODUCTS --> <!-- END OF SUGGESTED PRODUCTS -->
<!-- OUR SERVICES --> <!-- OUR SERVICES -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> <section class="container" style="margin-top: 6rem !important;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/star.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our Services
</h2>
</div>
<div class="container my-5">
<div class="row"> <div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Services</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -292,6 +319,7 @@
Odoo Odoo
Customization</h6> Customization</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -301,6 +329,7 @@
Odoo Odoo
Implementation</h6> Implementation</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -310,6 +339,8 @@
Odoo Odoo
Support</h6> Support</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -320,6 +351,7 @@
Odoo Odoo
Developer</h6> Developer</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #54a0ff !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -329,6 +361,7 @@
Odoo Odoo
Integration</h6> Integration</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -338,6 +371,8 @@
Odoo Odoo
Migration</h6> Migration</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -347,6 +382,7 @@
Odoo Odoo
Consultancy</h6> Consultancy</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -356,6 +392,7 @@
Odoo Odoo
Implementation</h6> Implementation</h6>
</div> </div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3" <div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;"> style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -366,25 +403,22 @@
Licensing Consultancy</h6> Licensing Consultancy</h6>
</div> </div>
</div> </div>
</div> </section>
<!--END OF OUR SERVICES --> <!--END OF OUR SERVICES -->
<!-- OUR INDUSTRIES --> <!-- OUR INDUSTRIES -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> <section class="container" style="margin-top: 6rem !important;">
<div class="d-flex justify-content-center align-items-center mr-2"
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;">
<img src="assets/misc/corporate.png" />
</div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Our
Industries
</h2>
</div>
<div class="container my-5">
<div class="row"> <div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Our Industries</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading Trading
</h5> </h5>
@ -394,10 +428,11 @@
sell your products</p> sell your products</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS POS
</h5> </h5>
@ -407,10 +442,11 @@
and convivial experience</p> and convivial experience</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/education-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education Education
</h5> </h5>
@ -419,10 +455,11 @@
educational management</p> educational management</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing Manufacturing
</h5> </h5>
@ -431,10 +468,11 @@
schedule your operations</p> schedule your operations</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website E-commerce &amp; Website
</h5> </h5>
@ -444,10 +482,11 @@
awe-inspiring product pages</p> awe-inspiring product pages</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management Service Management
</h5> </h5>
@ -456,10 +495,11 @@
services and invoice</p> services and invoice</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant Restaurant
</h5> </h5>
@ -468,10 +508,11 @@
restaurant methodically</p> restaurant methodically</p>
</div> </div>
</div> </div>
<div class="col-lg-3"> <div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center" <div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px"> <img src="./assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management Hotel Management
</h5> </h5>
@ -481,58 +522,60 @@
hotel management application</p> hotel management application</p>
</div> </div>
</div> </div>
</div> </div>
</div> </section>
<!--END OF OUR INDUSTRIES --> <!--END OF OUR INDUSTRIES -->
<!-- SUPPORT --> <!-- FOOTER -->
<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> <!-- Footer Section -->
<div class="d-flex justify-content-center align-items-center mr-2" <section class="container" style="margin: 5rem auto 2rem;">
style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> <div class="row" style="max-width:1540px;">
<img src="assets/misc/customer-support.png" /> <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<h2 style="color: #212529 !important;">Need Help?</h2>
<hr
style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" />
</div> </div>
<h2 class="mt-2" style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;">Support
</h2>
</div>
<div class="container mt-5">
<div class="row">
<div class="col-sm-12 col-md-6">
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;">
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/support.png" height="48" width="48" style="width: 42px; height: 42px;" />
</div> </div>
<div>
<h4>Need Help?</h4> <!-- Contact Cards -->
<p style="line-height: 100%;">Got questions or need help? Get in touch.</p> <div class="row d-flex justify-content-center align-items-center"
<a href="mailto:odoo@cybrosys.com"> style="max-width:1540px; margin: 0 auto 2rem auto;">
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">
odoo@cybrosys.com</p> <div class="col-lg-12" style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; ">
</a>
</div> <div class="row mt-4">
</div> <div class="col-lg-6">
</div> <a href="mailto:odoo@cybrosys.com" target="_blank" class="btn btn-block mb-2 deep_hover"
<div class="col-sm-12 col-md-6"> style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
<div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;"> class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a>
<div class="mr-4 d-flex justify-content-center align-items-center"
style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;">
<img src="assets/misc/whatsapp.png" height="52" width="52" style="width: 52px; height: 52px;" />
</div> </div>
<div> <div class="col-lg-6">
<h4>WhatsApp</h4> <a href="https://api.whatsapp.com/send?phone=918606827707" target="_blank"
<p style="line-height: 100%;">Say hi to us on WhatsApp!</p> class="btn btn-block mb-2 deep_hover"
<a href="https://api.whatsapp.com/send?phone=918606827707"> style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;"><i
<p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;">+91 86068 class="fa fa-whatsapp mr-2"></i>+91 86068 27707</a>
27707</p>
</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <!-- End of Contact Cards -->
<div class="col-sm-12 my-5 d-flex justify-content-center align-items-center"> </section>
<img src="assets/misc/logo.png" width="144" height="31" style="width:144px; height: 31px; margin-top: 40px;" /> <!-- Footer -->
<section class="oe_container" style="padding: 2rem 3rem 1rem;">
<div class="row" style="max-width:1540px; margin: 0 auto; margin-right: 3rem; ">
<!-- Logo -->
<div class="col-lg-12 d-flex justify-content-center align-items-center" style="margin-top: 3rem;">
<img src="https://www.cybrosys.com/images/logo.png" width="200px" height="auto" />
</div> </div>
<!-- End of Logo -->
<div class="col-lg-12">
<hr
style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;">
<!-- End of Footer Section -->
</div> </div>
</div> </div>
<!-- END OF SUPPORT --> </section>
<!-- END OF FOOTER -->

12
manufacturing_reports/static/src/js/action_manager.js

@ -1,12 +1,10 @@
/** @odoo-module */ //@odoo-modules
import { registry } from "@web/core/registry"; import { registry } from "@web/core/registry";
import { download } from "@web/core/network/download";
import framework from 'web.framework'; import framework from 'web.framework';
import session from 'web.session'; import session from 'web.session';
/**
* @override //report_type is added into a registry and checks report_type is ‘XLSX.’Then call the corresponding controller function
* Add 'xlsx' report type to the report handler
*/
registry.category("ir.actions.report handlers").add("xlsx", async (action) => { registry.category("ir.actions.report handlers").add("xlsx", async (action) => {
if (action.report_type === 'xlsx') { if (action.report_type === 'xlsx') {
framework.blockUI(); framework.blockUI();
@ -20,4 +18,4 @@ registry.category("ir.actions.report handlers").add("xlsx", async (action) => {
}); });
return def; return def;
} }
}); })

10
manufacturing_reports/views/manufacturing_report_menus.xml

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- Menu for manufacturing report-->
<menuitem id="menu_mrp_reports"
parent="mrp.menu_mrp_reporting"
name="Manufacturing Reports"
action="manufacturing_reports.mrp_report_action"
sequence="5"/>
</odoo>

8
manufacturing_reports/wizard/__init__.py

@ -1,10 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
############################################################################### #############################################################################
# #
# Cybrosys Technologies Pvt. Ltd. # Cybrosys Technologies Pvt. Ltd.
# #
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) # Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (odoo@cybrosys.com) # Author: Javid A (<https://www.cybrosys.com>)
# #
# You can modify it under the terms of the GNU AFFERO # You can modify it under the terms of the GNU AFFERO
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
@ -18,5 +18,5 @@
# (AGPL v3) along with this program. # (AGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################### #############################################################################
from . import mrp_report from . import manufacturing_report

175
manufacturing_reports/wizard/manufacturing_report.py

@ -0,0 +1,175 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A(<https://www.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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import fields, models
from odoo.tools import date_utils
from odoo.tools.safe_eval import json
try:
from odoo.tools.misc import xlsxwriter
except ImportError:
import xlsxwriter
import io
class ManufacturingReport(models.TransientModel):
"""
This class creates a new model named manufacturing report and has the
fields to filter the report
"""
_name = 'manufacturing.report'
_description = 'Manufacturing Report'
filter = fields.Boolean(string='Enable Filter by Date',
help='Enabling filter by date allows you to filter '
'the records by date')
date_from = fields.Date(string='Start Date',
help='Filter by starting date')
filter_user = fields.Boolean(string='Filter On Responsible',
help='Enabling filter on responsible allows '
'you to filter the records by '
'responsible person')
responsible_ids = fields.Many2many('res.users',
string='Responsible',
help='Filter by Responsible Person')
product_ids = fields.Many2many('product.product',
string='Product',
help='Filter by Products')
state = fields.Selection(
[('confirmed', 'Confirmed'), ('planned', 'Planned'),
('progress', 'In Progress'),
('done', 'Done'), ('cancel', 'Cancelled')], string="State",
help='Filter by states')
def fetch_data(self):
"""fetches the data and append to a list and returns it"""
conditions = []
if self.product_ids:
conditions.append(('product_id', 'in', self.product_ids.ids))
if self.state:
conditions.append(('state', '=', self.state))
if self.date_from:
conditions.append(('date_planned_start', '>=', self.date_from))
if self.responsible_ids:
conditions.append(('user_id', 'in', self.responsible_ids.ids))
mrp_orders = self.env['mrp.production'].search(conditions)
return mrp_orders
def action_print_xlsx(self):
"""Calls the fetch_data function and print the Excel report"""
mrp_orders = self.fetch_data()
orders = [{
'name': rec.name,
'product': rec.product_id.name,
'quantity': rec.product_qty,
'unit': rec.product_uom_category_id.name,
'responsible': rec.user_id.name,
'start_date': rec.date_planned_start,
'state': rec.state,
} for rec in mrp_orders]
data = {
'date_from': self.date_from,
'state': self.state,
'mrp': orders
}
return {
'type': 'ir.actions.report',
'data': {
'model': 'manufacturing.report',
'options': json.dumps(data, default=date_utils.json_default),
'output_format': 'xlsx',
'report_name': 'Manufacturing Report', },
'report_type': 'xlsx',
}
def action_print_pdf(self):
"""Calls the fetch_data function and print the PDF report"""
mrp_orders = self.fetch_data()
orders = [{
'name': rec.name,
'image': rec.product_id.image_1920,
'product': rec.product_id.name,
'quantity': rec.product_qty,
'unit': rec.product_uom_category_id.name,
'responsible': rec.user_id.name,
'start_date': rec.date_planned_start,
'state': rec.state,
} for rec in mrp_orders]
data = {
'date_from': self.date_from,
'state': self.state,
'mrp': orders
}
return self.env.ref(
'manufacturing_reports.action_report_mrp').report_action(self,
data=data)
def get_xlsx_report(self, data, response):
"""
Set the rows and column for datas to print in Excel sheet
:param data: The records data
:param response: the corresponding response
:return: XLSX file
"""
output = io.BytesIO()
workbook = xlsxwriter.Workbook(output, {'in_memory': True})
sheet = workbook.add_worksheet()
cell_format = workbook.add_format({'font_size': '12px', 'bold': True})
head = workbook.add_format(
{'align': 'center', 'bold': True, 'font_size': '20px'})
txt_head = workbook.add_format({'font_size': '12px'})
sheet.set_column('B:B', 15)
sheet.set_column('C:C', 15)
sheet.set_column('D:D', 16)
sheet.set_column('E:E', 11)
sheet.set_column('F:F', 11)
sheet.set_column('G:G', 15)
sheet.set_column('H:H', 19)
sheet.set_column('I:I', 15)
sheet.merge_range('B2:H3', 'Manufacturing Orders', head)
if data['date_from']:
sheet.write('B6', 'From:', cell_format)
sheet.merge_range('C6:D6', data['date_from'], txt_head)
if data['state']:
sheet.write('B7', 'State:', cell_format)
sheet.merge_range('C7:D7', data['state'], txt_head)
row = 9
col = 2
sheet.write(row, col, 'Reference', cell_format)
sheet.write(row, col + 1, 'Product', cell_format)
sheet.write(row, col + 2, 'Quantity', cell_format)
sheet.write(row, col + 3, 'Unit', cell_format)
sheet.write(row, col + 4, 'Responsible', cell_format)
sheet.write(row, col + 5, 'Start Date', cell_format)
sheet.write(row, col + 6, 'State', cell_format)
for rec in data['mrp']:
row += 1
sheet.write(row, col, rec['name'])
sheet.write(row, col + 1, rec['product'])
sheet.write(row, col + 2, rec['quantity'])
sheet.write(row, col + 3, rec['unit'])
sheet.write(row, col + 4, rec['responsible'])
sheet.write(row, col + 5, rec['start_date'])
sheet.write(row, col + 6, rec['state'])
workbook.close()
output.seek(0)
response.stream.write(output.read())
output.close()

28
manufacturing_reports/wizard/mrp_report_views.xml → manufacturing_reports/wizard/manufacturing_report_views.xml

@ -1,43 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<!-- Form view for mrp.report--> <record id="manufacturing_report_view_form" model="ir.ui.view">
<record id="mrp_report_view_form" model="ir.ui.view"> <field name="name">manufacturing.report.view.form</field>
<field name="name">mrp.report.view.form</field> <field name="model">manufacturing.report</field>
<field name="model">mrp.report</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="MRP Report"> <form string="MRP Report">
<group> <group>
<group> <group>
<field name="product_id" widget="many2many_tags"/> <field name="product_ids" widget="many2many_tags"/>
<field name="filter"/> <field name="filter"/>
<field name="date_from" <field name="date_from"
attrs="{'invisible': [('filter','=',False)], 'required': [('filter', '=', True)]}"/> attrs="{'invisible': [('filter','=',False)], 'required': [('filter', '=', True)]}"/>
</group> </group>
<group> <group>
<field name="stage"/> <field name="state"/>
<field name="filter_user"/> <field name="filter_user"/>
<field name="responsible_id" widget="many2many_tags" <field name="responsible_ids" widget="many2many_tags"
attrs="{'invisible': [('filter_user','=',False)], 'required': [('filter_user', '=', True)]}"/> attrs="{'invisible': [('filter_user','=',False)], 'required': [('filter_user', '=', True)]}"/>
</group> </group>
</group> </group>
<footer> <footer>
<button name="check_report" string="Export xls" <button name="action_print_xlsx" string="Export XLSX" type="object" class="oe_highlight" icon='fa-download'/>
type="object" class="oe_highlight" <button name="action_print_pdf" string="Print PDF" type="object" class="oe_highlight" icon='fa-download'/>
icon='fa-download'/>
<button name="print_pdf" string="Print Pdf" type="object"
class="oe_highlight" icon='fa-download'/>
or
<button string="Cancel" class="oe_link" special="cancel"/> <button string="Cancel" class="oe_link" special="cancel"/>
</footer> </footer>
</form> </form>
</field> </field>
</record> </record>
<!-- Action for the mrp.report--> <record id="manufacturing_report_action" model="ir.actions.act_window">
<record id="mrp_report_action" model="ir.actions.act_window">
<field name="name">MRP Report</field> <field name="name">MRP Report</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.report</field> <field name="res_model">manufacturing.report</field>
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="target">new</field> <field name="target">new</field>
</record> </record>
<menuitem id="manufacturing_report_menu" parent="mrp.menu_mrp_reporting" name="Manufacturing Reports"
action="manufacturing_report_action" sequence="5" groups="mrp.group_mrp_manager"/>
</odoo> </odoo>

285
manufacturing_reports/wizard/mrp_report.py

@ -1,285 +0,0 @@
# -*- coding: utf-8 -*-
###############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Javid A (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 <http://www.gnu.org/licenses/>.
#
###############################################################################
import io
import xlsxwriter
from odoo import fields, models
from odoo.tools import date_utils
from odoo.tools.safe_eval import json
class MrpReport(models.TransientModel):
"""Class for the transient model mrp report."""
_name = 'mrp.report'
_description = 'MRP Report'
filter = fields.Boolean(string='Enable filter by date',
help='The reports can be filtered by date if '
'enabled.')
date_from = fields.Date(string='Start Date',
help='Start date for the report data.')
filter_user = fields.Boolean(string='Filter On Responsible',
help='The reports can be filtered by '
'responsible person, if enabled.')
responsible_id = fields.Many2many('res.users', string='Responsible',
help='Responsible person for the '
'records.')
product_id = fields.Many2many('product.product', string='Product',
help='Id of the product in the manufacturing'
' order.')
stage = fields.Selection(
[('confirmed', 'Confirmed'), ('planned', 'Planned'),
('progress', 'In Progress'),
('done', 'Done'), ('cancel', 'Cancelled')], string="Filter State",
help='Stage of the manufacturing order.')
def check_report(self):
"""
Function to fetch the mrp orders according to the filters given in
the wizard and print the XLS report
"""
orders = []
if self.product_id and self.stage and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.stage and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('date_planned_start', '>=', self.date_from)])
elif self.product_id and self.stage and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.stage and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.stage:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage)])
elif self.product_id and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('date_planned_start', '>=', self.date_from)])
elif self.product_id and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('user_id', 'in', self.responsible_id.ids)])
elif self.stage and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('date_planned_start', '>=', self.date_from)])
elif self.stage and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('user_id', 'in', self.responsible_id.ids)])
elif self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids)])
elif self.stage:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage)])
elif self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('date_planned_start', '>=', self.date_from)])
elif self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('user_id', 'in', self.responsible_id.ids)])
else:
mrp_orders = self.env['mrp.production'].search([])
for rec in mrp_orders:
orders.append({
'name': rec.name,
'product': rec.product_id.name,
'quantity': rec.product_qty,
'unit': rec.product_uom_category_id.name,
'responsible': rec.user_id.name,
'start_date': rec.date_planned_start,
'state': rec.state,
})
print('orders', orders)
data = {
'date_from': self.date_from,
'stage': self.stage,
'mrp': orders
}
return {
'type': 'ir.actions.report',
'data': {
'model': 'mrp.report',
'options': json.dumps(data, default=date_utils.json_default),
'output_format': 'xlsx',
'report_name': 'Manufacturing Report', },
'report_type': 'xlsx',
}
def print_pdf(self):
"""
Function to fetch the mrp orders according to the filters given in
the wizard and print the PDF report
"""
orders = []
if self.product_id and self.stage and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.stage and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('date_planned_start', '>=', self.date_from)])
elif self.product_id and self.stage and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.stage and self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id and self.stage:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('state', '=', self.stage)])
elif self.product_id and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('date_planned_start', '>=', self.date_from)])
elif self.product_id and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids),
('user_id', 'in', self.responsible_id.ids)])
elif self.stage and self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('date_planned_start', '>=', self.date_from)])
elif self.stage and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage),
('user_id', 'in', self.responsible_id.ids)])
elif self.date_from and self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('date_planned_start', '>=', self.date_from),
('user_id', 'in', self.responsible_id.ids)])
elif self.product_id:
mrp_orders = self.env['mrp.production'].search(
[('product_id', 'in', self.product_id.ids)])
elif self.stage:
mrp_orders = self.env['mrp.production'].search(
[('state', '=', self.stage)])
elif self.date_from:
mrp_orders = self.env['mrp.production'].search(
[('date_planned_start', '>=', self.date_from)])
elif self.responsible_id:
mrp_orders = self.env['mrp.production'].search(
[('user_id', 'in', self.responsible_id.ids)])
else:
mrp_orders = self.env['mrp.production'].search([])
for rec in mrp_orders:
orders.append({
'name': rec.name,
'image': rec.product_id.image_1920,
'product': rec.product_id.name,
'quantity': rec.product_qty,
'unit': rec.product_uom_category_id.name,
'responsible': rec.user_id.name,
'start_date': rec.date_planned_start,
'state': rec.state,
})
data = {
'date_from': self.date_from,
'stage': self.stage,
'mrp': orders
}
return self.env.ref(
'manufacturing_reports.action_mrp_report').report_action(self,
data=data)
def get_xlsx_report(self, data, response):
print('get_xlsx_report(self, data, response)')
output = io.BytesIO()
workbook = xlsxwriter.Workbook(output, {'in_memory': True})
sheet = workbook.add_worksheet()
cell_format = workbook.add_format({'font_size': '12px', 'bold': True})
head = workbook.add_format(
{'align': 'center', 'bold': True, 'font_size': '20px'})
txt_head = workbook.add_format({'font_size': '12px'})
sheet.set_column('B:B', 15)
sheet.set_column('C:C', 15)
sheet.set_column('D:D', 16)
sheet.set_column('E:E', 11)
sheet.set_column('F:F', 11)
sheet.set_column('G:G', 15)
sheet.set_column('H:H', 19)
sheet.set_column('I:I', 15)
sheet.merge_range('B2:H3', 'Manufacturing Orders', head)
if data['date_from']:
sheet.write('B6', 'From:', cell_format)
sheet.merge_range('C6:D6', data['date_from'], txt_head)
if data['stage']:
sheet.write('B7', 'State:', cell_format)
sheet.merge_range('C7:D7', data['stage'], txt_head)
row = 9
col = 2
sheet.write(row, col, 'Reference', cell_format)
sheet.write(row, col + 1, 'Product', cell_format)
sheet.write(row, col + 2, 'Quantity', cell_format)
sheet.write(row, col + 3, 'Unit', cell_format)
sheet.write(row, col + 4, 'Responsible', cell_format)
sheet.write(row, col + 5, 'Start Date', cell_format)
sheet.write(row, col + 6, 'State', cell_format)
for rec in data['mrp']:
row += 1
sheet.write(row, col, rec['name'])
sheet.write(row, col + 1, rec['product'])
sheet.write(row, col + 2, rec['quantity'])
sheet.write(row, col + 3, rec['unit'])
sheet.write(row, col + 4, rec['responsible'])
sheet.write(row, col + 5, rec['start_date'])
sheet.write(row, col + 6, rec['state'])
workbook.close()
output.seek(0)
response.stream.write(output.read())
output.close()
Loading…
Cancel
Save