Repository
OCA/cooperative · module folder · Try on Runboat
Module version
1.4.0
Category
Cooperative management
Folder size
1.7 MB
License
AGPL-3
Application
Yes
Auto-installable
No
Website
https://github.com/OCA/cooperative
Last tracking update
2026-08-07 08:09:33
Authors
Odoo Community Association (OCA), Coop IT Easy SC
Maintainers
Odoo Community Association (OCA), Coop IT Easy SC
Committers
Carmen Bianca BAKKER, Weblate, OCA-git-bot, oca-ci, Victor Champonnois, hugues de keyzer
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
cooperator_documentation, cooperator_portal, cooperator_website, l10n_be_cooperator, l10n_be_cooperator_national_number, l10n_ch_cooperator, l10n_es_cooperator, l10n_fr_cooperator
Description

Code Analysis

Views touched (33)
XML IDNameModelTypeStatus
cooperative_membership_view_search cooperative.membership.search cooperative.membership search New
cooperative_membership_view_tree cooperative.membership.tree cooperative.membership tree New
email_template_form email.template.form mail.template form Inherits mail.email_template_form
external_layout_standard Cooperator Template Layout ir.ui.view qweb Inherits web.external_layout_standard
operation_request_form operation.request.form operation.request form New
operation_request_tree operation.request.tree operation.request tree New
product_template_form_view product_template_form_view product.template form Inherits product.product_template_form_view
product_template_only_form_view product.template.product.form product.template form Inherits product.product_template_only_form_view
product_template_search_view product_template_search_view product.template search Inherits product.product_template_search_view
remove_partner_follower res.partner.remove.follower.inherit res.partner form Inherits mail.res_partner_view_form_inherit_mail
report_cooperator_certificate report_cooperator_certificate ir.ui.view qweb New
report_cooperator_certificate_document report_cooperator_certificate_document ir.ui.view qweb New
report_cooperator_register report_cooperator_register ir.ui.view qweb New
report_invoice report_invoice ir.ui.view qweb New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
report_subscription_register report_subscription_register ir.ui.view qweb New
res_config_settings_cooperator_view_form Cooperators res.config.settings form Inherits base.res_config_settings_view_form
share_line_form share.line.form share.line form New
share_line_tree share.line.tree share.line tree New
subscription_register_form subscription.register.form subscription.register form New
subscription_register_tree subscription.register.tree subscription.register tree New
subscription_request_tree subscription.request.tree subscription.request tree New
subscription_request_view_form subscription.request.view.form subscription.request form New
view_account_journal_form account.journal.form account.journal form Inherits account.view_account_journal_form
view_create_subscription Create Subscription partner.create.subscription form New
view_move_form account.move.form account.move form Inherits account.view_move_form
view_partner_form view_partner_form res.partner form Inherits base.view_partner_form
view_res_partner_filter res.partner.select res.partner search Inherits account.res_partner_view_search
view_share_line_filter Share Line Search share.line search New
view_subscription_register_filter Subscription Register Search subscription.register search New
view_subscription_request_filter Cooperator Subscription Search subscription.request search New
view_update_share_line_info Update Share line Info share.line.update.info form New
view_validate_subscription_request Validate subscription request validate.subscription.request form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (19)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • release_capital_request Boolean
    string='Release capital request'
Public methods (0)

No public methods.

New fields (2)
  • get_cooperator_payment Boolean
    args: 'Get cooperator payments?'
  • get_general_payment Boolean
    string='Get general payments?'
Public methods (0)

No public methods.

New fields (2)
  • release_capital_request Boolean
    string='Release of capital request'
  • subscription_request Many2one → subscription.request
    check_company=True string='Subscription request' args: 'subscription.request'
