Repository
odoo/odoo · module folder
Module version
1.0
Category
Sales/Sales
Folder size
1.7 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://www.odoo.com/app/forum
Last tracking update
2026-08-15 22:24:34
Authors
Maintainers
None
Committers
Raphael Collet, Odoo Translation Bot, Odoo Online, Jorge Pinna Puissant, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Habib (ayh), Louis Wicket (wil), Thomas Becquevort (thbe), Gauthier Wala (gawa), Arnaud Sibille, omra-odoo, Youssef Bashandy, kcv-odoo, Louis (wil), Ezzuldin Zaky (ezza), Krzysztof Magusiak (krma), pajo
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
crm_membership, membership_delegated_partner, membership_extension, membership_initial_fee, membership_prorate, oca_all, website_event_membership_restriction, website_membership
Description
This module allows you to manage all operations for managing memberships.
=========================================================================

It supports different kind of members:
--------------------------------------
    * Free member
    * Associated member (e.g.: a group subscribes to a membership for all subsidiaries)
    * Paid members
    * Special member prices

It is integrated with sales and accounting to allow you to automatically
invoice and send propositions for membership renewal.
    

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
membership_members_tree Members res.partner list New
membership_product_search_form_view membership.product.search.form product.template search New
membership_products_form Membership Products product.template form New
membership_products_kanban product.template.kanban product.template kanban New
membership_products_tree Membership products product.template list New
report_membership_view_tree report.membership.view.list report.membership list New
view_membership_invoice_view membership.invoice.view.form membership.invoice form New
view_partner_form res.partner.form.inherit res.partner form Inherits base.view_partner_form
view_report_membership_graph1 report.membership.graph1 report.membership graph New
view_report_membership_pivot report.membership.pivot report.membership pivot New
view_report_membership_search report.membership.search report.membership search New
view_res_partner_member_filter res.partner.select res.partner search New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (0)

No new fields.

Public methods (3)
  • button_cancel(self)
  • button_draft(self)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (2)
  • member_price Float
    min_display_digits='Product Price' required=True string='Member Price'
  • product_id Many2one → product.product
    required=True string='Membership' args: 'product.product'
Public methods (2)
  • membership_invoice(self)
  • onchange_product(self)
    @api.onchange('product_id')
    This function returns value of product's member price based on product id.

New fields (11)
  • account_invoice_id Many2one → account.move
    readonly=True related='account_invoice_line.move_id' string='Invoice' args: 'account.move'
  • account_invoice_line Many2one → account.move.line
    ondelete='cascade' readonly=True string='Account Invoice line' args: 'account.move.line'
  • company_id Many2one → res.company
    readonly=True related='account_invoice_line.move_id.company_id' store=True string='Company' args: 'res.company'
  • date Date
    help='Date on which member has joined the membership' string='Join Date'
  • date_cancel Date
    string='Cancel date'
  • date_from Date
    readonly=True string='From'
  • date_to Date
    readonly=True string='To'
  • member_price Float
    help='Amount for the membership' min_display_digits='Product Price' required=True string='Membership Fee'
  • membership_id Many2one → product.product
    required=True string='Membership' args: 'product.product'
  • partner Many2one → res.partner
    index=True ondelete='cascade' string='Partner' args: 'res.partner'
  • state Selection
    compute='_compute_state' help='It indicates the membership status.\n-Non Member: A member who has not applied for any membership.\n-Cancelled Member: A member who has cancelled his membership.\n-Old Member: A member whose membership date has expired.\n-Waiting Member: A member who has applied for the membership and whose invoice is going to be created.\n-Invoiced Member: A member whose invoice has been created.\n-Paid Member: A member who has paid the membership amount.' store=True string='Membership Status' args: STATE
Public methods (0)

No public methods.

New fields (3)
  • membership Boolean
    help='Check if the product is eligible for membership.'
  • membership_date_from Date
    help='Date from which membership becomes active.' string='Membership Start Date'
  • membership_date_to Date
    help='Date until which membership remains active.' string='Membership End Date'
Public methods (0)

No public methods.

New fields (14)
  • associate_member_id Many2one → res.partner
    readonly=True string='Associate Member' args: 'res.partner'
  • company_id Many2one → res.company
    readonly=True string='Company' args: 'res.company'
  • date_to Date
    readonly=True string='End Date'
  • membership_id Many2one → product.product
    readonly=True string='Membership Product' args: 'product.product'
  • membership_state Selection
    readonly=True string='Current Membership State' args: STATE
  • num_invoiced Integer
    readonly=True string='# Invoiced'
  • num_paid Integer
    readonly=True string='# Paid'
  • num_waiting Integer
    readonly=True string='# Waiting'
  • partner_id Many2one → res.partner
    readonly=True string='Member' args: 'res.partner'
  • quantity Integer
    readonly=True
  • start_date Date
    readonly=True string='Start Date'
  • tot_earned Float
    digits=0 readonly=True string='Earned Amount'
  • tot_pending Float
    digits=0 readonly=True string='Pending Amount'
  • user_id Many2one → res.users
    readonly=True string='Salesperson' args: 'res.users'
Public methods (1)
  • init(self)
    Create the view

New fields (8)
  • associate_member Many2one → res.partner
    help='A member with whom you want to associate your membership.It will consider the membership state of the associated member.' string='Associate Member' args: 'res.partner'
  • free_member Boolean
    help='Select if you want to give free membership.' string='Free Member'
  • member_lines One2many → membership.membership_line
    string='Membership' args: 'membership.membership_line', 'partner'
  • membership_amount Float
    digits=(16, 2) help='The price negotiated by the partner' string='Membership Amount'
  • membership_cancel Date
    compute='_compute_membership_state' help='Date on which membership has been cancelled' store=True string='Cancel Membership Date'
  • membership_start Date
    compute='_compute_membership_state' help='Date from which membership becomes active.' store=True string='Membership Start Date'
  • membership_state Selection
    compute='_compute_membership_state' help='It indicates the membership state.\n-Non Member: A partner who has not applied for any membership.\n-Cancelled Member: A member who has cancelled his membership.\n-Old Member: A member whose membership date has expired.\n-Waiting Member: A member who has applied for the membership and whose invoice is going to be created.\n-Invoiced Member: A member whose invoice has been created.\n-Paying member: A member who has paid the membership fee.' recursive=True store=True string='Current Membership Status' args: membership.STATE
  • membership_stop Date
    compute='_compute_membership_state' help='Date until which membership remains active.' store=True string='Membership End Date'
Public methods (1)
  • create_membership_invoice(self, product, amount)
    Create Customer Invoice of Membership for partners.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…