diff --git a/pos_customer_wallet_partner_is_user/README.rst b/pos_customer_wallet_partner_is_user/README.rst new file mode 100644 index 000000000..914c14225 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/README.rst @@ -0,0 +1,75 @@ +============================================= +Point of Sale Customer Wallet Partner Is User +============================================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-coopiteasy%2Faddons-lightgray.png?logo=github + :target: https://github.com/coopiteasy/addons/tree/12.0/pos_customer_wallet_partner_is_user + :alt: coopiteasy/addons + +|badge1| |badge2| |badge3| + + +**Table of contents** + +.. contents:: + :local: + +Known issues / Roadmap +====================== + +- Create module ``account_customer_wallet_partner_is_user`` that forbids certain + accounting operations from happening if the partner is not a customer wallet + user. +- Hide the customer wallet payment method if the selected partner is not a user. +- Hide the customer wallet balance if the selected partner is not a user. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Coop IT Easy SC + +Contributors +~~~~~~~~~~~~ + +* `Coop IT Easy SC `_: + + * Carmen Bianca Bakker + +Maintainers +~~~~~~~~~~~ + +.. |maintainer-carmenbianca| image:: https://github.com/carmenbianca.png?size=40px + :target: https://github.com/carmenbianca + :alt: carmenbianca + +Current maintainer: + +|maintainer-carmenbianca| + +This module is part of the `coopiteasy/addons `_ project on GitHub. + +You are welcome to contribute. diff --git a/pos_customer_wallet_partner_is_user/__init__.py b/pos_customer_wallet_partner_is_user/__init__.py new file mode 100644 index 000000000..678093103 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/__init__.py @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2022 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from . import models diff --git a/pos_customer_wallet_partner_is_user/__manifest__.py b/pos_customer_wallet_partner_is_user/__manifest__.py new file mode 100644 index 000000000..209b24306 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/__manifest__.py @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: 2022 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +{ + "name": "Point of Sale Customer Wallet Partner Is User", + "summary": """ + Add a field on partners that shows whether they have used customer wallet + functionality, and don't show some parts of customer wallet functionality + to partners who haven't already used it.""", + "version": "16.0.1.0.0", + "category": "Point of Sale", + "website": "https://github.com/coopiteasy/addons", + "author": "Coop IT Easy SC", + "maintainers": ["carmenbianca"], + "license": "AGPL-3", + "application": False, + "depends": [ + "pos_customer_wallet", + ], + "excludes": [], + "assets": { + "point_of_sale.assets": [ + "pos_customer_wallet_partner_is_user/static/src/js/**/*.js", + "pos_customer_wallet_partner_is_user/static/src/xml/**/*.xml", + ], + }, + "data": [ + "views/res_partner_views.xml", + ], + "demo": [], +} diff --git a/pos_customer_wallet_partner_is_user/i18n/pos_customer_wallet_partner_is_user.pot b/pos_customer_wallet_partner_is_user/i18n/pos_customer_wallet_partner_is_user.pot new file mode 100644 index 000000000..6a0b8bcb1 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/i18n/pos_customer_wallet_partner_is_user.pot @@ -0,0 +1,55 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * pos_customer_wallet_partner_is_user +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: pos_customer_wallet_partner_is_user +#: model:ir.model,name:pos_customer_wallet_partner_is_user.model_res_partner +msgid "Contact" +msgstr "" + +#. module: pos_customer_wallet_partner_is_user +#. openerp-web +#: code:addons/pos_customer_wallet_partner_is_user/static/src/js/screens.js:38 +#, python-format +msgid "Customer cannot use customer wallet" +msgstr "" + +#. module: pos_customer_wallet_partner_is_user +#. openerp-web +#: code:addons/pos_customer_wallet_partner_is_user/static/src/js/screens.js:39 +#, python-format +msgid "Customer has not enabled the usage of a customer wallet. Before the user can use this payment method, they must enable it." +msgstr "" + +#. module: pos_customer_wallet_partner_is_user +#: model:ir.model.fields,field_description:pos_customer_wallet_partner_is_user.field_res_partner__is_customer_wallet_user +#: model:ir.model.fields,field_description:pos_customer_wallet_partner_is_user.field_res_users__is_customer_wallet_user +#: model_terms:ir.ui.view,arch_db:pos_customer_wallet_partner_is_user.view_res_partner_filter +msgid "Is Customer Wallet User" +msgstr "" + +#. module: pos_customer_wallet_partner_is_user +#. openerp-web +#: code:addons/pos_customer_wallet_partner_is_user/static/src/xml/pos.xml:17 +#, python-format +msgid "order.pos.get_client() and order.pos.get_client().is_customer_wallet_user" +msgstr "" + +#. module: pos_customer_wallet_partner_is_user +#. openerp-web +#: code:addons/pos_customer_wallet_partner_is_user/static/src/xml/pos.xml:27 +#, python-format +msgid "receipt.is_customer_wallet_user !== null and receipt.is_customer_wallet_user" +msgstr "" + diff --git a/pos_customer_wallet_partner_is_user/models/__init__.py b/pos_customer_wallet_partner_is_user/models/__init__.py new file mode 100644 index 000000000..ee314f87a --- /dev/null +++ b/pos_customer_wallet_partner_is_user/models/__init__.py @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2022 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from . import pos_session +from . import res_partner diff --git a/pos_customer_wallet_partner_is_user/models/pos_session.py b/pos_customer_wallet_partner_is_user/models/pos_session.py new file mode 100644 index 000000000..7513120f9 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/models/pos_session.py @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2023 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from odoo import models + + +class PosSession(models.Model): + _inherit = "pos.session" + + def _loader_params_res_partner(self): + result = super()._loader_params_res_partner() + result["search_params"]["fields"].append("is_customer_wallet_user") + return result diff --git a/pos_customer_wallet_partner_is_user/models/res_partner.py b/pos_customer_wallet_partner_is_user/models/res_partner.py new file mode 100644 index 000000000..d9a8c35d0 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/models/res_partner.py @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: 2022 Coop IT Easy SC +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +from odoo import fields, models + + +class Partner(models.Model): + _inherit = "res.partner" + + is_customer_wallet_user = fields.Boolean(default=False) diff --git a/pos_customer_wallet_partner_is_user/readme/CONTRIBUTORS.rst b/pos_customer_wallet_partner_is_user/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..d64451edc --- /dev/null +++ b/pos_customer_wallet_partner_is_user/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `Coop IT Easy SC `_: + + * Carmen Bianca Bakker diff --git a/pos_customer_wallet_partner_is_user/readme/DESCRIPTION.rst b/pos_customer_wallet_partner_is_user/readme/DESCRIPTION.rst new file mode 100644 index 000000000..e69de29bb diff --git a/pos_customer_wallet_partner_is_user/readme/ROADMAP.rst b/pos_customer_wallet_partner_is_user/readme/ROADMAP.rst new file mode 100644 index 000000000..07f4546f1 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/readme/ROADMAP.rst @@ -0,0 +1,5 @@ +- Create module ``account_customer_wallet_partner_is_user`` that forbids certain + accounting operations from happening if the partner is not a customer wallet + user. +- Hide the customer wallet payment method if the selected partner is not a user. +- Hide the customer wallet balance if the selected partner is not a user. diff --git a/pos_customer_wallet_partner_is_user/static/src/js/models.js b/pos_customer_wallet_partner_is_user/static/src/js/models.js new file mode 100644 index 000000000..4708056a8 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/static/src/js/models.js @@ -0,0 +1,22 @@ +// SPDX-FileCopyrightText: 2022 Coop IT Easy SC +// +// SPDX-License-Identifier: AGPL-3.0-or-later +odoo.define("pos_customer_wallet_partner_is_user.models", function (require) { + "use strict"; + + const {Order} = require("point_of_sale.models"); + const Registries = require("point_of_sale.Registries"); + + const WalletOrder = (Order_) => + class extends Order_ { + export_for_printing() { + var json = super.export_for_printing(...arguments); + json.is_customer_wallet_user = this.partner.is_customer_wallet_user + ? this.partner + : false; + return json; + } + }; + + Registries.Model.extend(Order, WalletOrder); +}); diff --git a/pos_customer_wallet_partner_is_user/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml b/pos_customer_wallet_partner_is_user/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml new file mode 100644 index 000000000..e44655d4c --- /dev/null +++ b/pos_customer_wallet_partner_is_user/static/src/xml/Screens/PaymentScreen/PaymentScreen.xml @@ -0,0 +1,21 @@ + + + + + + + !paymentMethod.is_customer_wallet_method || currentOrder.get_partner().is_customer_wallet_user + + + diff --git a/pos_customer_wallet_partner_is_user/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml b/pos_customer_wallet_partner_is_user/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml new file mode 100644 index 000000000..0f997ec35 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/static/src/xml/Screens/ReceiptScreen/OrderReceipt.xml @@ -0,0 +1,20 @@ + + + + + + + receipt.is_customer_wallet_user + + + + diff --git a/pos_customer_wallet_partner_is_user/views/res_partner_views.xml b/pos_customer_wallet_partner_is_user/views/res_partner_views.xml new file mode 100644 index 000000000..911f4a698 --- /dev/null +++ b/pos_customer_wallet_partner_is_user/views/res_partner_views.xml @@ -0,0 +1,41 @@ + + + + + pos_customer_wallet_partner_is_user.view_partner_form + res.partner + + + + + + + + + + pos_customer_wallet_partner_is_user.partner.search.form + res.partner + + + + + + + + diff --git a/setup/pos_customer_wallet_partner_is_user/odoo/addons/pos_customer_wallet_partner_is_user b/setup/pos_customer_wallet_partner_is_user/odoo/addons/pos_customer_wallet_partner_is_user new file mode 120000 index 000000000..2a5b6b547 --- /dev/null +++ b/setup/pos_customer_wallet_partner_is_user/odoo/addons/pos_customer_wallet_partner_is_user @@ -0,0 +1 @@ +../../../../pos_customer_wallet_partner_is_user \ No newline at end of file diff --git a/setup/pos_customer_wallet_partner_is_user/setup.py b/setup/pos_customer_wallet_partner_is_user/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/pos_customer_wallet_partner_is_user/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)