@ -0,0 +1,47 @@ | 
				
			|||||
 | 
					.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg | 
				
			||||
 | 
					   :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html | 
				
			||||
 | 
					   :alt: License: LGPL-3 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Custom Pivot Report | 
				
			||||
 | 
					=================== | 
				
			||||
 | 
					* This module will helps to create custom pivot report for any models. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Configuration | 
				
			||||
 | 
					============= | 
				
			||||
 | 
					* No additional configuration needed | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Company | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					License | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					General Public License, Version 3 (LGPL v3). | 
				
			||||
 | 
					(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					Developer : (V14) Sreerag P M, | 
				
			||||
 | 
					            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 <https://cybrosys.com/>`__ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Further information | 
				
			||||
 | 
					=================== | 
				
			||||
 | 
					HTML Description: `<static/description/index.html>`__ | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from . import models | 
				
			||||
 | 
					from .hooks import report_uninstall_hook | 
				
			||||
@ -0,0 +1,44 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': 'Custom Pivot Report', | 
				
			||||
 | 
					    'version': '14.0.1.0.0', | 
				
			||||
 | 
					    "category": "Extra Tools", | 
				
			||||
 | 
					    "summary": """Create Custom Pivot Report For Any Model Without Coding""", | 
				
			||||
 | 
					    "description": """Create Custom Pivot Report For Any Model Without Coding,  | 
				
			||||
 | 
					     Dynamic Pivot Report, Custom Pivot Report, Dynamic Report, Pivot View""", | 
				
			||||
 | 
					    'author': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': 'https://www.cybrosys.com', | 
				
			||||
 | 
					    'depends': ['base'], | 
				
			||||
 | 
					    'data': [ | 
				
			||||
 | 
					        'security/ir.model.access.csv', | 
				
			||||
 | 
					        'views/custom_report.xml', | 
				
			||||
 | 
					    ], | 
				
			||||
 | 
					    'images': ['static/description/banner.png'], | 
				
			||||
 | 
					    'license': 'LGPL-3', | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					    'application': False, | 
				
			||||
 | 
					    'uninstall_hook': 'report_uninstall_hook' | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,6 @@ | 
				
			|||||
 | 
					## Module <custom_pivot_report> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 11.11.2023 | 
				
			||||
 | 
					#### Version 14.0.1.0.0 | 
				
			||||
 | 
					#### ADD | 
				
			||||
 | 
					- Initial commit for Custom Pivot Report | 
				
			||||
@ -0,0 +1,30 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import api, SUPERUSER_ID | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					def report_uninstall_hook(cr, registry): | 
				
			||||
 | 
					    # Uninstall hook to delete all the custom pivot reports | 
				
			||||
 | 
					    env = api.Environment(cr, SUPERUSER_ID, {}) | 
				
			||||
 | 
					    records = env['custom.report'].search([]) | 
				
			||||
 | 
					    for record in records: | 
				
			||||
 | 
					        record.unlink() | 
				
			||||
@ -0,0 +1,26 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from . import custom_report | 
				
			||||
 | 
					from . import custom_report_fields | 
				
			||||
 | 
					from . import ir_actions_act_window | 
				
			||||
 | 
					from . import ir_ui_menu | 
				
			||||
 | 
					from . import ir_ui_view | 
				
			||||
@ -0,0 +1,158 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import api, fields, models, _ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class CustomReport(models.Model): | 
				
			||||
 | 
					    """ | 
				
			||||
 | 
					        Custom report model for creating pivot view and adding required | 
				
			||||
 | 
					        fields for the model | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					    _name = 'custom.report' | 
				
			||||
 | 
					    _description = 'Custom Report' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    name = fields.Char(string='Name', | 
				
			||||
 | 
					                       help="Name of the custom report.") | 
				
			||||
 | 
					    model_id = fields.Many2one('ir.model', | 
				
			||||
 | 
					                               string='Model', required=True, | 
				
			||||
 | 
					                               domain="[('transient', '=', False),]", | 
				
			||||
 | 
					                               ondelete='cascade', | 
				
			||||
 | 
					                               help="Select the base model for the " | 
				
			||||
 | 
					                                    "custom report.") | 
				
			||||
 | 
					    fields_ids = fields.One2many('custom.report.fields', 'report_id', | 
				
			||||
 | 
					                                 string='Fields', required=True, | 
				
			||||
 | 
					                                 help="Custom fields associated with " | 
				
			||||
 | 
					                                      "this report.") | 
				
			||||
 | 
					    menu_id = fields.Many2one('ir.ui.menu', | 
				
			||||
 | 
					                              string='Menu', required=True, | 
				
			||||
 | 
					                              ondelete='cascade', | 
				
			||||
 | 
					                              help="The menu where you want to create a " | 
				
			||||
 | 
					                                   "new menu item.") | 
				
			||||
 | 
					    menu_group_ids = fields.Many2many('res.groups', | 
				
			||||
 | 
					                                      string='Menu Group', | 
				
			||||
 | 
					                                      required=True, ondelete='cascade', | 
				
			||||
 | 
					                                      help="Groups with access to this " | 
				
			||||
 | 
					                                           "menu item.") | 
				
			||||
 | 
					    view_type = fields.Selection([('pivot', 'Pivot'), ('graph', 'Graph')], | 
				
			||||
 | 
					                                 string='View Type', | 
				
			||||
 | 
					                                 help="Type of view for the custom report.") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def unlink(self): | 
				
			||||
 | 
					        """Customized unlink method to clean up related records.""" | 
				
			||||
 | 
					        for rec in self: | 
				
			||||
 | 
					            # Searching the view. | 
				
			||||
 | 
					            view = self.env['ir.ui.view'].search( | 
				
			||||
 | 
					                [('custom_report', '=', str(rec.id) + '_' + rec.model_id.model + | 
				
			||||
 | 
					                  '_' + rec.menu_id.complete_name)]) | 
				
			||||
 | 
					            # Search the action. | 
				
			||||
 | 
					            action = self.env['ir.actions.act_window'].search( | 
				
			||||
 | 
					                [('custom_report', '=', | 
				
			||||
 | 
					                  str(rec.id) + '_' + 'pivot' + '_' + '_' + 'current',)]) | 
				
			||||
 | 
					            # Search the menu. | 
				
			||||
 | 
					            menu = self.env['ir.ui.menu'].search( | 
				
			||||
 | 
					                [('custom_report', '=', str(rec.id) + '_' + | 
				
			||||
 | 
					                  rec.menu_id.complete_name + '_' + rec.model_id.model)]) | 
				
			||||
 | 
					            view.sudo().unlink() | 
				
			||||
 | 
					            action.sudo().unlink() | 
				
			||||
 | 
					            menu.sudo().unlink() | 
				
			||||
 | 
					        return super().unlink() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.constrains('menu_id', 'fields_ids', 'model_id', 'name', | 
				
			||||
 | 
					                    'menu_group_ids') | 
				
			||||
 | 
					    def _create_menu_id(self): | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        Customized constraint method to create or update menu, action, and view. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        view_id = self.env['ir.ui.view'].search( | 
				
			||||
 | 
					            [('custom_report', '=', str(self.id) + '_' + self.model_id.model + | 
				
			||||
 | 
					              '_' + self.menu_id.complete_name)]) | 
				
			||||
 | 
					        arch_base = '''<pivot string="%s" sample="1">\n''' % self.name | 
				
			||||
 | 
					        for rec in self.fields_ids: | 
				
			||||
 | 
					            if rec.row: | 
				
			||||
 | 
					                arch_base += ''' | 
				
			||||
 | 
					                <field name="%s" type="row" string="%s"/>\n''' % ( | 
				
			||||
 | 
					                    rec.custom_field_id.name, rec.label) | 
				
			||||
 | 
					            elif rec.measure: | 
				
			||||
 | 
					                arch_base += ''' | 
				
			||||
 | 
					                <field name="%s" type="measure" string="%s"/>\n''' % ( | 
				
			||||
 | 
					                    rec.custom_field_id.name, rec.label) | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                arch_base += '''<field name="%s" string="%s" />\n''' % ( | 
				
			||||
 | 
					                    rec.custom_field_id.name, rec.label) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        arch_base += '''</pivot>\n''' | 
				
			||||
 | 
					        view_value = { | 
				
			||||
 | 
					            'name': _(self.name), | 
				
			||||
 | 
					            'type': 'pivot', | 
				
			||||
 | 
					            'custom_report': ( | 
				
			||||
 | 
					                    str(self.id) + '_' + self.model_id.model + '_' + | 
				
			||||
 | 
					                    self.menu_id.complete_name), | 
				
			||||
 | 
					            'model': self.model_id.model, | 
				
			||||
 | 
					            'mode': 'primary', | 
				
			||||
 | 
					            'active': True, | 
				
			||||
 | 
					            'arch_base': arch_base, | 
				
			||||
 | 
					            'groups_id': [(6, 0, [self.menu_group_ids.id])], | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        if not view_id: | 
				
			||||
 | 
					            # Creating the view. | 
				
			||||
 | 
					            view_obj = self.env['ir.ui.view'].create(view_value) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            view_id.sudo().write(view_value) | 
				
			||||
 | 
					            view_obj = view_id | 
				
			||||
 | 
					        value = { | 
				
			||||
 | 
					            'type': 'ir.actions.act_window', | 
				
			||||
 | 
					            'name': _(self.name), | 
				
			||||
 | 
					            'res_model': self.model_id.model, | 
				
			||||
 | 
					            'custom_report': str( | 
				
			||||
 | 
					                self.id) + '_' + 'pivot' + '_' + '_' + 'current', | 
				
			||||
 | 
					            'view_mode': 'pivot', | 
				
			||||
 | 
					            'view_id': view_obj.id, | 
				
			||||
 | 
					            'target': 'current', | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        action_id = self.env['ir.actions.act_window'].search( | 
				
			||||
 | 
					            [('custom_report', '=', | 
				
			||||
 | 
					              str(self.id) + '_' + 'pivot' + '_' + '_' + 'current')]) | 
				
			||||
 | 
					        if not action_id: | 
				
			||||
 | 
					            # Creating the action. | 
				
			||||
 | 
					            action = self.env['ir.actions.act_window'].create(value) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            action_id.sudo().write(value) | 
				
			||||
 | 
					            action = action_id | 
				
			||||
 | 
					        value = { | 
				
			||||
 | 
					            'name': self.name, | 
				
			||||
 | 
					            'complete_name': self.menu_id.complete_name + '/' + self.name, | 
				
			||||
 | 
					            'action': 'ir.actions.act_window,%s' % action.id, | 
				
			||||
 | 
					            'parent_id': self.menu_id.id, | 
				
			||||
 | 
					            'custom_report': ( | 
				
			||||
 | 
					                    str(self.id) + '_' + self.menu_id.complete_name + '_' + | 
				
			||||
 | 
					                    self.model_id.model), | 
				
			||||
 | 
					            'groups_id': [(6, 0, [self.menu_group_ids.id])], | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        menu_id = self.env['ir.ui.menu'].search([('custom_report', '=', | 
				
			||||
 | 
					                                                  str(self.id) + '_' + | 
				
			||||
 | 
					                                                  self.menu_id.complete_name + | 
				
			||||
 | 
					                                                  '_' + self.model_id.model)]) | 
				
			||||
 | 
					        if not menu_id: | 
				
			||||
 | 
					            # Creating the menu. | 
				
			||||
 | 
					            self.env['ir.ui.menu'].create(value) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            menu_id.sudo().write(value) | 
				
			||||
@ -0,0 +1,70 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import api, fields, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class CustomReportFields(models.Model): | 
				
			||||
 | 
					    """ | 
				
			||||
 | 
					    Custom report fields model. | 
				
			||||
 | 
					    Used to define custom fields associated with custom reports.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _name = 'custom.report.fields' | 
				
			||||
 | 
					    _description = 'Custom Report Fields' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    custom_field_id = fields.Many2one('ir.model.fields', | 
				
			||||
 | 
					                                      string='Custom Report Field', | 
				
			||||
 | 
					                                      required=True, ondelete='cascade', | 
				
			||||
 | 
					                                      help="Select the custom field from the " | 
				
			||||
 | 
					                                           "model to add to the report.") | 
				
			||||
 | 
					    report_id = fields.Many2one('custom.report', | 
				
			||||
 | 
					                                string='Parent Report', ondelete='cascade', | 
				
			||||
 | 
					                                help="The parent custom report to which " | 
				
			||||
 | 
					                                     "this field belongs.") | 
				
			||||
 | 
					    label = fields.Char(string='Label', | 
				
			||||
 | 
					                        help="The label for the custom field in the report.") | 
				
			||||
 | 
					    row = fields.Boolean(string='Row', | 
				
			||||
 | 
					                         help="Check this box if this field should be used " | 
				
			||||
 | 
					                              "for rows in the report.") | 
				
			||||
 | 
					    measure = fields.Boolean(string='Measure', | 
				
			||||
 | 
					                             help="Check this box if this field should be " | 
				
			||||
 | 
					                                  "used as a measure in the report.") | 
				
			||||
 | 
					    measurable = fields.Boolean(string='Measurable', | 
				
			||||
 | 
					                                help="Check this box if this field is " | 
				
			||||
 | 
					                                     "measurable.") | 
				
			||||
 | 
					    rowable = fields.Boolean(string='Rowable', | 
				
			||||
 | 
					                             help="Check this box if this field is rowable " | 
				
			||||
 | 
					                                  "('one2many' and 'many2many' fields).") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.onchange('custom_field_id') | 
				
			||||
 | 
					    def onchange_custom_field_id(self): | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        Update field values based on the selected custom field.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        model_id = self.env.context.get('parent_id') | 
				
			||||
 | 
					        self.label = self.custom_field_id.field_description | 
				
			||||
 | 
					        self.report_id = model_id | 
				
			||||
 | 
					        if self.custom_field_id.ttype in ['float', 'integer', 'many2one', | 
				
			||||
 | 
					                                          'monetary']: | 
				
			||||
 | 
					            self.measurable = True | 
				
			||||
 | 
					        if self.custom_field_id.ttype in ['many2many', 'one2many']: | 
				
			||||
 | 
					            self.rowable = True | 
				
			||||
 | 
					        return {'domain': {'custom_field_id': [('model_id.id', '=', model_id)]}} | 
				
			||||
@ -0,0 +1,30 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import fields, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class IrActionsActWindow(models.Model): | 
				
			||||
 | 
					    """Inheriting the 'ir.action.act.window' model.""" | 
				
			||||
 | 
					    _inherit = 'ir.actions.act_window' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    custom_report = fields.Char(string='Custom ID', | 
				
			||||
 | 
					                                help='Custom ID for the report') | 
				
			||||
@ -0,0 +1,31 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import fields, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class IrUiMenu(models.Model): | 
				
			||||
 | 
					    """Inheriting the 'ir.ui.menu' model.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _inherit = 'ir.ui.menu' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    custom_report = fields.Char(string='Custom ID', | 
				
			||||
 | 
					                                help='Custom ID for the report') | 
				
			||||
@ -0,0 +1,30 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# Author: Sreerag PM(odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You can modify it under the terms of the GNU LESSER | 
				
			||||
 | 
					# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					# (LGPL v3) along with this program. | 
				
			||||
 | 
					# If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					from odoo import fields, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class IrUiView(models.Model): | 
				
			||||
 | 
					    """Inheriting the 'ir.ui.view' model.""" | 
				
			||||
 | 
					    _inherit = 'ir.ui.view' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    custom_report = fields.Char(string='Custom ID', | 
				
			||||
 | 
					                                help='Custom ID for the report') | 
				
			||||
| 
		
		
			 Can't render this file because it has a wrong number of fields in line 2. 
		
	 | 
| 
		 After Width: | Height: | Size: 3.6 KiB  | 
| 
		 After Width: | Height: | Size: 310 B  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 576 B  | 
| 
		 After Width: | Height: | Size: 733 B  | 
| 
		 After Width: | Height: | Size: 911 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 673 B  | 
| 
		 After Width: | Height: | Size: 878 B  | 
| 
		 After Width: | Height: | Size: 653 B  | 
| 
		 After Width: | Height: | Size: 905 B  | 
| 
		 After Width: | Height: | Size: 839 B  | 
| 
		 After Width: | Height: | Size: 427 B  | 
| 
		 After Width: | Height: | Size: 627 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 988 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 61 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 60 KiB  | 
| 
		 After Width: | Height: | Size: 57 KiB  | 
| 
		 After Width: | Height: | Size: 61 KiB  | 
| 
		 After Width: | Height: | Size: 179 KiB  | 
| 
		 After Width: | Height: | Size: 62 KiB  | 
| 
		 After Width: | Height: | Size: 103 KiB  | 
| 
		 After Width: | Height: | Size: 290 KiB  | 
| 
		 After Width: | Height: | Size: 78 KiB  | 
| 
		 After Width: | Height: | Size: 76 KiB  | 
| 
		 After Width: | Height: | Size: 104 KiB  | 
| 
		 After Width: | Height: | Size: 45 KiB  | 
| 
		 After Width: | Height: | Size: 7.9 KiB  | 
@ -0,0 +1,691 @@ | 
				
			|||||
 | 
					<div class="container" | 
				
			||||
 | 
					     style="padding: 1rem !important; margin-bottom: 1rem !important;"> | 
				
			||||
 | 
					    <div class="row"> | 
				
			||||
 | 
					        <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" | 
				
			||||
 | 
					             style="border-bottom: 1px solid #d5d5d5;"> | 
				
			||||
 | 
					            <div class="my-3"> | 
				
			||||
 | 
					                <img src="./assets/icons/logo.png" | 
				
			||||
 | 
					                     style="width: auto !important; height: 40px !important;"> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="my-3 d-flex align-items-center"> | 
				
			||||
 | 
					                <div | 
				
			||||
 | 
					                        style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | 
				
			||||
 | 
					                    <i class="fa fa-check mr-1"></i>Community | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div | 
				
			||||
 | 
					                        style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | 
				
			||||
 | 
					                    <i class="fa fa-check mr-1"></i>Enterprise | 
				
			||||
 | 
					                </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 class="container" style="padding: 0rem 1.5rem 4rem !important"> | 
				
			||||
 | 
					    <div class="row" style="height: 900px !important;"> | 
				
			||||
 | 
					        <div class="col-sm-12 col-md-12 col-lg-12" | 
				
			||||
 | 
					             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;"> | 
				
			||||
 | 
					                Custom Pivot Report</h1> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                    style="font-family: 'Montserrat', sans-serif !important; font-weight: 300 !important; color: #FFFFFF !important;  font-size: 1.4rem !important; text-align: center !important;"> | 
				
			||||
 | 
					                Create Custom Pivot Report For Any Model Without Coding | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="./assets/screenshots/hero.gif" class="img-responsive" | 
				
			||||
 | 
					                 width="100%" height="auto"/> | 
				
			||||
 | 
					        </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> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-md-6"> | 
				
			||||
 | 
					                    <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 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> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-md-6"> | 
				
			||||
 | 
					                    <a href="#screenshots" | 
				
			||||
 | 
					                       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;"> | 
				
			||||
 | 
					                                    Screenshots</h3> | 
				
			||||
 | 
					                                <p | 
				
			||||
 | 
					                                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                                    See key screenshots of 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> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <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> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <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;"> | 
				
			||||
 | 
					                In the Custom Pivot Report App, user can configure the menu, | 
				
			||||
 | 
					                fields, and security for pivot reports. A | 
				
			||||
 | 
					                user can easily set rows and measures for the pivot report. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        </p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <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> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                    Create custom pivot report for any module | 
				
			||||
 | 
					                </h4> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Place your custom report under any menu | 
				
			||||
 | 
					                </h4> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Set custom row and measure for pivot | 
				
			||||
 | 
					                </h4> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Set security group for report | 
				
			||||
 | 
					                </h4> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="row" id="screenshots"> | 
				
			||||
 | 
					        <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-image mr-2"></i>Screenshots | 
				
			||||
 | 
					            </h2> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-lg-12 my-2"> | 
				
			||||
 | 
					            <h4 class="mt-2" | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			||||
 | 
					                Custom Report Creation | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                User can create custom pivot report for any module and specify | 
				
			||||
 | 
					                the report menu position. Along with | 
				
			||||
 | 
					                this, User can provide security group and select custom fields | 
				
			||||
 | 
					                for the report. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="assets/screenshots/img1.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                User Added Report Menu | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="assets/screenshots/img2.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Custom Created Pivot Report | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <img src="assets/screenshots/img2.1.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Custom Report Creation On CRM | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <img src="assets/screenshots/img3.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                User Added Report Menu In CRM | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <img src="assets/screenshots/img4.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Custom Created Pivot Report On CRM | 
				
			||||
 | 
					            </h4> | 
				
			||||
 | 
					            <img src="assets/screenshots/img4.1.png" | 
				
			||||
 | 
					                 class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                 height="auto"/> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <!-- SUGGESTED PRODUCTS --> | 
				
			||||
 | 
					    <div class="row"> | 
				
			||||
 | 
					        <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"> | 
				
			||||
 | 
					                <!-- The slideshow --> | 
				
			||||
 | 
					                <div class="carousel-inner"> | 
				
			||||
 | 
					                    <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"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/export_stockinfo_xls/" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/export_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                             style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/employee_documents_expiry/" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/employee_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                             style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/sticky_pivot_view/" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/sticky_pivot_view.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="carousel-item" style="min-height:0px"> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                             style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/sale_report_advanced/" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/advanced_sales_reports.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                             style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/top_selling_product_report//" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/top_product.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                             style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/dynamic_accounts_report/" | 
				
			||||
 | 
					                               target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                         style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                         src="./assets/modules/dynamic_report.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <!-- Left and right controls --> | 
				
			||||
 | 
					                <a class="carousel-control-prev" href="#demo1" data-slide="prev" | 
				
			||||
 | 
					                   style="left:-25px;width: 35px;color: #000;"> | 
				
			||||
 | 
					                    <span class="carousel-control-prev-icon"><i | 
				
			||||
 | 
					                            class="fa fa-chevron-left" | 
				
			||||
 | 
					                            style="font-size:24px"></i></span> </a> | 
				
			||||
 | 
					                <a class="carousel-control-next" href="#demo1" data-slide="next" | 
				
			||||
 | 
					                   style="right:-25px;width: 35px;color: #000;"> | 
				
			||||
 | 
					                    <span class="carousel-control-next-icon"><i | 
				
			||||
 | 
					                            class="fa fa-chevron-right" | 
				
			||||
 | 
					                            style="font-size:24px"></i></span> | 
				
			||||
 | 
					                </a> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <!-- END OF SUGGESTED PRODUCTS --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- OUR SERVICES --> | 
				
			||||
 | 
					    <section class="container" style="margin-top: 6rem !important;"> | 
				
			||||
 | 
					        <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="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;"> | 
				
			||||
 | 
					                    <img src="assets/icons/cogs.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Customization</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/wrench.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Implementation</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/lifebuoy.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Support</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/user.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Hire | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Developer</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #54a0ff  !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/puzzle.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Integration</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/update.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Migration</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/consultation.png" | 
				
			||||
 | 
					                         class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Consultancy</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/training.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Implementation</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <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" | 
				
			||||
 | 
					                     style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/license.png" class="img-responsive" | 
				
			||||
 | 
					                         height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" | 
				
			||||
 | 
					                    style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Licensing Consultancy</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- END OF END OF OUR SERVICES --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- OUR INDUSTRIES --> | 
				
			||||
 | 
					    <section class="container" style="margin-top: 6rem !important;"> | 
				
			||||
 | 
					        <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="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Trading | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Easily procure | 
				
			||||
 | 
					                        and | 
				
			||||
 | 
					                        sell your products</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        POS | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Easy | 
				
			||||
 | 
					                        configuration | 
				
			||||
 | 
					                        and convivial experience</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Education | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        A platform for | 
				
			||||
 | 
					                        educational management</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Manufacturing | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Plan, track and | 
				
			||||
 | 
					                        schedule your operations</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        E-commerce & Website | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Mobile | 
				
			||||
 | 
					                        friendly, | 
				
			||||
 | 
					                        awe-inspiring product pages</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Service Management | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Keep track of | 
				
			||||
 | 
					                        services and invoice</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Restaurant | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Run your bar or | 
				
			||||
 | 
					                        restaurant methodically</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                     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"> | 
				
			||||
 | 
					                    <h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Hotel Management | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        An | 
				
			||||
 | 
					                        all-inclusive | 
				
			||||
 | 
					                        hotel management application</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- END OF END OF OUR INDUSTRIES --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- FOOTER --> | 
				
			||||
 | 
					    <!-- Footer Section --> | 
				
			||||
 | 
					    <section class="container" style="margin: 5rem auto 2rem;"> | 
				
			||||
 | 
					        <div class="row" style="max-width:1540px;"> | 
				
			||||
 | 
					            <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> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <!-- Contact Cards --> | 
				
			||||
 | 
					        <div class="row d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					             style="max-width:1540px; margin: 0 auto 2rem auto;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-12" | 
				
			||||
 | 
					                 style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; "> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                <div class="row mt-4"> | 
				
			||||
 | 
					                    <div class="col-lg-6"> | 
				
			||||
 | 
					                        <a href="mailto:odoo@cybrosys.com" target="_blank" | 
				
			||||
 | 
					                           class="btn btn-block mb-2 deep_hover" | 
				
			||||
 | 
					                           style="text-decoration: none;  background-color: #4d4d4d; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-lg-6"> | 
				
			||||
 | 
					                        <a href="https://api.whatsapp.com/send?phone=918606827707" | 
				
			||||
 | 
					                           target="_blank" | 
				
			||||
 | 
					                           class="btn btn-block mb-2 deep_hover" | 
				
			||||
 | 
					                           style="text-decoration: none;  background-color: #25D366; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-whatsapp mr-2"></i>+91 86068 27707</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <!-- End of Contact Cards --> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- 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> | 
				
			||||
 | 
					            <!-- 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> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- END OF FOOTER --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</div> | 
				
			||||
@ -0,0 +1,68 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- Define an action for the custom report menu item --> | 
				
			||||
 | 
					    <record id="custom_report_action" model="ir.actions.act_window"> | 
				
			||||
 | 
					        <field name="name">Custom Reports</field> | 
				
			||||
 | 
					        <field name="type">ir.actions.act_window</field> | 
				
			||||
 | 
					        <field name="res_model">custom.report</field> | 
				
			||||
 | 
					        <field name="view_mode">tree,form</field> | 
				
			||||
 | 
					        <field name="help" type="html"> | 
				
			||||
 | 
					            <p class="o_view_nocontent_smiling_face"> | 
				
			||||
 | 
					                Create record | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!-- Define a tree view for the custom report model --> | 
				
			||||
 | 
					    <record id="custom_report_view_tree" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">custom.report.view.tree</field> | 
				
			||||
 | 
					        <field name="model">custom.report</field> | 
				
			||||
 | 
					        <field name="type">tree</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <tree> | 
				
			||||
 | 
					                <field name="name"/> | 
				
			||||
 | 
					                <field name="model_id"/> | 
				
			||||
 | 
					                <field name="menu_id"/> | 
				
			||||
 | 
					            </tree> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!-- Define a form view for the custom report model --> | 
				
			||||
 | 
					    <record id="custom_report_view_form" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">custom.report.view.form</field> | 
				
			||||
 | 
					        <field name="model">custom.report</field> | 
				
			||||
 | 
					        <field name="type">form</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <form string="Custom Report"> | 
				
			||||
 | 
					                <sheet> | 
				
			||||
 | 
					                    <group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="name"/> | 
				
			||||
 | 
					                            <field name="model_id"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="menu_id"/> | 
				
			||||
 | 
					                            <field name="menu_group_ids" | 
				
			||||
 | 
					                                   widget="many2many_tags"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                        <field name="fields_ids" | 
				
			||||
 | 
					                               context="{'parent_id':model_id}"> | 
				
			||||
 | 
					                            <tree editable="bottom"> | 
				
			||||
 | 
					                                <field name="custom_field_id"/> | 
				
			||||
 | 
					                                <field name="label"/> | 
				
			||||
 | 
					                                <field name="rowable" invisible="1"/> | 
				
			||||
 | 
					                                <field name="measurable" invisible="1"/> | 
				
			||||
 | 
					                                <field name="row" | 
				
			||||
 | 
					                                       attrs="{'readonly': [('rowable', '=', True)]}"/> | 
				
			||||
 | 
					                                <field name="measure" | 
				
			||||
 | 
					                                       attrs="{'readonly': [('measurable', '=', False)]}"/> | 
				
			||||
 | 
					                            </tree> | 
				
			||||
 | 
					                        </field> | 
				
			||||
 | 
					                    </group> | 
				
			||||
 | 
					                </sheet> | 
				
			||||
 | 
					            </form> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!-- Define a menu item for the custom report --> | 
				
			||||
 | 
					    <menuitem id="custom_report_menu_root" name="Custom Reports" | 
				
			||||
 | 
					              action="custom_report_action" | 
				
			||||
 | 
					              web_icon="custom_pivot_report,static/description/icon.png"/> | 
				
			||||
 | 
					</odoo> | 
				
			||||