Skip to content
Home » My Blog Tutorial » Mastering Odoo: Advanced Customizations and Localizations

Mastering Odoo: Advanced Customizations and Localizations

Implementing ILGAR Localization Modules

Odoo localizations. Odoo’s ILGAR localization modules provide a powerful way to adapt the system to specific country requirements. These modules typically include templates, tax reports, and account configurations tailored to local regulations.

To implement an ILGAR module, follow these steps:

  1. Navigate to the module’s directory
  2. Examine the manifest file for loaded data
  3. Review the template and tax report definitions
  4. Check the model file for default account settings

Here’s a snippet from a typical ILGAR module’s model file:

class ResCompany(models.Model):
    _inherit = 'res.company'

    # Default accounts
    account_default_pos_receivable_id = fields.Many2one('account.account', string='Default POS Receivable Account')
    account_default_payable_id = fields.Many2one('account.account', string='Default Payable Account')

This code defines default accounts for the company, which Odoo will use in various transactions.

Tweaking Product Default Code Computation

Some users find Odoo’s default product code computation inconvenient, especially when dealing with product variants. Fortunately, we can modify this behavior with a simple code adjustment.

To remove the default code computation:

  1. Create a new Python file in your custom module
  2. Override the _compute_default_code method of the product.template model

Here’s an example of how to implement this:

from odoo import models

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    def _compute_default_code(self):
        for template in self:
            if not template.default_code:
                template.default_code = False

This code prevents Odoo from automatically computing the default code, giving you more control over product references.

Enhancing Sales Order Reports: Removing Product References

Many businesses prefer to hide internal product references on customer-facing documents. We can achieve this by modifying the sales order report template.

To remove product references from the report:

  1. Locate the QWeb template for the sales order report
  2. Modify the line description rendering logic

Here’s an example of how to update the template:

<t t-if="line.product_id.name">
    <span t-field="line.product_id.name"/>
</t>
<t t-else="">
    <span t-field="line.name"/>
</t>
<t t-if="line.product_id.description_sale">
    <br/><span t-field="line.product_id.description_sale"/>
</t>

This code displays only the product name and sale description, omitting the internal reference.

Creating LTS Versions on Odoo SaaS

For stability and long-term support, you might want to create an LTS (Long Term Support) version of your Odoo database on SaaS. This process involves using a special parameter during database creation.

To create an LTS version:

  1. Go to the Odoo database creation page
  2. Add the parameter lts=1 to the URL
  3. Complete the database creation process as usual

Your new database will use the LTS version, allowing for easier future migrations and stability.

Automating Invoice Generation in Point of Sale

Odoo localizations. While Odoo doesn’t provide a built-in way to automatically generate invoices for every POS sale, we can implement this functionality through customization.

To automate invoice generation:

  1. Create a scheduled action to run periodically
  2. Write a script to process paid POS orders without invoices
  3. Generate invoices for eligible orders

Here’s a sample code snippet to get you started:

from odoo import models, api

class PosOrder(models.Model):
    _inherit = 'pos.order'

    @api.model
    def auto_create_invoices(self):
        orders = self.search([('state', '=', 'paid'), ('invoice_id', '=', False), ('partner_id', '!=', False)])
        for order in orders:
            order.action_pos_order_invoice()

This code searches for paid POS orders without invoices and with assigned customers, then generates invoices for them.

By implementing these advanced customizations, you can tailor Odoo to your specific business needs. Remember to thoroughly test any modifications in a staging environment before applying them to your production system.

For more information on Odoo customizations and best practices, check out the official Odoo developer documentation.


Discover more from teguhteja.id

Subscribe to get the latest posts sent to your email.

Leave a Reply

Optimized by Optimole
WP Twitter Auto Publish Powered By : XYZScripts.com

Discover more from teguhteja.id

Subscribe now to keep reading and get access to the full archive.

Continue reading