Public methods (7)
  • get_mail_template_certificate(self)
  • get_refund_domain(self, invoice)
  • get_share_line_vals(self, line, effective_date)
  • get_subscription_register_vals(self, line, effective_date)
  • post_process_confirm_paid(self, effective_date)
  • send_capital_release_request_mail(self)
  • set_cooperator_effective(self, effective_date)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (20)
  • company_id Many2one → res.company
    default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • coop_candidate Boolean
    compute=_compute_coop_candidate store=True string='Cooperator candidate'
  • cooperator Boolean
    copy=False help='Check this box if this contact is a cooperator (effective or not).' readonly=True
  • cooperator_register_number Integer
    copy=False group_operator=None readonly=True string='Cooperator Number'
  • cooperator_type Selection
    compute=_compute_cooperator_type selection=_get_share_type store=True
  • data_policy_approved Boolean
    string='Approved Data Policy'
  • effective_date Date
    compute=_compute_effective_date store=True
  • email Char
    related='partner_id.email'
  • financial_risk_approved Boolean
    string='Approved Financial Risk'
  • generic_rules_approved Boolean
    string='Approved generic rules'
  • internal_rules_approved Boolean
    string='Approved Internal Rules'
  • is_company Boolean
    related='partner_id.is_company' store=True
  • member Boolean
    copy=False help='Check this box if this cooperator is an effective member.' readonly=True string='Effective cooperator'
  • name Char
    related='partner_id.name'
  • number_of_share Integer
    compute=_compute_share_info store=True string='Number of share'
  • old_member Boolean
    help='Check this box if this cooperator is no more an effective member.' readonly=True string='Old cooperator'
  • partner_id Many2one → res.partner
    index=True ondelete='cascade' readonly=True required=True args: 'res.partner', 'Partner'
  • share_ids One2many → share.line
    compute=_compute_share_ids search=_search_share_ids string='Share Lines' args: 'share.line'
  • subscription_request_ids One2many → subscription.request
    compute=_compute_subscription_request_ids search=_search_subscription_request_ids string='Subscription request' args: 'subscription.request'
  • total_value Float
    compute=_compute_share_info store=True string='Total value of shares'
Public methods (6)
  • assign_cooperator_register_number(self)
    Set a new cooperator register number on the memberships if one is not already assigned.
  • create_user(self)
    Create a new user for the memberships if one does not already exist. If a user exists, but its 'active' field is False, then the user is reactivated and the membership's company_id becomes the user's only company_id. If a new partner is created, an e-mail is sent to them with instructions on how to set their passport.
  • get_cooperator_from_crn(self, company_register_number)
  • get_cooperator_from_email(self, email)
  • get_share_quantities(self)
    Return a defaultdict(int) with the amount of shares per product id.
  • set_effective(self)
    Make sure the following things are in order for all memberships in the recordset: - ``member`` is set to True and ``old_member`` is set to False. - A cooperator register number is assigned if one did not yet exist. - A user is created if one did not yet exist. This should all be idempotent.

New fields (1)
  • is_cooperator_template Boolean
    string='Cooperator mail template'
Public methods (0)

No public methods.

New fields (19)
  • company_id Many2one → res.company
    change_default=True default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • effective_date Date
    string='Effective date'
  • invoice Many2one → account.move
    check_company=True args: 'account.move'
  • operation_type Selection
    required=True args: [('transfer', 'Transfer'), ('sell_back', 'Sell Back'), ('convert', 'Conversion')]
  • partner_id Many2one → res.partner
    domain=[('member', '=', True)] required=True string='Cooperator' args: 'res.partner'
  • partner_id_to Many2one → res.partner
    domain=[('cooperator', '=', True)] string='Transfered to' args: 'res.partner'
  • quantity Integer
    required=True string='Number of share'
  • receiver_not_member Boolean
    string='Receiver is not a member'
  • request_date Date
    default=fields.Date.today string='Request date'
  • share_product_id Many2one → product.product
    check_company=True domain="[('is_share', '=', True), ('company_id', 'in', (company_id, False))]" required=True string='Share type' args: 'product.product'
  • share_short_name Char
    related='share_product_id.short_name' string='Share type name'
  • share_to_product_id Many2one → product.product
    check_company=True domain="[('is_share', '=', True), ('company_id', 'in', (company_id, False))]" string='Convert to this share type' args: 'product.product'
  • share_to_short_name Char
    related='share_to_product_id.short_name' string='Share to type name'
  • share_to_unit_price Float
    related='share_to_product_id.list_price' string='Share to price'
  • share_unit_price Float
    related='share_product_id.list_price' string='Share price'
  • state Selection
    default='draft' required=True args: [('draft', 'Draft'), ('waiting', 'Waiting'), ('approved', 'Approved'), ('done', 'Done'), ('cancelled', 'Cancelled'), ('refused', 'Refused')]
  • subscription_amount Float
    compute='_compute_subscription_amount' string='Operation amount'
  • subscription_request One2many → subscription.request
    help="For transfer operations: if the share receiver isn't a (former) member then a subscription form must be filled." string='Share Receiver Info' args: 'subscription.request', 'operation_request_id'
  • user_id Many2one → res.users
    check_company=True default=<expr> readonly=True string='Responsible' args: 'res.users'
