@ -0,0 +1,46 @@ | 
				
			|||||
 | 
					.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg | 
				
			||||
 | 
					    :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html | 
				
			||||
 | 
					    :alt: License: AGPL-3 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Mass Price Update | 
				
			||||
 | 
					================= | 
				
			||||
 | 
					This module allow to update the price/cost of products by percentage. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Configuration | 
				
			||||
 | 
					============= | 
				
			||||
 | 
					Add the users to the new security group 'Update Product Price' to give access to the new menu. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					License | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					General Public License, Version 3 (AGPL v3). | 
				
			||||
 | 
					(https://www.gnu.org/licenses/agpl-3.0-standalone.html) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Company | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					* `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Credits | 
				
			||||
 | 
					------- | 
				
			||||
 | 
					* Developer: (V14) Ammu Raj, Contact: odoo@cybrosys.com | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Contacts | 
				
			||||
 | 
					-------- | 
				
			||||
 | 
					* Mail Contact : odoo@cybrosys.com | 
				
			||||
 | 
					* Website : https://cybrosys.com | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Bug Tracker | 
				
			||||
 | 
					----------- | 
				
			||||
 | 
					Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Maintainer | 
				
			||||
 | 
					========== | 
				
			||||
 | 
					.. image:: https://cybrosys.com/images/logo.png | 
				
			||||
 | 
					   :target: https://cybrosys.com | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					This module is maintained by Cybrosys Technologies. | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					For support and more information, please visit `Our Website <https://cybrosys.com/>`__ | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Further information | 
				
			||||
 | 
					=================== | 
				
			||||
 | 
					HTML Description: `<static/description/index.html>`__ | 
				
			||||
@ -0,0 +1,22 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Ammu Raj (odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You can modify it under the terms of the GNU AFFERO | 
				
			||||
 | 
					#    GENERAL PUBLIC LICENSE (AGPL v3), Version 3. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					#    (AGPL v3) along with this program. | 
				
			||||
 | 
					#    If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					from . import wizard | 
				
			||||
@ -0,0 +1,45 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Ammu Raj (odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You can modify it under the terms of the GNU AFFERO | 
				
			||||
 | 
					#    GENERAL PUBLIC LICENSE (AGPL v3), Version 3. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					#    (AGPL v3) along with this program. | 
				
			||||
 | 
					#    If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					{ | 
				
			||||
 | 
					    'name': 'Mass Price Update', | 
				
			||||
 | 
					    'version': '14.0.1.0.0', | 
				
			||||
 | 
					    'category': 'Warehouse', | 
				
			||||
 | 
					    'summary': 'Update the sales price and the cost of any product by' | 
				
			||||
 | 
					               'percentage', | 
				
			||||
 | 
					    'description': 'This module allows to update more than one products sales' | 
				
			||||
 | 
					                   'and cost price by single click', | 
				
			||||
 | 
					    'author': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'company': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'maintainer': 'Cybrosys Techno Solutions', | 
				
			||||
 | 
					    'website': 'https://www.cybrosys.com', | 
				
			||||
 | 
					    'depends': ['stock'], | 
				
			||||
 | 
					    'data': [ | 
				
			||||
 | 
					        'security/mass_price_update_groups.xml', | 
				
			||||
 | 
					        'security/ir.model.access.csv', | 
				
			||||
 | 
					        'wizard/mass_price_update_views.xml' | 
				
			||||
 | 
					    ], | 
				
			||||
 | 
					    'images': ['static/description/banner.png'], | 
				
			||||
 | 
					    'license': 'AGPL-3', | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					    'application': False, | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,7 @@ | 
				
			|||||
 | 
					## Module <mass_price_update> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 25.10.2022 | 
				
			||||
 | 
					#### Version 14.0.1.0.0 | 
				
			||||
 | 
					#### ADD | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					- Initial commit for Mass Price Update | 
				
			||||
		
		
			
  | 
@ -0,0 +1,18 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="utf-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					<!--    Category for managing the access for product price update--> | 
				
			||||
 | 
					    <record id="module_category_mass_price_update" model="ir.module.category"> | 
				
			||||
 | 
					        <field name="name">Mass Price Update</field> | 
				
			||||
 | 
					        <field name="description">Helps to manage access to the mass price | 
				
			||||
 | 
					            update wizard | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					<!--    Group for Administrator--> | 
				
			||||
 | 
					    <record id="mass_price_update_group_admin" model="res.groups"> | 
				
			||||
 | 
					        <field name="name">Administrator</field> | 
				
			||||
 | 
					        <field name="comment">Access to the mass price update wizard menu | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					        <field name="category_id" | 
				
			||||
 | 
					               ref="mass_price_update.module_category_mass_price_update"/> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					</odoo> | 
				
			||||
| 
		 After Width: | Height: | Size: 3.6 KiB  | 
| 
		 After Width: | Height: | Size: 310 B  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.4 KiB  | 
| 
		 After Width: | Height: | Size: 576 B  | 
| 
		 After Width: | Height: | Size: 733 B  | 
| 
		 After Width: | Height: | Size: 911 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 673 B  | 
| 
		 After Width: | Height: | Size: 878 B  | 
| 
		 After Width: | Height: | Size: 653 B  | 
| 
		 After Width: | Height: | Size: 905 B  | 
| 
		 After Width: | Height: | Size: 839 B  | 
| 
		 After Width: | Height: | Size: 427 B  | 
| 
		 After Width: | Height: | Size: 627 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 988 B  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 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: 59 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 60 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 57 KiB  | 
| 
		 After Width: | Height: | Size: 59 KiB  | 
| 
		 After Width: | Height: | Size: 115 KiB  | 
| 
		 After Width: | Height: | Size: 50 KiB  | 
| 
		 After Width: | Height: | Size: 56 KiB  | 
| 
		 After Width: | Height: | Size: 117 KiB  | 
| 
		 After Width: | Height: | Size: 98 KiB  | 
| 
		 After Width: | Height: | Size: 42 KiB  | 
| 
		 After Width: | Height: | Size: 200 KiB  | 
| 
		 After Width: | Height: | Size: 77 KiB  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
@ -0,0 +1,616 @@ | 
				
			|||||
 | 
					<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:  #875A7B; 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: #017E84; font-size: 14px; font-family: 'Montserrat', sans-serif; font-weight: bold; background-color: white; display: inline-block; padding: 3px 10px; border-radius: 50px;" | 
				
			||||
 | 
					                    class="mr-2"> | 
				
			||||
 | 
					                <i class="fa fa-check mr-1"></i>Odoo.Sh | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <!-- END OF TITLE BAR --> | 
				
			||||
 | 
					    <div class="container"> | 
				
			||||
 | 
					        <div class="row"> | 
				
			||||
 | 
					            <div class="col-sm-12 col-md-12 col-lg-12"> | 
				
			||||
 | 
					                <!-- APP HERO --> | 
				
			||||
 | 
					                <h1 style="color: #FFFFFF; font-weight: bolder; font-size: 50px; text-align: center; margin-top: 50px;"> | 
				
			||||
 | 
					                    Mass Price Update</h1> | 
				
			||||
 | 
					                <p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;"> | 
				
			||||
 | 
					                    This Module Allows to Update the Sales Price and the Cost of the Products by percentage.</p> | 
				
			||||
 | 
					                <!-- END OF APP HERO --> | 
				
			||||
 | 
					                <img src="assets/screenshots/hero.gif" class="img-responsive" | 
				
			||||
 | 
					                     style="width: 100%; margin-left: auto; margin-right: auto;"/> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<!-- NAVIGATION SECTION --> | 
				
			||||
 | 
					<div class="d-flex align-items-center" | 
				
			||||
 | 
					     style="border-bottom: 2px solid #714B67; padding: 15px 0px; margin-top: 300px;"> | 
				
			||||
 | 
					    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			||||
 | 
					         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			||||
 | 
					        <img src="assets/misc/compass.png"/> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <h2 class="mt-2" | 
				
			||||
 | 
					        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			||||
 | 
					        Explore This | 
				
			||||
 | 
					        Module</h2> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<div class="row my-4" style="font-family: 'Montserrat', sans-serif;"> | 
				
			||||
 | 
					    <div class="col-sm-12 col-md-6 my-3"> | 
				
			||||
 | 
					        <a href="#overview"> | 
				
			||||
 | 
					            <div class="d-flex justify-content-between align-items-center" | 
				
			||||
 | 
					                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			||||
 | 
					                <div> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Overview</span> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">Learn | 
				
			||||
 | 
					            more about this | 
				
			||||
 | 
					            module</span> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </a> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <div class="col-sm-12 col-md-6 my-3"> | 
				
			||||
 | 
					        <a href="#features"> | 
				
			||||
 | 
					            <div class="d-flex justify-content-between align-items-center" | 
				
			||||
 | 
					                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			||||
 | 
					                <div> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Features</span> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">View | 
				
			||||
 | 
					            features of this | 
				
			||||
 | 
					            module</span> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </a> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <div class="col-sm-12 col-md-6 my-3"> | 
				
			||||
 | 
					        <a href="#screenshots"> | 
				
			||||
 | 
					            <div class="d-flex justify-content-between align-items-center" | 
				
			||||
 | 
					                 style="background-color: #f5f5f5; padding: 30px; width: 100%;"> | 
				
			||||
 | 
					                <div> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 24px; font-weight: 500; display: block;">Screenshots</span> | 
				
			||||
 | 
					                    <span style="color: #714B67; font-size: 16px; font-weight: 400; color:#282F33;  display: block;">View | 
				
			||||
 | 
					            screenshots for this | 
				
			||||
 | 
					            module</span> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <img src="assets/misc/right-arrow.png" width="36" height="36"/> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </a> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<!-- END OF NAVIGATION SECTION --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<!-- OVERVIEW SECTION --> | 
				
			||||
 | 
					<div class="d-flex align-items-center" | 
				
			||||
 | 
					     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" | 
				
			||||
 | 
					     id="overview"> | 
				
			||||
 | 
					    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			||||
 | 
					         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			||||
 | 
					        <img src="assets/misc/pie-chart.png"/> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <h2 class="mt-2" | 
				
			||||
 | 
					        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			||||
 | 
					        Overview | 
				
			||||
 | 
					    </h2> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<div class="row" | 
				
			||||
 | 
					     style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;"> | 
				
			||||
 | 
					    <div class="col-sm-12 py-4"> | 
				
			||||
 | 
					        This module crafted by Cybrosys Technologies provides an option to modify the sale price and cost | 
				
			||||
 | 
					        of the products from a wizard. It helps to reduce the manual effort and time since we don't have | 
				
			||||
 | 
					        to update them one by one from the product form by add or deduct the price by percentage. | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<!-- END OF OVERVIEW SECTION --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<!-- FEATURES SECTION --> | 
				
			||||
 | 
					<div class="d-flex align-items-center" | 
				
			||||
 | 
					     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" | 
				
			||||
 | 
					     id="features"> | 
				
			||||
 | 
					    <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			||||
 | 
					         style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			||||
 | 
					        <img src="assets/misc/features.png"/> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <h2 class="mt-2" | 
				
			||||
 | 
					        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			||||
 | 
					        Features | 
				
			||||
 | 
					    </h2> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<div class="row" | 
				
			||||
 | 
					     style="font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 14px; line-height: 200%;"> | 
				
			||||
 | 
					    <div class="col-sm-12 col-md-6"> | 
				
			||||
 | 
					        <div class="d-flex align-items-center" | 
				
			||||
 | 
					             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			||||
 | 
					            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			||||
 | 
					            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Use the new wizard for updating the cost/price of the products. | 
				
			||||
 | 
					</span> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <div class="col-sm-12 col-md-6"> | 
				
			||||
 | 
					        <div class="d-flex align-items-center" | 
				
			||||
 | 
					             style="margin-top: 30px; margin-bottom: 30px"> | 
				
			||||
 | 
					            <img src="assets/misc/check-box.png" class="mr-2"/> | 
				
			||||
 | 
					            <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">View and confirm the current and new cost/price of the products before changing it.</span> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<!-- END OF FEATURES SECTION --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<!-- SCREENSHOTS SECTION --> | 
				
			||||
 | 
					<div class="d-flex align-items-center" | 
				
			||||
 | 
					     style="border-bottom: 2px solid #714B67; padding: 15px 0px;" | 
				
			||||
 | 
					     id="screenshots"> | 
				
			||||
 | 
					    <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/pictures.png"/> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <h2 class="mt-2" | 
				
			||||
 | 
					        style="font-family: 'Montserrat', sans-serif; font-size: 24px; font-weight: bold;"> | 
				
			||||
 | 
					        Screenshots | 
				
			||||
 | 
					    </h2> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<div class="row"> | 
				
			||||
 | 
					    <div class="col-sm-12"> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Configuration</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Add the users to the new security group(Mass Price Update: Administrator) to give access to the new menu.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/1.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">New menu</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Use the new menu <strong>Inventory  -> Products -> Mass Price Update</strong> to open the wizard.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/2.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Different options to select the products</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"><ol> | 
				
			||||
 | 
					                <li>Select all products</li> | 
				
			||||
 | 
					                <li>Select the categories</li> | 
				
			||||
 | 
					                <li>Select the required products</li> | 
				
			||||
 | 
					                </ol> | 
				
			||||
 | 
					                The selected products will be listed in the tree view in the wizard.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/3.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">More fields to make it simple</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">The Apply on field is used to select either Price or Cost to update the sales price and cost of | 
				
			||||
 | 
					                the selected products. Set the percentage to be changed in the Change field. On  the Apply type, | 
				
			||||
 | 
					                select add to add the amount and reduce to reduce the amount. | 
				
			||||
 | 
					                The current and new price/cost of the selected products will be updated asap in the list view.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/4.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">An extra step for safety</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">An extra confirmation to avoid updating the sale price or cost of products by accidentally | 
				
			||||
 | 
					                clicking the change button in the wizard.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/5.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					        <div style="display: block; margin: 30px auto;"> | 
				
			||||
 | 
					            <h3 style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Notification</h3> | 
				
			||||
 | 
					            <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Notification on completing the price update.</p> | 
				
			||||
 | 
					            <img src="assets/screenshots/6.png" class="img-thumbnail"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<!-- END OF SCREENSHOTS SECTION --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<!-- RELATED PRODUCTS --> | 
				
			||||
 | 
					<div class="d-flex align-items-center" style="border-bottom: 2px solid #714B67; padding: 15px 0px;"> | 
				
			||||
 | 
					  <div class="d-flex justify-content-center align-items-center mr-2" | 
				
			||||
 | 
					    style="background-color: #F5F5F5; border-radius: 0px; width: 40px; height: 40px;"> | 
				
			||||
 | 
					    <img src="assets/misc/categories.png" /> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					  <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/14.0/product_brand_inventory/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" style="border-radius: 0px;" src="assets/modules/1.png"> | 
				
			||||
 | 
					              </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					            <a href="https://apps.odoo.com/apps/modules/14.0/stock_intercompany_transfer/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" style="border-radius: 0px;" src="assets/modules/2.png"> | 
				
			||||
 | 
					              </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					            <a href="https://apps.odoo.com/apps/modules/14.0/export_stockinfo_xls/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" style="border-radius: 0px;" src="assets/modules/3.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/14.0/product_brand_inventory/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" style="border-radius: 0px;" src="assets/modules/4.png"> | 
				
			||||
 | 
					              </div> | 
				
			||||
 | 
					            </a> | 
				
			||||
 | 
					          </div> | 
				
			||||
 | 
					          <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" style="float:left"> | 
				
			||||
 | 
					            <a href="https://apps.odoo.com/apps/modules/14.0/product_price_update_advanced/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                     style="border-radius: 0px;" | 
				
			||||
 | 
					                     src="assets/modules/6.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/todo_list/" target="_blank"> | 
				
			||||
 | 
					              <div style="border-radius:10px"> | 
				
			||||
 | 
					                <img class="img img-responsive center-block" style="border-radius: 0px;" src="assets/modules/todo_list.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> | 
				
			||||
 | 
					<!-- END OF SUPPORT --> | 
				
			||||
@ -0,0 +1,23 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Ammu Raj (odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You can modify it under the terms of the GNU AFFERO | 
				
			||||
 | 
					#    GENERAL PUBLIC LICENSE (AGPL v3), Version 3. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					#    (AGPL v3) along with this program. | 
				
			||||
 | 
					#    If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					from . import change_price_line | 
				
			||||
 | 
					from . import mass_price_update | 
				
			||||
@ -0,0 +1,69 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Ammu Raj (odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You can modify it under the terms of the GNU AFFERO | 
				
			||||
 | 
					#    GENERAL PUBLIC LICENSE (AGPL v3), Version 3. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					#    (AGPL v3) along with this program. | 
				
			||||
 | 
					#    If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					from odoo import api, fields, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class ChangePriceLine(models.TransientModel): | 
				
			||||
 | 
					    """One2many for align the products with new price""" | 
				
			||||
 | 
					    _name = 'change.price.line' | 
				
			||||
 | 
					    _rec_name = 'product_id' | 
				
			||||
 | 
					    _description = "Change Price Line" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    mass_price_update_id = fields.Many2one('mass.price.update', string='Number', | 
				
			||||
 | 
					                                           help='The related field from mass' | 
				
			||||
 | 
					                                                'price update') | 
				
			||||
 | 
					    product_id = fields.Many2one( | 
				
			||||
 | 
					        'product.product', string='Product', required=True, | 
				
			||||
 | 
					        domain="[('active', '=', True)]", help='Selected products will show') | 
				
			||||
 | 
					    current_price = fields.Float(string='Current Price', digits='Product Price', | 
				
			||||
 | 
					                                 related='product_id.lst_price', | 
				
			||||
 | 
					                                 help='The current Sales price') | 
				
			||||
 | 
					    new_price = fields.Float(string='New Price', digits='Product Price', | 
				
			||||
 | 
					                             compute='_compute_new_price_cost', | 
				
			||||
 | 
					                             help='Computing the new price based on the percentage') | 
				
			||||
 | 
					    current_cost = fields.Float(string='Current Cost', digits='Product Price', | 
				
			||||
 | 
					                                related='product_id.standard_price', | 
				
			||||
 | 
					                                help='Current cost of the product') | 
				
			||||
 | 
					    new_cost = fields.Float(string='New Cost', digits='Product Price', | 
				
			||||
 | 
					                            compute='_compute_new_price_cost', | 
				
			||||
 | 
					                            help='Computing the new cost based on the' | 
				
			||||
 | 
					                                 'percentage') | 
				
			||||
 | 
					    currency_id = fields.Many2one('res.currency', string='Currency', | 
				
			||||
 | 
					                                  related='product_id.currency_id', | 
				
			||||
 | 
					                                  help='The currency of the product') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.depends('mass_price_update_id.apply_on', | 
				
			||||
 | 
					                 'mass_price_update_id.change', | 
				
			||||
 | 
					                 'mass_price_update_id.apply_type') | 
				
			||||
 | 
					    def _compute_new_price_cost(self): | 
				
			||||
 | 
					        """Compute new price and new cost""" | 
				
			||||
 | 
					        for record in self: | 
				
			||||
 | 
					            if record.mass_price_update_id.apply_type == 'add': | 
				
			||||
 | 
					                percentage_num = 1 + record.mass_price_update_id.change | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                percentage_num = 1 - record.mass_price_update_id.change | 
				
			||||
 | 
					            if record.mass_price_update_id.apply_on == 'price': | 
				
			||||
 | 
					                record.new_cost = False | 
				
			||||
 | 
					                record.new_price = record.current_price * percentage_num | 
				
			||||
 | 
					            else: | 
				
			||||
 | 
					                record.new_price = False | 
				
			||||
 | 
					                record.new_cost = record.current_cost * percentage_num | 
				
			||||
@ -0,0 +1,134 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Ammu Raj (odoo@cybrosys.com) | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You can modify it under the terms of the GNU AFFERO | 
				
			||||
 | 
					#    GENERAL PUBLIC LICENSE (AGPL v3), Version 3. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    This program is distributed in the hope that it will be useful, | 
				
			||||
 | 
					#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			||||
 | 
					#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			||||
 | 
					#    GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE | 
				
			||||
 | 
					#    (AGPL v3) along with this program. | 
				
			||||
 | 
					#    If not, see <http://www.gnu.org/licenses/>. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					################################################################################ | 
				
			||||
 | 
					from odoo import api, fields, models, _ | 
				
			||||
 | 
					from odoo.exceptions import UserError | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class MassPriceUpdate(models.TransientModel): | 
				
			||||
 | 
					    """Change Price and Cost of Products by Percentage""" | 
				
			||||
 | 
					    _name = 'mass.price.update' | 
				
			||||
 | 
					    _description = "Mass Price Update" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    apply_to = fields.Selection([ | 
				
			||||
 | 
					        ('all', 'All Products'), ('category', 'Selected Categories'), | 
				
			||||
 | 
					        ('selected', 'Selected Products')], default='selected', | 
				
			||||
 | 
					        string='Apply To', required=True, | 
				
			||||
 | 
					        help='Allows to select the products based on the conditions') | 
				
			||||
 | 
					    apply_on = fields.Selection([ | 
				
			||||
 | 
					        ('price', 'Price'), ('cost', 'Cost')], default='price', | 
				
			||||
 | 
					        string='Apply On', required=True, help='Apply on Price or Cost') | 
				
			||||
 | 
					    change = fields.Float(string='Change', | 
				
			||||
 | 
					                          help='The percentage for adding or reducing to the actual price') | 
				
			||||
 | 
					    apply_type = fields.Selection([ | 
				
			||||
 | 
					        ('add', 'Add'), ('reduce', 'Reduce')], default='add', | 
				
			||||
 | 
					        string='Apply Type', required=True, | 
				
			||||
 | 
					        help='Choose the applying type whether add or reduce') | 
				
			||||
 | 
					    product_ids = fields.Many2many( | 
				
			||||
 | 
					        'product.product', string='Products', default=False, | 
				
			||||
 | 
					        domain="[('active', '=', True)]", help='Choose the required products') | 
				
			||||
 | 
					    category_ids = fields.Many2many( | 
				
			||||
 | 
					        'product.category', string='Categories', default=False, | 
				
			||||
 | 
					        help='Choose the required Categories') | 
				
			||||
 | 
					    line_ids = fields.One2many('change.price.line', 'mass_price_update_id', | 
				
			||||
 | 
					                               string='Lines', readonly=True, | 
				
			||||
 | 
					                               help='The selected product with updated price') | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.onchange('apply_to') | 
				
			||||
 | 
					    def _onchange_apply_to(self): | 
				
			||||
 | 
					        """When select an option from apply_to, the related records will show""" | 
				
			||||
 | 
					        if self.apply_to == 'all': | 
				
			||||
 | 
					            self.write({ | 
				
			||||
 | 
					                'category_ids': [(5,)], | 
				
			||||
 | 
					                'line_ids': [(5,)], | 
				
			||||
 | 
					                'product_ids': [(6, 0, self.env['product.product'].search( | 
				
			||||
 | 
					                    [('active', '=', True)]).ids)] | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					        elif self.apply_to == 'category': | 
				
			||||
 | 
					            self.write({ | 
				
			||||
 | 
					                'line_ids': [(5,)], | 
				
			||||
 | 
					                'product_ids': [(6, 0, self.env['product.product'].search( | 
				
			||||
 | 
					                    [('categ_id', 'in', self.category_ids.ids)]).ids)] | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            self.write({ | 
				
			||||
 | 
					                'product_ids': [(5,)], | 
				
			||||
 | 
					                'category_ids': [(5,)], | 
				
			||||
 | 
					                'line_ids': [(5,)] | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.onchange('product_ids') | 
				
			||||
 | 
					    def _onchange_product_ids(self): | 
				
			||||
 | 
					        """Updating the products in lines""" | 
				
			||||
 | 
					        if self.product_ids: | 
				
			||||
 | 
					            self.write({'line_ids': [(5,)]}) | 
				
			||||
 | 
					            lines = [] | 
				
			||||
 | 
					            for product in self.product_ids: | 
				
			||||
 | 
					                lines.append((0, 0, {'product_id': product._origin.id})) | 
				
			||||
 | 
					            self.write({'line_ids': lines}) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.onchange('category_ids') | 
				
			||||
 | 
					    def _onchange_category_ids(self): | 
				
			||||
 | 
					        """When select the category related product will show""" | 
				
			||||
 | 
					        if self.category_ids: | 
				
			||||
 | 
					            self.write({'line_ids': [(5,)], 'product_ids': [(5,)]}) | 
				
			||||
 | 
					            lines = [] | 
				
			||||
 | 
					            products = self.env['product.product'].sudo().search( | 
				
			||||
 | 
					                [('categ_id', 'in', self.category_ids.ids)]) | 
				
			||||
 | 
					            for product in products: | 
				
			||||
 | 
					                lines.append((0, 0, {'product_id': product.id})) | 
				
			||||
 | 
					            self.write({ | 
				
			||||
 | 
					                'product_ids': products.ids, | 
				
			||||
 | 
					                'line_ids': lines | 
				
			||||
 | 
					            }) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    def action_change_price(self): | 
				
			||||
 | 
					        """This function is used to change the price or cost of products""" | 
				
			||||
 | 
					        if self.apply_to == 'category' and not self.product_ids: | 
				
			||||
 | 
					            raise UserError(_("Please select any category with products.")) | 
				
			||||
 | 
					        if self.apply_to == 'selected' and not self.product_ids: | 
				
			||||
 | 
					            raise UserError(_("Please select any product.")) | 
				
			||||
 | 
					        if not self.change: | 
				
			||||
 | 
					            raise UserError(_("Please enter the change in percentage.")) | 
				
			||||
 | 
					        if self.apply_type == 'add': | 
				
			||||
 | 
					            percentage_num = 1 + self.change | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            percentage_num = 1 - self.change | 
				
			||||
 | 
					        if self.apply_on == 'price': | 
				
			||||
 | 
					            for product in self.product_ids: | 
				
			||||
 | 
					                product.lst_price = product.lst_price * percentage_num | 
				
			||||
 | 
					        else: | 
				
			||||
 | 
					            for product in self.product_ids: | 
				
			||||
 | 
					                product_template = product.product_tmpl_id | 
				
			||||
 | 
					                product_template.standard_price = ( | 
				
			||||
 | 
					                        product_template.standard_price * percentage_num) | 
				
			||||
 | 
					        return { | 
				
			||||
 | 
					            'type': 'ir.actions.client', | 
				
			||||
 | 
					            'tag': 'display_notification', | 
				
			||||
 | 
					            'params': { | 
				
			||||
 | 
					                'title': _('Success'), | 
				
			||||
 | 
					                'message': _( | 
				
			||||
 | 
					                    f"""The {'sales price' if self.apply_on == 'price' | 
				
			||||
 | 
					                    else 'cost'} is updated."""), | 
				
			||||
 | 
					                'sticky': True, | 
				
			||||
 | 
					                'next': {'type': 'ir.actions.act_window_close'}, | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        } | 
				
			||||
@ -0,0 +1,81 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!--    Form view of the wizard--> | 
				
			||||
 | 
					    <record id="mass_price_update_view_form" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">mass.price.update.view.form</field> | 
				
			||||
 | 
					        <field name="model">mass.price.update</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <form string="Mass Price Update"> | 
				
			||||
 | 
					                <sheet> | 
				
			||||
 | 
					                    <group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="apply_to" widget="radio"/> | 
				
			||||
 | 
					                            <field name="category_ids" widget="many2many_tags" | 
				
			||||
 | 
					                                   options="{'no_create_edit': True, 'no_create': True}" | 
				
			||||
 | 
					                                   attrs="{'invisible': [('apply_to', '!=', 'category')], 'required': [('apply_to', '=', 'category')]}"/> | 
				
			||||
 | 
					                            <field name="product_ids" widget="many2many_tags" | 
				
			||||
 | 
					                                   options="{'no_create_edit': True, 'no_create': True}" | 
				
			||||
 | 
					                                   attrs="{'invisible': [('apply_to', '!=', 'selected')], 'required': [('apply_to', '=', 'selected')]}"/> | 
				
			||||
 | 
					                            <field name="apply_on" widget="radio"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                        <group> | 
				
			||||
 | 
					                            <field name="change" widget="percentage"/> | 
				
			||||
 | 
					                            <field name="apply_type" widget="radio"/> | 
				
			||||
 | 
					                        </group> | 
				
			||||
 | 
					                    </group> | 
				
			||||
 | 
					                    <notebook> | 
				
			||||
 | 
					                        <page string="Products"> | 
				
			||||
 | 
					                            <field name="line_ids" | 
				
			||||
 | 
					                                   attrs="{'invisible': [('product_ids', '=', False), ('change', '=', 0)]}"> | 
				
			||||
 | 
					                                <tree string="Product List" editable="bottom"> | 
				
			||||
 | 
					                                    <field name="mass_price_update_id" | 
				
			||||
 | 
					                                           invisible="1"/> | 
				
			||||
 | 
					                                    <field name="product_id"/> | 
				
			||||
 | 
					                                    <field name="current_price" | 
				
			||||
 | 
					                                           widget="monetary" | 
				
			||||
 | 
					                                           options="{'currency_field': 'currency_id', 'field_digits': True}" | 
				
			||||
 | 
					                                           attrs="{'column_invisible': [('parent.apply_on', '=', 'cost')]}"/> | 
				
			||||
 | 
					                                    <field name="new_price" widget="monetary" | 
				
			||||
 | 
					                                           options="{'currency_field': 'currency_id', 'field_digits': True}" | 
				
			||||
 | 
					                                           attrs="{'column_invisible': [('parent.apply_on', '=', 'cost')]}"/> | 
				
			||||
 | 
					                                    <field name="current_cost" widget="monetary" | 
				
			||||
 | 
					                                           options="{'currency_field': 'currency_id', 'field_digits': True}" | 
				
			||||
 | 
					                                           attrs="{'column_invisible': [('parent.apply_on', '=', 'price')]}"/> | 
				
			||||
 | 
					                                    <field name="new_cost" widget="monetary" | 
				
			||||
 | 
					                                           options="{'currency_field': 'currency_id', 'field_digits': True}" | 
				
			||||
 | 
					                                           attrs="{'column_invisible': [('parent.apply_on', '=', 'price')]}"/> | 
				
			||||
 | 
					                                    <field name="currency_id" invisible="1"/> | 
				
			||||
 | 
					                                </tree> | 
				
			||||
 | 
					                            </field> | 
				
			||||
 | 
					                        </page> | 
				
			||||
 | 
					                    </notebook> | 
				
			||||
 | 
					                    <footer> | 
				
			||||
 | 
					                        <button name="action_change_price" string="Change Cost" | 
				
			||||
 | 
					                                type="object" class="oe_highlight" | 
				
			||||
 | 
					                                attrs="{'invisible': [('apply_on', '=', 'price')]}" | 
				
			||||
 | 
					                                confirm="Are you sure you want to change the cost?"/> | 
				
			||||
 | 
					                        <button name="action_change_price" string="Change Price" | 
				
			||||
 | 
					                                type="object" class="oe_highlight" | 
				
			||||
 | 
					                                attrs="{'invisible': [('apply_on', '=', 'cost')]}" | 
				
			||||
 | 
					                                confirm="Are you sure you want to change the sales price?"/> | 
				
			||||
 | 
					                        <button string="Cancel" class="btn btn-default" | 
				
			||||
 | 
					                                special="cancel"/> | 
				
			||||
 | 
					                    </footer> | 
				
			||||
 | 
					                </sheet> | 
				
			||||
 | 
					            </form> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!--    Action for mass product update--> | 
				
			||||
 | 
					    <record id="mass_price_update_action" model="ir.actions.act_window"> | 
				
			||||
 | 
					        <field name="name">Mass Price Update</field> | 
				
			||||
 | 
					        <field name="res_model">mass.price.update</field> | 
				
			||||
 | 
					        <field name="type">ir.actions.act_window</field> | 
				
			||||
 | 
					        <field name="view_mode">form</field> | 
				
			||||
 | 
					        <field name="target">new</field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!--    Menu for mass product update--> | 
				
			||||
 | 
					    <menuitem id="mass_price_update_menu" name="Mass Price Update" | 
				
			||||
 | 
					              parent="stock.menu_stock_inventory_control" | 
				
			||||
 | 
					              action="mass_price_update_action" sequence="5" | 
				
			||||
 | 
					              groups="mass_price_update.mass_price_update_group_admin"/> | 
				
			||||
 | 
					</odoo> | 
				
			||||