@ -0,0 +1,46 @@ | 
				
			|||
.. image:: https://img.shields.io/badge/licence-LGPL--3-green.svg | 
				
			|||
    :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html | 
				
			|||
    :alt: License: LGPL-3 | 
				
			|||
 | 
				
			|||
Add Multiple Products To Invoice/Bill | 
				
			|||
===================================== | 
				
			|||
Easily add multiple products to a customer invoice or vendor bill directly from product kanban, list and from views. | 
				
			|||
 | 
				
			|||
Configuration | 
				
			|||
============= | 
				
			|||
No additional configuration is needed to use this module. | 
				
			|||
 | 
				
			|||
License | 
				
			|||
------- | 
				
			|||
General Public License, Version 3 (LGPL v3). | 
				
			|||
(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) | 
				
			|||
 | 
				
			|||
Company | 
				
			|||
------- | 
				
			|||
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | 
				
			|||
 | 
				
			|||
Credits | 
				
			|||
------- | 
				
			|||
* Developer: (V16) Jumana Jabin MP , Contact: odoo@cybrosys.com | 
				
			|||
 | 
				
			|||
Contacts | 
				
			|||
-------- | 
				
			|||
* Mail Contact : odoo@cybrosys.com | 
				
			|||
* Website : https://cybrosys.com | 
				
			|||
 | 
				
			|||
Bug Tracker | 
				
			|||
----------- | 
				
			|||
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | 
				
			|||
 | 
				
			|||
Maintainer | 
				
			|||
========== | 
				
			|||
.. image:: https://cybrosys.com/images/logo.png | 
				
			|||
   :target: https://cybrosys.com | 
				
			|||
 | 
				
			|||
This module is maintained by Cybrosys Technologies. | 
				
			|||
 | 
				
			|||
For support and more information, please visit https://www.cybrosys.com | 
				
			|||
 | 
				
			|||
Further information | 
				
			|||
=================== | 
				
			|||
