diff --git a/pos_customer_wallet_management/README.rst b/pos_customer_wallet_management/README.rst new file mode 100755 index 000000000..34da2e9c9 --- /dev/null +++ b/pos_customer_wallet_management/README.rst @@ -0,0 +1,45 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +POS Customer Wallet Management +============================== +This module helps to manage each customer wallet in pos + +Configuration +============= +- Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Lesser General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +* Developer: (v17) Nivedhya T, Contact: odoo@cybrosys.com, (v18) Henna Mehjabin, Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@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 `__ + +Further information +=================== +HTML Description: ``__ diff --git a/pos_customer_wallet_management/__init__.py b/pos_customer_wallet_management/__init__.py new file mode 100755 index 000000000..7c4a1a2d4 --- /dev/null +++ b/pos_customer_wallet_management/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models +from . import wizard diff --git a/pos_customer_wallet_management/__manifest__.py b/pos_customer_wallet_management/__manifest__.py new file mode 100755 index 000000000..d03f61b32 --- /dev/null +++ b/pos_customer_wallet_management/__manifest__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'POS Customer Wallet Management', + 'version': '18.0.1.0.0', + 'category': 'Point of Sale', + 'summary': 'This Module Helps to Manage Customer Wallet in POS.', + 'description': """This Module Helps to Manage Customer Wallet in POS.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'contacts', 'account', 'point_of_sale'], + 'data': [ + 'security/ir.model.access.csv', + 'data/ir_sequence_data.xml', + 'data/account_journal_data.xml', + 'data/pos_payment_method_data.xml', + 'views/res_partner_views.xml', + 'views/wallet_transaction_views.xml', + 'views/account_journal_views.xml', + 'views/pos_payment_method_views.xml', + 'wizard/recharge_wallet_views.xml' + ], + 'assets': { + 'point_of_sale._assets_pos': [ + 'pos_customer_wallet_management/static/src/xml/wallet_templates.xml', + 'pos_customer_wallet_management/static/src/js/wallet_recharge.js', + 'pos_customer_wallet_management/static/src/js/customerListScreen.js', + 'pos_customer_wallet_management/static/src/js/payment_method.js', + 'pos_customer_wallet_management/static/src/xml/balance_templates.xml', + 'pos_customer_wallet_management/static/src/xml/partner_templates.xml', + + ], + }, + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/pos_customer_wallet_management/data/account_journal_data.xml b/pos_customer_wallet_management/data/account_journal_data.xml new file mode 100644 index 000000000..33179631a --- /dev/null +++ b/pos_customer_wallet_management/data/account_journal_data.xml @@ -0,0 +1,14 @@ + + + + + POS Wallet + WAL + cash + 100 + pos_wallet + + + + + diff --git a/pos_customer_wallet_management/data/ir_sequence_data.xml b/pos_customer_wallet_management/data/ir_sequence_data.xml new file mode 100755 index 000000000..868886882 --- /dev/null +++ b/pos_customer_wallet_management/data/ir_sequence_data.xml @@ -0,0 +1,13 @@ + + + + + + Wallet Transaction + wallet.transaction + WT + 3 + 1 + + + diff --git a/pos_customer_wallet_management/data/pos_payment_method_data.xml b/pos_customer_wallet_management/data/pos_payment_method_data.xml new file mode 100644 index 000000000..67db02128 --- /dev/null +++ b/pos_customer_wallet_management/data/pos_payment_method_data.xml @@ -0,0 +1,10 @@ + + + + + Wallet + + + + + diff --git a/pos_customer_wallet_management/doc/RELEASE_NOTES.md b/pos_customer_wallet_management/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..658c1add7 --- /dev/null +++ b/pos_customer_wallet_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 16.01.2025 +#### Version 18.0.1.0.0 +#### ADD +- Initial Commit for POS Customer Wallet Management diff --git a/pos_customer_wallet_management/models/__init__.py b/pos_customer_wallet_management/models/__init__.py new file mode 100755 index 000000000..67125f662 --- /dev/null +++ b/pos_customer_wallet_management/models/__init__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import pos_payment_method +from . import pos_session +from . import account_journal +from . import res_partner +from . import wallet_transaction diff --git a/pos_customer_wallet_management/models/account_journal.py b/pos_customer_wallet_management/models/account_journal.py new file mode 100644 index 000000000..5238fbe73 --- /dev/null +++ b/pos_customer_wallet_management/models/account_journal.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api,fields, models + +class AccountJournal(models.Model): + """Adding fields to account journal""" + _inherit = "account.journal" + + wallet_journal = fields.Boolean(string="Wallet Journal", + help="Journal for wallet") + + @api.model + def _load_pos_data_fields(self, config_id): + return ['id', 'name', 'type'] + + @api.model + def _load_pos_data_domain(self, data): + pass + + def _load_pos_data(self, data): + domain = [] + fields = self._load_pos_data_fields(data['pos.config']['data'][0]['id']) + return { + 'data': self.search_read([], fields, load=False), + 'fields': self._load_pos_data_fields(data['pos.config']['data'][0]['id']), + } diff --git a/pos_customer_wallet_management/models/pos_payment_method.py b/pos_customer_wallet_management/models/pos_payment_method.py new file mode 100644 index 000000000..14e6460e0 --- /dev/null +++ b/pos_customer_wallet_management/models/pos_payment_method.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models, api + + +class PosPaymentMethod(models.Model): + """Adding fields to pos payment method""" + _inherit = "pos.payment.method" + + wallet_journal = fields.Boolean(related="journal_id.wallet_journal", + string="Wallet Journal", + help="Journal for wallet") + + @api.model + def _load_pos_data_fields(self, config_id): + """The list of field to be loaded for POS data.""" + fields = super()._load_pos_data_fields(config_id) + fields += ['wallet_journal'] + return fields diff --git a/pos_customer_wallet_management/models/pos_session.py b/pos_customer_wallet_management/models/pos_session.py new file mode 100644 index 000000000..87d2aeff9 --- /dev/null +++ b/pos_customer_wallet_management/models/pos_session.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models + + +class PosSession(models.Model): + """Class to load models in to pos session""" + _inherit = "pos.session" + + def _load_pos_data_models(self, config_id): + res = super(PosSession, self)._load_pos_data_models(config_id) + res += ['account.journal'] + return res diff --git a/pos_customer_wallet_management/models/res_partner.py b/pos_customer_wallet_management/models/res_partner.py new file mode 100755 index 000000000..72316f73f --- /dev/null +++ b/pos_customer_wallet_management/models/res_partner.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class ResPartner(models.Model): + """Add field into res partner""" + _inherit = 'res.partner' + + wallet_balance = fields.Float(string="Wallet Balance", + help="Wallet balance of each employee") + wallet_count = fields.Integer(string="Wallet", + compute='_compute_wallet_count', + help="Count of each wallet recharge") + + @api.model + def _load_pos_data_fields(self, config_id): + fields = super()._load_pos_data_fields(config_id) + fields.append('wallet_balance') + return fields + + def action_recharge(self): + """Open wizard for wallet recharge and user + can use this wizard to recharge the wallet balance.""" + return { + 'name': 'Wallet Recharge', + 'type': 'ir.actions.act_window', + 'res_model': 'recharge.wallet', + 'view_mode': 'form', + 'view_type': 'form', + 'target': 'new', + } + + def action_number_of_wallet(self): + """Wallet balance tree view""" + self.ensure_one() + return { + 'type': 'ir.actions.act_window', + 'name': 'Wallet', + 'view_mode': 'list', + 'res_model': 'wallet.transaction', + 'domain': [('customer', '=', self.name)], + 'context': "{'create': False}" + } + + def _compute_wallet_count(self): + """This computed method calculates the number of wallet + transactions associated with each partner and updates the `wallet_count` field accordingly.""" + for record in self: + record.wallet_count = self.env['wallet.transaction'].search_count( + [('customer', '=', self.name)]) + + @api.model + def write_value(self, wallet_balance, partner_id, session, price, currency_id): + partner = self.env['res.partner'].browse(partner_id) + if not partner.exists(): + raise ValidationError("Partner not found") + + existing_transaction = self.env['wallet.transaction'].search([ + ('customer', '=', partner.name), + ('amount', '=', price), + ('pos_order', '=', str(session)), + ('type', '=', 'Debit') + ], limit=1) + + if existing_transaction: + return + partner.wallet_balance = wallet_balance + current_session = self.env['pos.session'].search([('state', '=', 'opened')], limit=1) + session_name = current_session.name if current_session else f"Session-{session}" + + self.env['wallet.transaction'].create({ + 'type': "Debit", + 'customer': partner.name, + 'amount': price, + 'pos_order': session_name, + 'currency': currency_id, + }) diff --git a/pos_customer_wallet_management/models/wallet_transaction.py b/pos_customer_wallet_management/models/wallet_transaction.py new file mode 100755 index 000000000..263ab13ac --- /dev/null +++ b/pos_customer_wallet_management/models/wallet_transaction.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class WalletTransaction(models.Model): + """Adding wallet transaction fields""" + _name = 'wallet.transaction' + _description = "Wallet Transaction" + + name = fields.Char(string="Name", help="Sequence of wallet transaction") + type = fields.Char(string="Type", help="Type of wallet transaction") + customer = fields.Char(string="Customer", + help="Customer of wallet transaction") + pos_order = fields.Char(string="POS Order", + help="Order reference of wallet transaction") + amount = fields.Float(string="Amount", + help="Amount of wallet transaction") + currency = fields.Char(string="Currency", + help="Currency of wallet transaction") + + @api.model + def create(self, vals): + """Create sequence for wallet transaction""" + vals['name'] = self.env['ir.sequence'].next_by_code( + 'wallet.transaction') + return super(WalletTransaction, self).create(vals) diff --git a/pos_customer_wallet_management/security/ir.model.access.csv b/pos_customer_wallet_management/security/ir.model.access.csv new file mode 100755 index 000000000..3f929d198 --- /dev/null +++ b/pos_customer_wallet_management/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_recharge_wallet_user,access.recharge.wallet.user,model_recharge_wallet,base.group_user,1,1,1,1 +access_wallet_transaction_user,access.wallet.transaction.user,model_wallet_transaction,base.group_user,1,1,1,1 diff --git a/pos_customer_wallet_management/static/description/assets/Gif .gif b/pos_customer_wallet_management/static/description/assets/Gif .gif new file mode 100644 index 000000000..5e380e8cb Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/Gif .gif differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/arrows-repeat.svg b/pos_customer_wallet_management/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/banner-bg.svg b/pos_customer_wallet_management/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/banner-call.svg b/pos_customer_wallet_management/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/banner-mail.svg b/pos_customer_wallet_management/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/banner-pattern.svg b/pos_customer_wallet_management/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/brand-pair.svg b/pos_customer_wallet_management/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/check.png b/pos_customer_wallet_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/check.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/chevron.png b/pos_customer_wallet_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/chevron.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/cogs.png b/pos_customer_wallet_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/cogs.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/consultation.png b/pos_customer_wallet_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/consultation.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/ecom-black.png b/pos_customer_wallet_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/ecom-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/education-black.png b/pos_customer_wallet_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/education-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/feature-icon.svg b/pos_customer_wallet_management/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/gear.svg b/pos_customer_wallet_management/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/hire-odoo.svg b/pos_customer_wallet_management/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/hotel-black.png b/pos_customer_wallet_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/hotel-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/license.png b/pos_customer_wallet_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/license.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/life-ring-icon.svg b/pos_customer_wallet_management/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/lifebuoy.png b/pos_customer_wallet_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/lifebuoy.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/mail.svg b/pos_customer_wallet_management/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/manufacturing-black.png b/pos_customer_wallet_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/odoo-consultancy.svg b/pos_customer_wallet_management/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/odoo-licencing.svg b/pos_customer_wallet_management/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/patter.svg b/pos_customer_wallet_management/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/pos-black.png b/pos_customer_wallet_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/pos-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/puzzle-piece-icon.svg b/pos_customer_wallet_management/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/puzzle.png b/pos_customer_wallet_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/puzzle.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/restaurant-black.png b/pos_customer_wallet_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/restaurant-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/service-black.png b/pos_customer_wallet_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/service-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/skype-fill.svg b/pos_customer_wallet_management/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/trading-black.png b/pos_customer_wallet_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/trading-black.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/training.png b/pos_customer_wallet_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/training.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/update.png b/pos_customer_wallet_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/update.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/user.png b/pos_customer_wallet_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/user.png differ diff --git a/pos_customer_wallet_management/static/description/assets/icons/whatsapp.svg b/pos_customer_wallet_management/static/description/assets/icons/whatsapp.svg new file mode 100644 index 000000000..bba9ca395 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/whatsapp.svg @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/pos_customer_wallet_management/static/description/assets/icons/wrench-icon.svg b/pos_customer_wallet_management/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/pos_customer_wallet_management/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/pos_customer_wallet_management/static/description/assets/icons/wrench.png b/pos_customer_wallet_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/icons/wrench.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/categories.png b/pos_customer_wallet_management/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/categories.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/check-box.png b/pos_customer_wallet_management/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/check-box.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/compass.png b/pos_customer_wallet_management/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/compass.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/corporate.png b/pos_customer_wallet_management/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/corporate.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/customer-support.png b/pos_customer_wallet_management/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/customer-support.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/cybrosys-logo.png b/pos_customer_wallet_management/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/cybrosys-logo.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/features.png b/pos_customer_wallet_management/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/features.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/logo.png b/pos_customer_wallet_management/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/logo.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/pictures.png b/pos_customer_wallet_management/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/pictures.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/pie-chart.png b/pos_customer_wallet_management/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/pie-chart.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/right-arrow.png b/pos_customer_wallet_management/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/right-arrow.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/star.png b/pos_customer_wallet_management/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/star.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/support.png b/pos_customer_wallet_management/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/support.png differ diff --git a/pos_customer_wallet_management/static/description/assets/misc/whatsapp.png b/pos_customer_wallet_management/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/misc/whatsapp.png differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/1.jpg b/pos_customer_wallet_management/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..3cb15fe01 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/1.jpg differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/2.jpg b/pos_customer_wallet_management/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/2.jpg differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/3.jpg b/pos_customer_wallet_management/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..717a00443 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/3.jpg differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/4.jpg b/pos_customer_wallet_management/static/description/assets/modules/4.jpg new file mode 100644 index 000000000..083691acf Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/4.jpg differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/5.jpg b/pos_customer_wallet_management/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..7c67e2eec Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/5.jpg differ diff --git a/pos_customer_wallet_management/static/description/assets/modules/6.gif b/pos_customer_wallet_management/static/description/assets/modules/6.gif new file mode 100644 index 000000000..a35ece8df Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/modules/6.gif differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/POS-Wallet.png b/pos_customer_wallet_management/static/description/assets/screenshots/POS-Wallet.png new file mode 100644 index 000000000..03c178ed1 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/POS-Wallet.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/Wallet-POS.png b/pos_customer_wallet_management/static/description/assets/screenshots/Wallet-POS.png new file mode 100644 index 000000000..27886f4e3 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/Wallet-POS.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/hero.gif b/pos_customer_wallet_management/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..126b61bcc Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/hero.gif differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img1.png b/pos_customer_wallet_management/static/description/assets/screenshots/img1.png new file mode 100644 index 000000000..e358e4733 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img1.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img10.png b/pos_customer_wallet_management/static/description/assets/screenshots/img10.png new file mode 100644 index 000000000..cbdecd043 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img10.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img11.png b/pos_customer_wallet_management/static/description/assets/screenshots/img11.png new file mode 100644 index 000000000..ab718eca1 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img11.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img12.png b/pos_customer_wallet_management/static/description/assets/screenshots/img12.png new file mode 100644 index 000000000..b4e7ed797 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img12.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img13.png b/pos_customer_wallet_management/static/description/assets/screenshots/img13.png new file mode 100644 index 000000000..f44965fd4 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img13.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img14.png b/pos_customer_wallet_management/static/description/assets/screenshots/img14.png new file mode 100644 index 000000000..206b7ff9d Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img14.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img15.png b/pos_customer_wallet_management/static/description/assets/screenshots/img15.png new file mode 100644 index 000000000..241d718d5 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img15.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img16.png b/pos_customer_wallet_management/static/description/assets/screenshots/img16.png new file mode 100644 index 000000000..811e07e67 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img16.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img17.png b/pos_customer_wallet_management/static/description/assets/screenshots/img17.png new file mode 100644 index 000000000..9dfd3a156 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img17.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img18.png b/pos_customer_wallet_management/static/description/assets/screenshots/img18.png new file mode 100644 index 000000000..a79ddf000 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img18.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img2.png b/pos_customer_wallet_management/static/description/assets/screenshots/img2.png new file mode 100644 index 000000000..11623853e Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img2.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img3.png b/pos_customer_wallet_management/static/description/assets/screenshots/img3.png new file mode 100644 index 000000000..dc6518d4d Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img3.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img4.png b/pos_customer_wallet_management/static/description/assets/screenshots/img4.png new file mode 100644 index 000000000..188206543 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img4.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img5.png b/pos_customer_wallet_management/static/description/assets/screenshots/img5.png new file mode 100644 index 000000000..af07daeb0 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img5.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img6.png b/pos_customer_wallet_management/static/description/assets/screenshots/img6.png new file mode 100644 index 000000000..928bc6899 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img6.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img7.png b/pos_customer_wallet_management/static/description/assets/screenshots/img7.png new file mode 100644 index 000000000..862bb3054 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img7.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img8.png b/pos_customer_wallet_management/static/description/assets/screenshots/img8.png new file mode 100644 index 000000000..4f1adcb30 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img8.png differ diff --git a/pos_customer_wallet_management/static/description/assets/screenshots/img9.png b/pos_customer_wallet_management/static/description/assets/screenshots/img9.png new file mode 100644 index 000000000..0d8695234 Binary files /dev/null and b/pos_customer_wallet_management/static/description/assets/screenshots/img9.png differ diff --git a/pos_customer_wallet_management/static/description/banner.jpg b/pos_customer_wallet_management/static/description/banner.jpg new file mode 100644 index 000000000..ce7e78848 Binary files /dev/null and b/pos_customer_wallet_management/static/description/banner.jpg differ diff --git a/pos_customer_wallet_management/static/description/icon.png b/pos_customer_wallet_management/static/description/icon.png new file mode 100644 index 000000000..0b37d49eb Binary files /dev/null and b/pos_customer_wallet_management/static/description/icon.png differ diff --git a/pos_customer_wallet_management/static/description/index.html b/pos_customer_wallet_management/static/description/index.html new file mode 100644 index 000000000..87fc1289f --- /dev/null +++ b/pos_customer_wallet_management/static/description/index.html @@ -0,0 +1,1528 @@ + + + + + + POS Customer Wallet Management + + + + + + + + + + +
+
+ + + + +
+
+
+
+
+
+ +
+ Supports: +
+ Community +
+
+ Enterprise +
+
+
+
+
+ Availability: +
+ On Premise +
+
+ Odoo.sh +
+
+ Odoo Online +
+
+
+
+
+
+ +
+ +
+
+
+
+

+ Manage Customer Wallet in POS +

+

POS Customer Wallet Management +

+
+
+ +
+ + + + +
+ +
+
+
+ +
+
+ +
+
+ + +
+
+
+

Key + Highlights

+
+
+
+
+ +
+
+ Recharge Wallet of Customer. +
+

+

+
+
+
+
+
+ +
+
+ Create Wallet Transaction in Point of Sale. +
+

+

+
+
+
+
+
+ +
+
+ Display Wallet Balance of Customer. +
+

+

+
+
+
+
+
+ +
+
+ Create new Wallet Payment Method. +
+

+

+
+
+
+
+
+ +
+
+ Payment using Customer Wallet Balance. +
+

+

+
+
+
+
+
+ +
+
+ Create Wallet Recharge from Pos Session. +
+

+

+
+
+
+
+ +
+
+
+ POS Customer Wallet Management +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Wallet Recharge of each Customer. + +

+
+
+

+ By clicking WALLET RECHARGE button open a wizard for Wallet Recharge. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ +

+
+
+

+ We can enter the Amount and Journal for recharging. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ We can see the wallet is now recharged. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+

+
+
+

+ We can see a Wallet Management menu containing all wallet transaction details in Wallet Transaction menu. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ +

+
+
+

+ Wallet details of customer when we recharged. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+

+ A payment is created in Invoicing. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ See the data for POS Wallet Journal +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ See the Payment Method with the same journal +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ Choose wallet Payment Method from Configuration Settings +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When we enter in to the Pos Session we can see a WALLET RECHARGE button in each partner +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ While clicking the button we can recharge the wallet +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ Customers wallet balance displaying in screen +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When we validate payment with product in order line, There is an option to pay with wallet. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When we validate payment without one product in order line,it will generate a Warning Message +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When we validate payment without the customer,it will generate a Warning Message +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When the customer have Wallet Balance 0,it will generate a Warning Message +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ When the order price is greater than the Wallet Balance it will generate a Warning Message +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + +

+
+
+

+ Wallet Transaction created +

+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+

+ Recharge Wallet of Customer. +

+
+
+

+ Recharge a customer's wallet balance directly from the backend or POS interface, making funds available for future purchases. +

+
+
+
+
+
+
+
+ +
+

+ Create Wallet Transactions in Point of Sale

+
+
+

+ Automatically log each wallet recharge and wallet-based payment as a transaction within the POS, ensuring full traceability. +

+
+
+
+
+
+
+
+ +
+

+ Integrate Wallet Payments in Customer Invoices +

+
+
+

+ Use wallet balance to register partial or full payments in customer invoices, seamlessly linking POS and accounting. +

+
+
+
+
+
+
+
+ +
+

+ Real-Time Wallet Balance Display in POS +

+
+
+

+ Show the customer’s current wallet balance directly on the POS screen during order processing for quick decision-making. +

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ Yes, the customer's wallet balance is shown on the POS screen when they are selected. +

+
+
+ +
+ +
+

+ The remaining amount can be paid using any other available payment method. +

+
+
+ +
+ +
+

+ Yes, all wallet recharges and payments are saved and can be viewed in the backend. +

+
+
+
+ +
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 30th October, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + +
+

+ Related Products +

+ +
+ + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/pos_customer_wallet_management/static/src/js/customerListScreen.js b/pos_customer_wallet_management/static/src/js/customerListScreen.js new file mode 100755 index 000000000..802ebf8a1 --- /dev/null +++ b/pos_customer_wallet_management/static/src/js/customerListScreen.js @@ -0,0 +1,52 @@ +/** @odoo-module */ +import { PartnerLine } from "@point_of_sale/app/screens/partner_list/partner_line/partner_line"; +import { patch } from "@web/core/utils/patch"; +import { PosStore } from "@point_of_sale/app/store/pos_store"; +import { _t } from "@web/core/l10n/translation"; +import { RechargeScreen } from "./wallet_recharge"; +import { useService } from "@web/core/utils/hooks"; + +patch(PosStore.prototype, { + async setup() { + await super.setup(...arguments); + this.loadServer() + this["account_journal"] = []; + }, + + async loadServer() { + const model_data = this.data['account.journal']; + if (model_data && model_data.data) { + this.account_journal = model_data.data; + } else { + this.account_journal = []; + } + } +}); + +patch(PartnerLine.prototype, { + setup() { + super.setup(...arguments); + this.dialog = useService("dialog"); + this.pos = useService("pos"); + }, + + onClickWallet(ev) { + if (ev) { + ev.stopPropagation(); + } + + const partner = this.props.partner; + if (!partner) { + console.error("Partner is not defined"); + return; + } + const data = this.pos.account_journal || []; + + this.dialog.add(RechargeScreen, { + title: _t("Wallet Recharge"), + partner: partner, + data: data, + }); + + } +}); diff --git a/pos_customer_wallet_management/static/src/js/payment_method.js b/pos_customer_wallet_management/static/src/js/payment_method.js new file mode 100644 index 000000000..a3c143b27 --- /dev/null +++ b/pos_customer_wallet_management/static/src/js/payment_method.js @@ -0,0 +1,85 @@ +/** @odoo-module */ +import { PaymentScreen } from "@point_of_sale/app/screens/payment_screen/payment_screen"; +import { browser } from "@web/core/browser/browser"; +import { patch } from "@web/core/utils/patch"; +import { _t } from "@web/core/l10n/translation"; + + +patch(PaymentScreen.prototype, { + setup() { + super.setup(...arguments); + }, + + async addNewPaymentLine(paymentMethod) { + var partner = this.currentOrder.get_partner(); + var selected_orderline = this.currentOrder.get_selected_orderline(); + + if (!partner) { + this.env.services.notification.add(_t("Choose Customer First"), { type: 'danger' }); + return; + } + else if (!selected_orderline) { + this.env.services.notification.add(_t("Choose Product First"), { type: 'danger' }); + return; + } + else { + return super.addNewPaymentLine(paymentMethod); + } + }, + + async validateOrder(isForceValidate) { + try { + if (this.currentOrder._walletProcessed) { + return super.validateOrder(isForceValidate); + } + + const paymentLines = this.currentOrder.paymentlines || this.currentOrder.payment_ids || []; + let hasWalletPayment = false; + + for (const paymentLine of paymentLines) { + const paymentMethod = paymentLine.payment_method || paymentLine.payment_method_id; + + console.log("paymentMethod--->>", paymentMethod); + debugger + + if (paymentMethod && paymentMethod.wallet_journal) { + hasWalletPayment = true; + + this.currentOrder._walletProcessed = true; + var price = paymentLine.amount; + var session = this.pos.config.current_session_id[1]; + var currency_id = this.pos.company.currency_id[1]; + var partner = this.currentOrder.get_partner(); + var wallet_balance = partner.wallet_balance; + + if (wallet_balance < price) { + this.currentOrder._walletProcessed = false; + this.env.services.notification.add(_t("Not enough wallet balance"), { type: 'danger' }); + return; + } else { + try { + var balance = wallet_balance - price; + var currency_name = this.pos.currency.name; + await this.env.services.orm.call("res.partner", "write_value", [balance, partner.id, session, price, currency_name]); + + partner.wallet_balance = balance; + + break; + } catch (error) { + this.currentOrder._walletProcessed = false; + this.env.services.notification.add(_t("Failed to update wallet balance"), { type: 'danger' }); + return; + } + } + } + } + return super.validateOrder(isForceValidate); + + } catch (error) { + if (this.currentOrder) { + this.currentOrder._walletProcessed = false; + } + this.env.services.notification.add(_t("An error occurred during order validation"), { type: 'danger' }); + } + } +}); diff --git a/pos_customer_wallet_management/static/src/js/wallet_recharge.js b/pos_customer_wallet_management/static/src/js/wallet_recharge.js new file mode 100755 index 000000000..504ec3dbe --- /dev/null +++ b/pos_customer_wallet_management/static/src/js/wallet_recharge.js @@ -0,0 +1,102 @@ +/** @odoo-module */ +import { Component } from "@odoo/owl"; +import { browser } from "@web/core/browser/browser"; +import { useRef, onMounted,onWillStart } from "@odoo/owl"; +import { useService } from "@web/core/utils/hooks"; +import { _t } from "@web/core/l10n/translation"; +import { Dialog } from "@web/core/dialog/dialog"; + + +export class RechargeScreen extends Component { + static template = "pos_customer_wallet_management.RechargeScreen"; + + static props = { + confirmText: { type: String, optional: true }, + cancelText: { type: String, optional: true }, + title: { type: String, optional: true }, + partner: { type: Object }, + data: { type: Array }, + close: { type: Function } + }; + + static components = { + Dialog + } + + static defaultProps = { + confirmText: 'Add', + cancelText: 'Cancel', + title: 'Wallet Recharge' + }; + + setup() { + this.amount_input = useRef("amountInput"); + this.journalInput = useRef("journalInput"); + this.orm = useService('orm'); + this.notification = useService('notification'); + + // Ensure journals is always an array + this.journals = []; + + onWillStart(async () => { + this.journals = await this.orm.searchRead( + "account.journal", + [],["id", "name"]) + }); + + onMounted(() => { + if (this.amount_input.el) { + this.amount_input.el.focus(); + } + }); + } + + async confirm() { + const journalId = parseInt(this.journalInput.el.value); + + if (!this.amount_input.el || !this.journalInput.el) { + return; + } + + const partner = this.props.partner; + const amount_input = this.amount_input.el.value; + const journalInput = this.journalInput.el.value; + + if (amount_input.trim() === '' || journalInput.trim() === '') { + this._showErrorMsg(_t("Please fill all fields")); + return; + } + + try { + const pos = this.env.services.pos; + const currency = this.env.services.pos.currency.name; + const session = this.env.services.pos.config.current_session_id.id; + + const rpc = await this.orm.call("recharge.wallet", "frontend_recharge", [ + partner.id, + parseFloat(amount_input), + currency, + session, + journalId + ]); + + this.notification.add(_t('Successfully Recharged Your Wallet'), { + type: 'success', + }); + this.props.close(); + browser.location.reload(); + } catch (error) { + this._showErrorMsg(_t("Failed to recharge wallet")); + } + } + + cancel() { + this.props.close(); + } + + _showErrorMsg(msg) { + this.notification.add(msg, { + type: 'danger', + }); + } +} diff --git a/pos_customer_wallet_management/static/src/xml/balance_templates.xml b/pos_customer_wallet_management/static/src/xml/balance_templates.xml new file mode 100755 index 000000000..af6572d78 --- /dev/null +++ b/pos_customer_wallet_management/static/src/xml/balance_templates.xml @@ -0,0 +1,25 @@ + + + + + +
+ WALLET[] +
+
+
+ + +
+ + + +
WALLET[] + +
+
+
+
+
diff --git a/pos_customer_wallet_management/static/src/xml/partner_templates.xml b/pos_customer_wallet_management/static/src/xml/partner_templates.xml new file mode 100755 index 000000000..31fb1d549 --- /dev/null +++ b/pos_customer_wallet_management/static/src/xml/partner_templates.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/pos_customer_wallet_management/static/src/xml/wallet_templates.xml b/pos_customer_wallet_management/static/src/xml/wallet_templates.xml new file mode 100755 index 000000000..74b232fc3 --- /dev/null +++ b/pos_customer_wallet_management/static/src/xml/wallet_templates.xml @@ -0,0 +1,57 @@ + + + + + + + + + diff --git a/pos_customer_wallet_management/views/account_journal_views.xml b/pos_customer_wallet_management/views/account_journal_views.xml new file mode 100755 index 000000000..5a03c7c32 --- /dev/null +++ b/pos_customer_wallet_management/views/account_journal_views.xml @@ -0,0 +1,16 @@ + + + + + + account.journal.view.form.inherit.pos.customer.wallet.management + + account.journal + + + + + + + + diff --git a/pos_customer_wallet_management/views/pos_payment_method_views.xml b/pos_customer_wallet_management/views/pos_payment_method_views.xml new file mode 100644 index 000000000..d22fb7097 --- /dev/null +++ b/pos_customer_wallet_management/views/pos_payment_method_views.xml @@ -0,0 +1,18 @@ + + + + + + pos.payment.method.view.form.inherit.pos.customer.wallet.management + + pos.payment.method + + + + + + + + diff --git a/pos_customer_wallet_management/views/res_partner_views.xml b/pos_customer_wallet_management/views/res_partner_views.xml new file mode 100755 index 000000000..35296ba68 --- /dev/null +++ b/pos_customer_wallet_management/views/res_partner_views.xml @@ -0,0 +1,29 @@ + + + + + + res.partner.view.form.inherit.pos.customer.wallet.management + + res.partner + + +
+ +
+ + + +
+
+
+
+
+
+
diff --git a/pos_customer_wallet_management/views/wallet_transaction_views.xml b/pos_customer_wallet_management/views/wallet_transaction_views.xml new file mode 100755 index 000000000..5f8ec90f9 --- /dev/null +++ b/pos_customer_wallet_management/views/wallet_transaction_views.xml @@ -0,0 +1,73 @@ + + + + + + wallet.transaction.view.list.pos.customer.wallet.management + + wallet.transaction + + + + + + + + + + + + + + + wallet.transaction.view.form.pos.customer.wallet.management + + wallet.transaction + +
+ + + + + + + + + + +
+
+
+ + + wallet.transaction.view.search + wallet.transaction + + + + + + + + + + + + + + + Wallet Transaction + wallet.transaction + list,form + + + + +
diff --git a/pos_customer_wallet_management/wizard/__init__.py b/pos_customer_wallet_management/wizard/__init__.py new file mode 100755 index 000000000..029dfe22e --- /dev/null +++ b/pos_customer_wallet_management/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import recharge_wallet diff --git a/pos_customer_wallet_management/wizard/recharge_wallet.py b/pos_customer_wallet_management/wizard/recharge_wallet.py new file mode 100755 index 000000000..7a3c1606a --- /dev/null +++ b/pos_customer_wallet_management/wizard/recharge_wallet.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class RechargeWallet(models.TransientModel): + """Wallet recharge fields""" + _name = "recharge.wallet" + _description = "Create Wallet Recharge Of Each Customer" + + journal_id = fields.Many2one("account.journal", string="Payment Journal", + help="Select journal type") + recharge_amount = fields.Float(string="Recharge Amount", + help="Recharge amount in wallet") + + def action_submit(self): + """Create wallet recharge and wallet transaction Raises + ValidationError: If the recharge amount is less than or equal to zero.""" + if self.recharge_amount <= 0: + raise ValidationError("Recharge amount must be greater than zero.") + partner = self.env['res.partner'].browse( + self.env.context.get('active_id')) + partner.write({ + 'wallet_balance': partner.wallet_balance + self.recharge_amount}) + current_session = self.env['pos.session'].search([('state', '=', 'opened')], limit=1) + session_name = current_session.name if current_session else "Credit" + self.env['wallet.transaction'].create({ + 'type': "Credit", + 'customer': partner.name, + 'amount': self.recharge_amount, + 'pos_order': session_name, + 'currency': partner.currency_id.name + }) + self.env['account.payment'].create({ + 'amount': self.recharge_amount, + 'payment_type': "inbound", + 'partner_id': partner.id, + 'journal_id': self.journal_id.id + }) + + @api.model + def frontend_recharge(self, partner_id, amount_input, currency, session_id, journal_id): + """Create functions for frontend wallet recharge""" + partner = self.env['res.partner'].browse(partner_id) + session = self.env['pos.session'].browse(session_id) + journal = self.env['account.journal'].browse(journal_id) + + if session.exists(): + session_name = session.name + else: + current_session = self.env['pos.session'].search([('state', '=', 'opened')], limit=1) + session_name = current_session.name if current_session else "POS Recharge" + + self.env['wallet.transaction'].create({ + 'type': "Credit", + 'customer': partner.name, + 'amount': amount_input, + 'pos_order': session_name, + 'currency': currency + }) + self.env['account.payment'].create({ + 'amount': amount_input, + 'payment_type': "inbound", + 'partner_id': partner.id, + 'journal_id': journal.id + }) + + partner.wallet_balance += int(amount_input) diff --git a/pos_customer_wallet_management/wizard/recharge_wallet_views.xml b/pos_customer_wallet_management/wizard/recharge_wallet_views.xml new file mode 100755 index 000000000..09a392220 --- /dev/null +++ b/pos_customer_wallet_management/wizard/recharge_wallet_views.xml @@ -0,0 +1,32 @@ + + + + + recharge.wallet.view.form + recharge.wallet + +
+ + + + + + +
+
+
+
+
+ + Wallet Recharge + ir.actions.act_window + recharge.wallet + form + + new + +