| @ -0,0 +1,45 @@ | |||
| .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg | |||
|     :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html | |||
|     :alt: License: AGPL-3 | |||
| 
 | |||
| Salesperson on POS Order Line | |||
| ============================= | |||
| This module is used to set salespersons on pos order line | |||
| 
 | |||
| Configuration | |||
| ============= | |||
| * No additional configurations needed | |||
| 
 | |||
| Company | |||
| ------- | |||
| * `Cybrosys Techno Solutions <https://cybrosys.com/>`__ | |||
| 
 | |||
| License | |||
| ------- | |||
| General Public License, Version 3 (AGPL v3). | |||
| (https://www.gnu.org/licenses/agpl-3.0-standalone.html) | |||
| 
 | |||
| Credits | |||
| ------- | |||
| Developer : (V14) Mruthul 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 https://www.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: Mruthul 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 models | |||
| @ -0,0 +1,49 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ################################################################################ | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: Mruthul 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': 'Salesperson on POS Order Line', | |||
|     'version': '14.0.1.0.0', | |||
|     'category': 'Point of Sale', | |||
|     'summary': 'Set salespersons on POS order lines', | |||
|     'description': 'This module allows you to assign salespersons to order' | |||
|                    'lines in the Point of Sale (POS)', | |||
|     'author': 'Cybrosys Techno solutions', | |||
|     'company': 'Cybrosys Techno Solutions', | |||
|     'maintainer': 'Cybrosys Techno Solutions', | |||
|     'website': "https://www.cybrosys.com", | |||
|     'depends': ['base', 'point_of_sale'], | |||
|     'data': [ | |||
|         'views/pos_order_views.xml', | |||
|         'views/assets.xml', | |||
|     ], | |||
|     'qweb': [ | |||
|         'static/src/xml/pos_screen_templates.xml', | |||
|         'static/src/xml/pos_popup_templates.xml', | |||
|         'static/src/xml/receipt_templates.xml', | |||
|         'static/src/xml/orderline_templates.xml', | |||
|     ], | |||
|     'images': ['static/description/banner.png'], | |||
|     'license': 'AGPL-3', | |||
|     'installable': True, | |||
|     'auto_install': False, | |||
|     'application': False, | |||
| } | |||
| @ -0,0 +1,6 @@ | |||
| ## Module <salesperson_pos_order_line> | |||
| 
 | |||
| #### 17.08.2023 | |||
| #### Version 14.0.1.0.0 | |||
| #### ADD | |||
| - Initial commit for Salesperson on POS Order Line | |||
| @ -0,0 +1,23 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ################################################################################ | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: Mruthul 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 pos_order | |||
| from . import pos_session | |||
| @ -0,0 +1,33 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ################################################################################ | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: Mruthul 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 fields, models | |||
| 
 | |||
| 
 | |||
| class PosOrderLine(models.Model): | |||
|     """ | |||
|     This class inherits the pos.order.line model to add a custom field 'sales_persons'. | |||
|     """ | |||
|     _inherit = 'pos.order.line' | |||
| 
 | |||
|     sales_persons = fields.Char(string='Salesperson', | |||
|                                 help="Name of the salesperson associated with " | |||
|                                      "this POS order line.") | |||
| @ -0,0 +1,59 @@ | |||
| # -*- coding: utf-8 -*- | |||
| ################################################################################ | |||
| # | |||
| #    Cybrosys Technologies Pvt. Ltd. | |||
| # | |||
| #    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |||
| #    Author: Mruthul 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 models | |||
| 
 | |||
| 
 | |||
| class PosSession(models.Model): | |||
|     """ | |||
|     This class inherits the pos.session model and adds custom functionality | |||
|      related to POS UI models and res.users. | |||
|     """ | |||
|     _inherit = 'pos.session' | |||
| 
 | |||
|     def _pos_ui_models_to_load(self): | |||
|         """ | |||
|         Returns a list of models to load for the POS UI with 'res.users' added | |||
|         to the list. | |||
|         :return: List of models to load for the POS UI. | |||
|         """ | |||
|         result = super()._pos_ui_models_to_load() | |||
|         result.append('res.users') | |||
|         return result | |||
| 
 | |||
