Skip to content

Commit

Permalink
[IMP]: account_invoice_section_sale_order add option to always create…
Browse files Browse the repository at this point in the history
… sections
  • Loading branch information
victorvermot authored and PaoloYam committed Feb 5, 2025
1 parent 7a9dc08 commit a6abeb0
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 1 deletion.
3 changes: 3 additions & 0 deletions account_invoice_section_sale_order/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@
"license": "AGPL-3",
"category": "Accounting & Finance",
"depends": ["account", "sale"],
"data": [
"views/res_config_settings.xml"
],
}
2 changes: 2 additions & 0 deletions account_invoice_section_sale_order/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
from . import sale_order
from . import res_config_settings
from . import res_company
12 changes: 12 additions & 0 deletions account_invoice_section_sale_order/models/res_company.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright 2021 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import fields, models


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

always_create_invoice_section = fields.Boolean(
help="Defines when to create sections",
default=False,
)
12 changes: 12 additions & 0 deletions account_invoice_section_sale_order/models/res_config_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Copyright 2021 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import fields, models


class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"

always_create_invoice_section = fields.Boolean(
related="company_id.always_create_invoice_section",
readonly=False,
)
8 changes: 7 additions & 1 deletion account_invoice_section_sale_order/models/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ def _create_invoices(self, grouped=False, final=False, date=None):
"""
invoice_ids = super()._create_invoices(grouped=grouped, final=final)
for invoice in invoice_ids:
if len(invoice.line_ids.mapped("sale_line_ids.order_id.id")) == 1:
if (
not invoice.company_id.always_create_invoice_section
and len(
invoice.line_ids.mapped(invoice.line_ids._get_section_grouping())
)
== 1
):
continue
so = None
sequence = 10
Expand Down
27 changes: 27 additions & 0 deletions account_invoice_section_sale_order/views/res_config_settings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.account</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="account.res_config_settings_view_form" />
<field name="arch" type="xml">
<xpath expr="//block[@id='invoicing_settings']" position="inside">

<setting
id="invoice_section_sale_order"
string="Section configuration"
help="Customize section when invoicing from sale orders"
>
<div class="row">
<label
for="always_create_invoice_section"
class="col-lg-4 o_light_label"
string="Create section even if an invoice is created from a single sale order"
/>
<field name="always_create_invoice_section" />
</div>
</setting>
</xpath>
</field>
</record>
</odoo>

0 comments on commit a6abeb0

Please sign in to comment.