Public methods (11)
  • approve_operation(self)
  • cancel_operation(self)
  • create(self, vals_list)
    @api.model_create_multi
  • execute_operation(self)
  • get_subscription_register_vals(self, effective_date)
  • hand_share_over(self, partner, share_product_id, quantity)
  • has_share_type(self)
  • refuse_operation(self)
  • reset_to_draft(self)
  • submit_operation(self)
  • validate(self)

New fields (13)
  • bank_account Char
    default=_get_bank_account required=True string='Bank account'
  • company_id Many2one → res.company
    change_default=True default=<expr> required=True string='Company' args: 'res.company'
  • cooperator Many2one → res.partner
    default=_get_partner args: 'res.partner'
  • email Char
    default=_get_email required=True
  • is_company Boolean
    default=_get_is_company string='Is company?'
  • register_number Char
    default=_get_register_number string='Register Company Number'
  • representative_email Char
    default=_get_representative_email string='Representative email'
  • representative_firstname Char
    default=_get_representative_firstname string='Representative first name'
  • representative_lastname Char
    default=_get_representative_lastname string='Representative last name'
  • share_product Many2one → product.product
    check_company=True default=_default_product_id domain=_get_possible_share required=True string='Share Type' args: 'product.product'
  • share_qty Integer
    required=True string='Share Quantity'
  • share_unit_price Float
    readonly=True related='share_product.list_price' string='Share price'
  • subscription_amount Float
    compute='_compute_subscription_amount' digits='Account' readonly=True string='Subscription amount'
Public methods (2)
  • create_subscription(self)
  • on_change_share_type(self)
    @api.onchange('share_product')

New fields (9)
  • by_company Boolean
    string='Can be subscribed by companies?'
  • by_individual Boolean
    string='Can be subscribed by individuals?'
  • default_share_product Boolean
    string='Default share product'
  • display_on_website Boolean
    string='Display on website'
  • force_min_qty Boolean
    string='Force minimum quantity?'
  • is_share Boolean
    string='Is share?'
  • mail_template Many2one → mail.template
    string='Mail template' args: 'mail.template'
  • minimum_quantity Integer
    default=1 string='Minimum quantity'
  • short_name Char
    string='Short name'
Public methods (1)
  • get_web_share_products(self, is_company)

