# 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: ```bash 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`](static/src/xml/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`](static/src/js/bank_statement_total_widget.js) 2. Add new computed properties or methods 3. Update the template to display new information Example - Add average calculation: ```javascript 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