Skip to content

Commit ef78fc9

Browse files
committed
[ADD] pos_membership_delegated_partner
This module implements the features of the Membership Delegated Partner module in the point of sale UI. This allows a customer to purchase memberships for other partners.
1 parent 8577ef4 commit ef78fc9

24 files changed

+999
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
============================================
2+
Point of Sale - Membership Delegated Partner
3+
============================================
4+
5+
..
6+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7+
!! This file is generated by oca-gen-addon-readme !!
8+
!! changes will be overwritten. !!
9+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10+
!! source digest: sha256:42ca7c6a0e7a2fdf3711f85ab7cf8e4ff7f939e4ff6ff0c08ad9577a4fe77e0b
11+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12+
13+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
14+
:target: https://odoo-community.org/page/development-status
15+
:alt: Beta
16+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
17+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
18+
:alt: License: AGPL-3
19+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github
20+
:target: https://github.com/OCA/pos/tree/16.0/pos_membership_delegated_partner
21+
:alt: OCA/pos
22+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
23+
:target: https://translation.odoo-community.org/projects/pos-16-0/pos-16-0-pos_membership_delegated_partner
24+
:alt: Translate me on Weblate
25+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
26+
:target: https://runboat.odoo-community.org/builds?repo=OCA/pos&target_branch=16.0
27+
:alt: Try me on Runboat
28+
29+
|badge1| |badge2| |badge3| |badge4| |badge5|
30+
31+
This module implements the features of the Membership Delegated Partner module
32+
in the point of sale UI. This allows a customer to purchase memberships for
33+
other partners.
34+
35+
**Table of contents**
36+
37+
.. contents::
38+
:local:
39+
40+
Usage
41+
=====
42+
43+
#. Open the point of sale
44+
#. Add a membership product to the order
45+
#. Select the corresponding order line
46+
#. Click on the "Delegated Member" button that has just appeared
47+
#. Select a partner from the screen that opens
48+
49+
Once the order has been validated, the designated partner becomes a member.
50+
51+
Bug Tracker
52+
===========
53+
54+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/pos/issues>`_.
55+
In case of trouble, please check there if your issue has already been reported.
56+
If you spotted it first, help us to smash it by providing a detailed and welcomed
57+
`feedback <https://github.com/OCA/pos/issues/new?body=module:%20pos_membership_delegated_partner%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
58+
59+
Do not contact contributors directly about support or help with technical issues.
60+
61+
Credits
62+
=======
63+
64+
Authors
65+
~~~~~~~
66+
67+
* Coop IT Easy SC
68+
69+
Contributors
70+
~~~~~~~~~~~~
71+
72+
* `Coop IT Easy SC <https://coopiteasy.be>`_:
73+
74+
* François Laenen
75+
76+
Maintainers
77+
~~~~~~~~~~~
78+
79+
This module is maintained by the OCA.
80+
81+
.. image:: https://odoo-community.org/logo.png
82+
:alt: Odoo Community Association
83+
:target: https://odoo-community.org
84+
85+
OCA, or the Odoo Community Association, is a nonprofit organization whose
86+
mission is to support the collaborative development of Odoo features and
87+
promote its widespread use.
88+
89+
.. |maintainer-flaenen| image:: https://github.com/flaenen.png?size=40px
90+
:target: https://github.com/flaenen
91+
:alt: flaenen
92+
93+
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
94+
95+
|maintainer-flaenen|
96+
97+
This module is part of the `OCA/pos <https://github.com/OCA/pos/tree/16.0/pos_membership_delegated_partner>`_ project on GitHub.
98+
99+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# SPDX-FileCopyrightText: 2025 Coop IT Easy SC
2+
#
3+
# SPDX-License-Identifier: AGPL-3.0-or-later
4+
from . import models
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# SPDX-FileCopyrightText: 2025 Coop IT Easy SC
2+
#
3+
# SPDX-License-Identifier: AGPL-3.0-or-later
4+
5+
{
6+
"name": "Point of Sale - Membership Delegated Partner",
7+
"summary": "Delegate membership to a specific partner in the point of sale UI",
8+
"version": "16.0.1.0.0",
9+
"category": "Point of Sale",
10+
"website": "https://github.com/OCA/pos",
11+
"author": "Coop IT Easy SC, Odoo Community Association (OCA)",
12+
"maintainers": ["flaenen"],
13+
"license": "AGPL-3",
14+
"depends": ["pos_membership", "membership_delegated_partner"],
15+
"assets": {
16+
"point_of_sale.assets": [
17+
"pos_membership_delegated_partner/static/src/css/*.css",
18+
"pos_membership_delegated_partner/static/src/js/*.js",
19+
"pos_membership_delegated_partner/static/src/xml/*.xml",
20+
],
21+
},
22+
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * pos_membership_delegated_partner
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"POT-Creation-Date: 2025-05-06 15:29+0000\n"
10+
"PO-Revision-Date: 2025-05-06 15:29+0000\n"
11+
"Last-Translator: \n"
12+
"Language-Team: \n"
13+
"MIME-Version: 1.0\n"
14+
"Content-Type: text/plain; charset=UTF-8\n"
15+
"Content-Transfer-Encoding: \n"
16+
"Plural-Forms: \n"
17+
18+
#. module: pos_membership_delegated_partner
19+
#. odoo-javascript
20+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
21+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
22+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
23+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
24+
#, python-format
25+
msgid "Customer"
26+
msgstr "Client"
27+
28+
#. module: pos_membership_delegated_partner
29+
#. odoo-javascript
30+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
31+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
32+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
33+
#: model:ir.model.fields,field_description:pos_membership_delegated_partner.field_pos_order_line__delegated_member_id
34+
#, python-format
35+
msgid "Delegated Member"
36+
msgstr "Membre Délégué"
37+
38+
#. module: pos_membership_delegated_partner
39+
#. odoo-javascript
40+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
41+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
42+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
43+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
44+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
45+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
46+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
47+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
48+
#, python-format
49+
msgid "Member"
50+
msgstr "Membre"
51+
52+
#. module: pos_membership_delegated_partner
53+
#: model:ir.model,name:pos_membership_delegated_partner.model_pos_order_line
54+
msgid "Point of Sale Order Lines"
55+
msgstr "Lignes des commandes du point de vente"
56+
57+
#. module: pos_membership_delegated_partner
58+
#: model:ir.model,name:pos_membership_delegated_partner.model_pos_order
59+
msgid "Point of Sale Orders"
60+
msgstr "Commandes du point de vente"
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Translation of Odoo Server.
2+
# This file contains the translation of the following modules:
3+
# * pos_membership_delegated_partner
4+
#
5+
msgid ""
6+
msgstr ""
7+
"Project-Id-Version: Odoo Server 16.0\n"
8+
"Report-Msgid-Bugs-To: \n"
9+
"Last-Translator: \n"
10+
"Language-Team: \n"
11+
"MIME-Version: 1.0\n"
12+
"Content-Type: text/plain; charset=UTF-8\n"
13+
"Content-Transfer-Encoding: \n"
14+
"Plural-Forms: \n"
15+
16+
#. module: pos_membership_delegated_partner
17+
#. odoo-javascript
18+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
19+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
20+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
21+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
22+
#, python-format
23+
msgid "Customer"
24+
msgstr ""
25+
26+
#. module: pos_membership_delegated_partner
27+
#. odoo-javascript
28+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
29+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
30+
#: code:addons/pos_membership_delegated_partner/static/src/xml/DelegatedMemberButton.xml:0
31+
#: model:ir.model.fields,field_description:pos_membership_delegated_partner.field_pos_order_line__delegated_member_id
32+
#, python-format
33+
msgid "Delegated Member"
34+
msgstr ""
35+
36+
#. module: pos_membership_delegated_partner
37+
#. odoo-javascript
38+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
39+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
40+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
41+
#: code:addons/pos_membership_delegated_partner/static/src/xml/Orderline.xml:0
42+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
43+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
44+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
45+
#: code:addons/pos_membership_delegated_partner/static/src/xml/OrderlineDetails.xml:0
46+
#, python-format
47+
msgid "Member"
48+
msgstr ""
49+
50+
#. module: pos_membership_delegated_partner
51+
#: model:ir.model,name:pos_membership_delegated_partner.model_pos_order_line
52+
msgid "Point of Sale Order Lines"
53+
msgstr ""
54+
55+
#. module: pos_membership_delegated_partner
56+
#: model:ir.model,name:pos_membership_delegated_partner.model_pos_order
57+
msgid "Point of Sale Orders"
58+
msgstr ""
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SPDX-FileCopyrightText: 2025 Coop IT Easy SC
2+
#
3+
# SPDX-License-Identifier: AGPL-3.0-or-later
4+
from . import pos_order
5+
from . import pos_order_line
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# SPDX-FileCopyrightText: 2025 Coop IT Easy SC
2+
#
3+
# SPDX-License-Identifier: AGPL-3.0-or-later
4+
from odoo import models
5+
6+
7+
class PosOrder(models.Model):
8+
_inherit = "pos.order"
9+
10+
def _prepare_invoice_line(self, order_line):
11+
res = super()._prepare_invoice_line(order_line)
12+
res["delegated_member_id"] = order_line.delegated_member_id.id
13+
return res
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# SPDX-FileCopyrightText: 2025 Coop IT Easy SC
2+
#
3+
# SPDX-License-Identifier: AGPL-3.0-or-later
4+
from odoo import fields, models
5+
6+
7+
class PosOrderLine(models.Model):
8+
_inherit = "pos.order.line"
9+
10+
delegated_member_id = fields.Many2one(comodel_name="res.partner")
11+
12+
def _export_for_ui(self, orderline):
13+
res = super()._export_for_ui(orderline)
14+
res["delegated_member_id"] = orderline.delegated_member_id.id
15+
return res
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
* `Coop IT Easy SC <https://coopiteasy.be>`_:
2+
3+
* François Laenen
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This module implements the features of the Membership Delegated Partner module
2+
in the point of sale UI. This allows a customer to purchase memberships for
3+
other partners.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#. Open the point of sale
2+
#. Add a membership product to the order
3+
#. Select the corresponding order line
4+
#. Click on the "Delegated Member" button that has just appeared
5+
#. Select a partner from the screen that opens
6+
7+
Once the order has been validated, the designated partner becomes a member.
Loading

0 commit comments

Comments
 (0)