New fields (43)
  • allow_id_card_upload Boolean
    string='Allow ID Card upload'
  • board_representative Char
    string='Board representative name'
  • bottom_logo1 Binary
    string='Bottom logo 1'
  • bottom_logo2 Binary
    string='Bottom logo 2'
  • coop_email_contact Char
    string='Contact email address for the cooperator'
  • cooperator_capital_release_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'account.move'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Capital release email template'
  • cooperator_certificate_increase_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'res.partner'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Certificate increase email template'
  • cooperator_certificate_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'res.partner'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Certificate email template'
  • cooperator_confirmation_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'subscription.request'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Share confirmation email template'
  • cooperator_share_transfer_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'res.partner'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Share transfer email template'
  • cooperator_share_update_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'res.partner'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Share update email template'
  • cooperator_share_update_no_shares_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'res.partner'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Share transfer (no remaining shares) email template'
  • cooperator_waiting_list_mail_template Many2one → mail.template
    comodel_name='mail.template' domain=[('model', '=', 'subscription.request'), ('is_cooperator_template', '=', True)] help='If left empty, the default global mail template will be used.' string='Waiting list email template'
  • create_user Boolean
    default=False string='Create user for cooperator'
  • data_policy_approval_required Boolean
    string='Is data policy approval required?'
  • data_policy_approval_text Html
    help='Text to display aside the checkbox to approve data policy.' translate=True
  • default_capital_release_request_payment_term Many2one → account.payment.term
    comodel_name='account.payment.term' help='Default payment term to use for capital release requests' string='Default Payment Term'
  • default_country_id Many2one → res.country
    default=<expr> string='Default country' args: 'res.country'
  • default_lang_id Many2one → res.lang
    string='Default lang' args: 'res.lang'
  • display_data_policy_approval Boolean
    help='Choose to display a data policy checkbox on the cooperator website form.'
  • display_financial_risk_approval Boolean
    help='Choose to display a financial risk checkbox on the cooperator website form.'
  • display_generic_rules_approval Boolean
    help='Choose to display generic rules checkbox on the cooperator website form.'
  • display_internal_rules_approval Boolean
    help='Choose to display an internal rules checkbox on the cooperator website form.'
  • display_logo1 Boolean
    string='Display logo 1'
  • display_logo2 Boolean
    string='Display logo 2'
  • financial_risk_approval_required Boolean
    string='Is financial risk approval required?'
  • financial_risk_approval_text Html
    help='Text to display aside the checkbox to approve financial risk.' translate=True
  • generic_rules_approval_required Boolean
    string='Is generic rules approval required?'
  • generic_rules_approval_text Html
    help='Text to display aside the checkbox to approve the generic rules.' translate=True
  • internal_rules_approval_required Boolean
    string='Is internal rules approval required?'
  • internal_rules_approval_text Html
    help='Text to display aside the checkbox to approve internal rules.' translate=True
  • logo_url Char
    compute='_compute_base_logo' string='logo url'
  • property_cooperator_account Many2one → account.account
    check_company=True comodel_name='account.account' domain=[('account_type', '=', 'asset_receivable'), ('deprecated', '=', False)] help='This account will be the default one as the receivable account for the cooperators' string='Cooperator Account'
  • send_capital_release_email Boolean
    default=True string='Send Capital Release email'
  • send_certificate_email Boolean
    default=True string='Send certificate email'
  • send_confirmation_email Boolean
    default=True string='Send confirmation email'
  • send_share_transfer_email Boolean
    default=True
  • send_share_update_email Boolean
    default=True
  • send_waiting_list_email Boolean
    default=True string='Send Waiting List email'
  • signature_scan Binary
    string='Board representative signature'
  • subscription_journal_id Many2one → account.journal
    check_company=True readonly=True args: 'account.journal', 'Subscription Journal'
  • subscription_maximum_amount Float
    string='Maximum authorised subscription amount'
  • unmix_share_type Boolean
    default=True help='If checked, A cooperator will be authorised to have only one type of share' string='Unmix share type'
Public methods (15)
  • create(self, vals_list)
    @api.model_create_multi
  • get_cooperator_capital_release_mail_template(self)
  • get_cooperator_certificate_increase_mail_template(self)
  • get_cooperator_certificate_mail_template(self)
  • get_cooperator_confirmation_mail_template(self)
  • get_cooperator_share_transfer_mail_template(self)
  • get_cooperator_share_update_mail_template(self)
  • get_cooperator_share_update_no_shares_mail_template(self)
  • get_cooperator_waiting_list_mail_template(self)
  • get_next_cooperator_number(self)
  • get_next_register_operation_number(self)
  • onchange_data_policy_approval_required(self)
    @api.onchange('data_policy_approval_required')
  • onchange_financial_risk_approval_required(self)
    @api.onchange('financial_risk_approval_required')
  • onchange_generic_rules_approval_required(self)
    @api.onchange('generic_rules_approval_required')
  • onchange_internal_rules_approval_required(self)
    @api.onchange('internal_rules_approval_required')

