LaOsaCoop/Odoo16#14 migration pos_customer_required

This commit is contained in:
Luis 2025-05-11 18:40:33 +02:00
parent b062c383d5
commit 08fca37c6d
27 changed files with 1438 additions and 0 deletions

View file

@ -0,0 +1,4 @@
from . import pos_config
from . import pos_order
from . import pos_make_payment
from . import res_config_setting

View file

@ -0,0 +1,24 @@
# Copyright 2004 apertoso NV - Jos DE GRAEVE <Jos.DeGraeve@apertoso.be>
# Copyright 2016 La Louve - Sylvain LE GAL <https://twitter.com/legalsylvain>
# Copyright 2019 Druidoo - (https://www.druidoo.io)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import fields, models
class PosConfig(models.Model):
_inherit = "pos.config"
require_customer = fields.Selection(
[
("no", "Optional"),
("payment", "Required before paying"),
("order", "Required before starting the order"),
],
string="Require Customer",
default="no",
help="Require customer for orders in this point of sale:\n"
"* 'Optional' (customer is optional);\n"
"* 'Required before paying';\n"
"* 'Required before starting the order';",
)

View file

@ -0,0 +1,29 @@
# Copyright 2016 La Louve - Sylvain LE GAL <https://twitter.com/legalsylvain>
# Copyright 2019 Druidoo - (https://www.druidoo.io)
# Copyright 2022 NuoBiT - Eric Antones <eantones@nuobit.com>
# Copyright 2022 NuoBiT - Kilian Niubo <kniubo@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import _, models
from odoo.exceptions import UserError
class PosMakePayment(models.TransientModel):
_inherit = "pos.make.payment"
def check(self):
# Load current order
order_obj = self.env["pos.order"]
order = order_obj.browse(self.env.context.get("active_id", False))
# Check if control is required
if not order.partner_id and order.session_id.config_id.require_customer != "no":
raise UserError(
_(
"An anonymous order cannot be confirmed.\n"
"Please select a customer for this order."
)
)
return super(PosMakePayment, self).check()

View file

@ -0,0 +1,22 @@
# Copyright 2004 apertoso NV - Jos DE GRAEVE <Jos.DeGraeve@apertoso.be>
# Copyright 2016 La Louve - Sylvain LE GAL <https://twitter.com/legalsylvain>
# Copyright 2019 Druidoo - (https://www.druidoo.io)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
from odoo import _, api, exceptions, fields, models
class PosOrder(models.Model):
_inherit = "pos.order"
require_customer = fields.Selection(
related="session_id.config_id.require_customer",
)
@api.constrains("partner_id", "session_id")
def _check_partner(self):
for rec in self:
if rec.require_customer != "no" and not rec.partner_id:
raise exceptions.ValidationError(
_("Customer is required for this order and is missing.")
)

View file

@ -0,0 +1,11 @@
from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
require_customer = fields.Selection(
related="pos_config_id.require_customer",
readonly=False,
help="Require customer in Point of Sale",
)