Skip to content
Health
55/100
fair
  • Security25/25
    No findings
  • Activity20/25
    Last human commit 7 months ago
  • Required by5/25
    0 modules depend on it
  • Maturity5/25
    In 1 Odoo series since 18.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
Required by
0
Modules depending on it
External deps
0 pip · 0 bin
Python packages / system binaries
License
LGPL-3
No conflicts with its dependencies
Folder size
0.05 MB
Module directory on disk
Code analysis 0 migration notes 2 models 3 views 0 HTTP endpoints

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

Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

Views touched 3

XML IDNameModelTypeStatus
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

New fields (0)

No new fields.

Public methods (1)
  • create_internal_transfer(self)

New fields (2)
  • destination_journal_id Many2one → account.journal
    check_company=True comodel_name='account.journal' domain="[('type', 'in', ('bank', 'cash')), ('company_id', '=', company_id), ('id', '!=', journal_id)]" string='Destination Journal'
  • is_internal_transfer Boolean
    string='Internal Transfer' tracking=True
Public methods (5)
  • action_cancel(self)
  • action_draft(self)
  • action_post(self)
  • button_open_paired_payment(self)
  • unlink(self)