New fields (43)
  • allow_id_card_upload Boolean
    readonly=False related='company_id.allow_id_card_upload'
  • board_representative Char
    readonly=False related='company_id.board_representative'
  • bottom_logo1 Binary
    readonly=False related='company_id.bottom_logo1'
  • bottom_logo2 Binary
    readonly=False related='company_id.bottom_logo2'
  • capital_release_request_payment_term_default Many2one
    readonly=False related='company_id.default_capital_release_request_payment_term'
  • coop_email_contact Char
    readonly=False related='company_id.coop_email_contact'
  • cooperator_capital_release_mail_template Many2one
    readonly=False related='company_id.cooperator_capital_release_mail_template'
  • cooperator_certificate_increase_mail_template Many2one
    readonly=False related='company_id.cooperator_certificate_increase_mail_template'
  • cooperator_certificate_mail_template Many2one
    readonly=False related='company_id.cooperator_certificate_mail_template'
  • cooperator_confirmation_mail_template Many2one
    readonly=False related='company_id.cooperator_confirmation_mail_template'
  • cooperator_share_transfer_mail_template Many2one
    readonly=False related='company_id.cooperator_share_transfer_mail_template'
  • cooperator_share_update_mail_template Many2one
    readonly=False related='company_id.cooperator_share_update_mail_template'
  • cooperator_share_update_no_shares_mail_template Many2one
    readonly=False related='company_id.cooperator_share_update_no_shares_mail_template'
  • cooperator_waiting_list_mail_template Many2one
    readonly=False related='company_id.cooperator_waiting_list_mail_template'
  • country_id_default Many2one
    readonly=False related='company_id.default_country_id'
  • create_user Boolean
    readonly=False related='company_id.create_user'
  • data_policy_approval_required Boolean
    readonly=False related='company_id.data_policy_approval_required'
  • data_policy_approval_text Html
    readonly=False related='company_id.data_policy_approval_text'
  • display_data_policy_approval Boolean
    readonly=False related='company_id.display_data_policy_approval'
  • display_financial_risk_approval Boolean
    readonly=False related='company_id.display_financial_risk_approval'
  • display_generic_rules_approval Boolean
    readonly=False related='company_id.display_generic_rules_approval'
  • display_internal_rules_approval Boolean
    readonly=False related='company_id.display_internal_rules_approval'
  • display_logo1 Boolean
    readonly=False related='company_id.display_logo1'
  • display_logo2 Boolean
    readonly=False related='company_id.display_logo2'
  • financial_risk_approval_required Boolean
    readonly=False related='company_id.financial_risk_approval_required'
  • financial_risk_approval_text Html
    readonly=False related='company_id.financial_risk_approval_text'
  • generic_rules_approval_required Boolean
    readonly=False related='company_id.generic_rules_approval_required'
  • generic_rules_approval_text Html
    readonly=False related='company_id.generic_rules_approval_text'
  • internal_rules_approval_required Boolean
    readonly=False related='company_id.internal_rules_approval_required'
  • internal_rules_approval_text Html
    readonly=False related='company_id.internal_rules_approval_text'
  • lang_id_default Many2one
    readonly=False related='company_id.default_lang_id'
  • logo_url Char
    readonly=False related='company_id.logo_url'
  • property_cooperator_account Many2one
    readonly=False related='company_id.property_cooperator_account'
  • send_capital_release_email Boolean
    readonly=False related='company_id.send_capital_release_email'
  • send_certificate_email Boolean
    readonly=False related='company_id.send_certificate_email'
  • send_confirmation_email Boolean
    readonly=False related='company_id.send_confirmation_email'
  • send_share_transfer_email Boolean
    readonly=False related='company_id.send_share_transfer_email'
  • send_share_update_email Boolean
    readonly=False related='company_id.send_share_update_email'
  • send_waiting_list_email Boolean
    readonly=False related='company_id.send_waiting_list_email'
  • signature_scan Binary
    readonly=False related='company_id.signature_scan'
  • subscription_journal_id Many2one
    readonly=False related='company_id.subscription_journal_id'
  • subscription_maximum_amount Float
    readonly=False related='company_id.subscription_maximum_amount'
  • unmix_share_type Boolean
    readonly=False related='company_id.unmix_share_type'
