Skip to Content
Menu

Subscription End of the Month Invoicing - Prismtech

by
Odoo

45.54

In-App Purchases
v 18.0 Third Party
This module requires Odoo Enterprise Edition.
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
LicenseLGPL-3
Websitehttps://www.prismtech.be
You bought this module and need support? Click here!
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
LicenseLGPL-3
Websitehttps://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.

1 Configuration: Select "Current Month" mode on your subscriptions
2 Automatic Invoicing: The system automatically invoices on the last day of the month
3 Optimized Dates: Invoice lines automatically display the full month period (1st to last day)
4 Guaranteed Protection: The logic resists cron tasks and standard Odoo processes

✨ 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

  1. Copy the module to your Odoo addons directory
  2. Update the apps list in Odoo
  3. Install the "Subscription End of Month Invoicing" module
  4. The module is ready to use immediately

Configuration

Subscription Setup

  1. Navigate to Sales > Subscriptions
  2. Open an existing subscription or create a new one
  3. In the subscription form, locate the Invoice Mode field
  4. 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)
  5. Save the subscription

The module will automatically handle the rest.

Usage

End-of-Month Billing Workflow

  1. Create Subscription
    • Create a new subscription with monthly recurrence
    • Set Invoice Mode to "Current Month"
    • Configure subscription lines as usual
  2. 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
  3. 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:

  1. Set Invoice Mode to "Regular"
  2. The subscription will invoice at the beginning of each period
  3. 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:

  1. New Field: invoice_mode (Selection field with "Regular" and "Current Month" options)
  2. Date Override Logic: Automatically adjusts invoice dates for end-of-month billing
  3. Cron Protection: Prevents standard processes from overriding configured dates
  4. 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:

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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.