@ -0,0 +1,20 @@ | 
				
			|||||
 | 
					POS Dashboard v15 | 
				
			||||
 | 
					================= | 
				
			||||
 | 
					POS Dashboard | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Installation | 
				
			||||
 | 
					============ | 
				
			||||
 | 
						- www.odoo.com/documentation/14.0/setup/install.html | 
				
			||||
 | 
						- Install our custom addon | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Configuration | 
				
			||||
 | 
					============= | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    No additional configurations needed | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					======= | 
				
			||||
 | 
					Developer: Irfan v13 @ cybrosys, Contact: odoo@cybrosys.com | 
				
			||||
 | 
					           Jibin James V14 @ cybrosys, Contact: odoo@cybrosys.com | 
				
			||||
 | 
					           Irfan V15 @ cybrosys, Contact: odoo@cybrosys.com | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Irfan (<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					from . import models | 
				
			||||
@ -0,0 +1,53 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Irfan (<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': "POS Dashboard", | 
				
			||||
 | 
					    'version': '15.0.1.0.0', | 
				
			||||
 | 
					    'summary': """POS Dashboard""", | 
				
			||||
 | 
					    'description': """POS Dashboard""", | 
				
			||||
 | 
					    'category': 'Point of Sale', | 
				
			||||
 | 
					    'author': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': "https://www.cybrosys.com", | 
				
			||||
 | 
					    'depends': ['hr', 'point_of_sale'], | 
				
			||||
 | 
					    'external_dependencies': { | 
				
			||||
 | 
					        'python': ['pandas'], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    'data': [ | 
				
			||||
 | 
					        'views/dashboard_views.xml' | 
				
			||||
 | 
					    ], | 
				
			||||
 | 
					     'assets': { | 
				
			||||
 | 
					        'web.assets_backend': [ | 
				
			||||
 | 
					            'dashboard_pos/static/src/js/pos_dashboard.js', | 
				
			||||
 | 
					            'dashboard_pos/static/src/css/pos_dashboard.css', | 
				
			||||
 | 
					            'https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.js', | 
				
			||||
 | 
					        ], | 
				
			||||
 | 
					        'web.assets_qweb': [ | 
				
			||||
 | 
					            'dashboard_pos/static/src/xml/pos_dashboard.xml', | 
				
			||||
 | 
					        ], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    'images': ['static/description/banner.png'], | 
				
			||||
 | 
					    'license': "AGPL-3", | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'application': False, | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			|||||
 | 
					## Module <pos_dashboard> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 09.10.2021 | 
				
			||||
 | 
					#### Version 15.0.1.0.0 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					##### Initial Commit for pos_dashboard | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Irfan (<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					from . import pos_dashboard | 
				
			||||
@ -0,0 +1,227 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Irfan (<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					import pytz | 
				
			||||
 | 
					from odoo import models, fields, api | 
				
			||||
 | 
					from datetime import timedelta, datetime, date | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class PosDashboard(models.Model): | 
				
			||||
 | 
					    _inherit = 'pos.order' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_department(self, option): | 
				
			||||
 | 
					        company_id = self.env.company.id | 
				
			||||
 | 
					        if option == 'pos_hourly_sales': | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            user_tz = self.env.user.tz if self.env.user.tz else pytz.UTC | 
				
			||||
 | 
					            query = '''select  EXTRACT(hour FROM date_order at time zone 'utc' at time zone '{}')  | 
				
			||||
 | 
					                       as date_month,sum(amount_total) from pos_order where   | 
				
			||||
 | 
					                       EXTRACT(month FROM date_order::date) = EXTRACT(month FROM CURRENT_DATE)  | 
				
			||||
 | 
					                       AND pos_order.company_id = ''' + str( | 
				
			||||
 | 
					                       company_id) + ''' group by date_month ''' | 
				
			||||
 | 
					            query = query.format(user_tz) | 
				
			||||
 | 
					            label = 'HOURS' | 
				
			||||
 | 
					        elif option == 'pos_monthly_sales': | 
				
			||||
 | 
					            query = '''select  date_order::date as date_month,sum(amount_total) from pos_order where  | 
				
			||||
 | 
					             EXTRACT(month FROM date_order::date) = EXTRACT(month FROM CURRENT_DATE) AND pos_order.company_id = ''' + str( | 
				
			||||
 | 
					                company_id) + '''  group by date_month ''' | 
				
			||||
 | 
					            label = 'DAYS' | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            query = '''select TO_CHAR(date_order,'MON')date_month,sum(amount_total) from pos_order where | 
				
			||||
 | 
					             EXTRACT(year FROM date_order::date) = EXTRACT(year FROM CURRENT_DATE) AND pos_order.company_id = ''' + str( | 
				
			||||
 | 
					                company_id) + ''' group by date_month''' | 
				
			||||
 | 
					            label = 'MONTHS' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        self._cr.execute(query) | 
				
			||||
 | 
					        docs = self._cr.dictfetchall() | 
				
			||||
 | 
					        order = [] | 
				
			||||
 | 
					        for record in docs: | 
				
			||||
 | 
					            order.append(record.get('sum')) | 
				
			||||
 | 
					        today = [] | 
				
			||||
 | 
					        for record in docs: | 
				
			||||
 | 
					            today.append(record.get('date_month')) | 
				
			||||
 | 
					        final = [order, today, label] | 
				
			||||
 | 
					        return final | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_details(self): | 
				
			||||
 | 
					        company_id = self.env.company.id | 
				
			||||
 | 
					        cr = self._cr | 
				
			||||
 | 
					        cr.execute( | 
				
			||||
 | 
					            """select pos_payment_method.name,sum(amount) from pos_payment inner join pos_payment_method on  | 
				
			||||
 | 
					            pos_payment_method.id=pos_payment.payment_method_id group by pos_payment_method.name ORDER  | 
				
			||||
 | 
					            BY sum(amount) DESC; """) | 
				
			||||
 | 
					        payment_details = cr.fetchall() | 
				
			||||
 | 
					        cr.execute( | 
				
			||||
 | 
					            '''select hr_employee.name,sum(pos_order.amount_paid) as total,count(pos_order.amount_paid) as orders  | 
				
			||||
 | 
					            from pos_order inner join hr_employee on pos_order.user_id = hr_employee.user_id  | 
				
			||||
 | 
					            where pos_order.company_id =''' + str(company_id) + '''GROUP BY hr_employee.name order by total DESC;''') | 
				
			||||
 | 
					        salesperson = cr.fetchall() | 
				
			||||
 | 
					        total_sales = [] | 
				
			||||
 | 
					        for rec in salesperson: | 
				
			||||
 | 
					            rec = list(rec) | 
				
			||||
 | 
					            sym_id = rec[1] | 
				
			||||
 | 
					            company = self.env.company | 
				
			||||
 | 
					            if company.currency_id.position == 'after': | 
				
			||||
 | 
					                rec[1] = "%s %s" % (sym_id, company.currency_id.symbol) | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                rec[1] = "%s %s" % (company.currency_id.symbol, sym_id) | 
				
			||||
 | 
					            rec = tuple(rec) | 
				
			||||
 | 
					            total_sales.append(rec) | 
				
			||||
 | 
					        cr.execute( | 
				
			||||
 | 
					            '''select DISTINCT(product_template.name) as product_name,sum(qty) as total_quantity from  | 
				
			||||
 | 
					       pos_order_line inner join product_product on product_product.id=pos_order_line.product_id inner join  | 
				
			||||
 | 
					       product_template on product_product.product_tmpl_id = product_template.id  where pos_order_line.company_id =''' + str( | 
				
			||||
 | 
					                company_id) + ''' group by product_template.id ORDER  | 
				
			||||
 | 
					       BY total_quantity DESC Limit 10 ''') | 
				
			||||
 | 
					        selling_product = cr.fetchall() | 
				
			||||
 | 
					        sessions = self.env['pos.config'].search([]) | 
				
			||||
 | 
					        sessions_list = [] | 
				
			||||
 | 
					        dict = { | 
				
			||||
 | 
					            'closing_control': 'Closed', | 
				
			||||
 | 
					            'opened': 'Opened', | 
				
			||||
 | 
					            'new_session': 'New Session', | 
				
			||||
 | 
					            'opening_control': "Opening Control" | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        for session in sessions: | 
				
			||||
 | 
					            sessions_list.append({ | 
				
			||||
 | 
					                'session': session.name, | 
				
			||||
 | 
					                'status': dict.get(session.pos_session_state) | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					        payments =[] | 
				
			||||
 | 
					        for rec in payment_details: | 
				
			||||
 | 
					            rec = list(rec) | 
				
			||||
 | 
					            sym_id = rec[1] | 
				
			||||
 | 
					            company = self.env.company | 
				
			||||
 | 
					            if company.currency_id.position == 'after': | 
				
			||||
 | 
					                rec[1] = "%s %s" % (sym_id, company.currency_id.symbol) | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                rec[1] = "%s %s" % (company.currency_id.symbol, sym_id) | 
				
			||||
 | 
					            rec = tuple(rec) | 
				
			||||
 | 
					            payments.append(rec) | 
				
			||||
 | 
					        return { | 
				
			||||
 | 
					            'payment_details': payments, | 
				
			||||
 | 
					            'salesperson': total_sales, | 
				
			||||
 | 
					            'selling_product': sessions_list, | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_refund_details(self): | 
				
			||||
 | 
					        default_date = datetime.today().date() | 
				
			||||
 | 
					        pos_order = self.env['pos.order'].search([]) | 
				
			||||
 | 
					        total = 0 | 
				
			||||
 | 
					        today_refund_total = 0 | 
				
			||||
 | 
					        total_order_count = 0 | 
				
			||||
 | 
					        total_refund_count = 0 | 
				
			||||
 | 
					        today_sale = 0 | 
				
			||||
 | 
					        a = 0 | 
				
			||||
 | 
					        for rec in pos_order: | 
				
			||||
 | 
					            if rec.amount_total < 0.0 and rec.date_order.date() == default_date: | 
				
			||||
 | 
					                today_refund_total = today_refund_total + 1 | 
				
			||||
 | 
					            total_sales = rec.amount_total | 
				
			||||
 | 
					            total = total + total_sales | 
				
			||||
 | 
					            total_order_count = total_order_count + 1 | 
				
			||||
 | 
					            if rec.date_order.date() == default_date: | 
				
			||||
 | 
					                today_sale = today_sale + 1 | 
				
			||||
 | 
					            if rec.amount_total < 0.0: | 
				
			||||
 | 
					                total_refund_count = total_refund_count + 1 | 
				
			||||
 | 
					        magnitude = 0 | 
				
			||||
 | 
					        while abs(total) >= 1000: | 
				
			||||
 | 
					            magnitude += 1 | 
				
			||||
 | 
					            total /= 1000.0 | 
				
			||||
 | 
					        # add more suffixes if you need them | 
				
			||||
 | 
					        val = '%.2f%s' % (total, ['', 'K', 'M', 'G', 'T', 'P'][magnitude]) | 
				
			||||
 | 
					        pos_session = self.env['pos.session'].search([]) | 
				
			||||
 | 
					        total_session = 0 | 
				
			||||
 | 
					        for record in pos_session: | 
				
			||||
 | 
					            total_session = total_session + 1 | 
				
			||||
 | 
					        return { | 
				
			||||
 | 
					            'total_sale': val, | 
				
			||||
 | 
					            'total_order_count': total_order_count, | 
				
			||||
 | 
					            'total_refund_count': total_refund_count, | 
				
			||||
 | 
					            'total_session': total_session, | 
				
			||||
 | 
					            'today_refund_total': today_refund_total, | 
				
			||||
 | 
					            'today_sale': today_sale, | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_the_top_customer(self, ): | 
				
			||||
 | 
					        company_id = self.env.company.id | 
				
			||||
 | 
					        query = '''select res_partner.name as customer,pos_order.partner_id,sum(pos_order.amount_paid) as amount_total from pos_order  | 
				
			||||
 | 
					        inner join res_partner on res_partner.id = pos_order.partner_id where pos_order.company_id = ''' + str( | 
				
			||||
 | 
					            company_id) + ''' GROUP BY pos_order.partner_id, | 
				
			||||
 | 
					        res_partner.name  ORDER BY amount_total  DESC LIMIT 10;''' | 
				
			||||
 | 
					        self._cr.execute(query) | 
				
			||||
 | 
					        docs = self._cr.dictfetchall() | 
				
			||||
 | 
					        print(docs) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        order = [] | 
				
			||||
 | 
					        for record in docs: | 
				
			||||
 | 
					            order.append(record.get('amount_total')) | 
				
			||||
 | 
					        day = [] | 
				
			||||
 | 
					        for record in docs: | 
				
			||||
 | 
					            day.append(record.get('customer')) | 
				
			||||
 | 
					        final = [order, day] | 
				
			||||
 | 
					        return final | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_the_top_products(self): | 
				
			||||
 | 
					        company_id = self.env.company.id | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        query = '''select DISTINCT(product_template.name) as product_name,sum(qty) as total_quantity from  | 
				
			||||
 | 
					       pos_order_line inner join product_product on product_product.id=pos_order_line.product_id inner join  | 
				
			||||
 | 
					       product_template on product_product.product_tmpl_id = product_template.id where pos_order_line.company_id = ''' + str( | 
				
			||||
 | 
					            company_id) + ''' group by product_template.id ORDER  | 
				
			||||
 | 
					       BY total_quantity DESC Limit 10 ''' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        self._cr.execute(query) | 
				
			||||
 | 
					        top_product = self._cr.dictfetchall() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        total_quantity = [] | 
				
			||||
 | 
					        for record in top_product: | 
				
			||||
 | 
					            # if record.get('total_quantity') != 0: | 
				
			||||
 | 
					            #     print(total_quantity.append(record.get('total_quantity'))) | 
				
			||||
 | 
					            total_quantity.append(record.get('total_quantity')) | 
				
			||||
 | 
					        product_name = [] | 
				
			||||
 | 
					        for record in top_product: | 
				
			||||
 | 
					            product_name.append(record.get('product_name')) | 
				
			||||
 | 
					        final = [total_quantity, product_name] | 
				
			||||
 | 
					        return final | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_the_top_categories(self): | 
				
			||||
 | 
					        company_id = self.env.company.id | 
				
			||||
 | 
					        query = '''select DISTINCT(product_category.complete_name) as product_category,sum(qty) as total_quantity  | 
				
			||||
 | 
					        from pos_order_line inner join product_product on product_product.id=pos_order_line.product_id  inner join  | 
				
			||||
 | 
					        product_template on product_product.product_tmpl_id = product_template.id inner join product_category on  | 
				
			||||
 | 
					        product_category.id =product_template.categ_id where pos_order_line.company_id = ''' + str( | 
				
			||||
 | 
					            company_id) + ''' group by product_category ORDER BY total_quantity DESC ''' | 
				
			||||
 | 
					        self._cr.execute(query) | 
				
			||||
 | 
					        top_product = self._cr.dictfetchall() | 
				
			||||
 | 
					        total_quantity = [] | 
				
			||||
 | 
					        for record in top_product: | 
				
			||||
 | 
					            total_quantity.append(record.get('total_quantity')) | 
				
			||||
 | 
					        product_categ = [] | 
				
			||||
 | 
					        for record in top_product: | 
				
			||||
 | 
					            product_categ.append(record.get('product_category')) | 
				
			||||
 | 
					        final = [total_quantity, product_categ] | 
				
			||||
 | 
					        return final | 
				
			||||
| 
		 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: 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: 60 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 60 KiB  | 
| 
		 After Width: | Height: | Size: 57 KiB  | 
| 
		 After Width: | Height: | Size: 57 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 51 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 88 KiB  | 
| 
		 After Width: | Height: | Size: 40 KiB  | 
| 
		 After Width: | Height: | Size: 64 KiB  | 
| 
		 After Width: | Height: | Size: 72 KiB  | 
| 
		 After Width: | Height: | Size: 118 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 17 KiB  | 
@ -0,0 +1,632 @@ | 
				
			|||||
 | 
					<div class="container" style="padding: 4rem 1.5rem !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;"> | 
				
			||||
 | 
					                POS Dashboard</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;"> | 
				
			||||
 | 
					                Detailed Dashboard View for POS | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="./assets/screenshots/hero.png" 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> | 
				
			||||
 | 
					        <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 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;"> | 
				
			||||
 | 
					                This module helps you to see the Overview of POS, here You can see the total orders, sessions, top | 
				
			||||
 | 
					                customers, top products etc.</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </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;"> | 
				
			||||
 | 
					                    Total POS Orders</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    View total POS order count.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Session Details</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    See session details.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Refund Details</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    View refund details.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Sale Details </h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    View sale details.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Sale Report Charts</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    View Sale Report Charts.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Top Products</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    View top products.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                Open POS</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                After installation, open POS</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot1.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Order and Session details.</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                Order and Session counts are displayed in the dashboard. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot2.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Details in Charts</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                Possible to see the POS details in different charts.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot3.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Bank, session & salesperson details</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                Details like bank, session status, salesperson details are listed.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot4.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/15.0/sales_credit_limit/" 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/1.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/15.0/product_to_quotation/" 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/2.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/15.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/3.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/15.0/hr_payroll_community/" 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/4.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/15.0/product_barcode/" 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/5.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/15.0/inventory_barcode_scanning/" | 
				
			||||
 | 
					                                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/6.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-4"> | 
				
			||||
 | 
					                        <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-4"> | 
				
			||||
 | 
					                        <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>WhatsApp</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-lg-4"> | 
				
			||||
 | 
					                        <a href="mailto:info@cybrosys.com" target="_blank" class="btn btn-block deep_hover" | 
				
			||||
 | 
					                            style="text-decoration: none; background-color: #4d4d4d; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-envelope mr-2"></i>info@cybrosys.com</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,544 @@ | 
				
			|||||
 | 
					odoo.define('dashboard_pos.Dashboard', function (require) { | 
				
			||||
 | 
					"use strict"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					var AbstractAction = require('web.AbstractAction'); | 
				
			||||
 | 
					var ajax = require('web.ajax'); | 
				
			||||
 | 
					var core = require('web.core'); | 
				
			||||
 | 
					var rpc = require('web.rpc'); | 
				
			||||
 | 
					var session = require('web.session'); | 
				
			||||
 | 
					var web_client = require('web.web_client'); | 
				
			||||
 | 
					var _t = core._t; | 
				
			||||
 | 
					var QWeb = core.qweb; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					var PosDashboard = AbstractAction.extend({ | 
				
			||||
 | 
					    template: 'PosDashboard', | 
				
			||||
 | 
					    events: { | 
				
			||||
 | 
					            'click .pos_order_today':'pos_order_today', | 
				
			||||
 | 
					            'click .pos_order':'pos_order', | 
				
			||||
 | 
					            'click .pos_total_sales':'pos_order', | 
				
			||||
 | 
					            'click .pos_session':'pos_session', | 
				
			||||
 | 
					            'click .pos_refund_orders':'pos_refund_orders', | 
				
			||||
 | 
					            'click .pos_refund_today_orders':'pos_refund_today_orders', | 
				
			||||
 | 
					            'change #pos_sales': 'onclick_pos_sales', | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    init: function(parent, context) { | 
				
			||||
 | 
					        this._super(parent, context); | 
				
			||||
 | 
					        this.dashboards_templates = ['PosOrders','PosChart','PosCustomer']; | 
				
			||||
 | 
					        this.payment_details = []; | 
				
			||||
 | 
					        this.top_salesperson = []; | 
				
			||||
 | 
					        this.selling_product = []; | 
				
			||||
 | 
					        this.total_sale = []; | 
				
			||||
 | 
					        this.total_order_count = []; | 
				
			||||
 | 
					        this.total_refund_count = []; | 
				
			||||
 | 
					        this.total_session = []; | 
				
			||||
 | 
					        this.today_refund_total = []; | 
				
			||||
 | 
					        this.today_sale = []; | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    willStart: function() { | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        return $.when(ajax.loadLibs(this), this._super()).then(function() { | 
				
			||||
 | 
					            return self.fetch_data(); | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    start: function() { | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        this.set("title", 'Dashboard'); | 
				
			||||
 | 
					        return this._super().then(function() { | 
				
			||||
 | 
					            self.render_dashboards(); | 
				
			||||
 | 
					            self.render_graphs(); | 
				
			||||
 | 
					            self.$el.parent().addClass('oe_background_grey'); | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    fetch_data: function() { | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        var def1 =  this._rpc({ | 
				
			||||
 | 
					                model: 'pos.order', | 
				
			||||
 | 
					                method: 'get_refund_details' | 
				
			||||
 | 
					        }).then(function(result) { | 
				
			||||
 | 
					           self.total_sale = result['total_sale'], | 
				
			||||
 | 
					           self.total_order_count = result['total_order_count'] | 
				
			||||
 | 
					           self.total_refund_count = result['total_refund_count'] | 
				
			||||
 | 
					           self.total_session = result['total_session'] | 
				
			||||
 | 
					           self.today_refund_total = result['today_refund_total'] | 
				
			||||
 | 
					           self.today_sale = result['today_sale'] | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					      var def2 = self._rpc({ | 
				
			||||
 | 
					            model: "pos.order", | 
				
			||||
 | 
					            method: "get_details", | 
				
			||||
 | 
					        }) | 
				
			||||
 | 
					        .then(function (res) { | 
				
			||||
 | 
					            self.payment_details = res['payment_details']; | 
				
			||||
 | 
					            self.top_salesperson = res['salesperson']; | 
				
			||||
 | 
					            self.selling_product = res['selling_product']; | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        return $.when(def1,def2); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    render_dashboards: function() { | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					            _.each(this.dashboards_templates, function(template) { | 
				
			||||
 | 
					                self.$('.o_pos_dashboard').append(QWeb.render(template, {widget: self})); | 
				
			||||
 | 
					            }); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					      render_graphs: function(){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					         self.render_top_customer_graph(); | 
				
			||||
 | 
					         self.render_top_product_graph(); | 
				
			||||
 | 
					         self.render_product_category_graph(); | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					//      get_emp_image_url: function(employee){
 | 
				
			||||
 | 
					//        return window.location.origin + '/web/image?model=pos.order&field=image&id='+employee;
 | 
				
			||||
 | 
					//    },
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					       pos_order_today: function(e){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        var date = new Date(); | 
				
			||||
 | 
					        var yesterday = new Date(date.getTime()); | 
				
			||||
 | 
					        yesterday.setDate(date.getDate() - 1); | 
				
			||||
 | 
					        console.log(yesterday) | 
				
			||||
 | 
					        e.stopPropagation(); | 
				
			||||
 | 
					        e.preventDefault(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        session.user_has_group('hr.group_hr_user').then(function(has_group){ | 
				
			||||
 | 
					            if(has_group){ | 
				
			||||
 | 
					                var options = { | 
				
			||||
 | 
					                    on_reverse_breadcrumb: self.on_reverse_breadcrumb, | 
				
			||||
 | 
					                }; | 
				
			||||
 | 
					                self.do_action({ | 
				
			||||
 | 
					                    name: _t("Today Order"), | 
				
			||||
 | 
					                    type: 'ir.actions.act_window', | 
				
			||||
 | 
					                    res_model: 'pos.order', | 
				
			||||
 | 
					                    view_mode: 'tree,form,calendar', | 
				
			||||
 | 
					                    view_type: 'form', | 
				
			||||
 | 
					                    views: [[false, 'list'],[false, 'form']], | 
				
			||||
 | 
					                    domain: [['date_order','<=', date],['date_order', '>=', yesterday]], | 
				
			||||
 | 
					                    target: 'current' | 
				
			||||
 | 
					                }, options) | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      pos_refund_orders: function(e){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        var date = new Date(); | 
				
			||||
 | 
					//        alert(date,"date")
 | 
				
			||||
 | 
					        var yesterday = new Date(date.getTime()); | 
				
			||||
 | 
					        yesterday.setDate(date.getDate() - 1); | 
				
			||||
 | 
					        console.log(yesterday) | 
				
			||||
 | 
					        e.stopPropagation(); | 
				
			||||
 | 
					        e.preventDefault(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        session.user_has_group('hr.group_hr_user').then(function(has_group){ | 
				
			||||
 | 
					            if(has_group){ | 
				
			||||
 | 
					                var options = { | 
				
			||||
 | 
					                    on_reverse_breadcrumb: self.on_reverse_breadcrumb, | 
				
			||||
 | 
					                }; | 
				
			||||
 | 
					                self.do_action({ | 
				
			||||
 | 
					                    name: _t("Refund Orders"), | 
				
			||||
 | 
					                    type: 'ir.actions.act_window', | 
				
			||||
 | 
					                    res_model: 'pos.order', | 
				
			||||
 | 
					                    view_mode: 'tree,form,calendar', | 
				
			||||
 | 
					                    view_type: 'form', | 
				
			||||
 | 
					                    views: [[false, 'list'],[false, 'form']], | 
				
			||||
 | 
					                    domain: [['amount_total', '<', 0.0]], | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					//                    domain: [['date_order', '=', date]],
 | 
				
			||||
 | 
					                    target: 'current' | 
				
			||||
 | 
					                }, options) | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    pos_refund_today_orders: function(e){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        var date = new Date(); | 
				
			||||
 | 
					//        alert(date,"date")
 | 
				
			||||
 | 
					        var yesterday = new Date(date.getTime()); | 
				
			||||
 | 
					        yesterday.setDate(date.getDate() - 1); | 
				
			||||
 | 
					        console.log(yesterday) | 
				
			||||
 | 
					        e.stopPropagation(); | 
				
			||||
 | 
					        e.preventDefault(); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        session.user_has_group('hr.group_hr_user').then(function(has_group){ | 
				
			||||
 | 
					            if(has_group){ | 
				
			||||
 | 
					                var options = { | 
				
			||||
 | 
					                    on_reverse_breadcrumb: self.on_reverse_breadcrumb, | 
				
			||||
 | 
					                }; | 
				
			||||
 | 
					                self.do_action({ | 
				
			||||
 | 
					                    name: _t("Refund Orders"), | 
				
			||||
 | 
					                    type: 'ir.actions.act_window', | 
				
			||||
 | 
					                    res_model: 'pos.order', | 
				
			||||
 | 
					                    view_mode: 'tree,form,calendar', | 
				
			||||
 | 
					                    view_type: 'form', | 
				
			||||
 | 
					                    views: [[false, 'list'],[false, 'form']], | 
				
			||||
 | 
					                    domain: [['amount_total', '<', 0.0],['date_order','<=', date],['date_order', '>=', yesterday]], | 
				
			||||
 | 
					//                    domain: [['date_order', '=', date]],
 | 
				
			||||
 | 
					                    target: 'current' | 
				
			||||
 | 
					                }, options) | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        pos_order: function(e){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        var date = new Date(); | 
				
			||||
 | 
					        var yesterday = new Date(date.getTime()); | 
				
			||||
 | 
					        yesterday.setDate(date.getDate() - 1); | 
				
			||||
 | 
					        console.log(yesterday) | 
				
			||||
 | 
					        e.stopPropagation(); | 
				
			||||
 | 
					        e.preventDefault(); | 
				
			||||
 | 
					        session.user_has_group('hr.group_hr_user').then(function(has_group){ | 
				
			||||
 | 
					            if(has_group){ | 
				
			||||
 | 
					                var options = { | 
				
			||||
 | 
					                    on_reverse_breadcrumb: self.on_reverse_breadcrumb, | 
				
			||||
 | 
					                }; | 
				
			||||
 | 
					                self.do_action({ | 
				
			||||
 | 
					                    name: _t("Total Order"), | 
				
			||||
 | 
					                    type: 'ir.actions.act_window', | 
				
			||||
 | 
					                    res_model: 'pos.order', | 
				
			||||
 | 
					                    view_mode: 'tree,form,calendar', | 
				
			||||
 | 
					                    view_type: 'form', | 
				
			||||
 | 
					                    views: [[false, 'list'],[false, 'form']], | 
				
			||||
 | 
					//                    domain: [['amount_total', '<', 0.0]],
 | 
				
			||||
 | 
					                    target: 'current' | 
				
			||||
 | 
					                }, options) | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    pos_session: function(e){ | 
				
			||||
 | 
					        var self = this; | 
				
			||||
 | 
					        e.stopPropagation(); | 
				
			||||
 | 
					        e.preventDefault(); | 
				
			||||
 | 
					        session.user_has_group('hr.group_hr_user').then(function(has_group){ | 
				
			||||
 | 
					            if(has_group){ | 
				
			||||
 | 
					                var options = { | 
				
			||||
 | 
					                    on_reverse_breadcrumb: self.on_reverse_breadcrumb, | 
				
			||||
 | 
					                }; | 
				
			||||
 | 
					                self.do_action({ | 
				
			||||
 | 
					                    name: _t("sessions"), | 
				
			||||
 | 
					                    type: 'ir.actions.act_window', | 
				
			||||
 | 
					                    res_model: 'pos.session', | 
				
			||||
 | 
					                    view_mode: 'tree,form,calendar', | 
				
			||||
 | 
					                    view_type: 'form', | 
				
			||||
 | 
					                    views: [[false, 'list'],[false, 'form']], | 
				
			||||
 | 
					//                     domain: [['state','=', In Progress]],
 | 
				
			||||
 | 
					                    target: 'current' | 
				
			||||
 | 
					                }, options) | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					     onclick_pos_sales:function(events){ | 
				
			||||
 | 
					        var option = $(events.target).val(); | 
				
			||||
 | 
					        console.log('came monthly') | 
				
			||||
 | 
					       var self = this | 
				
			||||
 | 
					        var ctx = self.$("#canvas_1"); | 
				
			||||
 | 
					            rpc.query({ | 
				
			||||
 | 
					                model: "pos.order", | 
				
			||||
 | 
					                method: "get_department", | 
				
			||||
 | 
					                args: [option], | 
				
			||||
 | 
					            }).then(function (arrays) { | 
				
			||||
 | 
					            console.log(arrays) | 
				
			||||
 | 
					          var data = { | 
				
			||||
 | 
					            labels: arrays[1], | 
				
			||||
 | 
					            datasets: [ | 
				
			||||
 | 
					              { | 
				
			||||
 | 
					                label: arrays[2], | 
				
			||||
 | 
					                data: arrays[0], | 
				
			||||
 | 
					                backgroundColor: [ | 
				
			||||
 | 
					                  "rgba(255, 99, 132,1)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235,1)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192,1)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255,1)", | 
				
			||||
 | 
					                  "rgba(10,20,30,1)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderColor: [ | 
				
			||||
 | 
					                 "rgba(255, 99, 132, 0.2)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235, 0.2)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192, 0.2)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255, 0.2)", | 
				
			||||
 | 
					                  "rgba(10,20,30,0.3)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderWidth: 1 | 
				
			||||
 | 
					              }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            ] | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  //options
 | 
				
			||||
 | 
					          var options = { | 
				
			||||
 | 
					            responsive: true, | 
				
			||||
 | 
					            title: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "top", | 
				
			||||
 | 
					              text: "SALE DETAILS", | 
				
			||||
 | 
					              fontSize: 18, | 
				
			||||
 | 
					              fontColor: "#111" | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            legend: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "bottom", | 
				
			||||
 | 
					              labels: { | 
				
			||||
 | 
					                fontColor: "#333", | 
				
			||||
 | 
					                fontSize: 16 | 
				
			||||
 | 
					              } | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            scales: { | 
				
			||||
 | 
					              yAxes: [{ | 
				
			||||
 | 
					                ticks: { | 
				
			||||
 | 
					                  min: 0 | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					              }] | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          //create Chart class object
 | 
				
			||||
 | 
					          if (window.myCharts != undefined) | 
				
			||||
 | 
					          window.myCharts.destroy(); | 
				
			||||
 | 
					          window.myCharts = new Chart(ctx, { | 
				
			||||
 | 
					//          var chart = new Chart(ctx, {
 | 
				
			||||
 | 
					            type: "bar", | 
				
			||||
 | 
					            data: data, | 
				
			||||
 | 
					            options: options | 
				
			||||
 | 
					          }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					     render_top_customer_graph:function(){ | 
				
			||||
 | 
					       var self = this | 
				
			||||
 | 
					        var ctx = self.$(".top_customer"); | 
				
			||||
 | 
					            rpc.query({ | 
				
			||||
 | 
					                model: "pos.order", | 
				
			||||
 | 
					                method: "get_the_top_customer", | 
				
			||||
 | 
					            }).then(function (arrays) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          var data = { | 
				
			||||
 | 
					            labels: arrays[1], | 
				
			||||
 | 
					            datasets: [ | 
				
			||||
 | 
					              { | 
				
			||||
 | 
					                label: "", | 
				
			||||
 | 
					                data: arrays[0], | 
				
			||||
 | 
					                backgroundColor: [ | 
				
			||||
 | 
					                  "rgb(148, 22, 227)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255)", | 
				
			||||
 | 
					                  "rgba(10,20,30)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderColor: [ | 
				
			||||
 | 
					                 "rgba(255, 99, 132,)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235,)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192,)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255,)", | 
				
			||||
 | 
					                  "rgba(10,20,30,)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderWidth: 1 | 
				
			||||
 | 
					              }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            ] | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  //options
 | 
				
			||||
 | 
					          var options = { | 
				
			||||
 | 
					            responsive: true, | 
				
			||||
 | 
					            title: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "top", | 
				
			||||
 | 
					              text: " Top Customer", | 
				
			||||
 | 
					              fontSize: 18, | 
				
			||||
 | 
					              fontColor: "#111" | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            legend: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "bottom", | 
				
			||||
 | 
					              labels: { | 
				
			||||
 | 
					                fontColor: "#333", | 
				
			||||
 | 
					                fontSize: 16 | 
				
			||||
 | 
					              } | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            scales: { | 
				
			||||
 | 
					              yAxes: [{ | 
				
			||||
 | 
					                ticks: { | 
				
			||||
 | 
					                  min: 0 | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					              }] | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          //create Chart class object
 | 
				
			||||
 | 
					          var chart = new Chart(ctx, { | 
				
			||||
 | 
					            type: "pie", | 
				
			||||
 | 
					            data: data, | 
				
			||||
 | 
					            options: options | 
				
			||||
 | 
					          }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					     render_top_product_graph:function(){ | 
				
			||||
 | 
					       var self = this | 
				
			||||
 | 
					        var ctx = self.$(".top_selling_product"); | 
				
			||||
 | 
					            rpc.query({ | 
				
			||||
 | 
					                model: "pos.order", | 
				
			||||
 | 
					                method: "get_the_top_products", | 
				
			||||
 | 
					            }).then(function (arrays) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          var data = { | 
				
			||||
 | 
					            labels: arrays[1], | 
				
			||||
 | 
					            datasets: [ | 
				
			||||
 | 
					              { | 
				
			||||
 | 
					                label: "Quantity", | 
				
			||||
 | 
					                data: arrays[0], | 
				
			||||
 | 
					                backgroundColor: [ | 
				
			||||
 | 
					                  "rgba(255, 99, 132,1)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235,1)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192,1)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255,1)", | 
				
			||||
 | 
					                  "rgba(10,20,30,1)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderColor: [ | 
				
			||||
 | 
					                 "rgba(255, 99, 132, 0.2)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235, 0.2)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192, 0.2)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255, 0.2)", | 
				
			||||
 | 
					                  "rgba(10,20,30,0.3)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderWidth: 1 | 
				
			||||
 | 
					              }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            ] | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  //options
 | 
				
			||||
 | 
					          var options = { | 
				
			||||
 | 
					            responsive: true, | 
				
			||||
 | 
					            title: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "top", | 
				
			||||
 | 
					              text: " Top products", | 
				
			||||
 | 
					              fontSize: 18, | 
				
			||||
 | 
					              fontColor: "#111" | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            legend: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "bottom", | 
				
			||||
 | 
					              labels: { | 
				
			||||
 | 
					                fontColor: "#333", | 
				
			||||
 | 
					                fontSize: 16 | 
				
			||||
 | 
					              } | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            scales: { | 
				
			||||
 | 
					              yAxes: [{ | 
				
			||||
 | 
					                ticks: { | 
				
			||||
 | 
					                  min: 0 | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					              }] | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          //create Chart class object
 | 
				
			||||
 | 
					          var chart = new Chart(ctx, { | 
				
			||||
 | 
					            type: "horizontalBar", | 
				
			||||
 | 
					            data: data, | 
				
			||||
 | 
					            options: options | 
				
			||||
 | 
					          }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					     render_product_category_graph:function(){ | 
				
			||||
 | 
					           var self = this | 
				
			||||
 | 
					        var ctx = self.$(".top_product_categories"); | 
				
			||||
 | 
					            rpc.query({ | 
				
			||||
 | 
					                model: "pos.order", | 
				
			||||
 | 
					                method: "get_the_top_categories", | 
				
			||||
 | 
					            }).then(function (arrays) { | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          var data = { | 
				
			||||
 | 
					            labels: arrays[1], | 
				
			||||
 | 
					            datasets: [ | 
				
			||||
 | 
					              { | 
				
			||||
 | 
					                label: "Quantity", | 
				
			||||
 | 
					                data: arrays[0], | 
				
			||||
 | 
					                backgroundColor: [ | 
				
			||||
 | 
					                  "rgba(255, 99, 132,1)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235,1)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192,1)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255,1)", | 
				
			||||
 | 
					                  "rgba(10,20,30,1)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderColor: [ | 
				
			||||
 | 
					                 "rgba(255, 99, 132, 0.2)", | 
				
			||||
 | 
					                  "rgba(54, 162, 235, 0.2)", | 
				
			||||
 | 
					                  "rgba(75, 192, 192, 0.2)", | 
				
			||||
 | 
					                  "rgba(153, 102, 255, 0.2)", | 
				
			||||
 | 
					                  "rgba(10,20,30,0.3)" | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					                borderWidth: 1 | 
				
			||||
 | 
					              }, | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            ] | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  //options
 | 
				
			||||
 | 
					          var options = { | 
				
			||||
 | 
					            responsive: true, | 
				
			||||
 | 
					            title: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "top", | 
				
			||||
 | 
					              text: " Top product categories", | 
				
			||||
 | 
					              fontSize: 18, | 
				
			||||
 | 
					              fontColor: "#111" | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            legend: { | 
				
			||||
 | 
					              display: true, | 
				
			||||
 | 
					              position: "bottom", | 
				
			||||
 | 
					              labels: { | 
				
			||||
 | 
					                fontColor: "#333", | 
				
			||||
 | 
					                fontSize: 16 | 
				
			||||
 | 
					              } | 
				
			||||
 | 
					            }, | 
				
			||||
 | 
					            scales: { | 
				
			||||
 | 
					              yAxes: [{ | 
				
			||||
 | 
					                ticks: { | 
				
			||||
 | 
					                  min: 0 | 
				
			||||
 | 
					                } | 
				
			||||
 | 
					              }] | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					          }; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					          //create Chart class object
 | 
				
			||||
 | 
					          var chart = new Chart(ctx, { | 
				
			||||
 | 
					            type: "horizontalBar", | 
				
			||||
 | 
					            data: data, | 
				
			||||
 | 
					            options: options | 
				
			||||
 | 
					          }); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					}); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					core.action_registry.add('pos_dashboard', PosDashboard); | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					return PosDashboard; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					}); | 
				
			||||
@ -0,0 +1,305 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<templates id="template" xml:space="preserve"> | 
				
			||||
 | 
					    <t t-name="PosDashboard"> | 
				
			||||
 | 
					        <div class="oh_dashboards"> | 
				
			||||
 | 
					            <div class="container-fluid o_pos_dashboard"> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </t> | 
				
			||||
 | 
					    <t t-name="PosOrders"> | 
				
			||||
 | 
					        <div class="row main-section"> | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_order_today oh-payslip"> | 
				
			||||
 | 
					                        <div class="oh-card" style="width: 288px;"> | 
				
			||||
 | 
					                            <div class="oh-card-body"> | 
				
			||||
 | 
					                                <div class="stat-widget-one"> | 
				
			||||
 | 
					<!--                                    <div class="stat-icon" style="background:#5bcbd0"><t t-esc="widget.today_sale"/></div>--> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                    <div class="stat-icon" style="background:#5bcbd0"><i class="fa fa-shopping-bag"/></div> | 
				
			||||
 | 
					                                    <div class="stat-content"> | 
				
			||||
 | 
					                                        <div class="stat-head">Today Orders</div> | 
				
			||||
 | 
					                                        <div class="stat_count"><t t-esc="widget.today_sale"/></div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_order oh-payslip"> | 
				
			||||
 | 
					                                    <div class="oh-card" style="width: 288px;"> | 
				
			||||
 | 
					                                        <div class="oh-card-body"> | 
				
			||||
 | 
					                                            <div class="stat-widget-one"> | 
				
			||||
 | 
					<!--                                                <div class="stat-icon" style="background:#645bd0"><t t-esc="widget.total_order_count"/></div>--> | 
				
			||||
 | 
					                                                <div class="stat-icon" style="background:#645bd0"><i class="fa fa-shopping-bag"/></div> | 
				
			||||
 | 
					                                                <div class="stat-content"> | 
				
			||||
 | 
					                                                    <div class="stat-head">Total Orders</div> | 
				
			||||
 | 
					                                                    <div class="stat_count"><t t-esc="widget.total_order_count"/></div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_total_sales oh-payslip"> | 
				
			||||
 | 
					                                    <div class="oh-card" style="width: 350px;"> | 
				
			||||
 | 
					                                        <div class="oh-card-body"> | 
				
			||||
 | 
					                                            <div class="stat-widget-one"> | 
				
			||||
 | 
					                                                <div class="stat-icon" style="background:#85d05b"><i class="fa fa-shopping-cart"/></div> | 
				
			||||
 | 
					                                                <!--                                                <div class="stat-icon" style="width:150px;background:##85d05b"><t t-esc="widget.total_sale"/></div>--> | 
				
			||||
 | 
					                                                <div class="stat-content"> | 
				
			||||
 | 
					                                                    <div class="stat-head">Total Sales</div> | 
				
			||||
 | 
					                                                    <div class="stat_count"><t t-esc="widget.total_sale"/></div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_session oh-payslip"> | 
				
			||||
 | 
					                                            <div class="oh-card" style="width: 288px;"> | 
				
			||||
 | 
					                                                <div class="oh-card-body"> | 
				
			||||
 | 
					                                                    <div class="stat-widget-one"> | 
				
			||||
 | 
					                                                        <div class="stat-icon" style="background:#d05bb8"><i class="fa fa-signal"/></div> | 
				
			||||
 | 
					                                                        <div class="stat-content"> | 
				
			||||
 | 
					                                                            <div class="stat-head">Sessions</div> | 
				
			||||
 | 
					                                                            <div class="stat_count"><t t-esc="widget.total_session"/></div> | 
				
			||||
 | 
					                                                        </div> | 
				
			||||
 | 
					                                                    </div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_refund_orders oh-payslip"> | 
				
			||||
 | 
					                                    <div class="oh-card" style="width: 288px;"> | 
				
			||||
 | 
					                                        <div class="oh-card-body"> | 
				
			||||
 | 
					                                            <div class="stat-widget-one"> | 
				
			||||
 | 
					                                                <div class="stat-icon" style="background:#d0c35b"><i class="fa fa-minus-circle"/></div> | 
				
			||||
 | 
					                                                <div class="stat-content"> | 
				
			||||
 | 
					                                                    <div class="stat-head">Total Refund Orders</div> | 
				
			||||
 | 
					                                                    <div class="stat_count"><t t-esc="widget.total_refund_count"/></div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					            <div class="col-md-4 col-sm-6 pos_refund_today_orders oh-payslip"> | 
				
			||||
 | 
					                                    <div class="oh-card" style="width: 350px;"> | 
				
			||||
 | 
					                                        <div class="oh-card-body"> | 
				
			||||
 | 
					                                            <div class="stat-widget-one"> | 
				
			||||
 | 
					                                                <div class="stat-icon" style="background:#5b8ed0"><i class="fa fa-minus-circle"/></div> | 
				
			||||
 | 
					                                                <div class="stat-content"> | 
				
			||||
 | 
					                                                    <div class="stat-head">Today Refund Order</div> | 
				
			||||
 | 
					                                                    <div class="stat_count"><t t-esc="widget.today_refund_total"/></div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </t> | 
				
			||||
 | 
					    <t t-name="PosChart"> | 
				
			||||
 | 
					        <div class="col-xs-12 col-sm-12 col-lg-12 col-md-12"> | 
				
			||||
 | 
					            <div class="row" style="margin:0px;"> | 
				
			||||
 | 
					                <div class="col-md-6" id="col-graph"> | 
				
			||||
 | 
					                    <div class="card"> | 
				
			||||
 | 
					                        <div class="card-header"> | 
				
			||||
 | 
					                            <div class="card-title"> | 
				
			||||
 | 
					                                <b> | 
				
			||||
 | 
					                                    <h3 class="custom-h3">SALE REPORT</h3> | 
				
			||||
 | 
					                                </b> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <div class="card-tools"> | 
				
			||||
 | 
					                            <select id="pos_sales"> | 
				
			||||
 | 
					<!--                                <option value="pos_hourly_sales">Select</option>--> | 
				
			||||
 | 
					                                <option style="display:none;"> -- select an option -- </option> | 
				
			||||
 | 
					                                <option value="pos_hourly_sales">Hourly</option> | 
				
			||||
 | 
					                                <option value="pos_monthly_sales">Monthly</option> | 
				
			||||
 | 
					                                <option value="pos_year_sales">Yearly</option> | 
				
			||||
 | 
					                            </select> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="card-body mt-3" id="in_ex_body_hide"> | 
				
			||||
 | 
					                             <div class="row"> | 
				
			||||
 | 
					                                <div class="col-md-12"> | 
				
			||||
 | 
					                                   <p id="myelement1"></p> | 
				
			||||
 | 
					                                    <div class="chart"> | 
				
			||||
 | 
					                                      <canvas id="canvas_1" width="200" height="90"></canvas> | 
				
			||||
 | 
					                                   </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                             </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-sm-6 col-lg-6  top_customer_graph_view"> | 
				
			||||
 | 
					                    <div class="oh-card text-color"> | 
				
			||||
 | 
					                        <div class="oh-card-body pb-0"> | 
				
			||||
 | 
					                            <h4 class="mb-0"> | 
				
			||||
 | 
					                            </h4> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <canvas class="top_customer" width="200" height="120"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-sm-6 col-lg-6  selling_product_graph_view"> | 
				
			||||
 | 
					                    <div class="oh-card text-color"> | 
				
			||||
 | 
					                        <div class="oh-card-body pb-0"> | 
				
			||||
 | 
					                            <h4 class="mb-0"> | 
				
			||||
 | 
					                            </h4> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <canvas class="top_selling_product" width="200" height="120"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-sm-6 col-lg-6  selling_product_graph_view"> | 
				
			||||
 | 
					                    <div class="oh-card text-color"> | 
				
			||||
 | 
					                        <div class="oh-card-body pb-0"> | 
				
			||||
 | 
					                            <h4 class="mb-0"> | 
				
			||||
 | 
					                            </h4> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <canvas class="top_product_categories" width="200" height="120"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </t> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <t t-name="PosCustomer"> | 
				
			||||
 | 
					         <div class="employee_dashboard_main"> | 
				
			||||
 | 
					        <div class="row main-section"> | 
				
			||||
 | 
					            <div class="col-md-4 col-lg-4"> | 
				
			||||
 | 
					                <div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); | 
				
			||||
 | 
					                height: 316px;overflow-y: auto;margin-bottom: 15px;"> | 
				
			||||
 | 
					                    <div class="hr_notification_head" | 
				
			||||
 | 
					                         style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background: #de6a5e;margin-bottom: 9px;"> | 
				
			||||
 | 
					                   Sale by Salesperson | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-sm-12 col-lg-12" style="padding:0;"> | 
				
			||||
 | 
					                            <div class="text-color"> | 
				
			||||
 | 
					                                <div class=""> | 
				
			||||
 | 
					                                <div class="media"> | 
				
			||||
 | 
					                                <div class="media-body"> | 
				
			||||
 | 
					                                    <table class="table table-sm"> | 
				
			||||
 | 
					                                        <thead> | 
				
			||||
 | 
					                                            <tr> | 
				
			||||
 | 
					                                                <th rowspan="12">Name   </th> | 
				
			||||
 | 
					                                                <th rowspan="12">orders</th> | 
				
			||||
 | 
					                                                <th rowspan="12">Amount</th> | 
				
			||||
 | 
					                                            </tr> | 
				
			||||
 | 
					                                        </thead> | 
				
			||||
 | 
					                                        <tbody> | 
				
			||||
 | 
					                                             <t t-foreach="widget.top_salesperson" t-as="salesperson"> | 
				
			||||
 | 
					                                                <tr> | 
				
			||||
 | 
					                                                    <td> | 
				
			||||
 | 
					                                                        <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                            <t t-esc="salesperson[0]"/> | 
				
			||||
 | 
					                                                        </h2> | 
				
			||||
 | 
					                                                    </td> | 
				
			||||
 | 
					                                                    <td> | 
				
			||||
 | 
					                                                        <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                            <t t-esc="salesperson[2]"/> | 
				
			||||
 | 
					                                                        </h2> | 
				
			||||
 | 
					                                                    </td> | 
				
			||||
 | 
					                                                    <td> | 
				
			||||
 | 
					                                                        <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                            <t t-esc="salesperson[1]"/> | 
				
			||||
 | 
					                                                        </h2> | 
				
			||||
 | 
					                                                    </td> | 
				
			||||
 | 
					                                                </tr> | 
				
			||||
 | 
					                                            </t> | 
				
			||||
 | 
					                                        </tbody> | 
				
			||||
 | 
					                                    </table> | 
				
			||||
 | 
					                                </div></div></div></div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="col-md-4 col-lg-4"> | 
				
			||||
 | 
					                    <div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); | 
				
			||||
 | 
					                    height: 316px;overflow-y: auto;margin-bottom: 15px;"> | 
				
			||||
 | 
					                        <div class="hr_notification_head" | 
				
			||||
 | 
					                             style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background:#de6a5e;;margin-bottom: 9px;"> | 
				
			||||
 | 
					                          Payment Method | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-sm-12 col-lg-12" style="padding:0;"> | 
				
			||||
 | 
					                                <div class="text-color"> | 
				
			||||
 | 
					                                    <div class=""> | 
				
			||||
 | 
					                                    <div class="media"> | 
				
			||||
 | 
					                                    <div class="media-body"> | 
				
			||||
 | 
					                                        <table class="table table-sm"> | 
				
			||||
 | 
					                                            <thead> | 
				
			||||
 | 
					                                                <tr> | 
				
			||||
 | 
					                                                    <th rowspan="12">Payment Method   </th> | 
				
			||||
 | 
					                                                    <th rowspan="12">Amount</th> | 
				
			||||
 | 
					                                                </tr> | 
				
			||||
 | 
					                                            </thead> | 
				
			||||
 | 
					                                            <tbody> | 
				
			||||
 | 
					                                                 <t t-foreach="widget.payment_details" t-as="payment_method"> | 
				
			||||
 | 
					                                                    <tr> | 
				
			||||
 | 
					                                                        <td> | 
				
			||||
 | 
					                                                            <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                                <t t-esc="payment_method[0]"/> | 
				
			||||
 | 
					                                                            </h2> | 
				
			||||
 | 
					                                                        </td> | 
				
			||||
 | 
					                                                        <td> | 
				
			||||
 | 
					                                                            <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                                <t t-esc="payment_method[1]"/> | 
				
			||||
 | 
					                                                            </h2> | 
				
			||||
 | 
					                                                        </td> | 
				
			||||
 | 
					                                                    </tr> | 
				
			||||
 | 
					                                                </t> | 
				
			||||
 | 
					                                            </tbody> | 
				
			||||
 | 
					                                        </table> | 
				
			||||
 | 
					                                    </div></div></div></div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-md-4 col-lg-4"> | 
				
			||||
 | 
					                <div class="hr_notification" style="background: #fff;transition: transform 0.2s ease, box-shadow 0.2s ease;will-change: transform, box-shadow;box-shadow: 0 10px 40px 0 rgba(62,57,107,0.07), 0 2px 9px 0 rgba(62,57,107,0.06); | 
				
			||||
 | 
					                height: 316px;overflow-y: auto;margin-bottom: 15px;"> | 
				
			||||
 | 
					                    <div class="hr_notification_head" | 
				
			||||
 | 
					                         style="font-size: 17px;text-align: center;padding: 12px 0;color: #fff;font-weight: 300;background: #de6a5e;margin-bottom: 9px;"> | 
				
			||||
 | 
					                 Session Status | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-sm-12 col-lg-12" style="padding:0;"> | 
				
			||||
 | 
					                            <div class="text-color"> | 
				
			||||
 | 
					                                <div class=""> | 
				
			||||
 | 
					                                <div class="media"> | 
				
			||||
 | 
					                                <div class="media-body"> | 
				
			||||
 | 
					                                    <table class="table table-sm"> | 
				
			||||
 | 
					                                        <thead> | 
				
			||||
 | 
					                                            <tr> | 
				
			||||
 | 
					                                                <th rowspan="12">Session   </th> | 
				
			||||
 | 
					                                                <th rowspan="12">Status</th> | 
				
			||||
 | 
					                                                <!--                                                <th rowspan="12">Amount</th>--> | 
				
			||||
 | 
					                                            </tr> | 
				
			||||
 | 
					                                        </thead> | 
				
			||||
 | 
					                                        <tbody> | 
				
			||||
 | 
					                                             <t t-foreach="widget.selling_product" t-as="session"> | 
				
			||||
 | 
					                                                <tr> | 
				
			||||
 | 
					                                                    <td> | 
				
			||||
 | 
					                                                        <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                            <t t-esc="session['session']"/> | 
				
			||||
 | 
					                                                        </h2> | 
				
			||||
 | 
					                                                    </td> | 
				
			||||
 | 
					                                                    <td> | 
				
			||||
 | 
					                                                        <h2 class="text-color display-6" style="font-size: 15px;"> | 
				
			||||
 | 
					                                                            <t t-esc="session['status']"/> | 
				
			||||
 | 
					                                                        </h2> | 
				
			||||
 | 
					                                                    </td> | 
				
			||||
 | 
					                                                    <!--                                                    <td>--> | 
				
			||||
 | 
					                                                    <!--                                                        <h2 class="text-color display-6" style="font-size: 15px;">--> | 
				
			||||
 | 
					                                                    <!--                                                            <t t-esc="salesperson[1]"/>--> | 
				
			||||
 | 
					                                                    <!--                                                        </h2>--> | 
				
			||||
 | 
					                                                    <!--                                                    </td>--> | 
				
			||||
 | 
					                                                </tr> | 
				
			||||
 | 
					                                            </t> | 
				
			||||
 | 
					                                        </tbody> | 
				
			||||
 | 
					                                    </table> | 
				
			||||
 | 
					                                </div></div></div></div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					         </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </t> | 
				
			||||
 | 
					</templates> | 
				
			||||
@ -0,0 +1,14 @@ | 
				
			|||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					        <record id="action_pos_dashboard" model="ir.actions.client"> | 
				
			||||
 | 
					            <field name="name">Dashboard</field> | 
				
			||||
 | 
					            <field name="tag">pos_dashboard</field> | 
				
			||||
 | 
					        </record> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <menuitem name="Dashboard" id="pos_dashboard" parent="point_of_sale.menu_point_rep" | 
				
			||||
 | 
					                  sequence="1" | 
				
			||||
 | 
					                  groups="point_of_sale.group_pos_manager" | 
				
			||||
 | 
					                  action="action_pos_dashboard"/> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					Project Report v15 | 
				
			||||
 | 
					================== | 
				
			||||
 | 
					PDF and XLS Reports for Project Module. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Features | 
				
			||||
 | 
					======== | 
				
			||||
 | 
					* Project Task Report XLS [With advanced Filtration] | 
				
			||||
 | 
					* Project Task Report PDF [With advanced Filtration] | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					======= | 
				
			||||
 | 
					Cybrosys Techno Solutions <www.cybrosys.com> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Author | 
				
			||||
 | 
					------ | 
				
			||||
 | 
					*  Developer v9: Avinash Nk @ cybrosys | 
				
			||||
 | 
					*  Developer v10: Treesa @ cybrosys | 
				
			||||
 | 
					*  Developer V11: Akshay @ cybrosys | 
				
			||||
 | 
					*  Developer V12: Akshay @ cybrosys | 
				
			||||
 | 
					*  Developer V13: Vinaya S B @ cybrosys | 
				
			||||
 | 
					*  Developer V14: Muhammed P @ cybrosys | 
				
			||||
 | 
					*  Developer V15: IRFAN  @ cybrosys | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					from . import wizard | 
				
			||||
 | 
					from . import controllers | 
				
			||||
 | 
					from . import report | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,47 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': 'Project Report XLS & PDF', | 
				
			||||
 | 
					    'version': '15.0.1.0.0', | 
				
			||||
 | 
					    "category": "Project", | 
				
			||||
 | 
					    'author': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': "https://www.cybrosys.com", | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'summary': """Advanced PDF & XLS Reports for Project With Filtrations""", | 
				
			||||
 | 
					    'description': """Advanced PDF & XLS Reports for Project With Filtrations, Odoo 15, Odoo15""", | 
				
			||||
 | 
					    'depends': ['base', 'project'], | 
				
			||||
 | 
					    'license': 'AGPL-3', | 
				
			||||
 | 
					    'data': ['security/ir.model.access.csv', | 
				
			||||
 | 
					             'wizard/project_report_wizard_view.xml', | 
				
			||||
 | 
					             'report/project_report_pdf_view.xml', | 
				
			||||
 | 
					             'views/project_report_button.xml', | 
				
			||||
 | 
					             'views/project_report.xml' | 
				
			||||
 | 
					             ], | 
				
			||||
 | 
					    'assets': { | 
				
			||||
 | 
					            'web.assets_backend': [ | 
				
			||||
 | 
					                'project_report_pdf/static/src/js/action_manager.js', | 
				
			||||
 | 
					            ], | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    'images': ['static/description/banner.png'], | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1 @@ | 
				
			|||||
 | 
					from . import main | 
				
			||||
@ -0,0 +1,56 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import json | 
				
			||||
 | 
					from odoo import http | 
				
			||||
 | 
					from odoo.http import content_disposition, request | 
				
			||||
 | 
					from odoo.addons.web.controllers.main import _serialize_exception | 
				
			||||
 | 
					from odoo.tools import html_escape | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class XLSXReportController(http.Controller): | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @http.route('/xlsx_reports', type='http', auth='user', methods=['POST'], csrf=False) | 
				
			||||
 | 
					    def get_report_xlsx(self, model, options, output_format, report_name, **kw): | 
				
			||||
 | 
					        uid = request.session.uid | 
				
			||||
 | 
					        report_obj = request.env[model].with_user(uid) | 
				
			||||
 | 
					        options = json.loads(options) | 
				
			||||
 | 
					        token = 'dummy-because-api-expects-one' | 
				
			||||
 | 
					        try: | 
				
			||||
 | 
					            if output_format == 'xlsx': | 
				
			||||
 | 
					                response = request.make_response( | 
				
			||||
 | 
					                    None, | 
				
			||||
 | 
					                    headers=[ | 
				
			||||
 | 
					                        ('Content-Type', 'application/vnd.ms-excel'), | 
				
			||||
 | 
					                        ('Content-Disposition', content_disposition(report_name + '.xlsx')) | 
				
			||||
 | 
					                    ] | 
				
			||||
 | 
					                ) | 
				
			||||
 | 
					                report_obj.get_xlsx_report(options, response) | 
				
			||||
 | 
					            response.set_cookie('fileToken', token) | 
				
			||||
 | 
					            return response | 
				
			||||
 | 
					        except Exception as e: | 
				
			||||
 | 
					            se = _serialize_exception(e) | 
				
			||||
 | 
					            error = { | 
				
			||||
 | 
					                'code': 200, | 
				
			||||
 | 
					                'message': 'Odoo Server Error', | 
				
			||||
 | 
					                'data': se | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					            return request.make_response(html_escape(json.dumps(error))) | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			|||||
 | 
					## Module <project_report_pdf> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 3.10.2020 | 
				
			||||
 | 
					#### Version 15.0.1.0.0 | 
				
			||||
 | 
					##### ADD | 
				
			||||
 | 
					- Initial commit for project_report_pdf | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,22 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Akshay Babu(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					from . import project_report_pdf | 
				
			||||
@ -0,0 +1,77 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2019-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					from odoo.http import request | 
				
			||||
 | 
					from odoo import models, api | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ProjectReportParser(models.AbstractModel): | 
				
			||||
 | 
					    _name = 'report.project_report_pdf.project_report_template' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def _get_report_values(self, docids, data=None): | 
				
			||||
 | 
					        name = data['record'] | 
				
			||||
 | 
					        wizard_record = request.env['wizard.project.report'].search([])[-1] | 
				
			||||
 | 
					        task_obj = request.env['project.task'] | 
				
			||||
 | 
					        users_selected = [] | 
				
			||||
 | 
					        stages_selected = [] | 
				
			||||
 | 
					        for elements in wizard_record.partner_select: | 
				
			||||
 | 
					            users_selected.append(elements.id) | 
				
			||||
 | 
					        for elements in wizard_record.stage_select: | 
				
			||||
 | 
					            stages_selected.append(elements.id) | 
				
			||||
 | 
					        if wizard_record.partner_select: | 
				
			||||
 | 
					            if wizard_record.stage_select: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('user_ids', 'in', users_selected), | 
				
			||||
 | 
					                                                ('stage_id', 'in', stages_selected)]) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('user_ids', 'in', users_selected)]) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            if wizard_record.stage_select: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('stage_id', 'in', stages_selected)]) | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name)]) | 
				
			||||
 | 
					        vals = [] | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        for i in current_task: | 
				
			||||
 | 
					            vals.append({ | 
				
			||||
 | 
					                'name': i.name, | 
				
			||||
 | 
					                'user_id': i.user_ids.name, | 
				
			||||
 | 
					                'stage_id': i.stage_id.name, | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					        if current_task: | 
				
			||||
 | 
					            return { | 
				
			||||
 | 
					                'vals': vals, | 
				
			||||
 | 
					                'name': current_task[0].project_id.name, | 
				
			||||
 | 
					                'manager': current_task[0].project_id.user_id.name, | 
				
			||||
 | 
					                'date_start': current_task[0].project_id.date_start, | 
				
			||||
 | 
					                'date_end': current_task[0].project_id.date, | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            return { | 
				
			||||
 | 
					                'vals': vals, | 
				
			||||
 | 
					                'name': current_task.project_id.name, | 
				
			||||
 | 
					                'manager': current_task.project_id.user_id.name, | 
				
			||||
 | 
					                'date_start': current_task.project_id.date_start, | 
				
			||||
 | 
					                'date_end': current_task.project_id.date, | 
				
			||||
 | 
					            } | 
				
			||||
@ -0,0 +1,46 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <template id="project_report_template"> | 
				
			||||
 | 
					        <t t-call="web.html_container"> | 
				
			||||
 | 
					            <t t-call="web.external_layout"> | 
				
			||||
 | 
					                <div class="page"> | 
				
			||||
 | 
					                    <br/> | 
				
			||||
 | 
					                    <div style="text-align:left;color:black!important;"><strong><h1>Project :<span | 
				
			||||
 | 
					                            t-esc="name"/></h1></strong></div> | 
				
			||||
 | 
					                    <div style="text-align:left;color:black!important;"><strong><p>Project Manager:<span | 
				
			||||
 | 
					                            t-esc="manager"/></p></strong></div> | 
				
			||||
 | 
					                    <div style="text-align:left;color:black!important;"><strong><p>Start Date:<span | 
				
			||||
 | 
					                            t-esc="date_start"/></p></strong></div> | 
				
			||||
 | 
					                    <div style="text-align:left;color:black!important;"><strong><p>End Date:<span | 
				
			||||
 | 
					                            t-esc="date_end"/></p></strong></div> | 
				
			||||
 | 
					                    <div style="text-align:left;color:black!important;"><strong><h1>Open Tasks</h1></strong></div> | 
				
			||||
 | 
					                    <table class="table table-condensed"> | 
				
			||||
 | 
					                        <thead> | 
				
			||||
 | 
					                            <tr> | 
				
			||||
 | 
					                                <th style="text-align:left;color:black!important;">Task</th> | 
				
			||||
 | 
					                                <th style="text-align:left;color:black!important;">Assigned</th> | 
				
			||||
 | 
					                                <th style="text-align:left;color:black!important;">Stage</th> | 
				
			||||
 | 
					                            </tr> | 
				
			||||
 | 
					                        </thead> | 
				
			||||
 | 
					                        <tbody> | 
				
			||||
 | 
					                            <t t-foreach="vals" t-as="res"> | 
				
			||||
 | 
					                                <tr> | 
				
			||||
 | 
					                                    <td> | 
				
			||||
 | 
					                                        <span t-att-style="style" t-esc="res['name']"/> | 
				
			||||
 | 
					                                    </td> | 
				
			||||
 | 
					                                    <td> | 
				
			||||
 | 
					                                        <span t-att-style="style" t-esc="res['user_id']"/> | 
				
			||||
 | 
					                                    </td> | 
				
			||||
 | 
					                                    <td> | 
				
			||||
 | 
					                                        <span t-att-style="style" t-esc="res['stage_id']"/> | 
				
			||||
 | 
					                                    </td> | 
				
			||||
 | 
					                                </tr> | 
				
			||||
 | 
					                            </t> | 
				
			||||
 | 
					                        </tbody> | 
				
			||||
 | 
					                    </table> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </t> | 
				
			||||
 | 
					        </t> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
		
		
			
  | 
| 
		 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: 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: 51 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 58 KiB  | 
| 
		 After Width: | Height: | Size: 96 KiB  | 
| 
		 After Width: | Height: | Size: 81 KiB  | 
| 
		 After Width: | Height: | Size: 70 KiB  | 
| 
		 After Width: | Height: | Size: 64 KiB  | 
| 
		 After Width: | Height: | Size: 44 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
@ -0,0 +1,606 @@ | 
				
			|||||
 | 
					<div class="container" style="padding: 4rem 1.5rem !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;"> | 
				
			||||
 | 
					                Project Report PDF & XLS</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;"> | 
				
			||||
 | 
					                Export Project Report to PDF & XLS | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="./assets/screenshots/hero.png" 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> | 
				
			||||
 | 
					        <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 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;"> | 
				
			||||
 | 
					                This module enhances the project management with intuitive reports. Reports consist of task details | 
				
			||||
 | 
					                with respect to the selected project. The user can use the filter facilities from report wizard to | 
				
			||||
 | 
					                get the optimized reports. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </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;"> | 
				
			||||
 | 
					                    PDF Reports</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    PDF Reports in Project.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    XLS Reports</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    XLS Reports in Project.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Detailed Reports</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    Detailed Report on Tasks.</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                    Advanced Filters</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    Advanced Filters for Report</p> | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                Go to project</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                To get to the project, go to Project -> Project</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot1.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Filter Project Reports</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                You can filter the project report via selecting the appropriate options from the wizard.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot2.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Export to PDF</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                PDF Report Of Data Import/Export Plugin Project. << /p> | 
				
			||||
 | 
					                    <img src="assets/screenshots/screenshot3.png" class="img-responsive img-thumbnail border" | 
				
			||||
 | 
					                        width="100%" height="auto" /> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Export to Excel</h4> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                Excel Report Of Data Import/Export Plugin Project. | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="assets/screenshots/screenshot4.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/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_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/product_return_pos/" 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/product_return_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/product_approval_management/" | 
				
			||||
 | 
					                                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/approval_image.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/mrp_work_order_print/" 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/print_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/list_view_sticky_header/" 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/list_view_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/multiple_reference_per_product/" | 
				
			||||
 | 
					                                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/multiple_ref_image.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-4"> | 
				
			||||
 | 
					                        <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-4"> | 
				
			||||
 | 
					                        <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>WhatsApp</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-lg-4"> | 
				
			||||
 | 
					                        <a href="mailto:info@cybrosys.com" target="_blank" class="btn btn-block deep_hover" | 
				
			||||
 | 
					                            style="text-decoration: none; background-color: #4d4d4d; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-envelope mr-2"></i>info@cybrosys.com</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,21 @@ | 
				
			|||||
 | 
					/** @odoo-module */ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					import { registry } from "@web/core/registry"; | 
				
			||||
 | 
					import { download } from "@web/core/network/download"; | 
				
			||||
 | 
					import framework from 'web.framework'; | 
				
			||||
 | 
					import session from 'web.session'; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					registry.category("ir.actions.report handlers").add("xlsx", async (action) => { | 
				
			||||
 | 
					    if (action.report_type === 'xlsx') { | 
				
			||||
 | 
					        framework.blockUI(); | 
				
			||||
 | 
					        var def = $.Deferred(); | 
				
			||||
 | 
					        session.get_file({ | 
				
			||||
 | 
					            url: '/xlsx_reports', | 
				
			||||
 | 
					            data: action.data, | 
				
			||||
 | 
					            success: def.resolve.bind(def), | 
				
			||||
 | 
					            error: (error) => this.call('crash_manager', 'rpc_error', error), | 
				
			||||
 | 
					            complete: framework.unblockUI, | 
				
			||||
 | 
					        }); | 
				
			||||
 | 
					        return def; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					}); | 
				
			||||
@ -0,0 +1,10 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					        <template id="assets_backend" name="xls_assets" inherit_id="web.assets_backend"> | 
				
			||||
 | 
					            <xpath expr="." position="inside"> | 
				
			||||
 | 
					                <script type="text/javascript" src="/project_report_pdf/static/src/js/action_manager.js"/> | 
				
			||||
 | 
					            </xpath> | 
				
			||||
 | 
					        </template> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,12 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					     <record id="report_project_pdf"  model="ir.actions.report"> | 
				
			||||
 | 
					         <field name="name">Project PDF Report</field> | 
				
			||||
 | 
					         <field name="model">project.project</field> | 
				
			||||
 | 
					         <field name="report_type">qweb-pdf</field> | 
				
			||||
 | 
					         <field name="report_name">project_report_pdf.project_report_template</field> | 
				
			||||
 | 
					         <field name="report_file">project_report_pdf.project_report_template</field> | 
				
			||||
 | 
					     </record> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,16 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					        <record id="project_report_pdf_inherited" model="ir.ui.view"> | 
				
			||||
 | 
					            <field name="name">project_report_pdf_inherited.form</field> | 
				
			||||
 | 
					            <field name="model">project.project</field> | 
				
			||||
 | 
					            <field name="inherit_id" ref="project.edit_project"/> | 
				
			||||
 | 
					            <field name="arch" type="xml"> | 
				
			||||
 | 
					                <xpath expr="//header" position="inside"> | 
				
			||||
 | 
					                    <button name="%(project_report_pdf.project_report_open_wizard)d" type="action" string="Print" class="oe_highlight"/> | 
				
			||||
 | 
					                </xpath> | 
				
			||||
 | 
					            </field> | 
				
			||||
 | 
					       </record> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					</odoo> | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,21 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					from . import project_report_wizard | 
				
			||||
@ -0,0 +1,182 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2020-TODAY Cybrosys Technologies (<https://www.cybrosys.com>). | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					from odoo.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT | 
				
			||||
 | 
					from datetime import datetime | 
				
			||||
 | 
					import json | 
				
			||||
 | 
					import datetime | 
				
			||||
 | 
					import pytz | 
				
			||||
 | 
					import io | 
				
			||||
 | 
					from odoo import api, fields, models, _ | 
				
			||||
 | 
					from odoo.exceptions import ValidationError | 
				
			||||
 | 
					from odoo.http import request | 
				
			||||
 | 
					from odoo.tools import date_utils | 
				
			||||
 | 
					try: | 
				
			||||
 | 
					    from odoo.tools.misc import xlsxwriter | 
				
			||||
 | 
					except ImportError: | 
				
			||||
 | 
					    import xlsxwriter | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ProjectReportButton(models.TransientModel): | 
				
			||||
 | 
					    _name = 'wizard.project.report' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    partner_select = fields.Many2many('res.users', string='Assigned to') | 
				
			||||
 | 
					    stage_select = fields.Many2many('project.task.type', string="Stage") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def print_project_report_pdf(self): | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        active_record = self._context['active_id'] | 
				
			||||
 | 
					        record = self.env['project.project'].browse(active_record) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        data = { | 
				
			||||
 | 
					            'ids': self.ids, | 
				
			||||
 | 
					            'model': self._name, | 
				
			||||
 | 
					            'record': record.id, | 
				
			||||
 | 
					            'partner_select': self.partner_select | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        return self.env.ref('project_report_pdf.report_project_pdf').report_action(self, data=data) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def print_project_report_xls(self): | 
				
			||||
 | 
					        active_record = self._context['active_id'] | 
				
			||||
 | 
					        record = self.env['project.project'].browse(active_record) | 
				
			||||
 | 
					        data = { | 
				
			||||
 | 
					            'ids': self.ids, | 
				
			||||
 | 
					            'model': self._name, | 
				
			||||
 | 
					            'record': record.id, | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        return { | 
				
			||||
 | 
					            'type': 'ir.actions.report', | 
				
			||||
 | 
					            'data': {'model': 'wizard.project.report', | 
				
			||||
 | 
					                     'options': json.dumps(data, default=date_utils.json_default), | 
				
			||||
 | 
					                     'output_format': 'xlsx', | 
				
			||||
 | 
					                     'report_name': 'Project Report', | 
				
			||||
 | 
					                     }, | 
				
			||||
 | 
					            'report_type': 'xlsx' | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def get_xlsx_report(self, data, response): | 
				
			||||
 | 
					        output = io.BytesIO() | 
				
			||||
 | 
					        workbook = xlsxwriter.Workbook(output, {'in_memory': True}) | 
				
			||||
 | 
					        name = data['record'] | 
				
			||||
 | 
					        user_obj = self.env.user | 
				
			||||
 | 
					        wizard_record = request.env['wizard.project.report'].search([])[-1] | 
				
			||||
 | 
					        task_obj = request.env['project.task'] | 
				
			||||
 | 
					        users_selected = [] | 
				
			||||
 | 
					        stages_selected = [] | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        for elements in wizard_record.partner_select: | 
				
			||||
 | 
					            users_selected.append(elements.id) | 
				
			||||
 | 
					        for elements in wizard_record.stage_select: | 
				
			||||
 | 
					            stages_selected.append(elements.id) | 
				
			||||
 | 
					        if wizard_record.partner_select: | 
				
			||||
 | 
					            print(name,"dfzfdsggggggggggggggggg") | 
				
			||||
 | 
					            print(users_selected,"dfzfdsggggggggggggggggg") | 
				
			||||
 | 
					            print(stages_selected,"dfzfdsggggggggggggggggg") | 
				
			||||
 | 
					            if wizard_record.stage_select: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('user_ids', 'in', users_selected), | 
				
			||||
 | 
					                                                ('stage_id', 'in', stages_selected)]) | 
				
			||||
 | 
					                print(current_task,"current_task") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('user_ids', 'in', users_selected)]) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            if wizard_record.stage_select: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name), | 
				
			||||
 | 
					                                                ('stage_id', 'in', stages_selected)]) | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                current_task = task_obj.search([('project_id', '=', name)]) | 
				
			||||
 | 
					        vals = [] | 
				
			||||
 | 
					        for i in current_task: | 
				
			||||
 | 
					            vals.append({ | 
				
			||||
 | 
					                'name': i.name, | 
				
			||||
 | 
					                'user_id': i.user_ids.name if i.user_ids.name else '', | 
				
			||||
 | 
					                'stage_id': i.stage_id.name, | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					        if current_task: | 
				
			||||
 | 
					            project_name = current_task[0].project_id.name | 
				
			||||
 | 
					            user = current_task[0].project_id.user_id.name | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            project_name = current_task.project_id.name | 
				
			||||
 | 
					            user = current_task.project_id.user_id.name | 
				
			||||
 | 
					        sheet = workbook.add_worksheet("Project Report") | 
				
			||||
 | 
					        format1 = workbook.add_format({'font_size': 22, 'bg_color': '#D3D3D3'}) | 
				
			||||
 | 
					        format4 = workbook.add_format({'font_size': 22}) | 
				
			||||
 | 
					        format2 = workbook.add_format({'font_size': 12, 'bold': True, 'bg_color': '#D3D3D3'}) | 
				
			||||
 | 
					        format3 = workbook.add_format({'font_size': 10}) | 
				
			||||
 | 
					        format5 = workbook.add_format({'font_size': 10, 'bg_color': '#FFFFFF'}) | 
				
			||||
 | 
					        format7 = workbook.add_format({'font_size': 10, 'bg_color': '#FFFFFF'}) | 
				
			||||
 | 
					        format7.set_align('center') | 
				
			||||
 | 
					        sheet.merge_range('A1:B1', user_obj.company_id.name, format5) | 
				
			||||
 | 
					        sheet.merge_range('A2:B2', user_obj.company_id.street, format5) | 
				
			||||
 | 
					        sheet.write('A3', user_obj.company_id.city, format5) | 
				
			||||
 | 
					        sheet.write('B3', user_obj.company_id.zip, format5) | 
				
			||||
 | 
					        sheet.merge_range('A4:B4', user_obj.company_id.state_id.name, format5) | 
				
			||||
 | 
					        sheet.merge_range('A5:B5', user_obj.company_id.country_id.name, format5) | 
				
			||||
 | 
					        sheet.merge_range('C1:H5', "", format5) | 
				
			||||
 | 
					        sheet.merge_range(5, 0, 6, 1, "Project  :", format1) | 
				
			||||
 | 
					        if project_name: | 
				
			||||
 | 
					            sheet.merge_range(5, 2, 6, 7, project_name, format1) | 
				
			||||
 | 
					        sheet.merge_range('A8:B8', "Project Manager    :", format5) | 
				
			||||
 | 
					        if user: | 
				
			||||
 | 
					            sheet.merge_range('C8:D8', user, format5) | 
				
			||||
 | 
					        date_start = '' | 
				
			||||
 | 
					        date_end = '' | 
				
			||||
 | 
					        if current_task: | 
				
			||||
 | 
					            date_start = str(current_task[0].project_id.date_start) | 
				
			||||
 | 
					        if current_task: | 
				
			||||
 | 
					            date_end = str(current_task[0].project_id.date) | 
				
			||||
 | 
					        sheet.merge_range('A9:B9', "Start Date              :", format5) | 
				
			||||
 | 
					        if not date_start: | 
				
			||||
 | 
					            sheet.merge_range('C9:D9', '', format5) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            sheet.merge_range('C9:D9', date_start, format5) | 
				
			||||
 | 
					        sheet.merge_range('A10:B10', "End Date                :", format5) | 
				
			||||
 | 
					        if str(date_end): | 
				
			||||
 | 
					            sheet.merge_range('C10:D10', date_end, format5) | 
				
			||||
 | 
					        sheet.merge_range(0, 2, 4, 5, "", format5) | 
				
			||||
 | 
					        sheet.merge_range(1, 6, 4, 7, "", format5) | 
				
			||||
 | 
					        sheet.merge_range(7, 4, 9, 7, "", format5) | 
				
			||||
 | 
					        sheet.merge_range(10, 4, 11, 7, "", format5) | 
				
			||||
 | 
					        sheet.merge_range('A11:H12', 'Open Tasks', format4) | 
				
			||||
 | 
					        sheet.merge_range('A13:D13', "Tasks", format2) | 
				
			||||
 | 
					        sheet.merge_range('E13:F13', "Assigned", format2) | 
				
			||||
 | 
					        sheet.merge_range('G13:H13', "Stage", format2) | 
				
			||||
 | 
					        row_number = 13 | 
				
			||||
 | 
					        column_number = 0 | 
				
			||||
 | 
					        for val in vals: | 
				
			||||
 | 
					            sheet.merge_range(row_number, column_number, row_number, column_number + 3, val['name'], format3) | 
				
			||||
 | 
					            sheet.merge_range(row_number, column_number + 4, row_number, column_number + 5, val['user_id'], format3) | 
				
			||||
 | 
					            sheet.merge_range(row_number, column_number + 6, row_number, column_number + 7, val['stage_id'], format3) | 
				
			||||
 | 
					            row_number += 1 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        row_number += 1 | 
				
			||||
 | 
					        sheet.merge_range(row_number, 0, row_number, 1, user_obj.company_id.phone, format7) | 
				
			||||
 | 
					        sheet.merge_range(row_number, 2, row_number, 4, user_obj.company_id.email, format7) | 
				
			||||
 | 
					        sheet.merge_range(row_number, 5, row_number, 7, user_obj.company_id.website, format7) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        workbook.close() | 
				
			||||
 | 
					        output.seek(0) | 
				
			||||
 | 
					        response.stream.write(output.read()) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        output.close() | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,36 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <data> | 
				
			||||
 | 
					        <record id="report_wizard_view_form" model="ir.ui.view"> | 
				
			||||
 | 
					            <field name="name">report_wizard_view_form.form</field> | 
				
			||||
 | 
					            <field name="model">wizard.project.report</field> | 
				
			||||
 | 
					            <field name="arch" type="xml"> | 
				
			||||
 | 
					                <form string="Select period"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <group > | 
				
			||||
 | 
					                                <field name="partner_select" widget="many2many_tags"/> | 
				
			||||
 | 
					                            </group> | 
				
			||||
 | 
					                            <group > | 
				
			||||
 | 
					                                <field name="stage_select" widget="many2many_tags"/> | 
				
			||||
 | 
					                            </group> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <footer> | 
				
			||||
 | 
					                        <button name="print_project_report_pdf" type="object" string="Print PDF" class="oe_highlight"/> | 
				
			||||
 | 
					                        <button name="print_project_report_xls" type="object" string="Print XLS" class="oe_highlight"/> | 
				
			||||
 | 
					                        <button special="cancel" string="Cancel"/> | 
				
			||||
 | 
					                    </footer> | 
				
			||||
 | 
					                </form> | 
				
			||||
 | 
					            </field> | 
				
			||||
 | 
					        </record> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <act_window | 
				
			||||
 | 
					            id="project_report_open_wizard" | 
				
			||||
 | 
					            name="Project Report" | 
				
			||||
 | 
					            res_model="wizard.project.report" | 
				
			||||
 | 
					            view_mode="form" | 
				
			||||
 | 
					            view_id="report_wizard_view_form" | 
				
			||||
 | 
					            target="new"/> | 
				
			||||
 | 
					    </data> | 
				
			||||
 | 
					</odoo> | 
				
			||||