HTML Description: `<static/description/index.html>`__ | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author:Jumana Jabin MP(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from . import models | 
				
			|||
from . import wizard | 
				
			|||
@ -0,0 +1,49 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
{ | 
				
			|||
    'name': 'Add Multiple Products To Invoice/Bill', | 
				
			|||
    'version': '16.0.1.0.0', | 
				
			|||
    'category': 'Accounting', | 
				
			|||
    'summary': 'Easily add multiple products to a invoice/bill directly from ' | 
				
			|||
               'the product views', | 
				
			|||
    'description': """This module allow you to add multiple products to the  | 
				
			|||
     corresponding invoice/bill. You can see all products in kanban, list and | 
				
			|||
     form view.You can also view the recent invoice/bill  history of the  | 
				
			|||
     selected product along with the option to update the quantity,  | 
				
			|||
     Change price, Add Multiple Products""", | 
				
			|||
    'author': 'Cybrosys Techno Solutions', | 
				
			|||
    'company': 'Cybrosys Techno Solutions', | 
				
			|||
    'maintainer': 'Cybrosys Techno Solutions', | 
				
			|||
    'website': "https://www.cybrosys.com", | 
				
			|||
    'depends': ['base', 'account'], | 
				
			|||
    'data': [ | 
				
			|||
        'security/ir.model.access.csv', | 
				
			|||
        'views/account_move_views.xml', | 
				
			|||
        'views/product_product_views.xml', | 
				
			|||
        'wizard/invoice_product_details_views.xml' | 
				
			|||
    ], | 
				
			|||
    'images': ['static/description/banner.png'], | 
				
			|||
    'license': 'LGPL-3', | 
				
			|||
    'installable': True, | 
				
			|||
    'application': False, | 
				
			|||
    'auto_install': False | 
				
			|||
} | 
				
			|||
@ -0,0 +1,6 @@ | 
				
			|||
## Module <products_to_invoice> | 
				
			|||
 | 
				
			|||
#### 25.07.2023 | 
				
			|||
#### Version 16.0.1.0.0 | 
				
			|||
##### ADD | 
				
			|||
- Initial commit for Add Multiple Products To Invoice/Bill | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP (<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from . import account_move | 
				
			|||
from . import product_product | 
				
			|||
@ -0,0 +1,40 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP (<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from odoo import models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class AccountMove(models.Model): | 
				
			|||
    """Inherits the account_move model to add custom functionality.""" | 
				
			|||
    _inherit = 'account.move' | 
				
			|||
 | 
				
			|||
    def action_add_product(self): | 
				
			|||
        """Action method to open the product_product view and add products | 
				
			|||
        to the invoice.""" | 
				
			|||
        self.ensure_one() | 
				
			|||
        return { | 
				
			|||
            'name': 'Product Variants', | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'res_model': 'product.product', | 
				
			|||
            'view_mode': 'kanban,list,form', | 
				
			|||
            'target': 'current', | 
				
			|||
            'context': {'add_to_invoice': True}, | 
				
			|||
        } | 
				
			|||
@ -0,0 +1,116 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from odoo import api, fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class ProductProduct(models.Model): | 
				
			|||
    """This class extends the 'product.product' model in Odoo and adds | 
				
			|||
       additional functionalities related to invoice handling.""" | 
				
			|||
    _inherit = 'product.product' | 
				
			|||
 | 
				
			|||
    @api.depends_context('add_to_invoice') | 
				
			|||
    def _compute_add_to_invoice(self): | 
				
			|||
        """Compute the 'add_to_invoice' field based on the context. | 
				
			|||
        The 'add_to_invoice' field is set to True when the context | 
				
			|||
        variable 'add_to_invoice' is present and has a truthy value. | 
				
			|||
        Otherwise, it is set to False.""" | 
				
			|||
        for record in self: | 
				
			|||
            record.add_to_invoice = bool(self.env.context.get('add_to_invoice') | 
				
			|||
                                         ) | 
				
			|||
    add_to_invoice = fields.Boolean( | 
				
			|||
        string='Add to Invoice', | 
				
			|||
        compute='_compute_add_to_invoice', | 
				
			|||
        help='Whether to show the "Add to Invoice" button in the tree view.') | 
				
			|||
 | 
				
			|||
    def _get_invoice_taxes(self, move_id, account_id): | 
				
			|||
        """Get invoice taxes based on move type and account.""" | 
				
			|||
        self.ensure_one() | 
				
			|||
        tax_ids = self.taxes_id.filtered( | 
				
			|||
            lambda tax: tax.company_id == move_id.company_id) if \ | 
				
			|||
            move_id.move_type == 'out_invoice' else \ | 
				
			|||
            self.supplier_taxes_id.filtered( | 
				
			|||
                lambda tax: tax.company_id == move_id.company_id) if \ | 
				
			|||
                move_id.move_type == 'in_invoice' else \ | 
				
			|||
                account_id.tax_ids | 
				
			|||
        if not tax_ids: | 
				
			|||
            tax_ids = move_id.company_id.account_sale_tax_id if \ | 
				
			|||
                move_id.move_type == 'out_invoice' else \ | 
				
			|||
                move_id.company_id.account_purchase_tax_id if \ | 
				
			|||
                    move_id.move_type == 'in_invoice' else \ | 
				
			|||
                    self.env['account.tax'] | 
				
			|||
        if self.company_id and tax_ids: | 
				
			|||
            tax_ids = tax_ids.filtered(lambda tax: tax.company_id == | 
				
			|||
                                                   self.company_id) | 
				
			|||
        return tax_ids | 
				
			|||
 | 
				
			|||
    def _get_invoice_account(self, move_id): | 
				
			|||
        """Return the income/expense account of the selected product.""" | 
				
			|||
        self.ensure_one() | 
				
			|||
        self = self.with_company(move_id.journal_id.company_id) | 
				
			|||
        accounts = self.product_tmpl_id.get_product_accounts \ | 
				
			|||
            (fiscal_pos=move_id.fiscal_position_id) | 
				
			|||
        return accounts['income'] if move_id.move_type == 'out_invoice' \ | 
				
			|||
            else accounts['expense'] | 
				
			|||
 | 
				
			|||
    def action_add_to_invoice(self): | 
				
			|||
        """Add the product to the invoice. | 
				
			|||
        This method is triggered when the "Add to Invoice" button is clicked. | 
				
			|||
        It creates an invoice line and adds it to the invoice.""" | 
				
			|||
        invoice_id = self.env['account.move']. \ | 
				
			|||
            browse(self._context.get('active_id')) | 
				
			|||
        account_id = self._get_invoice_account(invoice_id) | 
				
			|||
        tax_ids = self._get_invoice_taxes(invoice_id, account_id) | 
				
			|||
        invoice_line_vals = { | 
				
			|||
            'product_id': self.id, | 
				
			|||
            'product_uom_id': self.uom_id.id, | 
				
			|||
            'quantity': 1, | 
				
			|||
            'price_unit': self.lst_price if invoice_id.move_type == | 
				
			|||
                                            'out_invoice' | 
				
			|||
            else self.standard_price, | 
				
			|||
            'account_id': account_id.id, | 
				
			|||
            'tax_ids': [(6, 0, tax_ids.ids)] | 
				
			|||
        } | 
				
			|||
        invoice_id.write({ | 
				
			|||
            'invoice_line_ids': [(0, 0, invoice_line_vals)] | 
				
			|||
        }) | 
				
			|||
 | 
				
			|||
    def action_change_qty(self): | 
				
			|||
        """Open the product details wizard. | 
				
			|||
        This method is triggered when the "Change Qty" button is clicked. | 
				
			|||
        It opens a wizard to modify the quantity and other details of | 
				
			|||
        the product. """ | 
				
			|||
        invoice_id = self.env['account.move'] \ | 
				
			|||
            .browse(self._context.get('active_id')) | 
				
			|||
        return { | 
				
			|||
            'name': 'Product Details', | 
				
			|||
            'type': 'ir.actions.act_window', | 
				
			|||
            'res_model': 'invoice.product.details', | 
				
			|||
            'view_mode': 'form', | 
				
			|||
            'target': 'new', | 
				
			|||
            'context': { | 
				
			|||
                'default_account_move_id': invoice_id.id, | 
				
			|||
                'default_product_id': self.id, | 
				
			|||
                'default_price_unit': self.lst_price if invoice_id.move_type | 
				
			|||
                                                        == 'out_invoice' | 
				
			|||
                else self.standard_price, | 
				
			|||
            }, | 
				
			|||
        } | 
				
			|||
		
		
			
  | 
| 
		 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: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 4.4 KiB  | 
| 
		 After Width: | Height: | Size: 589 B  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
| 
		 After Width: | Height: | Size: 2.3 KiB  | 
| 
		 After Width: | Height: | Size: 967 B  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 3.8 KiB  | 
| 
		 After Width: | Height: | Size: 5.0 KiB  | 
| 
		 After Width: | Height: | Size: 33 KiB  | 
| 
		 After Width: | Height: | Size: 86 KiB  | 
| 
		 After Width: | Height: | Size: 79 KiB  | 
| 
		 After Width: | Height: | Size: 74 KiB  | 
| 
		 After Width: | Height: | Size: 85 KiB  | 
| 
		 After Width: | Height: | Size: 82 KiB  | 
| 
		 After Width: | Height: | Size: 344 KiB  | 
| 
		 After Width: | Height: | Size: 116 KiB  | 
| 
		 After Width: | Height: | Size: 128 KiB  | 
| 
		 After Width: | Height: | Size: 402 KiB  | 
| 
		 After Width: | Height: | Size: 217 KiB  | 
| 
		 After Width: | Height: | Size: 148 KiB  | 
| 
		 After Width: | Height: | Size: 332 KiB  | 
| 
		 After Width: | Height: | Size: 246 KiB  | 
| 
		 After Width: | Height: | Size: 105 KiB  | 
| 
		 After Width: | Height: | Size: 15 KiB  | 
@ -0,0 +1,772 @@ | 
				
			|||
<div style="background-color: #714B67; height: 810px; width: 100%; padding: 15px; position: relative;"> | 
				
			|||
    <!-- TITLE BAR --> | 
				
			|||
    <div class="d-flex align-items-center justify-content-between" | 
				
			|||
         style="border-bottom: 1px solid #875A7B; padding: 15px; display: flex; justify-content: space-between; align-items: center;"> | 
				
			|||
        <img src="assets/misc/cybrosys-logo.png" width="42" height="42" | 
				
			|||
             style="width: 42px; height: 42px;"/> | 
				
			|||
        <div> | 
				
			|||
            <div | 
				
			|||
                    style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			|||
                    class="mr-2"> | 
				
			|||
                <i class="fa fa-check mr-1"></i>Community | 
				
			|||
            </div> | 
				
			|||
            <div | 
				
			|||
                    style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			|||
                    class="mr-2"> | 
				
			|||
                <i class="fa fa-check mr-1"></i>Enterprise | 
				
			|||
            </div> | 
				
			|||
            <div | 
				
			|||
                    style="color: #7C7BAD; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			|||
                    class="mr-2"> | 
				
			|||
                <i class="fa fa-check mr-1"></i>Odoo Sh | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
<div class="container" style="padding: 0rem 1.5rem 4rem !important"> | 
				
			|||
    <div class="row" style="height: 900px !important;"> | 
				
			|||
        <div class="col-sm-12 col-md-12 col-lg-12" | 
				
			|||
             style="padding: 4rem 1rem !important; background-color: #714B67 !important; height: 600px !important; border-radius: 20px !important;"> | 
				
			|||
            <h1 | 
				
			|||
                    style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #FFFFFF !important;  font-size: 3.5rem !important; text-align: center !important;"> | 
				
			|||
                Add Multiple Products To Invoice/Bill</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;"> | 
				
			|||
                Add Multiple Products To Customer Invoice Or Vendor Bill | 
				
			|||
            </p> | 
				
			|||
            <img src="./assets/screenshots/hero.gif" class="img-responsive" | 
				
			|||
                 width="100%" height="auto"/> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-md-12" | 
				
			|||
             style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important"> | 
				
			|||
            <h2 | 
				
			|||
                    style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | 
				
			|||
                <i class="fa fa-compass mr-2"></i>Explore this module | 
				
			|||
            </h2> | 
				
			|||
        </div> | 
				
			|||
        <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;"> | 
				
			|||
                Add Multiple Products to Invoice/Bill module provides an easy | 
				
			|||
                way to add multiple products to the corresponding customer | 
				
			|||
                invoice or vendor bill. Moreover, you can see all the products | 
				
			|||
                in list, kanban and also in the form view. Furthermore, you | 
				
			|||
                can see the recent invoice/bill history of the selected product.</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;"> | 
				
			|||
                    Smart button in customer invoice and vendor bill form view | 
				
			|||
                    to select products.</h4> | 
				
			|||
                <p | 
				
			|||
                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                    A definite Smart button in the form view of the customer | 
				
			|||
                    invoice and vendor bill helps you to select multiple | 
				
			|||
                    products to be directly added to the invoice or bill.</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;"> | 
				
			|||
                    Displays products in multiple views.</h4> | 
				
			|||
                <p | 
				
			|||
                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                    Displays every product which have been defined in your | 
				
			|||
                    platform in Kanban, List and Form view.</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;"> | 
				
			|||
                    Displays Recent Invoice and Bill History.</h4> | 
				
			|||
                <p | 
				
			|||
                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                    Displays recent customer invoice and vendor bill history of | 
				
			|||
                    the selected product in the wizard window.</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;"> | 
				
			|||
                    Option to filter out the Invoice/Bill History.</h4> | 
				
			|||
                <p | 
				
			|||
                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                    Option to view recent invoice/billing history based on the | 
				
			|||
                    date selected.</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;"> | 
				
			|||
                    Provision to Add Product Details.</h4> | 
				
			|||
                <p | 
				
			|||
                        style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                    Provision to add product details such as quantity of the | 
				
			|||
                    product to be invoiced/billed from the selected | 
				
			|||
                    product wizard.</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;"> | 
				
			|||
                Smart Button in Customer Invoice and Vendor Bill form view</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                Smart button in invoice and vendor bill form view to select | 
				
			|||
                multiple products directly to the invoice/bill. | 
				
			|||
                Moreover, the button will be visible only for invoice or bill in | 
				
			|||
                the draft state.</p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice1.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice2.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-12 my-3"> | 
				
			|||
            <h4 class="mt-3" | 
				
			|||
                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			|||
                Display Products in Kanban View</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                Add to Invoice/Bill and Update Quantity button in the Kanban | 
				
			|||
                view. | 
				
			|||
                Click Add to Invoice/Bill to add the product directly to the | 
				
			|||
                invoice/bill with one quantity and default price. | 
				
			|||
                Click Change Quantity to add the product to the invoice/bill via | 
				
			|||
                changing price and quantity. A wizard window | 
				
			|||
                will appear in the screen to change price and quantity. | 
				
			|||
            </p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice3.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-12 my-3"> | 
				
			|||
            <h4 class="mt-3" | 
				
			|||
                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			|||
                Display Products in List view</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                A plus icon to add the product directly to the invoice/bill with | 
				
			|||
                one quantity and default price. | 
				
			|||
                A list icon to add the product to the invoice/bill via changing | 
				
			|||
                price and quantity. A wizard window will appear | 
				
			|||
                in the screen to change price and quantity. | 
				
			|||
            </p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice4.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        <div class="col-lg-12 my-3"> | 
				
			|||
            <h4 class="mt-3" | 
				
			|||
                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			|||
                Product Form View</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                Press the button "Add to Invoice/Bill" to add the product | 
				
			|||
                directly to the invoice/bill. | 
				
			|||
                Press the list icon to add the product to the invoice/bill by | 
				
			|||
                changing price and quantity. | 
				
			|||
            </p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice5.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-12 my-3"> | 
				
			|||
            <h4 class="mt-3" | 
				
			|||
                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			|||
                Update Quantity Wizard</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                Where User Can Change Price and Quantity. | 
				
			|||
                The wizard window also shows the previous invoice/bill history | 
				
			|||
                of the selected product. | 
				
			|||
                You can choose the form date of the previous invoice/bill | 
				
			|||
                history. | 
				
			|||
                You can decide how many rows (sequence) of invoice/bill history | 
				
			|||
                should be shown. | 
				
			|||
            </p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice6.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="col-lg-12 my-3"> | 
				
			|||
            <h4 class="mt-3" | 
				
			|||
                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			|||
                Products Added to Invoice/Bill</h4> | 
				
			|||
            <p | 
				
			|||
                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			|||
                Selected products will be inserted to the move lines of opened | 
				
			|||
                invoice/bill. | 
				
			|||
            </p> | 
				
			|||
            <img src="assets/screenshots/product_to_invoice7.png" | 
				
			|||
                 class="img-responsive img-thumbnail border" width="100%" | 
				
			|||
                 height="auto"/> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <!-- RELATED PRODUCTS --> | 
				
			|||
    <div class="d-flex align-items-center" | 
				
			|||
         style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
        <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
             style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
            <img src="assets/misc/categories.png"/> | 
				
			|||
        </div> | 
				
			|||
        <h2 class="mt-2" | 
				
			|||
            style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
            Related | 
				
			|||
            Products | 
				
			|||
        </h2> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-sm-12"> | 
				
			|||
            <div id="demo1" class="row carousel slide" data-ride="carousel"> | 
				
			|||
                <!-- The slideshow --> | 
				
			|||
                <div class="carousel-inner" style="padding: 30px;"> | 
				
			|||
                    <div class="carousel-item" style="min-height: 198.656px;"> | 
				
			|||
                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                             style="float:left"> | 
				
			|||
                            <a href="https://apps.odoo.com/apps/modules/16.0/odoo_website_helpdesk/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/11.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/16.0/website_product_attachments/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/12.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/16.0/insta_feed_snippet/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/13.png"> | 
				
			|||
                                </div> | 
				
			|||
                            </a> | 
				
			|||
                        </div> | 
				
			|||
                    </div> | 
				
			|||
                    <div class="carousel-item active" | 
				
			|||
                         style="min-height: 198.656px;"> | 
				
			|||
                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			|||
                             style="float:left"> | 
				
			|||
                            <a href="https://apps.odoo.com/apps/modules/16.0/customer_geolocation/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/14.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/16.0/product_visibility_website/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/15.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/16.0/website_hide_variants/" | 
				
			|||
                               target="_blank"> | 
				
			|||
                                <div style="border-radius:10px"> | 
				
			|||
                                    <img class="img img-responsive center-block" | 
				
			|||
                                         style="border-radius: 0px;" | 
				
			|||
                                         src="assets/modules/16.png"> | 
				
			|||
                                </div> | 
				
			|||
                            </a> | 
				
			|||
                        </div> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <!-- Left and right controls --> | 
				
			|||
                <a class="carousel-control-prev" href="#demo1" data-slide="prev" | 
				
			|||
                   style="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="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 RELATED PRODUCTS --> | 
				
			|||
 | 
				
			|||
    <!-- OUR SERVICES --> | 
				
			|||
 | 
				
			|||
    <div class="d-flex align-items-center" | 
				
			|||
         style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
        <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
             style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
            <img src="assets/misc/star.png"/> | 
				
			|||
        </div> | 
				
			|||
        <h2 class="mt-2" | 
				
			|||
            style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
            Our Services | 
				
			|||
        </h2> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <div class="container my-5"> | 
				
			|||
        <div class="row"> | 
				
			|||
            <div class="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> | 
				
			|||
 | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <!-- END OF  OUR SERVICES --> | 
				
			|||
 | 
				
			|||
    <!-- OUR INDUSTRIES --> | 
				
			|||
 | 
				
			|||
    <div class="d-flex align-items-center" | 
				
			|||
         style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
        <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
             style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
            <img src="assets/misc/corporate.png"/> | 
				
			|||
        </div> | 
				
			|||
        <h2 class="mt-2" | 
				
			|||
            style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
            Our | 
				
			|||
            Industries | 
				
			|||
        </h2> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <div class="container my-5"> | 
				
			|||
        <div class="row"> | 
				
			|||
            <div class="col-lg-3"> | 
				
			|||
                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			|||
                     style="background-color: #f6f8f9 !important; border-radius: 0px; padding: 2rem !important; height: 250px !important;"> | 
				
			|||
                    <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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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: 0px; 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> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <!-- END OF OUR INDUSTRIES --> | 
				
			|||
 | 
				
			|||
    <!-- SUPPORT --> | 
				
			|||
    <div class="d-flex align-items-center" | 
				
			|||
         style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			|||
        <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			|||
             style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			|||
            <img src="assets/misc/customer-support.png"/> | 
				
			|||
        </div> | 
				
			|||
        <h2 class="mt-2" | 
				
			|||
            style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			|||
            Support | 
				
			|||
        </h2> | 
				
			|||
    </div> | 
				
			|||
    <div class="container mt-5"> | 
				
			|||
        <div class="row"> | 
				
			|||
            <div class="col-sm-12 col-md-6"> | 
				
			|||
                <div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;"> | 
				
			|||
                    <div class="mr-4 d-flex justify-content-center align-items-center" | 
				
			|||
                         style="background-color: #714B67; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;"> | 
				
			|||
                        <img src="assets/misc/support.png" height="48" | 
				
			|||
                             width="48" | 
				
			|||
                             style="width: 42px; height: 42px;"/> | 
				
			|||
                    </div> | 
				
			|||
                    <div> | 
				
			|||
                        <h4>Need Help?</h4> | 
				
			|||
                        <p style="line-height: 100%;">Got questions or need | 
				
			|||
                            help? | 
				
			|||
                            Get in touch.</p> | 
				
			|||
                        <a href="mailto:odoo@cybrosys.com"> | 
				
			|||
                            <p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;"> | 
				
			|||
                                odoo@cybrosys.com</p> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="col-sm-12 col-md-6"> | 
				
			|||
                <div style="background-color: #F6F8F9; padding: 30px; display: flex; align-items: center;"> | 
				
			|||
                    <div class="mr-4 d-flex justify-content-center align-items-center" | 
				
			|||
                         style="background-color: #2AC44D; display: inline-block; height: 70px; width: 70px; display: flex; align-items: center; justify-content: center;"> | 
				
			|||
                        <img src="assets/misc/whatsapp.png" height="52" | 
				
			|||
                             width="52" | 
				
			|||
                             style="width: 52px; height: 52px;"/> | 
				
			|||
                    </div> | 
				
			|||
                    <div> | 
				
			|||
                        <h4>WhatsApp</h4> | 
				
			|||
                        <p style="line-height: 100%;">Say hi to us on | 
				
			|||
                            WhatsApp!</p> | 
				
			|||
                        <a href="https://api.whatsapp.com/send?phone=918606827707"> | 
				
			|||
                            <p style="font-weight: 400; font-size: 28px; line-height: 80%; color: #714B67;"> | 
				
			|||
                                +91 86068 | 
				
			|||
                                27707</p> | 
				
			|||
                        </a> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <div class="row"> | 
				
			|||
            <div class="col-sm-12 my-5 d-flex justify-content-center align-items-center"> | 
				
			|||
                <img src="assets/misc/logo.png" width="144" height="31" | 
				
			|||
                     style="width:144px; height: 31px; margin-top: 40px;"/> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
</div> | 
				
			|||
</div> | 
				
			|||
@ -0,0 +1,21 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Override the account move form view --> | 
				
			|||
    <record id="view_move_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">account.move.view.form.inherit.product.to.invoice | 
				
			|||
        </field> | 
				
			|||
        <field name="model">account.move</field> | 
				
			|||
        <field name="inherit_id" ref="account.view_move_form"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <!-- Insert button inside the button_box div --> | 
				
			|||
            <xpath expr="//div[@name='button_box']" position="inside"> | 
				
			|||
                <!-- Add Products button --> | 
				
			|||
                <button name="action_add_product" type="object" | 
				
			|||
                        class="oe_stat_button" icon="fa-plus" | 
				
			|||
                        attrs="{'invisible': ['|', ('state', '!=', 'draft'), ('move_type', 'not in', ('in_invoice', 'out_invoice'))]}"> | 
				
			|||
                    <span>Add Products</span> | 
				
			|||
                </button> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,70 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Override the product_product tree view --> | 
				
			|||
    <record id="product_product_tree_view" model="ir.ui.view"> | 
				
			|||
        <field name="name"> | 
				
			|||
            product.product.view.tree.inherit.product.to.invoice | 
				
			|||
        </field> | 
				
			|||
        <field name="model">product.product</field> | 
				
			|||
        <field name="inherit_id" ref="product.product_product_tree_view"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <!-- Insert buttons before the default_code field --> | 
				
			|||
            <xpath expr="//field[@name='default_code']" position="before"> | 
				
			|||
                <button class="o_field_cell" name="action_add_to_invoice" | 
				
			|||
                        type="object" icon="fa-plus" | 
				
			|||
                        attrs="{'invisible': [('add_to_invoice', '=', False)]}"/> | 
				
			|||
                <button name="action_change_qty" type="object" icon="fa-list" | 
				
			|||
                        attrs="{'invisible': [('add_to_invoice', '=', False)]}"/> | 
				
			|||
                <field name="add_to_invoice" invisible="1"/> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Override the product_product kanban view --> | 
				
			|||
    <record id="product_kanban_view" model="ir.ui.view"> | 
				
			|||
        <field name="name"> | 
				
			|||
            product.product.view.kanban.inherit.product.to.invoice | 
				
			|||
        </field> | 
				
			|||
        <field name="model">product.product</field> | 
				
			|||
        <field name="inherit_id" ref="product.product_kanban_view"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <!-- Insert custom div after the oe_kanban_details div --> | 
				
			|||
            <xpath expr="//div[hasclass('oe_kanban_details')]" | 
				
			|||
                   position="after"> | 
				
			|||
                <t t-if="context.add_to_invoice"> | 
				
			|||
                    <div class="o_kanban_record_bottom" style="width: 100%;"> | 
				
			|||
                        <div class="oe_kanban_bottom_left"> | 
				
			|||
                            <a name="action_add_to_invoice" type="object"> | 
				
			|||
                                <i class="fa fa-plus"/>Add to Invoice/Bill | 
				
			|||
                            </a> | 
				
			|||
                        </div> | 
				
			|||
                        <div class="oe_kanban_bottom_right"> | 
				
			|||
                            <a name="action_change_qty" type="object"> | 
				
			|||
                                <i class="fa fa-list"/>Change Quantity | 
				
			|||
                            </a> | 
				
			|||
                        </div> | 
				
			|||
                    </div> | 
				
			|||
                </t> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
    <!-- Override the product_product form view --> | 
				
			|||
    <record id="product_normal_form_view" model="ir.ui.view"> | 
				
			|||
        <field name="name"> | 
				
			|||
            product.product.view.form.inherit.product.to.invoice | 
				
			|||
        </field> | 
				
			|||
        <field name="model">product.product</field> | 
				
			|||
        <field name="inherit_id" ref="product.product_normal_form_view"/> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <!-- Insert buttons inside the header section --> | 
				
			|||
            <xpath expr="//header" position="inside"> | 
				
			|||
                <button name="action_add_to_invoice" type="object" | 
				
			|||
                        string="Add to Invoice/Bill" class="oe_highlight" | 
				
			|||
                        icon="fa-plus" | 
				
			|||
                        invisible="not context.get('add_to_invoice')"/> | 
				
			|||
                <button name="action_change_qty" type="object" icon="fa-list" | 
				
			|||
                        help="Update Quantity" | 
				
			|||
                        invisible="not context.get('add_to_invoice')"/> | 
				
			|||
            </xpath> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP (<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from . import invoice_product_details | 
				
			|||
from . import product_invoice_history | 
				
			|||
@ -0,0 +1,99 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP (<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from datetime import timedelta | 
				
			|||
from odoo import api, fields, models, _ | 
				
			|||
from odoo.exceptions import UserError | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class InvoiceProductDetails(models.TransientModel): | 
				
			|||
    """ Wizard model to display invoice product details.""" | 
				
			|||
    _name = 'invoice.product.details' | 
				
			|||
    _description = 'Invoice Product Details' | 
				
			|||
 | 
				
			|||
    product_id = fields.Many2one('product.product', string='Product', | 
				
			|||
                                 readonly=True, | 
				
			|||
                                 help="Select the product for this record.") | 
				
			|||
    qty = fields.Float(string='Quantity', default=1, | 
				
			|||
                       help="Enter the quantity of the selected product.") | 
				
			|||
    account_move_id = fields.Many2one('account.move', readonly=True, | 
				
			|||
                                      help="Link to the corresponding " | 
				
			|||
                                           "account move.") | 
				
			|||
    price_unit = fields.Float(string='Unit Price', | 
				
			|||
                              help="Enter the unit price of the product.") | 
				
			|||
    invoice_history_ids = fields.One2many('product.invoice.history', | 
				
			|||
                                          'product_details_id', readonly=True, | 
				
			|||
                                          help="History of invoices related" | 
				
			|||
                                               " to this product.") | 
				
			|||
    date_from = fields.Date(default=fields.Date.today() - timedelta(days=30), | 
				
			|||
                            help="Default date from which a record is " | 
				
			|||
                                 "created.") | 
				
			|||
    limit = fields.Integer(string='Limit', default=20, | 
				
			|||
                           help="Set the limit for product") | 
				
			|||
 | 
				
			|||
    @api.onchange('date_from', 'limit') | 
				
			|||
    def _onchange_date_from(self): | 
				
			|||
        """Update invoice history based on selected date range and limit. | 
				
			|||
        This method is triggered when the 'date_from' or 'limit' field changes. | 
				
			|||
        It retrieves invoice lines matching the specified criteria and | 
				
			|||
         updates the invoice history. """ | 
				
			|||
        invoice_lines = self.env['account.move.line'].search([ | 
				
			|||
            ('product_id', '=', self.product_id.id), | 
				
			|||
            ('move_id.state', '=', 'posted'), | 
				
			|||
            ('move_id.invoice_date', '>=', self.date_from), | 
				
			|||
            ('move_id.move_type', 'in', ('out_invoice', 'in_invoice')) | 
				
			|||
        ], limit=self.limit) | 
				
			|||
        vals = [(5, 0, 0)] | 
				
			|||
        for line in invoice_lines: | 
				
			|||
            vals.append((0, 0, { | 
				
			|||
                'date': line.move_id.invoice_date, | 
				
			|||
                'partner_id': line.move_id.partner_id.id, | 
				
			|||
                'qty': line.quantity, | 
				
			|||
                'account_move_number': line.move_id.name, | 
				
			|||
                'price_unit': line.price_unit, | 
				
			|||
                'total': line.price_subtotal, | 
				
			|||
                'type': line.move_id.move_type, | 
				
			|||
                'move_id': line.move_id.id | 
				
			|||
            })) | 
				
			|||
        self.invoice_history_ids = vals | 
				
			|||
 | 
				
			|||
    def action_add_to_invoice(self): | 
				
			|||
        """Add the product to the invoice. | 
				
			|||
         This method is used to add the current product to the associated | 
				
			|||
         invoice.It creates an invoice line and adds it to the invoice.""" | 
				
			|||
        account_id = self.product_id._get_invoice_account(self.account_move_id) | 
				
			|||
        tax_ids = self.product_id._get_invoice_taxes \ | 
				
			|||
            (self.account_move_id, account_id) | 
				
			|||
        invoice_line_vals = { | 
				
			|||
            'product_id': self.product_id.id, | 
				
			|||
            'product_uom_id': self.product_id.uom_id.id, | 
				
			|||
            'quantity': self.qty, | 
				
			|||
            'price_unit': self.price_unit, | 
				
			|||
            'account_id': account_id.id, | 
				
			|||
            'tax_ids': tax_ids, | 
				
			|||
            'move_id': self.account_move_id.id, | 
				
			|||
        } | 
				
			|||
        invoice_line = self.env['account.move.line'].create(invoice_line_vals) | 
				
			|||
        if invoice_line: | 
				
			|||
            self.account_move_id.write( | 
				
			|||
                {'invoice_line_ids': [(4, invoice_line.id)]}) | 
				
			|||
        else: | 
				
			|||
            raise UserError(_("Failed to create invoice line.")) | 
				
			|||
@ -0,0 +1,73 @@ | 
				
			|||
<?xml version="1.0" encoding="UTF-8" ?> | 
				
			|||
<odoo> | 
				
			|||
    <!-- Define the view for the invoice product details wizard --> | 
				
			|||
    <record id="invoice_product_details_view_form" model="ir.ui.view"> | 
				
			|||
        <field name="name">invoice.product.details.view.form</field> | 
				
			|||
        <field name="model">invoice.product.details</field> | 
				
			|||
        <field name="arch" type="xml"> | 
				
			|||
            <!-- Form view for the product details --> | 
				
			|||
            <form string="Product Details"> | 
				
			|||
                <group> | 
				
			|||
                    <group> | 
				
			|||
                        <field name="product_id"/> | 
				
			|||
                        <field name="qty"/> | 
				
			|||
                    </group> | 
				
			|||
                    <group> | 
				
			|||
                        <field name="account_move_id"/> | 
				
			|||
                        <field name="price_unit"/> | 
				
			|||
                    </group> | 
				
			|||
                </group> | 
				
			|||
                <group/> | 
				
			|||
                <group string="Recent Invoice/Bill History"/> | 
				
			|||
                <group> | 
				
			|||
                    <group> | 
				
			|||
                        <field name="date_from"/> | 
				
			|||
                    </group> | 
				
			|||
                    <group> | 
				
			|||
                        <field name="limit"/> | 
				
			|||
                    </group> | 
				
			|||
                </group> | 
				
			|||
                <notebook> | 
				
			|||
                    <page string="History"> | 
				
			|||
                        <field name="invoice_history_ids" widget="on2many" | 
				
			|||
                               nolabel="1"> | 
				
			|||
                            <tree> | 
				
			|||
                                <field name="type"/> | 
				
			|||
                                <field name="date"/> | 
				
			|||
                                <field name="account_move_number"/> | 
				
			|||
                                <field name="partner_id"/> | 
				
			|||
                                <field name="qty"/> | 
				
			|||
                                <field name="price_unit"/> | 
				
			|||
                                <field name="total"/> | 
				
			|||
                            </tree> | 
				
			|||
                            <form> | 
				
			|||
                                <group> | 
				
			|||
                                    <group> | 
				
			|||
                                        <field name="type" readonly="1"/> | 
				
			|||
                                        <field name="move_id" readonly="1"/> | 
				
			|||
                                        <field name="partner_id" readonly="1"/> | 
				
			|||
                                        <field name="date" readonly="1"/> | 
				
			|||
                                    </group> | 
				
			|||
                                    <group> | 
				
			|||
                                        <field name="qty" readonly="1"/> | 
				
			|||
                                        <field name="price_unit" readonly="1"/> | 
				
			|||
                                        <field name="total" readonly="1"/> | 
				
			|||
                                    </group> | 
				
			|||
                                </group> | 
				
			|||
                                <footer> | 
				
			|||
                                    <button string="Close" class="oe_highlight" | 
				
			|||
                                            special="cancel"/> | 
				
			|||
                                </footer> | 
				
			|||
                            </form> | 
				
			|||
                        </field> | 
				
			|||
                    </page> | 
				
			|||
                </notebook> | 
				
			|||
                <footer> | 
				
			|||
                    <button name="action_add_to_invoice" string="Add to Invoice" | 
				
			|||
                            type="object" class="oe_highlight"/> | 
				
			|||
                    <button string="Cancel" special="cancel"/> | 
				
			|||
                </footer> | 
				
			|||
            </form> | 
				
			|||
        </field> | 
				
			|||
    </record> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,53 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Jumana Jabin MP (<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
from odoo import fields, models | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class ProductInvoiceHistory(models.TransientModel): | 
				
			|||
    """Product Invoice History model for storing invoice line details.""" | 
				
			|||
    _name = 'product.invoice.history' | 
				
			|||
    _description = 'Product Invoice History' | 
				
			|||
 | 
				
			|||
    product_details_id = fields.Many2one('invoice.product.details', | 
				
			|||
                                         string='Product Details', | 
				
			|||
                                         help='The associated product' | 
				
			|||
                                              ' details for the invoice') | 
				
			|||
    date = fields.Datetime(string='Date', help='The date of the invoice') | 
				
			|||
    move_id = fields.Many2one('account.move', string='Invoice/Bill', | 
				
			|||
                              help='The associated account move for the ' | 
				
			|||
                                   'invoice') | 
				
			|||
    account_move_number = fields.Char(string='Invoice/Bill No', | 
				
			|||
                                      help='The number of the invoice/bill') | 
				
			|||
    partner_id = fields.Many2one('res.partner', string='Customer/Vendor', | 
				
			|||
                                 help='The customer or vendor associated ' | 
				
			|||
                                      'with the invoice') | 
				
			|||
    price_unit = fields.Float(string='Unit Price', | 
				
			|||
                              help='The unit price of the product or service') | 
				
			|||
    total = fields.Float(string='Total', | 
				
			|||
                         help='The total amount for the invoice') | 
				
			|||
    qty = fields.Float(string='Quantity', | 
				
			|||
                       help='The quantity of the product or service') | 
				
			|||
    type = fields.Selection([ | 
				
			|||
        ('out_invoice', 'Customer Invoice'), | 
				
			|||
        ('in_invoice', 'Vendor Bill') | 
				
			|||
    ], string='Type', | 
				
			|||
        help='The type of the invoice (customer invoice or vendor bill)') | 
				
			|||