Public methods (0)

No public methods.

New fields (9)
  • company_register_number Char
  • cooperative_membership_id Many2one → cooperative.membership
    compute=_compute_cooperative_membership_id search=_search_cooperative_membership_id args: 'cooperative.membership', 'Cooperative Membership For Current Company'
  • cooperative_membership_ids One2many → cooperative.membership
    readonly=True args: 'cooperative.membership', 'partner_id', 'Cooperative Memberships'
  • legal_form Selection
    string='Legal form' args: []
  • representative Boolean
    string='Legal Representative'
  • representative_of_member_company Boolean
    compute=_compute_representative_of_member_company search=_search_representative_of_member_company string='Legal Representative of Member Company'
  • share_ids One2many → share.line
    string='Share Lines' args: 'share.line', 'partner_id'
  • subscription_request_ids One2many → subscription.request
    string='Subscription request' args: 'subscription.request', 'partner_id'
  • type Selection
    selection_add=[('representative', 'Representative')]
Public methods (9)
  • create_cooperative_membership(self, company_id)
  • get_cooperative_membership(self, company_id)
  • get_cooperator_from_crn(self, company_register_number)
  • get_cooperator_from_email(self, email)
  • get_create_cooperative_membership(self, company_id)
  • get_representative(self)
  • get_share_quantities(self, company_id=None)
    Return a defaultdict(int) with the amount of shares per product id, for the partner's cooperative_membership_id. The partner's cooperative_membership_id is chosen via the company_id argument. If none is given, the company is divined from the context.
  • has_representative(self)
  • onchange_parent_id(self)
    @api.onchange('parent_id')

New fields (9)
  • company_currency_id Many2one → res.currency
    readonly=True related='company_id.currency_id' string='Company Currency' args: 'res.currency'
  • company_id Many2one → res.company
    change_default=True default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • effective_date Date
    readonly=True
  • partner_id Many2one → res.partner
    ondelete='cascade' readonly=True required=True string='Cooperator' args: 'res.partner'
  • share_number Integer
    readonly=True required=True string='Number of Share'
  • share_product_id Many2one → product.product
    check_company=True readonly=True required=True string='Share type' args: 'product.product'
  • share_short_name Char
    readonly=True related='share_product_id.short_name' string='Share type name'
  • share_unit_price Monetary
    currency_field='company_currency_id' readonly=True string='Share price'
  • total_amount_line Monetary
    compute='_compute_total_line' currency_field='company_currency_id' string='Total amount line'
Public methods (0)

No public methods.

New fields (3)
  • cooperator Many2one
    related='share_line.partner_id' string='Cooperator'
  • effective_date Date
    default=_get_effective_date required=True string='effective date'
  • share_line Many2one → share.line
    default=_get_share_line string='Share line' args: 'share.line'
Public methods (1)
  • update(self)

