bank_statement_reconciliation/README.md

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