| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/cooperative |
| GIT | |
| GIT | https://github.com/OCA/cooperative.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/cooperative/tree/16.0/cooperator |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Cooperative management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Coop IT Easy SC |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Coop IT Easy SC |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Carmen Bianca BAKKER, oca-ci, Victor Champonnois, hugues de keyzer |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/cooperative |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:54:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/partner-contact: - partner_firstname - partner_contact_birthdate - partner_contact_personal_information_page - partner_contact_gender odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | field | 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 | xpath | Inherits product.product_template_form_view |
product_template_only_form_view |
product.template.product.form | product.template | field | Inherits product.product_template_only_form_view |
product_template_search_view |
product_template_search_view | product.template | xpath | Inherits product.product_template_search_view |
remove_partner_follower |
res.partner.remove.follower.inherit | res.partner | field | 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 | xpath | 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 | field | Inherits account.view_account_journal_form |
view_create_subscription |
Create Subscription | partner.create.subscription | form | New |
view_move_form |
account.move.form | account.move | field | Inherits account.view_move_form |
view_partner_form |
view_partner_form | res.partner | sheet | Inherits base.view_partner_form |
view_res_partner_filter |
res.partner.select | res.partner | filter | 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 |
No new fields.
Public methods (0)No public methods.
release_capital_request
Boolean
string='Release capital request'
No public methods.
get_cooperator_payment
Boolean
get_general_payment
Boolean
string='Get general payments?'
No public methods.
release_capital_request
Boolean
string='Release of capital request'
subscription_request
Many2one → subscription.request
check_company=True
string='Subscription request'
args: 'subscription.request'
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)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
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'
assign_cooperator_register_number(self)
create_user(self)
get_cooperator_from_crn(self, company_register_number)
get_cooperator_from_email(self, email)
get_share_quantities(self)
set_effective(self)
is_cooperator_template
Boolean
string='Cooperator mail template'
No public methods.
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'
approve_operation(self)
cancel_operation(self)
create(self, vals_list)
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)
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'
create_subscription(self)
on_change_share_type(self)
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'
get_web_share_products(self, is_company)
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'
create(self, vals_list)
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)
onchange_financial_risk_approval_required(self)
onchange_generic_rules_approval_required(self)
onchange_internal_rules_approval_required(self)
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'
No public methods.
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')]
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)
has_representative(self)
onchange_parent_id(self)
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'
No public methods.
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'
update(self)
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'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
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)]}
block_subscription_request(self)
cancel_subscription_request(self)
check_iban(self, iban)
create(self, vals_list)
create_coop_partner(self)
create_invoice(self, partner)
create_journal(self, company)
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)
put_on_waiting_list(self)
set_membership(self)
set_person_info(self, partner)
setup_partner(self)
unblock_subscription_request(self)
validate_subscription_request(self)
No new fields.
Public methods (1)validate(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/cooperative |
| GIT | |
| GIT | https://github.com/OCA/cooperative.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/cooperative/tree/14.0/cooperator |
| VERSION | |
| VERSION | 2.1.1 |
| CATEGORY | |
| CATEGORY | Cooperative management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Coop IT Easy SC |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Coop IT Easy SC |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, Carmen Bianca BAKKER, oca-ci, Robin Keunen, hugues de keyzer, Daniil Digtyar Vasilieva |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/cooperative |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/partner-contact: - partner_firstname - partner_contact_birthdate - partner_contact_personal_information_page - partner_contact_gender odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
cooperator_certificat_G001 |
cooperator_certificat_G001 | ir.ui.view | qweb | New |
cooperator_certificat_G001_document |
cooperator_certificat_G001_document | ir.ui.view | qweb | New |
cooperator_register_G001 |
cooperator_register_G001 | ir.ui.view | qweb | New |
cooperator_subscription_G001 |
cooperator_subscription_G001 | ir.ui.view | qweb | New |
email_template_form |
email.template.form | mail.template | field | Inherits mail.email_template_form |
external_layout_standard |
external_layout_standard | 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 | xpath | Inherits product.product_template_form_view |
product_template_only_form_view |
product.template.product.form | product.template | field | Inherits product.product_template_only_form_view |
product_template_search_view |
product_template_search_view | product.template | xpath | Inherits product.product_template_search_view |
remove_partner_follower |
res.partner.remove.follower.inherit | res.partner | field | Inherits mail.res_partner_view_form_inherit_mail |
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 |
theme_invoice_G002 |
theme_invoice_G002 | ir.ui.view | qweb | New |
theme_invoice_G002_document |
theme_invoice_G002_document | ir.ui.view | qweb | New |
view_account_journal_form |
account.journal.form | account.journal | field | Inherits account.view_account_journal_form |
view_company_form |
res.company.form.easymy.coop | res.company | group | Inherits base.view_company_form |
view_create_subscription |
Create Subscription | partner.create.subscription | form | New |
view_move_form |
account.move.form | account.move | field | Inherits account.view_move_form |
view_partner_form |
view_partner_form | res.partner | sheet | Inherits base.view_partner_form |
view_partner_tree |
view_partner_tree | res.partner | xpath | Inherits base.view_partner_tree |
view_res_partner_filter |
res.partner.select | res.partner | filter | 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 |
No new fields.
Public methods (0)No public methods.
release_capital_request
Boolean
string='Release capital request'
No public methods.
get_cooperator_payment
Boolean
get_general_payment
Boolean
string='Get general payments?'
No public methods.
release_capital_request
Boolean
string='Release of capital request'
subscription_request
Many2one → subscription.request
check_company=True
string='Subscription request'
args: 'subscription.request'
action_invoice_paid(self)
create_user(self, partner)
get_mail_template_certificate(self)
get_membership_vals(self)
get_next_cooperator_number(self)
get_next_register_operation(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)
set_membership(self)
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
string='Cooperator'
cooperator_register_number
Integer
copy=False
readonly=True
string='Cooperator Number'
cooperator_type
Selection
compute=_compute_cooperator_type
selection=_get_share_type
store=True
string='Cooperator Type'
data_policy_approved
Boolean
string='Approved Data Policy'
effective_date
Date
compute=_compute_effective_date
store=True
string='Effective Date'
financial_risk_approved
Boolean
string='Approved Financial Risk'
generic_rules_approved
Boolean
string='Approved generic rules'
internal_rules_approved
Boolean
string='Approved Internal Rules'
member
Boolean
copy=False
help='Check this box if this cooperator is an effective member.'
readonly=True
string='Effective cooperator'
number_of_share
Integer
compute=_compute_share_info
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
string='Total value of shares'
get_cooperator_from_crn(self, company_register_number)
get_cooperator_from_email(self, email)
is_cooperator_template
Boolean
string='Cooperator mail template'
No public methods.
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
string='Invoice'
args: 'account.move'
operation_type
Selection
required=True
string='Operation Type'
args: [('subscription', 'Subscription'), ('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=<expr>
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
string='State'
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="In case on a transfer of share. If the share receiver isn't a effective member then a subscription form should 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'
approve_operation(self)
cancel_operation(self)
execute_operation(self)
get_date_now(self)
get_subscription_register_vals(self, effective_date)
get_total_share_dic(self, partner)
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)
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
string='Cooperator'
args: 'res.partner'
email
Char
default=_get_email
required=True
string='Email'
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'
create_subscription(self)
on_change_share_type(self)
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
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'
minimum_quantity
Integer
default=1
string='Minimum quantity'
short_name
Char
string='Short name'
get_web_share_products(self, is_company)
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_company_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='Company share confirmation 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_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=[('internal_type', '=', '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
string='Send Share Transfer Email'
send_share_update_email
Boolean
default=True
string='Send Share Update Email'
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'
create(self, vals)
get_cooperator_capital_release_mail_template(self)
get_cooperator_certificate_increase_mail_template(self)
get_cooperator_certificate_mail_template(self)
get_cooperator_confirmation_company_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_waiting_list_mail_template(self)
onchange_data_policy_approval_required(self)
onchange_financial_risk_approval_required(self)
onchange_generic_rules_approval_required(self)
onchange_internal_rules_approval_required(self)
company_register_number
Char
string='Company Register Number'
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')]
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_representative(self)
has_representative(self)
onchange_parent_id(self)
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
string='Effective Date'
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'
No public methods.
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'
update(self)
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
string='Register Number Operation'
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'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
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)]}
string='Address'
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)]}
string='City'
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
ondelete='restrict'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Country'
args: 'res.country'
data_policy_approved
Boolean
default=False
string='Data Policy Approved'
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)]}
string='Email'
financial_risk_approved
Boolean
default=False
string='Financial Risk Approved'
firstname
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='First name'
gender
Selection
readonly=True
states={'draft': [('readonly', False)]}
string='Gender'
args: [('male', _('Male')), ('female', _('Female')), ('other', _('Other'))]
generic_rules_approved
Boolean
default=False
string='Generic Rules Approved'
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
string='Name'
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)]}
string='Phone'
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)]}
string='Source'
args: [('website', 'Website'), ('crm', 'CRM'), ('manual', 'Manual'), ('operation', 'Operation')]
state
Selection
default='draft'
required=True
string='State'
tracking=True
args: [('draft', 'Draft'), ('block', '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)]}
string='Type'
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)]}
string='Zip Code'
block_subscription_request(self)
cancel_subscription_request(self)
check_empty_string(self, value)
check_iban(self, iban)
create(self, vals)
create_comp_sub_req(self, vals)
create_coop_partner(self)
create_invoice(self, partner)
create_journal(self, company)
get_accounting_account(self)
get_eater_vals(self, partner, share_product_id)
get_invoice_vals(self, partner)
get_journal(self)
get_mail_template_notif(self, is_company=False)
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)
put_on_waiting_list(self)
set_membership(self)
unblock_subscription_request(self)
validate_subscription_request(self)
No new fields.
Public methods (1)validate(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/cooperative |
| GIT | |
| GIT | https://github.com/OCA/cooperative.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/cooperative/tree/12.0/cooperator |
| VERSION | |
| VERSION | 6.5.0 |
| CATEGORY | |
| CATEGORY | Cooperative management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Coop IT Easy SC |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Coop IT Easy SC |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Robin Keunen, Victor Champonnois, hugues de keyzer |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/cooperative |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:26 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/partner-contact: - partner_firstname - partner_contact_birthdate - partner_contact_personal_information_page - partner_contact_gender odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - uom - analytic - portal - http_routing - digest - base_iban |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
cooperator_certificat_G001 |
cooperator_certificat_G001 | ir.ui.view | qweb | New |
cooperator_certificat_G001_document |
cooperator_certificat_G001_document | ir.ui.view | qweb | New |
cooperator_register_G001 |
cooperator_register_G001 | ir.ui.view | qweb | New |
cooperator_subscription_G001 |
cooperator_subscription_G001 | ir.ui.view | qweb | New |
email_template_form |
email.template.form | mail.template | field | Inherits mail.email_template_form |
external_layout_standard |
external_layout_standard | ir.ui.view | qweb | Inherits web.external_layout_standard |
invoice_form |
account.invoice.form | account.invoice | field | Inherits account.invoice_form |
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 | xpath | Inherits product.product_template_form_view |
product_template_only_form_view |
product.template.product.form | product.template | field | Inherits product.product_template_only_form_view |
product_template_search_view |
product_template_search_view | product.template | xpath | Inherits product.product_template_search_view |
remove_partner_follower |
res.partner.remove.follower.inherit | res.partner | field | Inherits mail.res_partner_view_form_inherit_mail |
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 |
theme_invoice_G002 |
theme_invoice_G002 | ir.ui.view | qweb | New |
theme_invoice_G002_document |
theme_invoice_G002_document | ir.ui.view | qweb | New |
view_account_bank_journal_form |
account.bank.journal.form | account.journal | field | Inherits account.view_account_bank_journal_form |
view_account_journal_form |
account.journal.form | account.journal | field | Inherits account.view_account_journal_form |
view_company_form |
res.company.form.easymy.coop | res.company | group | Inherits base.view_company_form |
view_create_subscription |
Create Subscription | partner.create.subscription | form | New |
view_partner_form |
view_partner_form | res.partner | sheet | Inherits base.view_partner_form |
view_partner_tree |
view_partner_tree | res.partner | xpath | Inherits base.view_partner_tree |
view_res_partner_filter |
res.partner.select | res.partner | filter | Inherits base.view_res_partner_filter |
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 |
release_capital_request
Boolean
string='Release of capital request'
subscription_request
Many2one → subscription.request
string='Subscription request'
args: 'subscription.request'
action_invoice_paid(self)
create_user(self, partner)
get_mail_template_certificate(self)
get_membership_vals(self)
get_refund_domain(self, invoice)
get_sequence_operation(self)
get_sequence_register(self)
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)
set_membership(self)
No new fields.
Public methods (1)compute_refund(self, mode='refund')
release_capital_request
Boolean
string='Release capital request'
No public methods.
get_cooperator_payment
Boolean
get_general_payment
Boolean
string='Get general payments?'
No public methods.
is_cooperator_template
Boolean
string='Cooperator mail template'
No public methods.
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.invoice
string='Invoice'
args: 'account.invoice'
operation_type
Selection
required=True
string='Operation Type'
args: [('subscription', 'Subscription'), ('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=<expr>
string='Request date'
share_product_id
Many2one → product.product
domain=[('is_share', '=', True)]
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
domain=[('is_share', '=', True)]
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
string='State'
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="In case on a transfer of share. If the share receiver isn't a effective member then a subscription form should be filled."
string='Share Receiver Info'
args: 'subscription.request', 'operation_request_id'
user_id
Many2one → res.users
default=<expr>
readonly=True
string='Responsible'
args: 'res.users'
approve_operation(self)
cancel_operation(self)
execute_operation(self)
get_date_now(self)
get_subscription_register_vals(self, effective_date)
get_total_share_dic(self, partner)
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)
bank_account
Char
default=_get_bank_account
required=True
string='Bank account'
cooperator
Many2one → res.partner
default=_get_partner
string='Cooperator'
args: 'res.partner'
email
Char
default=_get_email
required=True
string='Email'
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
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=dp.get_precision('Account')
readonly=True
string='Subscription amount'
create_subscription(self)
on_change_share_type(self)
by_company
Boolean
string='Can be subscribed by companies?'
by_individual
Boolean
string='Can be subscribed by individuals?'
customer
Boolean
string='Become customer'
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'
get_web_share_products(self, is_company)
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'
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
comodel_name='account.account'
domain=[('internal_type', '=', '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
string='Send Share Transfer Email'
send_share_update_email
Boolean
default=True
string='Send Share Update Email'
send_waiting_list_email
Boolean
default=True
string='Send Waiting List email'
signature_scan
Binary
string='Board representative signature'
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'
onchange_data_policy_approval_required(self)
onchange_financial_risk_approval_required(self)
onchange_generic_rules_approval_required(self)
onchange_internal_rules_approval_required(self)
company_register_number
Char
string='Company Register Number'
coop_candidate
Boolean
compute='_compute_coop_candidate'
readonly=True
store=True
string='Cooperator candidate'
cooperator
Boolean
copy=False
help='Check this box if this contact is a cooperator (effective or not).'
readonly=True
string='Cooperator'
cooperator_register_number
Integer
copy=False
string='Cooperator Number'
cooperator_type
Selection
compute=_compute_cooperator_type
selection='_get_share_type'
store=True
string='Cooperator Type'
data_policy_approved
Boolean
string='Approved Data Policy'
effective_date
Date
compute=_compute_effective_date
store=True
string='Effective Date'
financial_risk_approved
Boolean
string='Approved Financial Risk'
generic_rules_approved
Boolean
string='Approved generic rules'
internal_rules_approved
Boolean
string='Approved Internal Rules'
legal_form
Selection
string='Legal form'
args: []
member
Boolean
copy=False
help='Check this box if this cooperator is an effective member.'
readonly=True
string='Effective cooperator'
number_of_share
Integer
compute='_compute_share_info'
multi='share'
readonly=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'
representative
Boolean
string='Legal Representative'
representative_of_member_company
Boolean
compute='_compute_representative_of_member_company'
store=True
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'
total_value
Float
compute='_compute_share_info'
multi='share'
readonly=True
string='Total value of shares'
type
Selection
selection_add=[('representative', 'Representative')]
get_cooperator_from_crn(self, company_register_number)
get_cooperator_from_email(self, email)
get_representative(self)
has_representative(self)
onchange_parent_id(self)
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
string='Effective Date'
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
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'
No public methods.
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'
update(self)
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
string='Register Number Operation'
share_product_id
Many2one → product.product
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
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
default=<expr>
readonly=True
string='Responsible'
args: 'res.users'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
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)]}
string='Address'
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.invoice
readonly=True
states={'draft': [('readonly', False)]}
string='Capital release request'
args: 'account.invoice', '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)]}
string='City'
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
ondelete='restrict'
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Country'
args: 'res.country'
data_policy_approved
Boolean
default=False
string='Data Policy Approved'
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)]}
string='Email'
financial_risk_approved
Boolean
default=False
string='Financial Risk Approved'
firstname
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='First name'
gender
Selection
readonly=True
states={'draft': [('readonly', False)]}
string='Gender'
args: [('male', _('Male')), ('female', _('Female')), ('other', _('Other'))]
generic_rules_approved
Boolean
default=False
string='Generic Rules Approved'
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
string='Name'
operation_request_id
Many2one → operation.request
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)]}
string='Phone'
same_address
Boolean
readonly=True
states={'draft': [('readonly', False)]}
string='Same address'
share_product_id
Many2one → product.product
domain=[('is_share', '=', True)]
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)]}
string='Source'
args: [('website', 'Website'), ('crm', 'CRM'), ('manual', 'Manual'), ('operation', 'Operation')]
state
Selection
default='draft'
required=True
string='State'
track_visibility=True
args: [('draft', 'Draft'), ('block', '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)]}
string='Type'
args: [('new', 'New Cooperator'), ('increase', 'Increase number of share')]
user_id
Many2one → res.users
readonly=True
string='Responsible'
args: 'res.users'
zip_code
Char
readonly=True
required=True
states={'draft': [('readonly', False)]}
string='Zip Code'
block_subscription_request(self)
cancel_subscription_request(self)
check_empty_string(self, value)
check_iban(self, iban)
create(self, vals)
create_comp_sub_req(self, vals)
create_coop_partner(self)
create_invoice(self, partner)
get_accounting_account(self)
get_eater_vals(self, partner, share_product_id)
get_invoice_vals(self, partner)
get_journal(self)
get_mail_template_notif(self, is_company=False)
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)
put_on_waiting_list(self)
set_membership(self)
unblock_subscription_request(self)
update_partner_info(self)
validate_subscription_request(self)
No new fields.
Public methods (1)validate(self)