|     def _loader_params_res_users(self): | |||
|         """ | |||
|         Returns the loader parameters for the 'res.users' model. | |||
|         :return: Dictionary containing the loader parameters. | |||
|         """ | |||
|         return { | |||
|             'search_params': { | |||
|                 'fields': ['name'], | |||
|             }, | |||
|         } | |||
| 
 | |||
|     def _get_pos_ui_res_users(self, params): | |||
|         """ | |||
|         Returns a list of dictionaries containing the names of all users in the 'res.users' model. | |||
|         :param params: Parameters for fetching res.users data. | |||
|         :return: List of dictionaries with user names. | |||
|         """ | |||
|         return self.env['res.users'].search_read(**params['search_params']) | |||
| After Width: | Height: | Size: 3.6 KiB | 
| 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: 57 KiB | 
| After Width: | Height: | Size: 58 KiB | 
| After Width: | Height: | Size: 60 KiB | 
| After Width: | Height: | Size: 58 KiB | 
| After Width: | Height: | Size: 56 KiB | 
| After Width: | Height: | Size: 58 KiB | 
| After Width: | Height: | Size: 123 KiB | 
| After Width: | Height: | Size: 118 KiB | 
| After Width: | Height: | Size: 122 KiB | 
| After Width: | Height: | Size: 147 KiB | 
| After Width: | Height: | Size: 93 KiB | 
| After Width: | Height: | Size: 141 KiB | 
| After Width: | Height: | Size: 43 KiB | 
| After Width: | Height: | Size: 9.0 KiB | 
| @ -0,0 +1,644 @@ | |||
| <div class="container" | |||
|      style="padding: 1rem !important; margin-bottom: 1rem !important;"> | |||
|     <div class="row"> | |||
|         <div class="col-sm-12 col-md-12 col-lg-12 d-flex justify-content-between" | |||
|              style="border-bottom: 1px solid #d5d5d5;"> | |||
|             <div class="my-3"> | |||
|                 <img src="./assets/icons/logo.png" | |||
|                      style="width: auto !important; height: 40px !important;"> | |||
|             </div> | |||
|             <div class="my-3 d-flex align-items-center"> | |||
|                 <div | |||
|                         style="background-color: #7C7BAD !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | |||
|                     <i class="fa fa-check mr-1"></i>Community | |||
|                 </div> | |||
|                 <div | |||
|                         style="background-color: #875A7B !important; color: #fff !important; font-weight: 600 !important; padding: 5px 15px 8px !important; margin: 0 5px !important;"> | |||
|                     <i class="fa fa-check mr-1"></i>Enterprise | |||
|                 </div> | |||
|                 <div | |||
|                         style="background-color: #87BA7B !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>Odoo.sh | |||
|                 </div> | |||
| 
 | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
| </div> | |||
| 
 | |||
| <div class="container" style="padding: 0rem 1.5rem 4rem !important"> | |||
|     <div class="row" style="height: 900px !important;"> | |||
|         <div class="col-sm-12 col-md-12 col-lg-12" | |||
|              style="padding: 4rem 1rem !important; background-color: #714B67 !important; height: 600px !important; border-radius: 20px !important;"> | |||
|             <h1 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #FFFFFF !important;  font-size: 3.5rem !important; text-align: center !important;"> | |||
|                 Salesperson on POS Order Line | |||
|             </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;"> | |||
|                 Now You Can Add Salesperson In POS Order Line </p> | |||
|             <img src="./assets/screenshots/hero.gif" class="img-responsive" | |||
|                  width="100%" height="auto"/> | |||
|         </div> | |||
|     </div> | |||
| 
 | |||