New fields (18)
  • company_currency_id Many2one → res.currency
    readonly=True related='company_id.currency_id' string='Company Currency' args: 'res.currency'
  • company_id Many2one → res.company
    change_default=True default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • date Date
    readonly=True required=True string='Subscription Date'
  • name Char
    readonly=True required=True string='Number Operation'
  • partner_id Many2one → res.partner
    readonly=True required=True string='Cooperator' args: 'res.partner'
  • partner_id_to Many2one → res.partner
    readonly=True string='Transfered to' args: 'res.partner'
  • quantity Integer
    readonly=True string='Number of share'
  • quantity_to Integer
    readonly=True string='Number of share to'
  • register_number_operation Integer
    readonly=True required=True
  • share_product_id Many2one → product.product
    check_company=True domain=[('is_share', '=', True)] readonly=True required=True string='Share type' args: 'product.product'
  • share_short_name Char
    readonly=True related='share_product_id.short_name' string='Share type name'
  • share_to_product_id Many2one → product.product
    check_company=True domain=[('is_share', '=', True)] readonly=True string='Share to type' args: 'product.product'
  • share_to_short_name Char
    readonly=True related='share_to_product_id.short_name' string='Share to type name'
  • share_to_unit_price Monetary
    currency_field='company_currency_id' readonly=True string='Share to price'
  • share_unit_price Monetary
    currency_field='company_currency_id' readonly=True string='Share price'
  • total_amount_line Monetary
    compute='_compute_total_line' currency_field='company_currency_id' string='Total amount line'
  • type Selection
    readonly=True string='Operation Type' args: [('subscription', 'Subscription'), ('transfer', 'Transfer'), ('sell_back', 'Sell Back'), ('convert', 'Conversion')]
  • user_id Many2one → res.users
    check_company=True default=<expr> readonly=True string='Responsible' args: 'res.users'
Public methods (1)
  • read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
    @api.model

