Subscription End of the Month Invoicing - Prismtech
by Nicolas Brouwers https://www.prismtech.be$ 45.54
In-App PurchasesAvailability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Subscriptions (sale_subscription)
• Sales (sale_management) • Discuss (mail) • Invoicing (account) |
Lines of code | 195 |
Technical Name |
subscription_eom_invoicing |
License | LGPL-3 |
Website | https://www.prismtech.be |
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Subscriptions (sale_subscription)
• Sales (sale_management) • Discuss (mail) • Invoicing (account) |
Lines of code | 195 |
Technical Name |
subscription_eom_invoicing |
License | LGPL-3 |
Website | https://www.prismtech.be |
Subscription End of Month Invoicing
Invoice your subscriptions at the end of the month for the current period
🎯 What Does This Application Do?
This application transforms how Odoo handles subscription billing. Instead of invoicing at the beginning of the month for upcoming services, it enables end-of-month invoicing for services already delivered during the current period.
✨ Key Benefits
-
Simplified Accounting
Bill for services already delivered, not future commitments -
Better Cash Flow
Collect payment for services already delivered -
Accurate Revenue Recognition
Deferred revenue is automatically calculated for the current period -
Professional Presentation
Clean invoices with correct date ranges
🚀 Main Features
⚙️ Flexible Invoice Timing
Choose between "Regular" (standard billing) and "Current Month" (end-of-month) according to your business needs.
📅 Smart Date Management
Automatic calculation of monthly periods (1st to last day of month) for precise invoicing.
🛡️ Cron Protection
Bulletproof logic that preserves your end-of-month dates even after automatic task execution.
🔄 Seamless Integration
Works perfectly with existing Odoo subscription workflows without conflicts.
💼 Perfect For
- Service companies billing monthly
- SaaS businesses with end-of-month billing cycles
- Consultancy firms tracking monthly deliveries
- Any business requiring precise monthly billing periods
🔧 Technical Excellence
- Zero conflicts with standard Odoo functionality
- Robust protection against system overrides
- Clean, maintainable code following Odoo best practices
- Full compatibility with Odoo 18 subscription system
🎉 Transform Your Subscription Billing Today
Professional, precise, and perfectly integrated with your existing Odoo workflow.
Simple Installation • Intuitive Configuration • Immediate Results
Subscription End of Month Invoicing
Professional End-of-Month Subscription Billing for Odoo
Overview
Subscription End of Month Invoicing transforms how Odoo handles subscription billing. Instead of invoicing at the beginning of the month for upcoming services, this module enables end-of-month invoicing for services already delivered during the current period.
This approach aligns perfectly with businesses that need to bill for completed services, improving cash flow management and revenue recognition accuracy.
Key Features
Flexible Invoice Timing
- Two Billing Modes: Choose between "Regular" (standard Odoo behavior) or "Current Month" (end-of-month billing)
- Per-Subscription Configuration: Set the billing mode individually for each subscription
- Seamless Switching: Change billing modes without disrupting existing subscriptions
Smart Date Management
- Automatic Period Calculation: Automatically calculates the full month period (1st to last day)
- End-of-Month Invoicing: Invoices are generated on the last day of each month
- Accurate Date Ranges: Invoice lines display the complete monthly period
- Leap Year Support: Correctly handles February and all month variations
Cron Protection
- Bulletproof Logic: Preserves end-of-month dates even after cron job execution
- Override Prevention: Prevents standard Odoo processes from modifying configured dates
- Reliable Automation: Ensures invoices are always generated at the correct time
Seamless Integration
- Zero Conflicts: Works perfectly with existing Odoo subscription workflows
- Standard Compatibility: Fully compatible with Odoo 18 subscription system
- No Customization Required: Works out-of-the-box with standard Odoo installations
- Preserves Functionality: All standard subscription features remain available
Installation
Requirements
- Odoo 18.0 or higher
- sale_subscription module (Odoo Enterprise)
Installation Steps
- Copy the module to your Odoo addons directory
- Update the apps list in Odoo
- Install the "Subscription End of Month Invoicing" module
- The module is ready to use immediately
Configuration
Subscription Setup
- Navigate to Sales > Subscriptions
- Open an existing subscription or create a new one
- In the subscription form, locate the Invoice Mode field
- Select one of the two options:
- Regular: Standard Odoo behavior (invoice at start of period)
- Current Month: End-of-month billing (invoice at end of period)
- Save the subscription
The module will automatically handle the rest.
Usage
End-of-Month Billing Workflow
- Create Subscription
- Create a new subscription with monthly recurrence
- Set Invoice Mode to "Current Month"
- Configure subscription lines as usual
- Automatic Invoicing
- The system automatically generates invoices on the last day of each month
- Invoice lines show the period from the 1st to the last day of the month
- No manual intervention required
- Invoice Review
- Review generated invoices in Sales > Invoices
- Verify that date ranges cover the complete month
- Process invoices according to your standard workflow
Regular Billing Mode
For subscriptions that should use standard Odoo behavior:
- Set Invoice Mode to "Regular"
- The subscription will invoice at the beginning of each period
- Standard Odoo date calculation applies
Use Cases
Perfect For
- Service Companies: Bill monthly for services already delivered
- SaaS Businesses: End-of-month billing cycles for software subscriptions
- Consultancy Firms: Track and bill for monthly deliverables
- Professional Services: Invoice for completed work periods
- Any Business: Requiring precise monthly billing periods
Business Benefits
- Simplified Accounting: Bill for completed services, not future commitments
- Better Cash Flow: Invoice for delivered services improves cash flow management
- Accurate Revenue Recognition: Deferred revenue automatically calculated for current month
- Professional Presentation: Clean invoices with proper date ranges
- Customer Clarity: Customers see exactly what period they're being billed for
Technical Details
How It Works
The module extends the standard Odoo subscription model with:
- New Field: invoice_mode (Selection field with "Regular" and "Current Month" options)
- Date Override Logic: Automatically adjusts invoice dates for end-of-month billing
- Cron Protection: Prevents standard processes from overriding configured dates
- Period Calculation: Computes accurate month periods including leap years
Architecture
- Model Extension: Extends sale.order model
- Method Override: Overrides invoice generation methods
- View Enhancement: Adds invoice mode field to subscription form
- No Database Changes: Works with standard Odoo database schema
Compatibility
- Odoo Version: 18.0 and higher
- Enterprise Module: Requires sale_subscription (Odoo Enterprise)
- Other Modules: Compatible with standard Odoo modules
- Customizations: Works alongside custom subscription modifications
Troubleshooting
Common Issues
Invoice dates not at end of month
- Verify Invoice Mode is set to "Current Month"
- Check that the subscription is active
- Ensure cron jobs are running properly
Subscription not generating invoices
- Verify the subscription is in "In Progress" state
- Check the next invoice date
- Review cron job logs for errors
Date ranges incorrect
- Confirm the subscription recurrence is set to monthly
- Verify timezone settings in Odoo
- Check for custom date modifications in other modules
Support
For technical support, configuration assistance, or questions:
- Email: nicolas.b.95@hotmail.com
- Website: https://www.prismtech.be
We provide full support for:
- Installation and configuration
- Integration with existing workflows
- Custom requirements and modifications
- Troubleshooting and bug fixes
License
This module is licensed under LGPL-3.
Credits
Author: Nicolas Brouwers
Company: Prism Technology
Version History
- 1.21: Current stable release
- Full Odoo 18 compatibility
- Robust cron protection
- Enhanced date management
- Professional invoice presentation
Please log in to comment on this module