Problem
Organizations face several challenges managing accounts receivable:
- Visibility Gap: Unpaid invoices scattered across multiple currencies (USD, EUR, TRY) with no centralized view
- Manual Follow-up: Time-consuming manual tracking of due dates and overdue invoices
- Sales Team Accountability: Lack of team-specific metrics for outstanding receivables
- Payment Term Confusion: Difficulty categorizing and tracking different payment terms (Immediate, Transfer, Check)
- Time-Critical Actions: No clear identification of invoices requiring immediate attention vs. those aging 2+ weeks
- Email Overload: Manual reminder emails lead to inconsistent follow-up and missed collections
Solution
This Odoo module provides automated unpaid invoice management with:
Centralized Dashboard: Single-view kanban interface showing all unpaid invoices grouped by time periods (Today, Week, 2 Weeks, Month, Other) with instant drill-down to details.
Multi-Currency Tracking: Native support for USD, EUR, and TRY with automatic currency-based calculations and reporting.
Automated Reminders: Daily cron job sends email notifications to stakeholders for invoices due today, eliminating manual follow-up.
Sales Team Analytics: Each team gets dedicated statistics showing unpaid totals by period and currency, enabling performance tracking and accountability.
Payment Term Intelligence: Automatic categorization by payment type (Immediate/Transfer/Check) helps prioritize collection efforts.
Smart Filtering: Pre-configured actions provide instant access to critical views (today’s due invoices, aging invoices, team-specific lists).
Key Features
- Multi-Currency Support: Track unpaid invoices in USD, EUR, and TRY
- Time-Based Filtering: View invoices by Today, Week, 2 Weeks, Month, and Other periods
- Payment Term Breakdown: Categorize by payment terms (Immediate, Transfer, Check)
- Sales Team Analytics: Dashboard with unpaid totals per team and currency
- Automated Email Reminders: Scheduled daily notifications for due invoices
- Interactive Dashboards: Kanban views with clickable statistics
Module Structure
Core Models
1. unpaid.invoice
- Main model tracking unpaid invoices
- Links to
account.movewith customer, team, and payment details - Fields: invoice_id, partner_id, amount_due, due_date, team_id, sales_person, days_since_invoice
- Methods:
populate_unpaid_invoices(),send_email_unpaid_invoices()
2. month.record
- Dashboard model showing totals by time periods
- Computes totals for: Today, This Week, This Month, Other
- Breaks down by payment terms: Immediate, Transfer, Check
- Actions:
action_today(),action_saturday_to_friday(),action_this_month(),action_other()
3. crm.team (inherited)
- Extends sales teams with unpaid invoice statistics
- 12 computed fields for currency/period combinations
- Fields:
unpaid_invoice_total_{period}_{currency} - Periods: today, week, 2weeks, month
4. account.move (inherited)
- Adds email sending functionality
- Method:
send_due_invoices_email()– sends template-based notifications
5. report.unpaid_invoice.unpaid_report
- Abstract model for PDF report generation
- Groups invoices by partner with delay calculations
- Filters by account codes (120001, 120005, 120002, 120006)
Currency Handling
- Supports: USD (base.USD), EUR (base.EUR), TRY (base.TRY)
- Fields use
fields.Monetarywith dynamic currency_field - Totals calculated separately per currency