|     <div class="row"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin-bottom: 2rem !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-compass mr-2"></i>Explore this module | |||
|             </h2> | |||
|         </div> | |||
|         <div class="col-md-6"> | |||
|             <a href="#overview" style="text-decoration: none !important;"> | |||
|                 <div class="row" | |||
|                      style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                     <div class="col-8"> | |||
|                         <h3 | |||
|                                 style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                             Overview</h3> | |||
|                         <p | |||
|                                 style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                             Learn more about this module</p> | |||
|                     </div> | |||
|                     <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                         <i class="fa fa-chevron-right" | |||
|                            style="color: #714B67 !important;"></i> | |||
|                     </div> | |||
|                 </div> | |||
|             </a> | |||
|         </div> | |||
|         <div class="col-md-6"> | |||
|             <a href="#features" style="text-decoration: none !important;"> | |||
|                 <div class="row" | |||
|                      style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                     <div class="col-8"> | |||
|                         <h3 | |||
|                                 style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                             Features</h3> | |||
|                         <p | |||
|                                 style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                             View features of this module</p> | |||
|                     </div> | |||
|                     <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                         <i class="fa fa-chevron-right" | |||
|                            style="color: #714B67 !important;"></i> | |||
|                     </div> | |||
|                 </div> | |||
|             </a> | |||
|         </div> | |||
|         <div class="col-md-6"> | |||
|             <a href="#screenshots" style="text-decoration: none !important;"> | |||
|                 <div class="row" | |||
|                      style="background-color: #f5f2f5 !important; border-radius: 10px !important; margin: 1rem !important; padding: 1.5em !important; height: 100px !important;"> | |||
|                     <div class="col-8"> | |||
|                         <h3 | |||
|                                 style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.2rem !important;"> | |||
|                             Screenshots</h3> | |||
|                         <p | |||
|                                 style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #714B67 !important; font-size: 0.9rem !important;"> | |||
|                             See key screenshots of this module</p> | |||
|                     </div> | |||
|                     <div class="col-4 text-right d-flex justify-content-end align-items-center"> | |||
|                         <i class="fa fa-chevron-right" | |||
|                            style="color: #714B67 !important;"></i> | |||
|                     </div> | |||
|                 </div> | |||
|             </a> | |||
|         </div> | |||
|     </div> | |||
| 
 | |||
| 
 | |||
|     <div class="row" id="overview"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-pie-chart mr-2"></i>Overview | |||
|             </h2> | |||
|         </div> | |||
| 
 | |||
|         <div class="col-mg-12 pl-3"> | |||
|             <p | |||
|                     style="font-family: 'Roboto', sans-serif !important; font-weight: 400 !important; color: #282F33 !important; font-size: 1rem !important; line-height: 30px !important;"> | |||
|                 This module is used to add Salesperson on Pos Order Line.</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 mb-4 pl-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;"> | |||
|                     Compatible with Community and Enterprise version of | |||
|                     Odoo.</h4> | |||
| 
 | |||
|             </div> | |||
|         </div> | |||
| 
 | |||
|         <div class="col-md-6 mb-4 pl-3 d-flex"> | |||
|             <div> | |||
|                 <img src="assets/icons/check.png"> | |||
|             </div> | |||
|             <div> | |||
|                 <h4 | |||
|                         style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
| 
 | |||
|                     Set Salespersons on POS Order Line.</h4> | |||
| 
 | |||
|             </div> | |||
|         </div> | |||
| 
 | |||
| 
 | |||
|     </div> | |||
| 
 | |||
|     <div class="row" id="screenshots"> | |||
|         <div class="col-md-12" | |||
|              style="border-bottom: 1px solid #d5d5d5 !important; margin: 2rem 0 !important"> | |||
|             <h2 | |||
|                     style="font-family: 'Montserrat', sans-serif !important; font-weight: 600 !important; color: #714B67 !important; font-size: 1.5rem !important;"> | |||
|                 <i class="fa fa-image mr-2"></i>Screenshots | |||
|             </h2> | |||
|         </div> | |||
| 
 | |||
|         <div class="col-lg-12 my-2"> | |||
|             <h4 class="mt-2" | |||
|                 style="font-family: 'Roboto', sans-serif !important; font-weight: 600 !important; color: #282F33 !important; font-size: 1.3rem !important;"> | |||
|                 You can see a new button in POS. | |||
|             </h4> | |||
| 
 | |||
|             <img src="assets/screenshots/pos22.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;"> | |||
|                 Select the Salesperson from the list. | |||
|             </h4> | |||
| 
 | |||
|             <img src="assets/screenshots/pos23.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;"> | |||
|                 You can also set multiple Salespersons. | |||
| 
 | |||
|             </h4> | |||
| 
 | |||
