253 lines
7.4 KiB
Markdown
253 lines
7.4 KiB
Markdown
# 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 |