TIP: You can type at any time to perform a new search.
Donation
donation · OCA/donation
- Repository
- OCA/donation · module folder · Try on Runboat
- Module version
- 1.3.0
- Category
- Accounting
- Folder size
- 0.38 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/donation
- Last tracking update
- 2026-08-11 17:15:19
- Authors
- Akretion, Odoo Community Association (OCA), Barroux Abbey
- Maintainers
- Akretion, Odoo Community Association (OCA), Barroux Abbey
- Committers
- Alexis de Lattre, Weblate, OCA-git-bot, oca-ci, TB-Ph35, David Brühlmeier
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- donation_stay
- Description
This module handles donations by cash, check or by credit transfer and generate the corresponding journal entries and tax receipts. To fully support donations by credit transfer, if you are using the OCA bank statement reconcile interface, you also need the module **donation_bank_statement_oca**. This module will assist you in writing a thanks letter. This module also supports in-kind donations (in-kind donations don't generate any accounting entry but can generate a tax receipt).
Code Analysis ⓘ
Views touched (27)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_payment_method_line_tree |
donation.account.payment.method.line.list | account.payment.method.line | list | Inherits account.view_account_payment_method_line_tree |
donation_campaign_form |
donation.campaign.form | donation.campaign | form | New |
donation_campaign_search |
donation.campaign.search | donation.campaign | search | New |
donation_campaign_tree |
donation.campaign.list | donation.campaign | list | New |
donation_form |
donation.form | donation.donation | form | New |
donation_from_bank_statement_line_form |
Creation Donation from Bank Statement Line form | donation.donation | form | New |
donation_graph |
donation.graph | donation.donation | graph | New |
donation_line_form |
donation.line.form | donation.line | form | New |
donation_line_tree |
donation.line.list | donation.line | list | New |
donation_pivot |
donation.pivot | donation.donation | pivot | New |
donation_report_graph |
donation.report.graph | donation.report | graph | New |
donation_report_pivot |
donation.report.pivot | donation.report | pivot | New |
donation_report_search |
donation.report.search | donation.report | search | New |
donation_report_tree |
donation.report.list | donation.report | list | New |
donation_search |
donation.search | donation.donation | search | New |
donation_tax_receipt_form |
donation.donation.tax.receipt.form | donation.tax.receipt | form | Inherits donation_base.donation_tax_receipt_form |
donation_tax_receipt_option_switch_form |
donation_tax_receipt_option_switch.form | donation.tax.receipt.option.switch | form | New |
donation_thanks_template_form |
donation.thanks.template | form | New | |
donation_thanks_template_search |
donation.thanks.template | search | New | |
donation_thanks_template_tree |
donation.thanks.template | list | New | |
donation_tree |
donation.list | donation.donation | list | New |
donation_validate_form |
donation_validate.form | donation.validate | form | New |
report_donation_thanks |
report_donation_thanks | ir.ui.view | qweb | New |
res_config_settings_donation |
donation.res.config.settings.form | res.config.settings | form | Inherits base.res_config_settings_view_form |
view_partner_property_form |
donation.button.res.partner.form | res.partner | form | Inherits donation_base.view_partner_property_form |
view_users_form |
donation.res.users.form | res.users | form | Inherits base.view_users_form |
view_users_form_simple_modif |
donation.preferences.res.users.form | res.users | form | Inherits base.view_users_form_simple_modif |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (15)
New fields (1)
-
business_domainSelectionondelete={'donation': 'cascade'}selection_add=[('donation', 'Donation')]
No public methods.
New fields (1)
-
donation_idsOne2many → donation.donationreadonly=Truestring='Donations' args: 'donation.donation', 'bank_statement_line_id'
No public methods.
New fields (1)
-
donationBooleanhelp='If enabled, this payment method will be available on donations'
No public methods.
New fields (7)
-
activeBooleandefault=True -
codeChar -
company_idMany2one → res.companyondelete='cascade' args: 'res.company' -
nameCharrequired=True -
noteTextargs: 'Notes' -
sequenceIntegerdefault=10 -
start_dateDatedefault=fields.Date.context_today
No public methods.
New fields (23)
-
amount_totalMonetarycompute='_compute_total'currency_field='currency_id'store=Truetracking=True -
amount_total_company_currencyMonetarycompute='_compute_total'currency_field='company_currency_id'store=Truestring='Amount Total in Company Currency' -
bank_statement_line_idMany2one → account.bank.statement.lineondelete='restrict'readonly=Truestring='Source Bank Statement Line' args: 'account.bank.statement.line' -
campaign_idMany2one → donation.campaigncheck_company=Truedefault=<expr>ondelete='restrict'string='Donation Campaign'tracking=True args: 'donation.campaign' -
check_totalMonetarycurrency_field='currency_id'string='Check Amount'tracking=True -
commercial_partner_idMany2oneindex=Truerelated='partner_id.commercial_partner_id'store=Truestring='Parent Donor' -
company_currency_idMany2onerelated='company_id.currency_id'store=Truestring='Company Currency' -
company_idMany2one → res.companydefault=<expr>required=True args: 'res.company' -
country_idMany2one → res.countrycompute='_compute_country_id'store=True args: 'res.country' -
currency_idMany2one → res.currencydefault=<expr>ondelete='restrict'required=Truetracking=True args: 'res.currency' -
donation_dateDateindex=Truerequired=Truetracking=True -
line_idsOne2many → donation.linecopy=Truestring='Donation Lines' args: 'donation.line', 'donation_id' -
move_idMany2one → account.movecheck_company=Truecopy=Falsereadonly=Truestring='Journal Entry' args: 'account.move' -
numberCharcopy=Falsedefault=<expr>index=Truereadonly=Truerequired=Truestring='Donation Number' -
partner_idMany2one → res.partnerindex=Trueondelete='restrict'required=Truestring='Donor'tracking=True args: 'res.partner' -
payment_method_line_idMany2one → account.payment.method.linecheck_company=Truedefault=<expr>domain="[('company_id', '=', company_id), ('donation', '=', True)]"string='Payment Method'tracking=True args: 'account.payment.method.line' -
payment_refCharcopy=Falsestring='Payment Reference' -
stateSelectioncopy=Falsedefault='draft'index=Truereadonly=Truetracking=True args: [('draft', 'Draft'), ('done', 'Done'), ('cancel', 'Cancelled')] -
tax_receipt_idMany2one → donation.tax.receiptcheck_company=Truecopy=Falsereadonly=Truetracking=True args: 'donation.tax.receipt' -
tax_receipt_optionSelectioncompute='_compute_tax_receipt_option'index=Trueprecompute=Truereadonly=Falsestore=Truetracking=True args: [('none', 'None'), ('each', 'For Each Donation'), ('annual', 'Annual Tax Receipt')] -
tax_receipt_totalMonetarycompute='_compute_total'currency_field='company_currency_id'help='Eligible Tax Receipt Sub-total in Company Currency'readonly=Truestore=Truestring='Tax Receipt Eligible Amount' -
thanks_printedBooleancopy=Falsehelp='This field automatically becomes active when the thanks letter has been printed.'tracking=True -
thanks_template_idMany2one → donation.thanks.templatecopy=Falseondelete='restrict' args: 'donation.thanks.template'
-
cancel2draft(self)from Cancel state to Draft state -
create(self, vals_list)@api.model_create_multi -
done2cancel(self)from Done state to Cancel state -
generate_each_tax_receipt(self) -
print_thanks(self) -
save_as_draft(self) -
save_default_values(self) -
tax_receipt_option_change(self)@api.onchange('tax_receipt_option') -
thanks_printed_button(self) -
unlink(self) -
validate(self)
New fields (14)
-
amountMonetarycompute='_compute_amount'currency_field='currency_id'store=True -
amount_company_currencyMonetarycompute='_compute_amount'currency_field='company_currency_id'store=Truestring='Amount in Company Currency' -
company_currency_idMany2onerelated='donation_id.company_id.currency_id'store=Truestring='Company Currency' -
company_idMany2onerelated='donation_id.company_id'store=True -
currency_idMany2onerelated='donation_id.currency_id'store=True -
donation_idMany2one → donation.donationondelete='cascade' args: 'donation.donation' -
in_kindBooleancompute='_compute_in_kind'store=True -
product_donation_typeSelectionrelated='product_id.donation_type'store=Truestring='Product Type donation' -
product_idMany2one → product.productcheck_company=Truedomain=[('donation_type', '!=', False)]ondelete='restrict'required=True args: 'product.product' -
quantityIntegerdefault=1 -
sequenceInteger -
tax_receipt_amountMonetarycompute='_compute_amount'currency_field='company_currency_id'store=Truestring='Tax Receipt Eligible Amount' -
tax_receipt_okBooleanrelated='product_id.tax_receipt_ok'store=True -
unit_priceMonetarycurrency_field='currency_id'
-
product_id_change(self)@api.onchange('product_id')
New fields (16)
-
amount_company_currencyMonetarycurrency_field='company_currency_id'readonly=True args: 'Amount' -
campaign_idMany2one → donation.campaignreadonly=True args: 'donation.campaign', 'Donation Campaign' -
company_currency_idMany2one → res.currencyreadonly=True args: 'res.currency' -
company_idMany2one → res.companyreadonly=True args: 'res.company' -
country_idMany2one → res.countryreadonly=True args: 'res.country', 'Partner Country' -
donation_dateDatereadonly=True -
in_kindBoolean -
partner_idMany2one → res.partnerreadonly=True args: 'res.partner', 'Donor' -
payment_method_line_idMany2one → account.payment.method.linereadonly=True args: 'account.payment.method.line' -
product_categ_idMany2one → product.categoryreadonly=True args: 'product.category', 'Category of Product' -
product_donation_typeSelectionrelated='product_id.donation_type'store=True -
product_idMany2one → product.productreadonly=True args: 'product.product' -
tax_receipt_amountMonetarycurrency_field='company_currency_id'readonly=True args: 'Tax Receipt Eligible Amount' -
tax_receipt_okBooleanargs: 'Eligible for a Tax Receipt' -
thanks_printedBooleanreadonly=True -
thanks_template_idMany2one → donation.thanks.templatereadonly=Truestring='Thanks Template' args: 'donation.thanks.template'
-
init(self)
New fields (1)
-
donation_idsOne2many → donation.donationstring='Related Donations' args: 'donation.donation', 'tax_receipt_id'
-
update_tax_receipt_annual_dict(self, tax_receipt_annual_dict, start_date, end_date, company)@api.model
New fields (2)
-
donation_idMany2one → donation.donationdefault=<expr>required=Truestring='Donation' args: 'donation.donation' -
new_tax_receipt_optionSelectionrequired=Truestring='Tax Receipt Option' args: [('each', 'For Each Donation'), ('annual', 'Annual Tax Receipt')]
-
switch(self)
New fields (6)
-
activeBooleandefault=True -
company_idMany2one → res.companydefault=<expr>ondelete='cascade' args: 'res.company' -
imageBinaryattachment=True -
nameCharrequired=True -
sequenceIntegerdefault=10 -
textTexttranslate=True
No public methods.
New fields (0)
No new fields.
Public methods (1)-
run(self)
New fields (2)
-
donation_account_idMany2one → account.accountcheck_company=Truecopy=Falsehelp='Transfer account for donations received by credit transfer. 'ondelete='restrict'string='Donation by Credit Transfer Account' args: 'account.account' -
donation_credit_transfer_product_idMany2one → product.productcheck_company=Truedomain=[('donation_type', '!=', False)]ondelete='restrict'string='Product for Donations via Credit Transfer' args: 'product.product'
No public methods.
New fields (3)
-
donation_account_idMany2onedomain="[('reconcile', '=', True), ('deprecated', '=', False), ('company_ids', 'in', company_id), ('account_type', '=', 'asset_current')]"readonly=Falserelated='company_id.donation_account_id' -
donation_credit_transfer_product_idMany2onereadonly=Falserelated='company_id.donation_credit_transfer_product_id' -
group_donation_check_totalBooleanimplied_group='donation.group_donation_check_total'string='Check Total on Donations'
No public methods.
New fields (2)
-
donation_countIntegercompute='_compute_donation_count'compute_sudo=Truestring='# of Donations' -
donation_idsOne2many → donation.donationreadonly=Truestring='Donations' args: 'donation.donation', 'partner_id'
No public methods.
New fields (2)
-
context_donation_campaign_idMany2one → donation.campaignargs: 'donation.campaign', 'Current Donation Campaign' -
context_donation_payment_method_line_idMany2one → account.payment.method.linecompany_dependent=Truedomain=[('donation', '=', True)] args: 'account.payment.method.line', 'Current Donation Payment Method'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…