|             <img src="assets/screenshots/pos25.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;"> | |||
|                 Here we can see the assigned Salesperson. | |||
|             </h4> | |||
|             <img src="assets/screenshots/pos26.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;"> | |||
|                 Also, the assigned Salesperson will be in receipt. | |||
|             </h4> | |||
|             <img src="assets/screenshots/receipt.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/discount_limit/#" | |||
|                                target="_blank"> | |||
|                                 <div style="border-radius:10px"> | |||
|                                     <img class="img img-responsive center-block" | |||
|                                          style="border-top-left-radius:10px; border-top-right-radius:10px" | |||
|                                          src="./assets/modules/1.png"> | |||
|                                 </div> | |||
|                             </a> | |||
|                         </div> | |||
|                         <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | |||
|                              style="float:left"> | |||
|                             <a href="https://apps.odoo.com/apps/modules/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/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/pos_multi_variant/#" | |||
|                                target="_blank"> | |||
|                                 <div style="border-radius:10px"> | |||
|                                     <img class="img img-responsive center-block" | |||
|                                          style="border-top-left-radius:10px; border-top-right-radius:10px" | |||
|                                          src="./assets/modules/3.png"> | |||
|                                 </div> | |||
|                             </a> | |||
|                         </div> | |||
|                     </div> | |||
|                     <div class="carousel-item" style="min-height:0px"> | |||
|                         <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | |||
|                              style="float:left"> | |||
|                             <a href="https://apps.odoo.com/apps/modules/14.0/product_return_pos/" | |||
|                                target="_blank"> | |||
|                                 <div style="border-radius:10px"> | |||
|                                     <img class="img img-responsive center-block" | |||
|                                          style="border-top-left-radius:10px; border-top-right-radius:10px" | |||
|                                          src="./assets/modules/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/point_of_sale_logo" | |||
|                                target="_blank"> | |||
|                                 <div style="border-radius:10px"> | |||
|                                     <img class="img img-responsive center-block" | |||
|                                          style="border-top-left-radius:10px; border-top-right-radius:10px" | |||
|                                          src="./assets/modules/5.png"> | |||
|                                 </div> | |||
|                             </a> | |||
|                         </div> | |||
|                         <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | |||
|                              style="float:left"> | |||
|                             <a href="https://apps.odoo.com/apps/modules/14.0/pos_traceability_validation/#" | |||
|                                target="_blank"> | |||
|                                 <div style="border-radius:10px"> | |||
|                                     <img class="img img-responsive center-block" | |||
|                                          style="border-top-left-radius:10px; border-top-right-radius:10px" | |||
|                                          src="./assets/modules/6.png"> | |||
|                                 </div> | |||
|                             </a> | |||
|                         </div> | |||
|                     </div> | |||
|                 </div> | |||
|                 <!-- Left and right controls --> | |||
|                 <a class="carousel-control-prev" href="#demo1" data-slide="prev" | |||
|                    style="left:-25px;width: 35px;color: #000;"> <span | |||
|                         class="carousel-control-prev-icon"><i | |||
|                         class="fa fa-chevron-left" | |||
|                         style="font-size:24px"></i></span> </a> <a | |||
|                     class="carousel-control-next" href="#demo1" | |||
|                     data-slide="next" | |||
|                     style="right:-25px;width: 35px;color: #000;"> | |||
|                     <span class="carousel-control-next-icon"><i | |||
|                             class="fa fa-chevron-right" | |||
|                             style="font-size:24px"></i></span> | |||
|             </a> | |||
|             </div> | |||
|         </div> | |||
|     </div> | |||
|     <!-- END OF SUGGESTED PRODUCTS --> | |||
| 
 | |||
|     <!-- OUR SERVICES --> | |||
|     <section class="container" style="margin-top: 6rem !important;"> | |||
|         <div class="row"> | |||
|             <div class="col-lg-12 d-flex flex-column justify-content-center align-items-center"> | |||
|                 <h2 style="color: #212529 !important;">Our Services</h2> | |||
|                 <hr | |||
|                         style="border: 3px solid #714B67 !important; background-color: #714B67 !important; width: 80px !important; margin-bottom: 2rem !important;"/> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #1dd1a1 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/cogs.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Customization</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #ff6b6b !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/wrench.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Implementation</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #6462CD !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/lifebuoy.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Support</h6> | |||
|             </div> | |||
| 
 | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/user.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Hire | |||
|                     Odoo | |||
|                     Developer</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #54a0ff  !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/puzzle.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Integration</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #6d7680 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/update.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Migration</h6> | |||
|             </div> | |||
| 
 | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/consultation.png" | |||
|                          class="img-responsive" height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Consultancy</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #f8a5c2 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/training.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Implementation</h6> | |||
|             </div> | |||
| 
 | |||
