@ -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 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Pos Invoice Register Payment | 
				
			||||
 | 
					========================== | 
				
			||||
 | 
					'This module will help you create payments in customer list and register payment for invoices' | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					Configuration | 
				
			||||
 | 
					============= | 
				
			||||
 | 
					* Configure outgoing mail server | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					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: (V16) Hafeesul Ali, 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: Hafeesul Ali(<https://www.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,52 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Hafeesul Ali(<https://www.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": "POS Invoice Register Payment", | 
				
			||||
 | 
					    "version": "16.0.1.0.0", | 
				
			||||
 | 
					    "category": "Point of Sale", | 
				
			||||
 | 
					    "summary": "Create payment and register payment for invoice in pos", | 
				
			||||
 | 
					    "description": "This module will help you create payments in customer list" | 
				
			||||
 | 
					    "and register payment for invoices in pos", | 
				
			||||
 | 
					    "author": "Cybrosys Techno Solutions", | 
				
			||||
 | 
					    "company": "Cybrosys Techno Solutions", | 
				
			||||
 | 
					    "maintainer": "Cybrosys Techno Solutions", | 
				
			||||
 | 
					    "website": "https://www.cybrosys.com", | 
				
			||||
 | 
					    "depends": ["base", "point_of_sale"], | 
				
			||||
 | 
					    "assets": { | 
				
			||||
 | 
					        "point_of_sale.assets": [ | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/js/pos_partnerline.js", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/js/invoicing_button.js", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/js/payment_popup.js", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/js/invoicing_screen.js", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/xml/partnerline_button_templates.xml", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/xml/payment_pop_templates.xml", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/xml/numpad_invoicing_button_templates.xml", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/xml/invoice_screen_templates.xml", | 
				
			||||
 | 
					            "pos_invoice_payment/static/src/css/invoice_list.scss", | 
				
			||||
 | 
					        ] | 
				
			||||
 | 
					    }, | 
				
			||||
 | 
					    "images": ["static/description/banner.jpg"], | 
				
			||||
 | 
					    "license": "AGPL-3", | 
				
			||||
 | 
					    "installable": True, | 
				
			||||
 | 
					    "auto_install": False, | 
				
			||||
 | 
					    "application": False, | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,6 @@ | 
				
			|||||
 | 
					## Module <pos_invoice_payment> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 24.08.2023 | 
				
			||||
 | 
					#### Version 16.0.1.0.0 | 
				
			||||
 | 
					#### ADD | 
				
			||||
 | 
					- Initial commit for Pos Invoice Register Payment | 
				
			||||
@ -0,0 +1,24 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Hafeesul Ali(<https://www.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 account_journal | 
				
			||||
 | 
					from . import account_move | 
				
			||||
 | 
					from . import account_payment | 
				
			||||
@ -0,0 +1,43 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Hafeesul Ali(<https://www.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, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class AccountJournal(models.Model): | 
				
			||||
 | 
					    """Inherited the 'account.journal' model to add custom methods.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _inherit = "account.journal" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_journal(self): | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        Retrieve available journals. | 
				
			||||
 | 
					        Returns: | 
				
			||||
 | 
					            list: A list of dictionaries containing 'id' and 'name' of each journal. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        journal_list = [ | 
				
			||||
 | 
					            {"id": journal.id, "name": journal.name} | 
				
			||||
 | 
					            for journal in self.search( | 
				
			||||
 | 
					                ["|", ("type", "=", "bank"), ("type", "=", "cash")] | 
				
			||||
 | 
					            ) | 
				
			||||
 | 
					        ] | 
				
			||||
 | 
					        return journal_list | 
				
			||||
@ -0,0 +1,69 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Hafeesul Ali(<https://www.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 AccountMove(models.Model): | 
				
			||||
 | 
					    """Inherited the 'account.move' model to add custom methods.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _inherit = "account.move" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def get_invoices(self): | 
				
			||||
 | 
					        """Method to get invoice | 
				
			||||
 | 
					        Returns: | 
				
			||||
 | 
					         dict:A dictionary of invoice id,payment reference,partner name, | 
				
			||||
 | 
					         total amount,amount residual,state and payment state | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        invoice_list = [ | 
				
			||||
 | 
					            { | 
				
			||||
 | 
					                "invoice_id": record.id, | 
				
			||||
 | 
					                "payment_reference": record.payment_reference, | 
				
			||||
 | 
					                "partner_id": record.partner_id.name, | 
				
			||||
 | 
					                "amount_total": record.amount_total, | 
				
			||||
 | 
					                "amount_residual": record.amount_residual, | 
				
			||||
 | 
					                "state": record.state, | 
				
			||||
 | 
					                "payment_state": record.payment_state, | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					            for record in self.search([("move_type", "=", "out_invoice")]) | 
				
			||||
 | 
					        ] | 
				
			||||
 | 
					        return invoice_list | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def register_payment(self, *args): | 
				
			||||
 | 
					        """Method to register payment, | 
				
			||||
 | 
					        Args: | 
				
			||||
 | 
					            *args(int):Id of record to register payment. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        payment = self.browse(*args).action_register_payment() | 
				
			||||
 | 
					        invoice_id = payment["context"]["active_ids"][0] | 
				
			||||
 | 
					        self.env["account.payment.register"].with_context( | 
				
			||||
 | 
					            active_model="account.move", active_ids=invoice_id | 
				
			||||
 | 
					        ).create({"payment_date": fields.date.today()}).action_create_payments() | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def post_invoice(self, *args): | 
				
			||||
 | 
					        """Method to confirm non posted invoices, | 
				
			||||
 | 
					        Args: | 
				
			||||
 | 
					            *args(int):Id of record to post journal. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        self.browse(*args).action_post() | 
				
			||||
@ -0,0 +1,45 @@ | 
				
			|||||
 | 
					# -*- coding: utf-8 -*- | 
				
			||||
 | 
					############################################################################# | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Cybrosys Technologies Pvt. Ltd. | 
				
			||||
 | 
					# | 
				
			||||
 | 
					#    Copyright (C) 2023-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			||||
 | 
					#    Author: Hafeesul Ali(<https://www.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, models | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					class AccountPayment(models.Model): | 
				
			||||
 | 
					    """Inherited the 'account.payment' model to add custom methods.""" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    _inherit = "account.payment" | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @api.model | 
				
			||||
 | 
					    def create_payment(self, *args): | 
				
			||||
 | 
					        """Method to create payment | 
				
			||||
 | 
					        Args: | 
				
			||||
 | 
					            *args(tuple): A tuple of dictionary that contains journal id , | 
				
			||||
 | 
					            partner id,currency id,amount. | 
				
			||||
 | 
					        """ | 
				
			||||
 | 
					        payment = self.create( | 
				
			||||
 | 
					            { | 
				
			||||
 | 
					                "journal_id": int(args[0]["journal_id"]), | 
				
			||||
 | 
					                "partner_id": int(args[0]["partner_id"]), | 
				
			||||
 | 
					                "currency_id": int(args[0]["currency_id"]), | 
				
			||||
 | 
					                "amount": int(args[0]["amount"]), | 
				
			||||
 | 
					            } | 
				
			||||
 | 
					        ) | 
				
			||||
 | 
					        payment.action_post() | 
				
			||||
| 
		 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: 82 KiB  | 
| 
		 After Width: | Height: | Size: 86 KiB  | 
| 
		 After Width: | Height: | Size: 82 KiB  | 
| 
		 After Width: | Height: | Size: 85 KiB  | 
| 
		 After Width: | Height: | Size: 81 KiB  | 
| 
		 After Width: | Height: | Size: 70 KiB  | 
| 
		 After Width: | Height: | Size: 180 KiB  | 
| 
		 After Width: | Height: | Size: 95 KiB  | 
| 
		 After Width: | Height: | Size: 100 KiB  | 
| 
		 After Width: | Height: | Size: 66 KiB  | 
| 
		 After Width: | Height: | Size: 81 KiB  | 
| 
		 After Width: | Height: | Size: 67 KiB  | 
| 
		 After Width: | Height: | Size: 67 KiB  | 
| 
		 After Width: | Height: | Size: 313 KiB  | 
| 
		 After Width: | Height: | Size: 101 KiB  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
@ -0,0 +1,598 @@ | 
				
			|||||
 | 
					<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;"> | 
				
			||||
 | 
					          Pos Invoice Register Payment</h1> | 
				
			||||
 | 
					        <p style="color:#FFFFFF; padding: 8px 15px; text-align: center; font-size: 24px;">Current Stock Report for all | 
				
			||||
 | 
					          Pos Invoice Register Payment and Create Payment.</p> | 
				
			||||
 | 
					        <!-- END OF APP HERO --> | 
				
			||||
 | 
					        <img src="assets/screenshots/SChero.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 will help you create payments in customer list | 
				
			||||
 | 
					                and register payment for invoices. | 
				
			||||
 | 
					  </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: 40px; margin-bottom: 40px"> | 
				
			||||
 | 
					      <img src="assets/misc/check-box.png" class="mr-2" /> | 
				
			||||
 | 
					      <span style="font-family: 'Montserrat', sans-serif; font-size: 18px; font-weight: bold;">Community & | 
				
			||||
 | 
					        Enterprise Support.</span> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <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;">Invoice Register Payment from Pos.</span> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					    <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;">Create Payment from Pos.</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;">Create Payment | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">A payment can be created from customer screen.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg01.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;">Create Payment Pop Up | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">User can enter Amount and select journal to Create Payment.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg02.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;">Payments. | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Created payment can see in payments in invoicing.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg03.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;">Invoicing Button. | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Invoicing Button to redirect into Invoicing Screen.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg04.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;">Invoicing Screen. | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Here we can see all invoices.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg05.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;">Register Payment. | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;">Register Payment button for each invoice to register the payment.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg06.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;">Invoices. | 
				
			||||
 | 
					      </h3> | 
				
			||||
 | 
					      <p style="font-weight: 400; font-family: 'Montserrat', sans-serif; font-size: 14px;"> We can see payment registered for invoice.</p> | 
				
			||||
 | 
					      <img src="assets/screenshots/scimg07.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;">Suggested Products | 
				
			||||
 | 
					  </h2> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					<div class="row"> | 
				
			||||
 | 
					    <div class="col-sm-12"> | 
				
			||||
 | 
					        <div id="demo1" class="row carousel slide" data-ride="carousel"> | 
				
			||||
 | 
					            <!-- The slideshow --> | 
				
			||||
 | 
					            <div class="carousel-inner" style="padding: 30px;"> | 
				
			||||
 | 
					                <div class="carousel-item" style="min-height: 198.656px;"> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/multi_barcodes_pos/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/multi_barcodes_pos.png"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_order_line_image/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/pos_order_line_image.png"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_product_creation/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/pos_product_creation.png"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="carousel-item active" | 
				
			||||
 | 
					                     style="min-height: 198.656px;"> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_sync_orders/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/pos_sync_orders.png"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_numpad_show_hide/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/pos_numpad_show_hide.png"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="col-xs-12 col-sm-4 col-md-4 mb16 mt16" | 
				
			||||
 | 
					                         style="float:left"> | 
				
			||||
 | 
					                        <a href="https://apps.odoo.com/apps/modules/16.0/pos_category_wise_receipt/" | 
				
			||||
 | 
					                           target="_blank"> | 
				
			||||
 | 
					                            <div style="border-radius:10px"> | 
				
			||||
 | 
					                                <img class="img img-responsive center-block" | 
				
			||||
 | 
					                                     style="border-radius: 0px;" | 
				
			||||
 | 
					                                     src="assets/modules/pos_category_wise_receipt.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 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 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,16 @@ | 
				
			|||||
 | 
					.invoice-list{ | 
				
			||||
 | 
					   font-size: 16px; | 
				
			||||
 | 
					   width: 100%; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.invoice-list th, | 
				
			||||
 | 
					.invoice-list td { | 
				
			||||
 | 
					   padding: 12px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.invoice-list tr{ | 
				
			||||
 | 
					    transition: all 150ms linear; | 
				
			||||
 | 
					    background: $gray-200; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					.invoice-list thead > tr,invoice-list tr:nth-child(even) { | 
				
			||||
 | 
					    background: rgba(247,247,247,0.1); | 
				
			||||
 | 
					} | 
				
			||||
@ -0,0 +1,41 @@ | 
				
			|||||
 | 
					odoo.define('pos_invoice_payment.invoice_button', function (require) { | 
				
			||||
 | 
					    'use strict'; | 
				
			||||
 | 
					    // Import required modules
 | 
				
			||||
 | 
					    const PosComponent = require('point_of_sale.PosComponent'); | 
				
			||||
 | 
					    const ProductScreen = require('point_of_sale.ProductScreen'); | 
				
			||||
 | 
					    const { useListener } = require("@web/core/utils/hooks"); | 
				
			||||
 | 
					    const Registries = require('point_of_sale.Registries'); | 
				
			||||
 | 
					    var rpc = require('web.rpc'); | 
				
			||||
 | 
					    /* Extended PosComponent to add invoice buttons functions*/ | 
				
			||||
 | 
					    class InvoicingButton extends PosComponent { | 
				
			||||
 | 
					        setup() { | 
				
			||||
 | 
					            super.setup(); | 
				
			||||
 | 
					            useListener('click', this.onClick); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					       /*Click event handler for InvoicingButton */ | 
				
			||||
 | 
					        async onClick() { | 
				
			||||
 | 
					            var self = this; | 
				
			||||
 | 
					           /* Call RPC method to retrieve invoices*/ | 
				
			||||
 | 
					            await self.rpc({ | 
				
			||||
 | 
					                model: 'account.move', | 
				
			||||
 | 
					                method: 'get_invoices', | 
				
			||||
 | 
					            }).then(function (result) { | 
				
			||||
 | 
					                /* Show InvoicingScreen with retrieved invoices*/ | 
				
			||||
 | 
					                self.showScreen('InvoicingScreen', { | 
				
			||||
 | 
					                    invoices: result, | 
				
			||||
 | 
					                }); | 
				
			||||
 | 
					            }); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					    /* Template for InvoicingButton component */ | 
				
			||||
 | 
					    InvoicingButton.template = 'InvoicingButton'; | 
				
			||||
 | 
					    ProductScreen.addControlButton({ | 
				
			||||
 | 
					        component: InvoicingButton, | 
				
			||||
 | 
					        /*  The condition function to determine when to show the button*/ | 
				
			||||
 | 
					        condition: function () { | 
				
			||||
 | 
					            return this.env.pos; | 
				
			||||
 | 
					        }, | 
				
			||||
 | 
					    }); | 
				
			||||
 | 
					    Registries.Component.add(InvoicingButton); | 
				
			||||
 | 
					    return `InvoicingButton`; | 
				
			||||
 | 
					}); | 
				
			||||
@ -0,0 +1,46 @@ | 
				
			|||||
 | 
					odoo.define('pos_invoice_payment.InvoicingScreen', function (require) { | 
				
			||||
 | 
					    'use strict'; | 
				
			||||
 | 
					    // Import required modules
 | 
				
			||||
 | 
					    const PosComponent = require('point_of_sale.PosComponent'); | 
				
			||||
 | 
					    const ProductScreen = require('point_of_sale.ProductScreen'); | 
				
			||||
 | 
					    const Registries = require('point_of_sale.Registries'); | 
				
			||||
 | 
					    var rpc = require('web.rpc'); | 
				
			||||
 | 
					    /* Extending PosComponent to  add Invoicing Screen*/ | 
				
			||||
 | 
					    class InvoicingScreen extends PosComponent { | 
				
			||||
 | 
					        /* super the setup of PosComponent*/ | 
				
			||||
 | 
					        setup() { | 
				
			||||
 | 
					            super.setup(); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        /* Function to Navigate back to the ProductScreen */ | 
				
			||||
 | 
					        back() { | 
				
			||||
 | 
					            this.showScreen('ProductScreen'); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        /* Function to  Register a payment for the given data_id */ | 
				
			||||
 | 
					        registerPayment(data_id) { | 
				
			||||
 | 
					            var self = this; | 
				
			||||
 | 
					            this.rpc({ | 
				
			||||
 | 
					                model: "account.move", | 
				
			||||
 | 
					                method: "register_payment", | 
				
			||||
 | 
					                args: [data_id], | 
				
			||||
 | 
					            }).then(function (result) { | 
				
			||||
 | 
					                /* Function to show ProductScreen*/ | 
				
			||||
 | 
					                self.showScreen('ProductScreen', {}); | 
				
			||||
 | 
					            }); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					        /* Function to confirm the invoice with the given data_id */ | 
				
			||||
 | 
					        Confirm(data_id) { | 
				
			||||
 | 
					            var self = this; | 
				
			||||
 | 
					            this.rpc({ | 
				
			||||
 | 
					                model: "account.move", | 
				
			||||
 | 
					                method: "post_invoice", | 
				
			||||
 | 
					                args: [data_id], | 
				
			||||
 | 
					            }).then(function (result) { | 
				
			||||
 | 
					                self.showScreen('ProductScreen', {}); | 
				
			||||
 | 
					            }); | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					    }; | 
				
			||||
 | 
					    /* Template for InvoicingScreen component */ | 
				
			||||
 | 
					    InvoicingScreen.template = 'InvoicingScreen'; | 
				
			||||
 | 
					    Registries.Component.add(InvoicingScreen); | 
				
			||||
 | 
					    return InvoicingScreen; | 
				
			||||
 | 
					}); | 
				
			||||
@ -0,0 +1,54 @@ | 
				
			|||||
 | 
					/**@odoo-module **/ | 
				
			||||
 | 
					import AbstractAwaitablePopup from "point_of_sale.AbstractAwaitablePopup"; | 
				
			||||
 | 
					import Registries from "point_of_sale.Registries"; | 
				
			||||
 | 
					/** | 
				
			||||
 | 
					 * CreatePaymentPopup component for creating a payment. | 
				
			||||
 | 
					 * Extends AbstractAwaitablePopup. | 
				
			||||
 | 
					 */ | 
				
			||||
 | 
					class CreatePaymentPopup extends AbstractAwaitablePopup { | 
				
			||||
 | 
					  /** | 
				
			||||
 | 
					   * Setup method for the CreatePaymentPopup component. | 
				
			||||
 | 
					   */ | 
				
			||||
 | 
					  setup() { | 
				
			||||
 | 
					    super.setup(); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					  /** | 
				
			||||
 | 
					   * Confirm method for creating the payment. | 
				
			||||
 | 
					   * @param {Object} ev - Event data containing partner_id, currency_id, and other values. | 
				
			||||
 | 
					   */ | 
				
			||||
 | 
					  async confirm(ev) { | 
				
			||||
 | 
					    let partner_id = ev['partner_id'] | 
				
			||||
 | 
					    let currency_id = ev['currency_id'] | 
				
			||||
 | 
					    let amount = $("#amount").val(); | 
				
			||||
 | 
					    let journal_id = $("#journal").val(); | 
				
			||||
 | 
					    var values = {} | 
				
			||||
 | 
					    if (partner_id) { | 
				
			||||
 | 
					      values["partner_id"] = partner_id; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					    if (journal_id) { | 
				
			||||
 | 
					      values["journal_id"] = journal_id; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					    if (currency_id) { | 
				
			||||
 | 
					      values["currency_id"] = currency_id; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					    if (amount) { | 
				
			||||
 | 
					      values["amount"] = amount; | 
				
			||||
 | 
					    } | 
				
			||||
 | 
					    this.rpc({ | 
				
			||||
 | 
					      model: "account.payment", | 
				
			||||
 | 
					      method: "create_payment", | 
				
			||||
 | 
					      args: [values], | 
				
			||||
 | 
					    }) | 
				
			||||
 | 
					    this.env.posbus.trigger("close-popup", { | 
				
			||||
 | 
					      popupId: this.props.id, | 
				
			||||
 | 
					      response: { | 
				
			||||
 | 
					        confirmed: false, | 
				
			||||
 | 
					        payload: null, | 
				
			||||
 | 
					      }, | 
				
			||||
 | 
					    }); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					// Template for CreatePaymentPopup component
 | 
				
			||||
 | 
					CreatePaymentPopup.template = "CreatePaymentPopup"; | 
				
			||||
 | 
					// Register CreatePaymentPopup component
 | 
				
			||||
 | 
					Registries.Component.add(CreatePaymentPopup); | 
				
			||||
@ -0,0 +1,43 @@ | 
				
			|||||
 | 
					odoo.define('pos_invoice_payment.PartnerLine', function (require) { | 
				
			||||
 | 
					  'use strict'; | 
				
			||||
 | 
					  // Import required modules
 | 
				
			||||
 | 
					  const PartnerLine = require('point_of_sale.PartnerLine'); | 
				
			||||
 | 
					  const Registries = require('point_of_sale.Registries'); | 
				
			||||
 | 
					  /** | 
				
			||||
 | 
					   * Extend the PartnerLine component with custom functionality. | 
				
			||||
 | 
					   * @param {Object} PartnerLine - The original PartnerLine component. | 
				
			||||
 | 
					   */ | 
				
			||||
 | 
					  const PosPartnerLine = (PartnerLine) => | 
				
			||||
 | 
					    class extends PartnerLine { | 
				
			||||
 | 
					      /** | 
				
			||||
 | 
					       * Show the CreatePaymentPopup for the selected partner. | 
				
			||||
 | 
					       * @param {Object} ev - Event data. | 
				
			||||
 | 
					       */ | 
				
			||||
 | 
					      async showPop(ev) { | 
				
			||||
 | 
					        var partner_id = ev.target.parentElement.parentElement.attributes[1].value | 
				
			||||
 | 
					        var self = this | 
				
			||||
 | 
					        var journal_length = [] | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        // Retrieve journals and show CreatePaymentPopup
 | 
				
			||||
 | 
					        await this.rpc({ | 
				
			||||
 | 
					          model: "account.journal", | 
				
			||||
 | 
					          method: "get_journal", | 
				
			||||
 | 
					        }).then(function (result) { | 
				
			||||
 | 
					          $.each(result, function (index, name) { | 
				
			||||
 | 
					            journal_length.push(index) | 
				
			||||
 | 
					          }) | 
				
			||||
 | 
					          self.showPopup("CreatePaymentPopup", { | 
				
			||||
 | 
					            title: ("Create Payment"), | 
				
			||||
 | 
					            confirmText: ("Exit"), | 
				
			||||
 | 
					            journals: result, | 
				
			||||
 | 
					            journal_length: journal_length, | 
				
			||||
 | 
					            partner_id: partner_id | 
				
			||||
 | 
					          }); | 
				
			||||
 | 
					        }) | 
				
			||||
 | 
					      } | 
				
			||||
 | 
					    }; | 
				
			||||
 | 
					  // Extend the PartnerLine component with PosPartnerLine
 | 
				
			||||
 | 
					  Registries.Component.extend(PartnerLine, PosPartnerLine); | 
				
			||||
 | 
					  // Return the extended PartnerLine component
 | 
				
			||||
 | 
					  return PartnerLine; | 
				
			||||
 | 
					}); | 
				
			||||
@ -0,0 +1,95 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<templates id="template" xml:space="preserve"> | 
				
			||||
 | 
					   <!-- Template for Invoicing Screen --> | 
				
			||||
 | 
					   <t t-name="InvoicingScreen" owl="1"> | 
				
			||||
 | 
					       <!-- Invoicing screen container --> | 
				
			||||
 | 
					       <div class="clientlist-screen screen"> | 
				
			||||
 | 
					           <div class="screen-content"> | 
				
			||||
 | 
					               <!-- Top content section --> | 
				
			||||
 | 
					               <div class="top-content"> | 
				
			||||
 | 
					                   <!-- Back button --> | 
				
			||||
 | 
					                   <div class="button back" t-on-click="back"> | 
				
			||||
 | 
					                       Back | 
				
			||||
 | 
					                   </div> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					               <!-- Full content section --> | 
				
			||||
 | 
					               <section class="full-content"> | 
				
			||||
 | 
					                   <!-- Client window --> | 
				
			||||
 | 
					                   <div class="client-window"> | 
				
			||||
 | 
					                       <section> | 
				
			||||
 | 
					                           <div> | 
				
			||||
 | 
					                               <!-- Scrollable invoice list --> | 
				
			||||
 | 
					                               <div class="scrollable-y" style="overflow-y: scroll;height: 100vh;"> | 
				
			||||
 | 
					                                   <!-- Invoice table --> | 
				
			||||
 | 
					                                   <table class="table table-striped invoice-list"> | 
				
			||||
 | 
					                                       <!-- Table header --> | 
				
			||||
 | 
					                                       <thead> | 
				
			||||
 | 
					                                           <tr> | 
				
			||||
 | 
					                                               <th> Invoice </th> | 
				
			||||
 | 
					                                               <th> Customer Ref </th> | 
				
			||||
 | 
					                                               <th> Total Amount </th> | 
				
			||||
 | 
					                                               <th> Due Amount </th> | 
				
			||||
 | 
					                                               <th> State </th> | 
				
			||||
 | 
					                                               <th> Payment State </th> | 
				
			||||
 | 
					                                           </tr> | 
				
			||||
 | 
					                                       </thead> | 
				
			||||
 | 
					                                       <!-- Table body --> | 
				
			||||
 | 
					                                       <tbody> | 
				
			||||
 | 
					                                           <!-- Iterate over invoices --> | 
				
			||||
 | 
					                                           <t t-foreach="props.invoices" t-as="invoice" t-key="invoice.invoice_id"> | 
				
			||||
 | 
					                                               <tr> | 
				
			||||
 | 
					                                                   <!-- Display payment reference if available --> | 
				
			||||
 | 
					                                                   <t t-if="invoice.payment_reference != false"> | 
				
			||||
 | 
					                                                       <td><t t-esc="invoice.payment_reference"/></td> | 
				
			||||
 | 
					                                                   </t> | 
				
			||||
 | 
					                                                   <!-- Display empty div if payment reference not available --> | 
				
			||||
 | 
					                                                   <t t-else=""> | 
				
			||||
 | 
					                                                       <div> </div> | 
				
			||||
 | 
					                                                   </t> | 
				
			||||
 | 
					                                                   <!-- Display invoice partner ID --> | 
				
			||||
 | 
					                                                   <td><t t-esc="invoice.partner_id"/></td> | 
				
			||||
 | 
					                                                   <!-- Display invoice total amount --> | 
				
			||||
 | 
					                                                   <td><t t-esc="invoice.amount_total"/></td> | 
				
			||||
 | 
					                                                   <!-- Display invoice due amount --> | 
				
			||||
 | 
					                                                   <td><t t-esc="invoice.amount_residual"/></td> | 
				
			||||
 | 
					                                                   <!-- Display invoice state --> | 
				
			||||
 | 
					                                                   <td><t t-esc="invoice.state"/></td> | 
				
			||||
 | 
					                                                   <!-- Display invoice payment state --> | 
				
			||||
 | 
					                                                   <td><t t-esc="invoice.payment_state"/></td> | 
				
			||||
 | 
					                                                   <!-- Set data_id variable to invoice ID --> | 
				
			||||
 | 
					                                                   <t t-set="data_id" t-value="invoice.invoice_id"/> | 
				
			||||
 | 
					                                                   <!-- Show confirm button if invoice state is 'draft' --> | 
				
			||||
 | 
					                                                   <t t-if="invoice.state == 'draft'"> | 
				
			||||
 | 
					                                                       <td> | 
				
			||||
 | 
					                                                           <div class="control-button" t-on-click="() => this.Confirm(data_id)"> | 
				
			||||
 | 
					                                                               <i class="fa fa-money" role="img" aria-label="Listview" title="Listview"/> | 
				
			||||
 | 
					                                                               Confirm | 
				
			||||
 | 
					                                                           </div> | 
				
			||||
 | 
					                                                       </td> | 
				
			||||
 | 
					                                                   </t> | 
				
			||||
 | 
					                                                   <!-- Show register payment button if invoice state is 'posted' and payment state is not 'paid' --> | 
				
			||||
 | 
					                                                   <t t-if="invoice.payment_state != 'paid' and invoice.state == 'posted'"> | 
				
			||||
 | 
					                                                       <td> | 
				
			||||
 | 
					                                                           <div class="control-button" t-on-click="() => this.registerPayment(data_id)"> | 
				
			||||
 | 
					                                                               <i class="fa fa-money" role="img" aria-label="Listview" title="Listview"/> | 
				
			||||
 | 
					                                                               Register Payment | 
				
			||||
 | 
					                                                           </div> | 
				
			||||
 | 
					                                                       </td> | 
				
			||||
 | 
					                                                   </t> | 
				
			||||
 | 
					                                                   <!-- Show empty div if none of the conditions are met --> | 
				
			||||
 | 
					                                                   <t t-else=""> | 
				
			||||
 | 
					                                                       <div> </div> | 
				
			||||
 | 
					                                                   </t> | 
				
			||||
 | 
					                                               </tr> | 
				
			||||
 | 
					                                           </t> | 
				
			||||
 | 
					                                       </tbody> | 
				
			||||
 | 
					                                   </table> | 
				
			||||
 | 
					                               </div> | 
				
			||||
 | 
					                           </div> | 
				
			||||
 | 
					                       </section> | 
				
			||||
 | 
					                   </div> | 
				
			||||
 | 
					               </section> | 
				
			||||
 | 
					           </div> | 
				
			||||
 | 
					       </div> | 
				
			||||
 | 
					   </t> | 
				
			||||
 | 
					</templates> | 
				
			||||
@ -0,0 +1,13 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<templates id="template" xml:space="preserve"> | 
				
			||||
 | 
					   <!-- Template for Invoicing Button --> | 
				
			||||
 | 
					   <t t-name="InvoicingButton" owl="1"> | 
				
			||||
 | 
					       <!-- Invoicing button container --> | 
				
			||||
 | 
					       <div class="control-button"> | 
				
			||||
 | 
					           <!-- Icon for list view --> | 
				
			||||
 | 
					           <i class="fa fa-list" role="img" aria-label="Listview" title="Listview"/> | 
				
			||||
 | 
					           <!-- Button text --> | 
				
			||||
 | 
					           Invoicing | 
				
			||||
 | 
					       </div> | 
				
			||||
 | 
					   </t> | 
				
			||||
 | 
					</templates> | 
				
			||||
@ -0,0 +1,18 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<templates id="template" xml:space="preserve"> | 
				
			||||
 | 
					    <!-- Template for PartnerLine --> | 
				
			||||
 | 
					    <t t-name="PartnerLine" t-inherit="point_of_sale.PartnerLine" t-inherit-mode="extension" owl="1"> | 
				
			||||
 | 
					        <!-- Insert a control button after the td element with the class 'partner-line-email' --> | 
				
			||||
 | 
					        <xpath expr="//td[hasclass('partner-line-email')]" position="after"> | 
				
			||||
 | 
					            <!-- Control button to create payment --> | 
				
			||||
 | 
					            <td> | 
				
			||||
 | 
					                <div class="control-button" t-on-click.stop="(ev) => this.showPop(ev)"> | 
				
			||||
 | 
					                    <!-- Icon for payment --> | 
				
			||||
 | 
					                    <i class="fa fa-credit-card" role="img" aria-label="Products" title="Payment"/> | 
				
			||||
 | 
					                    <!-- Button text --> | 
				
			||||
 | 
					                    Create Payment | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </td> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </t> | 
				
			||||
 | 
					</templates> | 
				
			||||
@ -0,0 +1,50 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					<templates id="template" xml:space="preserve"> | 
				
			||||
 | 
					   <!-- Template for Create Payment Popup --> | 
				
			||||
 | 
					   <t t-name="CreatePaymentPopup" owl="1"> | 
				
			||||
 | 
					       <!-- Popup container --> | 
				
			||||
 | 
					       <div role="dialog" class="modal-dialog"> | 
				
			||||
 | 
					           <div class="popup" style="background-color: #7bcedb"> | 
				
			||||
 | 
					               <!-- Popup title --> | 
				
			||||
 | 
					               <p class="title"> | 
				
			||||
 | 
					                   Create Payment | 
				
			||||
 | 
					               </p> | 
				
			||||
 | 
					               <!-- Amount input field --> | 
				
			||||
 | 
					               <div class="field_div" style="display:flex; margin-bottom: 15px;"> | 
				
			||||
 | 
					                   <label for="amount" class="field_label" style="margin-right:10px; margin-top: 10px; width: 120px; display: inline-block; text-align: left;">Amount</label> | 
				
			||||
 | 
					                   <input type="number" name="amount" class="field_input" id="amount"/> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					               <!-- Journal selection field --> | 
				
			||||
 | 
					               <div class="field_div" style="display:flex; margin-bottom: 15px;"> | 
				
			||||
 | 
					                   <label for="Journal" class="field_label" style="margin-right:10px; margin-top: 10px; width: 120px; display: inline-block; text-align: left;">Journal</label> | 
				
			||||
 | 
					                   <select name="Journal" class="form-select" id="journal"> | 
				
			||||
 | 
					                       <!-- Iterate over journal options --> | 
				
			||||
 | 
					                       <t t-foreach="props.journal_length" t-as="journal_length" t-key="journal_length"> | 
				
			||||
 | 
					                           <t t-set="index" t-value="journal_length | int"/> | 
				
			||||
 | 
					                           <!-- Option for each journal --> | 
				
			||||
 | 
					                           <option t-att-value="props.journals[index]['id']" t-att-title="props.journals[index]['name']"> | 
				
			||||
 | 
					                               <t t-esc="props.journals[index]['name']"/> | 
				
			||||
 | 
					                           </option> | 
				
			||||
 | 
					                       </t> | 
				
			||||
 | 
					                   </select> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					               <!-- Set currency and partner ID variables --> | 
				
			||||
 | 
					               <t t-set="currency_id" t-value="env.pos.company.currency_id[0] | int"/> | 
				
			||||
 | 
					               <t t-set="id" t-value="props.partner_id | int"/> | 
				
			||||
 | 
					               <!-- Create ID dictionary for confirmation --> | 
				
			||||
 | 
					               <t t-set="id_dict" t-value="{'partner_id':id,'currency_id':currency_id}"/> | 
				
			||||
 | 
					               <!-- Popup footer --> | 
				
			||||
 | 
					               <div class="footer"> | 
				
			||||
 | 
					                   <!-- Confirm button --> | 
				
			||||
 | 
					                   <div class="button highlight confirm" t-on-click="() => this.confirm(id_dict)"> | 
				
			||||
 | 
					                       Confirm | 
				
			||||
 | 
					                   </div> | 
				
			||||
 | 
					                   <!-- Cancel button --> | 
				
			||||
 | 
					                   <div class="button cancel" t-on-click="cancel"> | 
				
			||||
 | 
					                       Cancel | 
				
			||||
 | 
					                   </div> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					           </div> | 
				
			||||
 | 
					       </div> | 
				
			||||
 | 
					   </t> | 
				
			||||
 | 
					</templates> | 
				
			||||