Go to file
2025-12-06 19:13:17 +07:00
__pycache__ feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
models feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
security feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
static/src feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
views feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
wizards feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
__init__.py feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
__manifest__.py feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00
README.md feat: Implement bank statement line selection with total amount display in footer and reconciliation wizard. 2025-12-06 19:13:17 +07:00

Bank Statement Reconciliation Module

Overview

This module enhances Odoo's bank statement reconciliation functionality by providing an intuitive interface for reconciling bank statement lines with journal entries.

Features

Core Functionality

  • Menu Access: Direct menu to access bank statement lines
  • Bank Journal Filtering: Filter statement lines by specific bank journals
  • Batch Reconciliation: Select and reconcile multiple bank lines simultaneously
  • Journal Entry Matching: Wizard to select appropriate journal entries for reconciliation
  • Automatic Reconciliation: Automatic creation of reconciliation journal entries

New Features (v17.0.1.0.0)

1. Total Selected Amount Widget

A dynamic header widget that displays real-time totals when you select multiple bank statement lines in the list view.

Features:

  • Real-time Calculation: Automatically calculates the sum of selected lines
  • Visual Indicators:
    • Green badge for positive amounts
    • Red badge for negative amounts
  • Selection Counter: Shows how many lines are currently selected
  • Currency Display: Shows the currency of selected lines
  • Modern UI: Clean, Bootstrap-styled interface with icons

How to Use:

  1. Navigate to: Bank Statement Reconciliation
  2. Select one or more bank statement lines by clicking the checkboxes
  3. The footer will showing:
    • Total amount of selected lines

Installation

  1. Copy the module to your Odoo addons directory:

    cp -r bank_statement_reconciliation /path/to/odoo/addons/
    
  2. Update the addons list:

    • Go to Apps menu
    • Click Update Apps List
    • Search for "Bank Statement Reconciliation"
  3. Install the module:

    • Click Install button

Configuration

No additional configuration is required. The module works out of the box after installation.

Usage

Reconciling Bank Statement Lines

  1. Access Bank Statement Lines

    • Navigate to: Accounting > Bank Statement Reconciliation > Bank Statement Lines
  2. Filter Lines

    • Use the search bar to filter by:
      • Date
      • Partner
      • Journal
      • Amount (Income/Expense)
  3. Select Lines for Reconciliation

    • Check the boxes next to the lines you want to reconcile
    • The total amount widget will show the sum automatically
  4. Initiate Reconciliation

    • Click the Action menu
    • Select Reconcile Selected Lines
    • OR click the Reconcile button in the form view
  5. Match Journal Entries

    • The wizard will open showing available journal entries
    • Select the appropriate journal entry to match
    • Confirm the reconciliation

Technical Details

Module Structure

bank_statement_reconciliation/
├── __init__.py
├── __manifest__.py
├── README.md
├── models/
│   ├── __init__.py
│   ├── account_bank_statement_line.py
│   ├── bank_statement_line.py
│   └── bank_statement_selector.py
├── views/
│   ├── bank_statement_line_views.xml
│   ├── bank_statement_selector_views.xml
│   └── menu.xml
├── wizards/
│   ├── __init__.py
│   ├── bank_reconcile_wizard.py
│   └── bank_reconcile_wizard_views.xml
├── security/
│   └── ir.model.access.csv
└── static/
    └── src/
        ├── js/
        │   ├── bank_statement_total_widget.js
        │   ├── bank_statement_list_controller.js
        │   └── bank_statement_list_view.js
        └── xml/
            ├── bank_statement_total_widget.xml
            └── bank_statement_list_view.xml

JavaScript Components

BankStatementTotalWidget

  • Type: OWL Component
  • Purpose: Displays total amount of selected lines
  • Props:
    • resIds: Array of selected record IDs
  • Features:
    • Reactive state management
    • Automatic updates on selection change
    • Currency formatting
    • Visual styling based on amount (positive/negative)

BankStatementListController

  • Type: List Controller Extension
  • Purpose: Extends standard list controller with custom functionality
  • Features:
    • Provides selected records to the widget
    • Integrates widget into list view layout

XML Views

Tree View Enhancement

  • Added js_class="bank_statement_list" attribute
  • Enabled multi-edit mode
  • Added monetary widget for amount field
  • Added currency field for proper formatting
  • Includes sum totals in footer

Dependencies

  • account: Core accounting module
  • base: Odoo base module
  • web: Web framework for JavaScript components

Customization

Modifying the Widget Appearance

Edit bank_statement_total_widget.xml to customize:

  • Layout
  • Colors
  • Icons
  • Styling

Extending Functionality

To add more calculations or features:

  1. Edit bank_statement_total_widget.js
  2. Add new computed properties or methods
  3. Update the template to display new information

Example - Add average calculation:

get averageAmount() {
    if (this.state.selectedCount === 0) return 0;
    return this.state.totalAmount / this.state.selectedCount;
}

Troubleshooting

Widget Not Appearing

  1. Clear Browser Cache

    • Hard refresh: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac)
  2. Update Assets

    • Navigate to: Settings > Technical > User Interface > Views
    • Click Regenerate Assets Bundles
  3. Check JavaScript Console

    • Press F12 to open developer tools
    • Look for any JavaScript errors

Incorrect Totals

  1. Verify Currency Settings

    • Ensure all selected lines use the same currency
    • Check currency rounding settings
  2. Check Data Integrity

    • Verify amount fields are populated correctly
    • Check for null or undefined values

Support

For issues, questions, or contributions:

  • Author: Suherdy Yacob
  • Version: 17.0.1.0.0
  • Odoo Version: 17.0

Changelog

Version 17.0.1.0.0

  • Added total selected amount widget in list view header
  • Enhanced tree view with monetary formatting
  • Improved user experience with visual indicators
  • Added real-time calculation of selected lines
  • Implemented modern OWL-based JavaScript components

Initial Version

  • Basic bank statement reconciliation functionality
  • Wizard-based reconciliation process
  • Multi-line selection support
  • Journal entry matching

License

This module follows the same license as Odoo.

Screenshots

Total Amount Widget in Action

When you select multiple bank statement lines, the widget appears at the top showing:

  • Number of selected items
  • Total sum with currency
  • Color-coded amount (green for positive, red for negative)

List View Enhancements

  • Checkboxes for multi-selection
  • Amount column with monetary formatting
  • Footer totals for all visible records
  • Clean, modern interface

Future Enhancements

Planned features for future releases:

  • Support for multi-currency reconciliation
  • Advanced filtering options
  • Reconciliation history tracking
  • Export selected lines to Excel
  • Batch operations for common reconciliation patterns
  • AI-powered suggestion for matching entries