diff --git a/sale_require_po_doc/README.rst b/sale_require_po_doc/README.rst index b8deecd13fd..a7a5f5542dc 100644 --- a/sale_require_po_doc/README.rst +++ b/sale_require_po_doc/README.rst @@ -62,14 +62,14 @@ Authors Contributors ------------ -- Daniel Reis -- Chandresh Thakkar -- Chau Le +- Daniel Reis +- Chandresh Thakkar +- Chau Le Other credits ------------- -- Open Source Integrators +- Open Source Integrators Maintainers ----------- 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..b4535784bc4 --- /dev/null +++ b/sale_require_po_doc/models/res_company.py @@ -0,0 +1,11 @@ +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..e38ca4deca8 --- /dev/null +++ b/sale_require_po_doc/models/res_config_settings.py @@ -0,0 +1,9 @@ +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/tests/test_sale_require_po_doc.py b/sale_require_po_doc/tests/test_sale_require_po_doc.py index 54e5c1fe686..9edc39cbde2 100644 --- a/sale_require_po_doc/tests/test_sale_require_po_doc.py +++ b/sale_require_po_doc/tests/test_sale_require_po_doc.py @@ -31,6 +31,7 @@ def setUpClass(cls): ], } ) + cls.company = cls.env.company def test_require_customer_need_po(self): self.partner.customer_need_po = True @@ -55,3 +56,19 @@ def test_confirm_successfully(self): self.sale.action_confirm() self.assertEqual(self.sale.state, "sale") + + def test_customer_need_po_default(self): + self.company.customer_need_po_default = True + partner = self.env["res.partner"].create( + { + "name": "Partner With PO Required", + } + ) + self.assertTrue(partner.customer_need_po) + self.company.customer_need_po_default = False + partner = self.env["res.partner"].create( + { + "name": "Partner Without PO Required", + } + ) + self.assertFalse(partner.customer_need_po) 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 + + + + + + + + + +