Account Payment Internal Transfer
account_payment_internal_transfer · OCA/account-payment
-
Security25/25No findings
-
Activity20/25Last human commit 7 months ago
-
Required by5/250 modules depend on it
-
Maturity5/25In 1 Odoo series since 18.0
Heuristic over the facts below, not an audit · How it's computed
Description
This module restores the internal transfer functionality for payments that was available in previous Odoo versions but was removed.
Now the recommended approach for internal transfers requires waiting for bank statement lines to be imported and then using reconciliation models. This workflow has significant drawbacks:
- Users cannot register transfers at the moment they occur
- There is a risk of forgetting unreconciled transactions if bank statements are delayed
- Users without direct bank access have no way to track pending transfers
- The workflow is tedious and error-prone
This module allows users to register internal transfers immediately when they happen, creating the intermediate journal entries with outstanding accounts. Later, when bank statements are imported, each side can be reconciled independently. This results in 4 journal entries total (2 payments + 2 bank statement reconciliations).
Features:
- Create internal transfers directly from the Accounting Dashboard
- A paired payment is automatically created in the destination journal
- Their journal entries are automatically reconciled
- Proper labels are set on journal items for easy identification
- Cancel and reset to draft cascades to the paired payment
- Deleting a transfer also deletes the paired payment
- Search filter to easily find internal transfers in the payments list
Dependencies
Code analysis
Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.
Views touched 3
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_journal_dashboard_kanban_view_internal_transfer |
account.journal.dashboard.kanban.internal.transfer | account.journal | kanban | Inherits account.account_journal_dashboard_kanban_view |
view_account_payment_form_internal_transfer |
account.payment.form.internal.transfer | account.payment | form | Inherits account.view_account_payment_form |
view_account_payment_search_internal_transfer |
account.payment.search.internal.transfer | account.payment | search | Inherits account.view_account_payment_search |
HTTP endpoints 0
No HTTP endpoints found for this module.
Models touched 2
No new fields.
Public methods (1)-
create_internal_transfer(self)
-
destination_journal_idMany2one → account.journalcheck_company=Truecomodel_name='account.journal'domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id), ('id', '!=', journal_id)]"string='Destination Journal' -
is_internal_transferBooleanstring='Internal Transfer'tracking=True
-
action_cancel(self) -
action_draft(self) -
action_post(self) -
button_open_paired_payment(self) -
unlink(self)