From 754663f3a1d12fb2b3a18b320573c58d935b3b45 Mon Sep 17 00:00:00 2001 From: AaronHForgeFlow Date: Wed, 10 Dec 2025 18:04:15 +0100 Subject: [PATCH] [IMP] sale_require_po_doc: Set default customer need po at company level --- sale_require_po_doc/__manifest__.py | 6 +++++- sale_require_po_doc/models/__init__.py | 2 ++ sale_require_po_doc/models/res_company.py | 12 ++++++++++++ .../models/res_config_settings.py | 10 ++++++++++ sale_require_po_doc/models/res_partner.py | 1 + .../views/res_config_settings.xml | 17 +++++++++++++++++ 6 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 sale_require_po_doc/models/res_company.py create mode 100644 sale_require_po_doc/models/res_config_settings.py create mode 100644 sale_require_po_doc/views/res_config_settings.xml diff --git a/sale_require_po_doc/__manifest__.py b/sale_require_po_doc/__manifest__.py index c3e9ea9a03a..f0a54a7bc59 100644 --- a/sale_require_po_doc/__manifest__.py +++ b/sale_require_po_doc/__manifest__.py @@ -9,7 +9,11 @@ "website": "https://github.com/OCA/sale-workflow", "category": "Sales", "depends": ["sale_management"], - "data": ["views/res_partner_view.xml", "views/sale_order_view.xml"], + "data": [ + "views/res_partner_view.xml", + "views/sale_order_view.xml", + "views/res_config_settings.xml", + ], "auto_install": False, "application": False, "installable": True, diff --git a/sale_require_po_doc/models/__init__.py b/sale_require_po_doc/models/__init__.py index 1f88abfd6bf..55f746738f7 100644 --- a/sale_require_po_doc/models/__init__.py +++ b/sale_require_po_doc/models/__init__.py @@ -1,5 +1,7 @@ # Copyright (C) 2021 Open Source Integrators # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from . import res_company +from . import res_config_settings from . import res_partner from . import sale_order diff --git a/sale_require_po_doc/models/res_company.py b/sale_require_po_doc/models/res_company.py new file mode 100644 index 00000000000..adb4e111616 --- /dev/null +++ b/sale_require_po_doc/models/res_company.py @@ -0,0 +1,12 @@ +from odoo import fields, models + + + +class ResCompany(models.Model): + _inherit = "res.company" + + customer_need_po_default = fields.Boolean( + string="Default: Customer Requires PO", + help="If True, new customers will have 'Customer Requires PO' " + "enabled by default." + ) diff --git a/sale_require_po_doc/models/res_config_settings.py b/sale_require_po_doc/models/res_config_settings.py new file mode 100644 index 00000000000..f70854ea88b --- /dev/null +++ b/sale_require_po_doc/models/res_config_settings.py @@ -0,0 +1,10 @@ +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + customer_need_po_default = fields.Boolean( + related="company_id.customer_need_po_default", + readonly=False + ) diff --git a/sale_require_po_doc/models/res_partner.py b/sale_require_po_doc/models/res_partner.py index e55ab0b4d86..6d83581cf0a 100644 --- a/sale_require_po_doc/models/res_partner.py +++ b/sale_require_po_doc/models/res_partner.py @@ -10,6 +10,7 @@ class ResPartner(models.Model): customer_need_po = fields.Boolean( string="Customer Requires PO", tracking=True, + default=lambda self: self.env.company.customer_need_po_default, help="A PO number will be required on the" " Sales Order field for Customer Reference", ) diff --git a/sale_require_po_doc/views/res_config_settings.xml b/sale_require_po_doc/views/res_config_settings.xml new file mode 100644 index 00000000000..4023fdc4a21 --- /dev/null +++ b/sale_require_po_doc/views/res_config_settings.xml @@ -0,0 +1,17 @@ + + + + res.config.settings + + + + + + + + + +