@ -0,0 +1,26 @@ | 
				
			|||||
 | 
					Costing Method:Last Purchase Price | 
				
			||||
 | 
					================================== | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					This module introduces a new costing method to Odoo. That will update a product's cost price when a new purchase | 
				
			||||
 | 
					happens with the purchasing rate. if you enables automatic stock valuation and provided a price difference account, | 
				
			||||
 | 
					this module will generate stock journal entry to update the stock value according to the price change. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Installation | 
				
			||||
 | 
					============ | 
				
			||||
 | 
					- www.odoo.com/documentation/14.0/setup/install.html | 
				
			||||
 | 
					- Install our custom addon | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Bug Tracker | 
				
			||||
 | 
					=========== | 
				
			||||
 | 
					Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					======= | 
				
			||||
 | 
					* Cybrosys Techno Solutions <https://www.cybrosys.com> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Author | 
				
			||||
 | 
					------ | 
				
			||||
 | 
					* Fasluca <faslu@cybrosys.in> | 
				
			||||
 | 
					* Sreenath | 
				
			||||
 | 
					* Shijin | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: fasluca(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					from . import models | 
				
			||||
 | 
					
 | 
				
			||||
@ -0,0 +1,42 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					#    Copyright (C) 2018-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: fasluca(<https://www.cybrosys.com>) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is free software: you can modify | 
				
			||||
 | 
					#    it under the terms of the GNU Affero General Public License (AGPL) as | 
				
			||||
 | 
					#    published by the Free Software Foundation, either version 3 of the | 
				
			||||
 | 
					#    License, or (at your option) any later version. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU Affero General Public License for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU Affero General Public License | 
				
			||||
 | 
					#    along with this program.  If not, see <https://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################### | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': 'Costing method: Last Purchase Price', | 
				
			||||
 | 
					    'version': '14.0.1.0.1', | 
				
			||||
 | 
					    'category': 'Inventory', | 
				
			||||
 | 
					    'summary': "Introducing new costing method in Odoo 'last purchase price'", | 
				
			||||
 | 
					    'author': 'Cybrosys Techno solutions', | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': 'https://www.openhrms.com', | 
				
			||||
 | 
					    'description': """Introducing new costing method in Odoo 'last purchase price'""", | 
				
			||||
 | 
					    'depends': ['stock', | 
				
			||||
 | 
					                'stock_account', | 
				
			||||
 | 
					                'purchase' | 
				
			||||
 | 
					                ], | 
				
			||||
 | 
					    'images': ['static/description/banner.png'], | 
				
			||||
 | 
					    'license': 'AGPL-3', | 
				
			||||
 | 
					    'application': False, | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,3 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from . import stock | 
				
			||||
 | 
					from . import product | 
				
			||||
@ -0,0 +1,156 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from odoo import api, fields, models, _ | 
				
			||||
 | 
					from odoo.exceptions import UserError | 
				
			||||
 | 
					from odoo.tools import float_is_zero | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ProductCategory(models.Model): | 
				
			||||
 | 
					    _inherit = "product.category" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    property_cost_method = fields.Selection([ | 
				
			||||
 | 
					        ('standard', 'Standard Price'), | 
				
			||||
 | 
					        ('last', 'Last Purchase Price'), | 
				
			||||
 | 
					        ('fifo', 'First In First Out (FIFO)'), | 
				
			||||
 | 
					        ('average', 'Average Cost (AVCO)')], string='Costing Method', | 
				
			||||
 | 
					        company_dependent=True, copy=True, | 
				
			||||
 | 
					        help="""Standard Price: The products are valued at their standard cost defined on the product. | 
				
			||||
 | 
					            Average Cost (AVCO): The products are valued at weighted average cost. | 
				
			||||
 | 
					            First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first. | 
				
			||||
 | 
					            Last Purchase Price: The products are valued same as 'Standard Price' Method, But standard price defined on the product will updated automatically with last purchase price.""") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ProductTemplate(models.Model): | 
				
			||||
 | 
					    _inherit = 'product.template' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    property_cost_method = fields.Selection([ | 
				
			||||
 | 
					        ('standard', 'Standard Price'), | 
				
			||||
 | 
					        ('last', 'Last Purchase Price'), | 
				
			||||
 | 
					        ('fifo', 'First In First Out (FIFO)'), | 
				
			||||
 | 
					        ('average', 'Average Cost (AVCO)')], string='Costing Method', | 
				
			||||
 | 
					        company_dependent=True, copy=True, | 
				
			||||
 | 
					        help="""Standard Price: The products are valued at their standard cost defined on the product. | 
				
			||||
 | 
					        Average Cost (AVCO): The products are valued at weighted average cost. | 
				
			||||
 | 
					        First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first. | 
				
			||||
 | 
					        Last Purchase Price: The products are valued same as 'Standard Price' Method, But standard price defined on the product will be updated automatically with last purchase price.""") | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					     | 
				
			||||
 | 
					    def _set_cost_method(self): | 
				
			||||
 | 
					        # When going from FIFO to AVCO or to standard, we update the standard price with the | 
				
			||||
 | 
					        # average value in stock. | 
				
			||||
 | 
					        if self.property_cost_method == 'fifo' and self.cost_method in ['average', 'standard', 'last']: | 
				
			||||
 | 
					            # Cannot use the `stock_value` computed field as it's already invalidated when | 
				
			||||
 | 
					            # entering this method. | 
				
			||||
 | 
					            valuation = sum([variant._sum_remaining_values()[0] for variant in self.product_variant_ids]) | 
				
			||||
 | 
					            qty_available = self.with_context(company_owned=True).qty_available | 
				
			||||
 | 
					            if qty_available: | 
				
			||||
 | 
					                self.standard_price = valuation / qty_available | 
				
			||||
 | 
					        return self.write({'property_cost_method': self.cost_method}) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ProductProduct(models.Model): | 
				
			||||
 | 
					    _inherit = 'product.product' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def create_price_change_account_move(self, new_price, account_id, company_id, origin): | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					            """ | 
				
			||||
 | 
					        AccountMove = self.env['account.move'] | 
				
			||||
 | 
					        product_accounts = {product.id: product.product_tmpl_id.get_product_accounts() for product in self} | 
				
			||||
 | 
					        for product in self.with_context().filtered(lambda r: r.valuation == 'real_time'): | 
				
			||||
 | 
					            diff = product.standard_price - new_price | 
				
			||||
 | 
					            if not float_is_zero(diff, precision_rounding=product.currency_id.rounding): | 
				
			||||
 | 
					                if not product_accounts[product.id].get('stock_valuation', False): | 
				
			||||
 | 
					                    raise UserError(_('You don\'t have any stock valuation account defined on your product category. You must define one before processing this operation.')) | 
				
			||||
 | 
					                qty_available = product.qty_available | 
				
			||||
 | 
					                if qty_available: | 
				
			||||
 | 
					                    # Accounting Entries | 
				
			||||
 | 
					                    if diff * qty_available > 0: | 
				
			||||
 | 
					                        debit_account_id = account_id | 
				
			||||
 | 
					                        credit_account_id = product_accounts[product.id]['stock_valuation'].id | 
				
			||||
 | 
					                    else: | 
				
			||||
 | 
					                        debit_account_id = product_accounts[product.id]['stock_valuation'].id | 
				
			||||
 | 
					                        credit_account_id = account_id | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    move_vals = { | 
				
			||||
 | 
					                        'journal_id': product_accounts[product.id]['stock_journal'].id, | 
				
			||||
 | 
					                        'company_id': company_id, | 
				
			||||
 | 
					                        'ref': product.default_code, | 
				
			||||
 | 
					                        'line_ids': [(0, 0, { | 
				
			||||
 | 
					                            'name': _('%s changed cost from %s to %s - %s') % (origin, product.standard_price, new_price, product.display_name), | 
				
			||||
 | 
					                            'account_id': debit_account_id, | 
				
			||||
 | 
					                            'debit': abs(diff * qty_available), | 
				
			||||
 | 
					                            'credit': 0, | 
				
			||||
 | 
					                            'product_id': product.id, | 
				
			||||
 | 
					                        }), (0, 0, { | 
				
			||||
 | 
					                            'name': _('%s changed cost from %s to %s - %s') % (origin, product.standard_price, new_price, product.display_name), | 
				
			||||
 | 
					                            'account_id': credit_account_id, | 
				
			||||
 | 
					                            'debit': 0, | 
				
			||||
 | 
					                            'credit': abs(diff * qty_available), | 
				
			||||
 | 
					                            'product_id': product.id, | 
				
			||||
 | 
					                        })], | 
				
			||||
 | 
					                    } | 
				
			||||
 | 
					                    move = AccountMove.create(move_vals) | 
				
			||||
 | 
					                    move.post() | 
				
			||||
 | 
					        return True | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.depends('stock_move_ids.product_qty', 'stock_move_ids.state', 'stock_move_ids.remaining_value', | 
				
			||||
 | 
					                 'product_tmpl_id.cost_method', 'product_tmpl_id.standard_price', 'product_tmpl_id.property_valuation', | 
				
			||||
 | 
					                 'product_tmpl_id.categ_id.property_valuation') | 
				
			||||
 | 
					    def _compute_stock_value(self): | 
				
			||||
 | 
					        StockMove = self.env['stock.move'] | 
				
			||||
 | 
					        to_date = self.env.context.get('to_date') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        self.env['account.move.line'].check_access_rights('read') | 
				
			||||
 | 
					        fifo_automated_values = {} | 
				
			||||
 | 
					        query = """SELECT aml.product_id, aml.account_id, sum(aml.debit) - sum(aml.credit), sum(quantity), array_agg(aml.id) | 
				
			||||
 | 
					                         FROM account_move_line AS aml | 
				
			||||
 | 
					                        WHERE aml.product_id IS NOT NULL AND aml.company_id=%%s %s | 
				
			||||
 | 
					                     GROUP BY aml.product_id, aml.account_id""" | 
				
			||||
 | 
					        params = (self.env.user.company_id.id,) | 
				
			||||
 | 
					        if to_date: | 
				
			||||
 | 
					            query = query % ('AND aml.date <= %s',) | 
				
			||||
 | 
					            params = params + (to_date,) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            query = query % ('',) | 
				
			||||
 | 
					        self.env.cr.execute(query, params=params) | 
				
			||||
 | 
					        res = self.env.cr.fetchall() | 
				
			||||
 | 
					        for row in res: | 
				
			||||
 | 
					            fifo_automated_values[(row[0], row[1])] = (row[2], row[3], list(row[4])) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        for product in self: | 
				
			||||
 | 
					            if product.cost_method in ['standard', 'average', 'last']: | 
				
			||||
 | 
					                qty_available = product.with_context(company_owned=True, owner_id=False).qty_available | 
				
			||||
 | 
					                price_used = product.standard_price | 
				
			||||
 | 
					                if to_date: | 
				
			||||
 | 
					                    price_used = product.get_history_price( | 
				
			||||
 | 
					                        self.env.user.company_id.id, | 
				
			||||
 | 
					                        date=to_date, | 
				
			||||
 | 
					                    ) | 
				
			||||
 | 
					                product.stock_value = price_used * qty_available | 
				
			||||
 | 
					                product.qty_at_date = qty_available | 
				
			||||
 | 
					            elif product.cost_method == 'fifo': | 
				
			||||
 | 
					                if to_date: | 
				
			||||
 | 
					                    if product.product_tmpl_id.valuation == 'manual_periodic': | 
				
			||||
 | 
					                        domain = [('product_id', '=', product.id), | 
				
			||||
 | 
					                                  ('date', '<=', to_date)] + StockMove._get_all_base_domain() | 
				
			||||
 | 
					                        moves = StockMove.search(domain) | 
				
			||||
 | 
					                        product.stock_value = sum(moves.mapped('value')) | 
				
			||||
 | 
					                        product.qty_at_date = product.with_context(company_owned=True, owner_id=False).qty_available | 
				
			||||
 | 
					                        product.stock_fifo_manual_move_ids = StockMove.browse(moves.ids) | 
				
			||||
 | 
					                    elif product.product_tmpl_id.valuation == 'real_time': | 
				
			||||
 | 
					                        valuation_account_id = product.categ_id.property_stock_valuation_account_id.id | 
				
			||||
 | 
					                        value, quantity, aml_ids = fifo_automated_values.get((product.id, valuation_account_id)) or ( | 
				
			||||
 | 
					                        0, 0, []) | 
				
			||||
 | 
					                        product.stock_value = value | 
				
			||||
 | 
					                        product.qty_at_date = quantity | 
				
			||||
 | 
					                        product.stock_fifo_real_time_aml_ids = self.env['account.move.line'].browse(aml_ids) | 
				
			||||
 | 
					                else: | 
				
			||||
 | 
					                    product.stock_value, moves = product._sum_remaining_values() | 
				
			||||
 | 
					                    product.qty_at_date = product.with_context(company_owned=True, owner_id=False).qty_available | 
				
			||||
 | 
					                    if product.product_tmpl_id.valuation == 'manual_periodic': | 
				
			||||
 | 
					                        product.stock_fifo_manual_move_ids = moves | 
				
			||||
 | 
					                    elif product.product_tmpl_id.valuation == 'real_time': | 
				
			||||
 | 
					                        valuation_account_id = product.categ_id.property_stock_valuation_account_id.id | 
				
			||||
 | 
					                        value, quantity, aml_ids = fifo_automated_values.get((product.id, valuation_account_id)) or ( | 
				
			||||
 | 
					                        0, 0, []) | 
				
			||||
 | 
					                        product.stock_fifo_real_time_aml_ids = self.env['account.move.line'].browse(aml_ids) | 
				
			||||
@ -0,0 +1,107 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					from collections import defaultdict | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					from odoo import api, models | 
				
			||||
 | 
					from odoo.exceptions import UserError | 
				
			||||
 | 
					from odoo.tools import float_is_zero | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class StockMove(models.Model): | 
				
			||||
 | 
					    _inherit = "stock.move" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def product_price_update_before_done(self, forced_qty=None): | 
				
			||||
 | 
					        tmpl_dict = defaultdict(lambda: 0.0) | 
				
			||||
 | 
					        # adapt standard price on incomming moves if the product cost_method is 'average' | 
				
			||||
 | 
					        std_price_update = {} | 
				
			||||
 | 
					        for move in self.filtered(lambda move: move.location_id.usage in ('supplier', 'production') and move.product_id.cost_method in ('average', 'last')): | 
				
			||||
 | 
					            product_tot_qty_available = move.product_id.qty_available + tmpl_dict[move.product_id.id] | 
				
			||||
 | 
					            rounding = move.product_id.uom_id.rounding | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            qty_done = 0.0 | 
				
			||||
 | 
					            if float_is_zero(product_tot_qty_available, precision_rounding=rounding): | 
				
			||||
 | 
					                new_std_price = move._get_price_unit() | 
				
			||||
 | 
					            elif float_is_zero(product_tot_qty_available + move.product_qty, precision_rounding=rounding) or \ | 
				
			||||
 | 
					                    float_is_zero(product_tot_qty_available + qty_done, precision_rounding=rounding): | 
				
			||||
 | 
					                new_std_price = move._get_price_unit() | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                # Get the standard price | 
				
			||||
 | 
					                if move.product_id.cost_method == 'average': | 
				
			||||
 | 
					                    amount_unit = std_price_update.get( | 
				
			||||
 | 
					                        (move.company_id.id, move.product_id.id)) or move.product_id.standard_price | 
				
			||||
 | 
					                    qty_done = move.product_uom._compute_quantity(move.quantity_done, move.product_id.uom_id) | 
				
			||||
 | 
					                    qty = forced_qty or qty_done | 
				
			||||
 | 
					                    new_std_price = ((amount_unit * product_tot_qty_available) + (move._get_price_unit() * qty)) / (product_tot_qty_available + qty_done) | 
				
			||||
 | 
					            if move.product_id.cost_method == 'last' and move.product_id.valuation == 'real_time': | 
				
			||||
 | 
					                new_std_price = move._get_price_unit() | 
				
			||||
 | 
					                products = self.env['product.product'].browse(move.product_id.id) | 
				
			||||
 | 
					                account_id = products.property_account_creditor_price_difference.id or products.categ_id.property_account_creditor_price_difference_categ.id | 
				
			||||
 | 
					                if not account_id: | 
				
			||||
 | 
					                    raise UserError(_('Configuration error. Please configure the price difference account on the product or its category to process this operation.')) | 
				
			||||
 | 
					                products.create_price_change_account_move(new_std_price, account_id, move.company_id.id, move.origin) | 
				
			||||
 | 
					            tmpl_dict[move.product_id.id] += qty_done | 
				
			||||
 | 
					            # Write the standard price, as SUPERUSER_ID because a warehouse manager may not have the right to write on products | 
				
			||||
 | 
					            move.product_id.with_context(force_company=move.company_id.id).sudo().write({'standard_price': new_std_price}) | 
				
			||||
 | 
					            std_price_update[move.company_id.id, move.product_id.id] = new_std_price | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class StockMoveLine(models.Model): | 
				
			||||
 | 
					    _inherit = 'stock.move.line' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def write(self, vals): | 
				
			||||
 | 
					        """ When editing a done stock.move.line, we impact the valuation. Users may increase or | 
				
			||||
 | 
					        decrease the `qty_done` field. There are three cost method available: standard, average | 
				
			||||
 | 
					        and fifo. We implement the logic in a similar way for standard and average: increase | 
				
			||||
 | 
					        or decrease the original value with the standard or average price of today. In fifo, we | 
				
			||||
 | 
					        have a different logic wheter the move is incoming or outgoing. If the move is incoming, we | 
				
			||||
 | 
					        update the value and remaining_value/qty with the unit price of the move. If the move is | 
				
			||||
 | 
					        outgoing and the user increases qty_done, we call _run_fifo and it'll consume layer(s) in | 
				
			||||
 | 
					        the stack the same way a new outgoing move would have done. If the move is outoing and the | 
				
			||||
 | 
					        user decreases qty_done, we either increase the last receipt candidate if one is found or | 
				
			||||
 | 
					        we decrease the value with the last fifo price. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        if 'qty_done' in vals: | 
				
			||||
 | 
					            moves_to_update = {} | 
				
			||||
 | 
					            for move_line in self.filtered( | 
				
			||||
 | 
					                    lambda ml: ml.state == 'done' and (ml.move_id._is_in() or ml.move_id._is_out())): | 
				
			||||
 | 
					                moves_to_update[move_line.move_id] = vals['qty_done'] - move_line.qty_done | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            for move_id, qty_difference in moves_to_update.items(): | 
				
			||||
 | 
					                move_vals = {} | 
				
			||||
 | 
					                if move_id.product_id.cost_method in ['standard', 'average', 'last']: | 
				
			||||
 | 
					                    correction_value = qty_difference * move_id.product_id.standard_price | 
				
			||||
 | 
					                    if move_id._is_in(): | 
				
			||||
 | 
					                        move_vals['value'] = move_id.value + correction_value | 
				
			||||
 | 
					                    elif move_id._is_out(): | 
				
			||||
 | 
					                        move_vals['value'] = move_id.value - correction_value | 
				
			||||
 | 
					                else: | 
				
			||||
 | 
					                    if move_id._is_in(): | 
				
			||||
 | 
					                        correction_value = qty_difference * move_id.price_unit | 
				
			||||
 | 
					                        new_remaining_value = move_id.remaining_value + correction_value | 
				
			||||
 | 
					                        move_vals['value'] = move_id.value + correction_value | 
				
			||||
 | 
					                        move_vals['remaining_qty'] = move_id.remaining_qty + qty_difference | 
				
			||||
 | 
					                        move_vals['remaining_value'] = move_id.remaining_value + correction_value | 
				
			||||
 | 
					                    elif move_id._is_out() and qty_difference > 0: | 
				
			||||
 | 
					                        correction_value = self.env['stock.move']._run_fifo(move_id, quantity=qty_difference) | 
				
			||||
 | 
					                        # no need to adapt `remaining_qty` and `remaining_value` as `_run_fifo` took care of it | 
				
			||||
 | 
					                        move_vals['value'] = move_id.value - correction_value | 
				
			||||
 | 
					                    elif move_id._is_out() and qty_difference < 0: | 
				
			||||
 | 
					                        candidates_receipt = self.env['stock.move'].search(move_id._get_in_domain(), order='date, id desc', limit=1) | 
				
			||||
 | 
					                        if candidates_receipt: | 
				
			||||
 | 
					                            candidates_receipt.write({ | 
				
			||||
 | 
					                                'remaining_qty': candidates_receipt.remaining_qty + -qty_difference, | 
				
			||||
 | 
					                                'remaining_value': candidates_receipt.remaining_value + ( | 
				
			||||
 | 
					                                -qty_difference * candidates_receipt.price_unit), | 
				
			||||
 | 
					                            }) | 
				
			||||
 | 
					                            correction_value = qty_difference * candidates_receipt.price_unit | 
				
			||||
 | 
					                        else: | 
				
			||||
 | 
					                            correction_value = qty_difference * move_id.product_id.standard_price | 
				
			||||
 | 
					                        move_vals['value'] = move_id.value - correction_value | 
				
			||||
 | 
					                move_id.write(move_vals) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                if move_id.product_id.valuation == 'real_time': | 
				
			||||
 | 
					                    move_id.with_context(force_valuation_amount=correction_value, forced_quantity=qty_difference)._account_entry_move() | 
				
			||||
 | 
					                if qty_difference > 0: | 
				
			||||
 | 
					                    move_id.product_price_update_before_done(forced_qty=qty_difference) | 
				
			||||
 | 
					        return super(StockMoveLine, self).write(vals) | 
				
			||||
| 
		 After Width: | Height: | Size: 3.6 KiB  | 
| 
		 After Width: | Height: | Size: 310 B  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 576 B  | 
| 
		 After Width: | Height: | Size: 733 B  | 
| 
		 After Width: | Height: | Size: 911 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 673 B  | 
| 
		 After Width: | Height: | Size: 878 B  | 
| 
		 After Width: | Height: | Size: 653 B  | 
| 
		 After Width: | Height: | Size: 905 B  | 
| 
		 After Width: | Height: | Size: 839 B  | 
| 
		 After Width: | Height: | Size: 427 B  | 
| 
		 After Width: | Height: | Size: 627 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 988 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 51 KiB  | 
| 
		 After Width: | Height: | Size: 61 KiB  | 
| 
		 After Width: | Height: | Size: 60 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 52 KiB  | 
| 
		 After Width: | Height: | Size: 54 KiB  | 
| 
		 After Width: | Height: | Size: 86 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 68 KiB  | 
| 
		 After Width: | Height: | Size: 85 KiB  | 
| 
		 After Width: | Height: | Size: 183 KiB  | 
| 
		 After Width: | Height: | Size: 200 KiB  | 
| 
		 After Width: | Height: | Size: 60 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
@ -0,0 +1,649 @@ | 
				
			|||||
 | 
					<div class="container" style="padding: 1rem !important; margin-bottom: 1rem !important;"> | 
				
			||||
 | 
					    <div class="row"> | 
				
			||||
 | 
					        <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" | 
				
			||||
 | 
					            style="border-bottom: 1px solid #d5d5d5;"> | 
				
			||||
 | 
					            <div class="my-3"> | 
				
			||||
 | 
					                <img src="./assets/icons/logo.png" style="width: auto !important; height: 40px !important;"> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="my-3 d-flex align-items-center"> | 
				
			||||
 | 
					                <div | 
				
			||||
 | 
					                    style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | 
				
			||||
 | 
					                    <i class="fa fa-check mr-1"></i>Community | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div | 
				
			||||
 | 
					                    style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | 
				
			||||
 | 
					                    <i class="fa fa-check mr-1"></i>Enterprise | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </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;"> | 
				
			||||
 | 
					                Costing method: Last Purchase Price</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;"> | 
				
			||||
 | 
					                Introducing new costing method 'Last Purchase Price' in Odoo | 
				
			||||
 | 
					            </p> | 
				
			||||
 | 
					            <img src="./assets/screenshots/hero.png" class="img-responsive" width="100%" height="auto" /> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="row"> | 
				
			||||
 | 
					        <div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important"> | 
				
			||||
 | 
					            <h2 | 
				
			||||
 | 
					                style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | 
				
			||||
 | 
					                <i class="fa fa-compass mr-2"></i>Explore this module | 
				
			||||
 | 
					            </h2> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-md-6"> | 
				
			||||
 | 
					            <a href="#overview" style="text-decoration: none !important;"> | 
				
			||||
 | 
					                <div class="row" | 
				
			||||
 | 
					                    style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | 
				
			||||
 | 
					                    <div class="col-8"> | 
				
			||||
 | 
					                        <h3 | 
				
			||||
 | 
					                            style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | 
				
			||||
 | 
					                            Overview</h3> | 
				
			||||
 | 
					                        <p | 
				
			||||
 | 
					                            style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                            Learn more about this module</p> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-4 text-right d-flex justify-content-end align-items-center"> | 
				
			||||
 | 
					                        <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-md-6"> | 
				
			||||
 | 
					            <a href="#features" style="text-decoration: none !important;"> | 
				
			||||
 | 
					                <div class="row" | 
				
			||||
 | 
					                    style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | 
				
			||||
 | 
					                    <div class="col-8"> | 
				
			||||
 | 
					                        <h3 | 
				
			||||
 | 
					                            style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | 
				
			||||
 | 
					                            Features</h3> | 
				
			||||
 | 
					                        <p | 
				
			||||
 | 
					                            style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                            View features of this module</p> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-4 text-right d-flex justify-content-end align-items-center"> | 
				
			||||
 | 
					                        <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-md-6"> | 
				
			||||
 | 
					            <a href="#screenshots" style="text-decoration: none !important;"> | 
				
			||||
 | 
					                <div class="row" | 
				
			||||
 | 
					                    style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | 
				
			||||
 | 
					                    <div class="col-8"> | 
				
			||||
 | 
					                        <h3 | 
				
			||||
 | 
					                            style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | 
				
			||||
 | 
					                            Screenshots</h3> | 
				
			||||
 | 
					                        <p | 
				
			||||
 | 
					                            style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                            See key screenshots of this module</p> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-4 text-right d-flex justify-content-end align-items-center"> | 
				
			||||
 | 
					                        <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <!-- <div class="col-md-6"> | 
				
			||||
 | 
					            <a href="#video" 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;"> | 
				
			||||
 | 
					                            Video</h3> | 
				
			||||
 | 
					                        <p | 
				
			||||
 | 
					                            style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                            Watch tutorial video on this module</p> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-4 text-right d-flex justify-content-end align-items-center"> | 
				
			||||
 | 
					                        <i class="fa fa-chevron-right" style="color: #714B67 !important;"></i> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					        </div> --> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="row" id="overview"> | 
				
			||||
 | 
					        <div class="col-md-12" style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | 
				
			||||
 | 
					            <h2 | 
				
			||||
 | 
					                style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | 
				
			||||
 | 
					                <i class="fa fa-pie-chart mr-2"></i>Overview | 
				
			||||
 | 
					            </h2> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <div class="col-mg-12 pl-3"> | 
				
			||||
 | 
					            <p | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;"> | 
				
			||||
 | 
					                This module allows you to update your product's cost as your last purchase price and changes the stock | 
				
			||||
 | 
					                valuation based on that</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </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>Configuration | 
				
			||||
 | 
					            </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;"> | 
				
			||||
 | 
					                After installing the module, Select the newly added costing method in product category. Provide 'Price | 
				
			||||
 | 
					                Difference Account' too if you are following automated inventory valuation.</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;"> | 
				
			||||
 | 
					                    New Costing Method</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    A New Costing Method Is Added To The List And Can Be Chosen From Product Category Form</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;"> | 
				
			||||
 | 
					                    Last Purchase Price</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    Cost Price Of Products Will Be Updated With Their Last Purchase Price</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;"> | 
				
			||||
 | 
					                    Stock Valuation Report</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    Takes Last Purchase Price In Stock Valuation Report</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;"> | 
				
			||||
 | 
					                    Price Difference Account</h4> | 
				
			||||
 | 
					                <p | 
				
			||||
 | 
					                    style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important;"> | 
				
			||||
 | 
					                    Automatically Posting Price Difference Related Accounting Entries To The 'Price Difference Account' | 
				
			||||
 | 
					                    When We Use Automated Inventory Valuation</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-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</h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/costing-1.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-lg-12 my-3"> | 
				
			||||
 | 
					            <h4 class="mt-3" | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			||||
 | 
					                Product category</h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/costing-2.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;"> | 
				
			||||
 | 
					                Purchase order created with new cost</h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/costing-3.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div class="col-lg-12 my-2"> | 
				
			||||
 | 
					            <h4 class="mt-2" | 
				
			||||
 | 
					                style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | 
				
			||||
 | 
					                Cost updated in product form</h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/costing-4.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;"> | 
				
			||||
 | 
					                Journal Item generated by the price change</h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <img src="assets/screenshots/costing-5.png" class="img-responsive img-thumbnail border" width="100%" | 
				
			||||
 | 
					                height="auto" /> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- SUGGESTED PRODUCTS --> | 
				
			||||
 | 
					    <div class="row"> | 
				
			||||
 | 
					        <div class="col-lg-12 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					            style="text-align: center; padding: 2.5rem 1rem !important;"> | 
				
			||||
 | 
					            <h2 style="color: #212529 !important;">Suggested Products</h2> | 
				
			||||
 | 
					            <hr | 
				
			||||
 | 
					                style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" /> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div id="demo1" class="row carousel slide" data-ride="carousel"> | 
				
			||||
 | 
					                <!-- The slideshow --> | 
				
			||||
 | 
					                <div class="carousel-inner"> | 
				
			||||
 | 
					                    <div class="carousel-item active" style="min-height:0px"> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/export_stockinfo_xls/" target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/export_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/dashboard_pos/" target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/pos_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/product_approval_management/" | 
				
			||||
 | 
					                                target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/approval_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="carousel-item" style="min-height:0px"> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/base_account_budget/" target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/budget_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/shopify_odoo_connector/" target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/shopify_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					                            <a href="https://apps.odoo.com/apps/modules/14.0/odoo11_magento2/" target="_blank"> | 
				
			||||
 | 
					                                <div style="border-radius:10px"> | 
				
			||||
 | 
					                                    <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                        style="border-top-left-radius:10px; border-top-right-radius:10px" | 
				
			||||
 | 
					                                        src="./assets/modules/magento_image.png"> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </a> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <!-- Left and right controls --> | 
				
			||||
 | 
					                <a class="carousel-control-prev" href="#demo1" data-slide="prev" | 
				
			||||
 | 
					                    style="left:-25px;width: 35px;color: #000;"> <span class="carousel-control-prev-icon"><i | 
				
			||||
 | 
					                            class="fa fa-chevron-left" style="font-size:24px"></i></span> </a> <a | 
				
			||||
 | 
					                    class="carousel-control-next" href="#demo1" data-slide="next" | 
				
			||||
 | 
					                    style="right:-25px;width: 35px;color: #000;"> | 
				
			||||
 | 
					                    <span class="carousel-control-next-icon"><i class="fa fa-chevron-right" | 
				
			||||
 | 
					                            style="font-size:24px"></i></span> | 
				
			||||
 | 
					                </a> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <!-- END OF SUGGESTED PRODUCTS --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- OUR SERVICES --> | 
				
			||||
 | 
					    <section class="container" style="margin-top: 6rem !important;"> | 
				
			||||
 | 
					        <div class="row"> | 
				
			||||
 | 
					            <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | 
				
			||||
 | 
					                <h2 style="color: #212529 !important;">Our Services</h2> | 
				
			||||
 | 
					                <hr | 
				
			||||
 | 
					                    style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" /> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/cogs.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Customization</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/wrench.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Implementation</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/lifebuoy.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Support</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/user.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Hire | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Developer</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #54a0ff  !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/puzzle.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Integration</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/update.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Migration</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/consultation.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Consultancy</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/training.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Implementation</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | 
				
			||||
 | 
					                <div class="d-flex justify-content-center align-items-center mx-3 my-3" | 
				
			||||
 | 
					                    style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | 
				
			||||
 | 
					                    <img src="assets/icons/license.png" class="img-responsive" height="48px" width="48px"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <h6 class="text-center" style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | 
				
			||||
 | 
					                    Odoo | 
				
			||||
 | 
					                    Licensing Consultancy</h6> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- END OF END OF OUR SERVICES --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- OUR INDUSTRIES --> | 
				
			||||
 | 
					    <section class="container" style="margin-top: 6rem !important;"> | 
				
			||||
 | 
					        <div class="row"> | 
				
			||||
 | 
					            <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | 
				
			||||
 | 
					                <h2 style="color: #212529 !important;">Our Industries</h2> | 
				
			||||
 | 
					                <hr | 
				
			||||
 | 
					                    style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" /> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Trading | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Easily procure | 
				
			||||
 | 
					                        and | 
				
			||||
 | 
					                        sell your products</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        POS | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Easy | 
				
			||||
 | 
					                        configuration | 
				
			||||
 | 
					                        and convivial experience</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/education-black.png" class="img-responsive mb-3" height="48px" | 
				
			||||
 | 
					                        width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Education | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        A platform for | 
				
			||||
 | 
					                        educational management</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px" | 
				
			||||
 | 
					                        width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Manufacturing | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Plan, track and | 
				
			||||
 | 
					                        schedule your operations</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        E-commerce & Website | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Mobile | 
				
			||||
 | 
					                        friendly, | 
				
			||||
 | 
					                        awe-inspiring product pages</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Service Management | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Keep track of | 
				
			||||
 | 
					                        services and invoice</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px" | 
				
			||||
 | 
					                        width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Restaurant | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        Run your bar or | 
				
			||||
 | 
					                        restaurant methodically</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-3"> | 
				
			||||
 | 
					                <div class="my-4 d-flex flex-column justify-content-center" | 
				
			||||
 | 
					                    style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;"> | 
				
			||||
 | 
					                    <img src="./assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px"> | 
				
			||||
 | 
					                    <h5 | 
				
			||||
 | 
					                        style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;"> | 
				
			||||
 | 
					                        Hotel Management | 
				
			||||
 | 
					                    </h5> | 
				
			||||
 | 
					                    <p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;"> | 
				
			||||
 | 
					                        An | 
				
			||||
 | 
					                        all-inclusive | 
				
			||||
 | 
					                        hotel management application</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- END OF END OF OUR INDUSTRIES --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- FOOTER --> | 
				
			||||
 | 
					    <!-- Footer Section --> | 
				
			||||
 | 
					    <section class="container" style="margin: 5rem auto 2rem;"> | 
				
			||||
 | 
					        <div class="row" style="max-width:1540px;"> | 
				
			||||
 | 
					            <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | 
				
			||||
 | 
					                <h2 style="color: #212529 !important;">Need Help?</h2> | 
				
			||||
 | 
					                <hr | 
				
			||||
 | 
					                    style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;" /> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <!-- Contact Cards --> | 
				
			||||
 | 
					        <div class="row d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					            style="max-width:1540px; margin: 0 auto 2rem auto;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            <div class="col-lg-12" style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; "> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                <div class="row mt-4"> | 
				
			||||
 | 
					                    <div class="col-lg-6"> | 
				
			||||
 | 
					                        <a href="mailto:odoo@cybrosys.com" target="_blank" class="btn btn-block mb-2 deep_hover" | 
				
			||||
 | 
					                            style="text-decoration: none;  background-color: #4d4d4d; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-envelope mr-2"></i>odoo@cybrosys.com</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-lg-6"> | 
				
			||||
 | 
					                        <a href="https://api.whatsapp.com/send?phone=918606827707" target="_blank" | 
				
			||||
 | 
					                            class="btn btn-block mb-2 deep_hover" | 
				
			||||
 | 
					                            style="text-decoration: none;  background-color: #25D366; color: #FFF;  border-radius: 4px;"><i | 
				
			||||
 | 
					                                class="fa fa-whatsapp mr-2"></i>WhatsApp</a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <!-- End of Contact Cards --> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- Footer --> | 
				
			||||
 | 
					    <section class="oe_container" style="padding: 2rem 3rem 1rem;"> | 
				
			||||
 | 
					        <div class="row" style="max-width:1540px; margin: 0 auto; margin-right: 3rem; "> | 
				
			||||
 | 
					            <!-- Logo --> | 
				
			||||
 | 
					            <div class="col-lg-12 d-flex justify-content-center align-items-center" style="margin-top: 3rem;"> | 
				
			||||
 | 
					                <img src="https://www.cybrosys.com/images/logo.png" width="200px" height="auto" /> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <!-- End of Logo --> | 
				
			||||
 | 
					            <div class="col-lg-12"> | 
				
			||||
 | 
					                <hr | 
				
			||||
 | 
					                    style="margin-top: 3rem;background: linear-gradient(90deg, rgba(2,0,36,0) 0%, rgba(229,229,229,1) 33%, rgba(229,229,229,1) 58%, rgba(0,212,255,0) 100%); height: 2px; border-style: none;"> | 
				
			||||
 | 
					                <!-- End of Footer Section --> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					    <!-- END OF FOOTER --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</div> | 
				
			||||