New fields (49)
  • active Boolean
    default=True
  • activities_address Char
    readonly=True states={'draft': [('readonly', False)]} string='Activities address'
  • activities_city Char
    readonly=True states={'draft': [('readonly', False)]} string='Activities city'
  • activities_country_id Many2one → res.country
    ondelete='restrict' readonly=True states={'draft': [('readonly', False)]} string='Activities country' args: 'res.country'
  • activities_zip_code Char
    readonly=True states={'draft': [('readonly', False)]} string='Activities zip Code'
  • address Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • already_cooperator Boolean
    readonly=True states={'draft': [('readonly', False)]} string="I'm already cooperator"
  • birthdate Date
    readonly=True states={'draft': [('readonly', False)]} string='Date of birth'
  • capital_release_request One2many → account.move
    readonly=True states={'draft': [('readonly', False)]} string='Capital release request' args: 'account.move', 'subscription_request'
  • capital_release_request_date Date
    copy=False help='Keep empty to use the current date' readonly=True states={'draft': [('readonly', False)]} string='Force the capital release request date'
  • city Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • company_currency_id Many2one → res.currency
    readonly=True related='company_id.currency_id' string='Company Currency' args: 'res.currency'
  • company_email Char
    readonly=True states={'draft': [('readonly', False)]} string='Company email'
  • company_id Many2one → res.company
    change_default=True default=<expr> readonly=True required=True string='Company' args: 'res.company'
  • company_name Char
    readonly=True states={'draft': [('readonly', False)]} string='Company name'
  • company_register_number Char
    readonly=True states={'draft': [('readonly', False)]} string='Company register number'
  • company_type Selection
    readonly=True states={'draft': [('readonly', False)]} string='Company type' args: []
  • contact_person_function Char
    readonly=True states={'draft': [('readonly', False)]} string='Function'
  • country_id Many2one → res.country
    default=<expr> ondelete='restrict' readonly=True required=True states={'draft': [('readonly', False)]} string='Country' args: 'res.country'
  • data_policy_approved Boolean
    default=False
  • date Date
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Subscription date request'
  • email Char
    readonly=True required=True states={'draft': [('readonly', False)]}
  • financial_risk_approved Boolean
    default=False
  • firstname Char
    readonly=True required=True states={'draft': [('readonly', False)]} string='First name'
  • gender Selection
    readonly=True states={'draft': [('readonly', False)]} args: [('male', _('Male')), ('female', _('Female')), ('other', _('Other'))]
  • generic_rules_approved Boolean
    default=False
  • iban Char
    readonly=True states={'draft': [('readonly', False)]} string='Account Number'
  • internal_rules_approved Boolean
    default=False string='Approved Internal Rules'
  • is_company Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Is a company'
  • is_operation Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Is an operation'
  • is_valid_iban Boolean
    compute='_compute_is_valid_iban' readonly=True store=True string='Valid IBAN?'
  • lang Selection
    default=<expr> readonly=True required=True states={'draft': [('readonly', False)]} string='Language' args: _lang_get
  • lastname Char
    readonly=True required=True states={'draft': [('readonly', False)]} string='Last name'
  • name Char
    compute='_compute_name' store=True
  • operation_request_id Many2one → operation.request
    check_company=True readonly=True states={'draft': [('readonly', False)]} string='Operation Request' args: 'operation.request'
  • ordered_parts Integer
    default=1 readonly=True required=True states={'draft': [('readonly', False)]} string='Number of Share'
  • partner_id Many2one → res.partner
    readonly=True states={'draft': [('readonly', False)]} string='Cooperator' args: 'res.partner'
  • phone Char
    readonly=True states={'draft': [('readonly', False)]}
  • same_address Boolean
    readonly=True states={'draft': [('readonly', False)]} string='Same address'
  • share_product_id Many2one → product.product
    check_company=True domain="[('is_share', '=', True), ('company_id', 'in', (company_id, False))]" readonly=True required=True states={'draft': [('readonly', False)]} string='Share type' args: 'product.product'
  • share_short_name Char
    readonly=True related='share_product_id.short_name' states={'draft': [('readonly', False)]} string='Share type name'
  • share_unit_price Float
    readonly=True related='share_product_id.list_price' states={'draft': [('readonly', False)]} string='Share price'
  • skip_iban_control Boolean
    help='Check to bypass iban format control.' string='Skip IBAN Control'
  • source Selection
    default='website' readonly=True states={'draft': [('readonly', False)]} args: [('website', 'Website'), ('crm', 'CRM'), ('manual', 'Manual'), ('operation', 'Operation')]
  • state Selection
    default='draft' required=True tracking=True args: [('draft', 'Draft'), ('blocked', 'Blocked'), ('done', 'Done'), ('waiting', 'Waiting'), ('transfer', 'Transfer'), ('cancelled', 'Cancelled'), ('paid', 'Paid')]
  • subscription_amount Monetary
    compute='_compute_subscription_amount' currency_field='company_currency_id' readonly=True states={'draft': [('readonly', False)]} string='Subscription amount'
  • type Selection
    default='new' readonly=True states={'draft': [('readonly', False)]} args: [('new', 'New Cooperator'), ('increase', 'Increase number of share')]
  • user_id Many2one → res.users
    check_company=True readonly=True string='Responsible' args: 'res.users'
  • zip_code Char
    readonly=True required=True states={'draft': [('readonly', False)]}
Public methods (23)
  • block_subscription_request(self)
  • cancel_subscription_request(self)
  • check_iban(self, iban)
  • create(self, vals_list)
    @api.model_create_multi
  • create_coop_partner(self)
  • create_invoice(self, partner)
  • create_journal(self, company)
    @api.model
  • get_accounting_account(self)
  • get_eater_vals(self, partner, share_product_id)
  • get_invoice_vals(self, partner)
  • get_journal(self)
  • get_partner_company_vals(self)
  • get_partner_vals(self)
  • get_person_info(self, partner)
  • get_representative_vals(self)
  • get_required_field(self)
  • onchange_partner(self)
    @api.onchange('partner_id')
  • put_on_waiting_list(self)
  • set_membership(self)
  • set_person_info(self, partner)
  • setup_partner(self)
    Ensure a partner with all required properties is linked to this subscription request (creating one if necessary) and return it.
  • unblock_subscription_request(self)
  • validate_subscription_request(self)

New fields (0)

No new fields.

Public methods (1)
  • validate(self)

Loading…

Loading…

Status
Open migration PR — not merged yet for this version
CI status
green — ready to merge
Open since
8 days ago
Last activity
1 day ago
Repository
OCA/cooperative
Pull request
[18.0][MIG] cooperator (#182)