|             <div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4"> | |||
|                 <div class="d-flex justify-content-center align-items-center mx-3 my-3" | |||
|                      style="background-color: #e6be26 !important; border-radius: 15px !important; height: 80px; width: 80px;"> | |||
|                     <img src="assets/icons/license.png" class="img-responsive" | |||
|                          height="48px" width="48px"> | |||
|                 </div> | |||
|                 <h6 class="text-center" | |||
|                     style="font-family: Montserrat, 'sans-serif' !important; font-weight: bold;"> | |||
|                     Odoo | |||
|                     Licensing Consultancy</h6> | |||
|             </div> | |||
|         </div> | |||
|     </section> | |||
|     <!-- END OF 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> | |||
|     <!-- 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> | |||
| @ -0,0 +1,50 @@ | |||
| odoo.define('salesperson_pos_order_line.Orderline', function(require) { | |||
|     'use strict'; | |||
|     var models = require('point_of_sale.models'); | |||
|     var _super_orderline = models.Orderline.prototype; | |||
|     // Define the Orderline model and extend its functionality
 | |||
|     models.Orderline = models.Orderline.extend({ | |||
|         /** | |||
|          * Initialize the Orderline model. | |||
|          * | |||
|          * @param {Object} attr - The Orderline attributes. | |||
|          * @param {Object} options - The Orderline options. | |||
|          */ | |||
|         initialize: function(attr, options) { | |||
|             _super_orderline.initialize.call(this, attr, options); | |||
|             if(options.json) { | |||
|                 this.salesperson = this.salesperson; | |||
|             } | |||
|         }, | |||
|         /** | |||
|          * Initialize the Orderline model from a JSON object. | |||
|          * | |||
|          * @param {Object} json - The JSON object to initialize the model from. | |||
|          */ | |||
|         init_from_JSON: function(json) { | |||
|             _super_orderline.init_from_JSON.apply(this, arguments); | |||
|             this.salesperson = json.salesperson; | |||
|         }, | |||
| 
 | |||
|         /** | |||
|          * Export the Orderline model as a JSON object. | |||
|          * | |||
|          * @returns {Object} The Orderline model as a JSON object. | |||
|          */ | |||
|         export_as_JSON: function() { | |||
|             var json = _super_orderline.export_as_JSON.apply(this, arguments); | |||
|             json.sales_persons = this.salesperson; | |||
|             return json; | |||
|         }, | |||
| 
 | |||
|         /** | |||
|          * Set the salesperson for the Orderline. | |||
|          * | |||
|          * @param {Array} sp - The salesperson to set for the Orderline. | |||
|          */ | |||
|         set_salesperson: function(sp) { | |||
|             this.salesperson = sp[0]; | |||
|             this.trigger('change', this); | |||
|         } | |||
|     }); | |||
| }); | |||
| @ -0,0 +1,57 @@ | |||
| odoo.define('salesperson_pos_order_line.Order', function(require) { | |||
|     'use strict'; | |||
|     // Import dependencies
 | |||
|     const AbstractAwaitablePopup = require('point_of_sale.AbstractAwaitablePopup'); | |||
|     const Registries = require('point_of_sale.Registries'); | |||
|     const { useRef } = owl.hooks; | |||
|     var core = require('web.core'); | |||
|     const { | |||
|         Gui | |||
|     } = require('point_of_sale.Gui'); | |||
|     var _t = core._t; | |||
| 
 | |||
|     // Define the CustomDemoPopup class as a subclass of AbstractAwaitablePopup
 | |||
|     class CustomDemoPopup extends AbstractAwaitablePopup { | |||
| 
 | |||
|         constructor() { | |||
|             super(...arguments); | |||
|             this.salePersonRef = useRef('salePersonRef'); | |||
|         } | |||
| 
 | |||
|         /** | |||
|          * Confirm the selected salesperson for the orderline. | |||
|          * If no orderline is selected, show an error popup. | |||
|          */ | |||
|         confirm() { | |||
|             if (this.env.pos.get_order().get_selected_orderline()) { | |||
|                 var order = this.env.pos.get_order().get_selected_orderline(); | |||
|                 var product_id = order.product.id; | |||
|                 var product = this.env.pos.db.get_product_by_id(product_id); | |||
|                 let option = this.salePersonRef.el.selectedOptions[0] | |||
|                 order.set_salesperson([(option.value)]); | |||
|                 this.trigger('close-popup'); | |||
|             } else { | |||
|                 Gui.showPopup("ErrorPopup", { | |||
|                     'title': _t("Error"), | |||
|                     'body': _.str.sprintf(_t('You should add product first')), | |||
|                 }); | |||
|                 return false; | |||
|             } | |||
|         } | |||
|         /** | |||
|          * Close the popup without making any changes. | |||
|          */ | |||
|         click_cancel(){ | |||
|             this.trigger('close-popup'); | |||
|         } | |||
|     } | |||
| 
 | |||
|     // Define the template for the CustomDemoPopup
 | |||
|     CustomDemoPopup.template = "CustomDemoPopup"; | |||
| 
 | |||
|     // Register the CustomDemoPopup component with the point of sale Registries
 | |||
|     Registries.Component.add(CustomDemoPopup); | |||
| 
 | |||
|     // Export the CustomDemoPopup class for use in other modules
 | |||
|     return CustomDemoPopup | |||
| }); | |||
| @ -0,0 +1,49 @@ | |||
| odoo.define('salesperson_pos_order_line.line', function(require) { | |||
|     'use strict'; | |||
|     const PosComponent = require('point_of_sale.PosComponent'); | |||
|     const ProductScreen = require('point_of_sale.ProductScreen'); | |||
|     const { useListener } = require('web.custom_hooks'); | |||
|     const Registries = require('point_of_sale.Registries'); | |||
|     /** | |||
|      * SetProductListButton is a custom POS component that displays a list of products sorted by name. | |||
|      * Clicking the button displays a popup window that shows a list of sales persons. | |||
|      * The sales persons are passed to the popup window as a prop. | |||
|      */ | |||
|     class SetProductListButton extends PosComponent { | |||
|         constructor() { | |||
|             super(...arguments); | |||
|             useListener("click", this.onClick); | |||
|         } | |||
|         /** | |||
|          * Gets a list of products sorted by name. | |||
|          * | |||
|          * @returns {Array} An array of product objects. | |||
|          */ | |||
|          get productsList() { | |||
|              let list = []; | |||
|              list = this.env.pos.db.get_product_by_category( | |||
|                this.env.pos.selectedCategoryId | |||
|              ); | |||
|              return list.sort(function (a, b) { | |||
|                return a.display_name.localeCompare(b.display_name); | |||
|              }); | |||
|          } | |||
| 
 | |||
|         // /**
 | |||
|         //  * Handles the click event when the button is clicked.
 | |||
|         //  * Displays a popup window that shows a list of sales persons.
 | |||
|         //  */
 | |||
|          async onClick() { | |||
|              let list = this.productsList; | |||
|              this.showPopup("CustomDemoPopup",{'sales_persons':this.env.pos.users}); | |||
|          } | |||
|     } | |||
|     SetProductListButton.template = "CustomDemoButtons"; | |||
|     ProductScreen.addControlButton({ | |||
|         component: SetProductListButton, | |||
|         condition: function () { | |||
|             return true; | |||
|         }, | |||
|     }); | |||
|     Registries.Component.add(SetProductListButton); | |||
| }); | |||
| @ -0,0 +1,15 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <templates id="template" xml:space="preserve"> | |||
| <!-- Template for adding salesperson in order line--> | |||
|     <t t-name="Orderline" t-inherit="point_of_sale.Orderline" | |||
|        t-inherit-mode="extension" owl="1"> | |||
|         <xpath expr="//li[@class='info']" position="inside"> | |||
|               <br/> | |||
|             <t t-if="props.line.salesperson"> | |||
|                 Salesperson: <span id="variant_value" | |||
|                                    t-esc="props.line.salesperson"/> | |||
|                 <br/> | |||
|             </t> | |||
|         </xpath> | |||
|     </t> | |||
| </templates> | |||
| @ -0,0 +1,44 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!--    Add a popup window--> | |||
| <templates id="template" xml:space="preserve"> | |||
|    <t t-name="CustomDemoPopup" owl="1"> | |||
|        <div role="dialog" class="modal-dialog"> | |||
|           <div class="popup product-line-popup"> | |||
|              <main class="body"> | |||
|                 <div> | |||
|                    <header> | |||
|                       <h3> | |||
|                          <span>Salespersons</span> | |||
|                           <i class="fa fa-times" style="float:right" | |||
|                              t-on-click="cancel"/> | |||
|                           <hr/> | |||
|                       </h3> | |||
|                        <div class="product-img-create-popup"> | |||
|                          <img t-att-src="imageUrl" id="img_url_tag_create"/> | |||
|                       </div> | |||
|                        <select t-ref="salePersonRef" class="salesperson_select" | |||
|                                style="width:35%;height:30px;border-radius:5px;"> | |||
|                             <t t-foreach='props.sales_persons || []' | |||
|                                t-as='sales_person' t-key="sales_person.id"> | |||
|                                 <option t-att-value='sales_person.name' | |||
|                                         t-att-id="sales_person.id"> | |||
|                                     <t t-esc='sales_person.name'/> | |||
|                                 </option> | |||
|                             </t> | |||
|                         </select> | |||
|                    </header> | |||
|                 </div> | |||
|              </main> | |||
|               <footer class="footer cash-move"> | |||
|                   <div class="button confirm disable highlight" | |||
|                        t-on-click="confirm"> | |||
|                                 Confirm | |||
|                   </div> | |||
|                   <div class="button cancel" t-on-click="cancel"> | |||
|                                 Cancel | |||
|                   </div> | |||
|              </footer> | |||
|           </div> | |||
|        </div> | |||
|    </t> | |||
| </templates> | |||
| @ -0,0 +1,11 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!--    Add a button salespersons in pos--> | |||
| <templates id="template" xml:space="preserve"> | |||
|     <t t-name="CustomDemoButtons" owl="1"> | |||
|         <div class="control-button o_product_list_button"> | |||
|             <i class="fa fa-pencil-square" role="img" aria-label="Products" | |||
|                title="Product"/> | |||
|             Salesperson | |||
|         </div> | |||
|     </t> | |||
| </templates> | |||
| @ -0,0 +1,17 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- Template for adding salesperson in pos receipt --> | |||
| <templates id="template" xml:space="preserve"> | |||
|     <t t-name="OrderReceipt" t-inherit="point_of_sale.OrderReceipt" | |||
|        t-inherit-mode="extension" owl="1"> | |||
|         <xpath expr="//t[@t-if='isSimple(line)']" position="inside"> | |||
|             <t t-foreach="props.order.orderlines.models" | |||
|                t-as="salesperson"> | |||
|                 <div class="pos-receipt-left-padding" | |||
|                      t-if="salesperson.salesperson and line.id==salesperson.id"> | |||
|                     <span>Salesperson:</span> | |||
|                     <span t-esc="salesperson.salesperson"/> | |||
|                 </div> | |||
|             </t> | |||
|         </xpath> | |||
|     </t> | |||
| </templates> | |||
| @ -0,0 +1,15 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <odoo> | |||
|     <!-- Template to include additional assets for salesperson_pos_order_line --> | |||
|     <template id="assets_backend" name="salesperson_pos_order_line assets" | |||
|               inherit_id="point_of_sale.assets"> | |||
|         <xpath expr="." position="inside"> | |||
|             <script type="text/javascript" | |||
|                     src="/salesperson_pos_order_line/static/src/js/pos_orderline.js"/> | |||
|             <script type="text/javascript" | |||
|                     src="/salesperson_pos_order_line/static/src/js/pos_screen.js"/> | |||
|             <script type="text/javascript" | |||
|                     src="/salesperson_pos_order_line/static/src/js/pos_popup.js"/> | |||
|         </xpath> | |||
|     </template> | |||
| </odoo> | |||
| @ -0,0 +1,17 @@ | |||
| <?xml version="1.0" encoding="UTF-8" ?> | |||
| <odoo> | |||
|     <!--    Add a field sales persons in pos order form--> | |||
|     <record id="view_pos_pos_form" model="ir.ui.view"> | |||
|         <field name="name"> | |||
|             pos.order.view.form.inherit.salesperson.pos.order.line | |||
|         </field> | |||
|         <field name="model">pos.order</field> | |||
|         <field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/> | |||
|         <field name="arch" type="xml"> | |||
|             <xpath expr="/form/sheet/notebook/page/field[@name='lines']/tree/field[@name='full_product_name']" | |||
|                    position="after"> | |||
|                 <field name="sales_persons"/> | |||
|             </xpath> | |||
|         </field> | |||
|     </record> | |||
| </odoo> | |||