bemade-addons/bemade_purchase_warn_supplier_overdue/models/res_company.py
2025-05-29 21:35:47 -04:00

59 lines
1.8 KiB
Python

from odoo import models, fields, api
class Company(models.Model):
_inherit = "res.company"
warn_supplier_overdue = fields.Boolean(
string="Warn when supplier invoice overdue",
default=True,
help="Warn user when purchasing from a vendor with overdue bills.",
)
warn_supplier_overdue_user_type = fields.Selection(
string="Warned User",
selection=[
("current", "Current User"),
("specific", "Specific User"),
],
default="current",
help="Which user to warn when supplier is overdue",
)
warn_supplier_overdue_user_id = fields.Many2one(
string="User",
comodel_name="res.users",
help="Specific User to warn when supplier is overdue.",
)
warn_supplier_scope = fields.Selection(
string="Warning Vendor Scope",
selection=[
("all", "All Vendors"),
("specific", "Specific Vendors"),
],
default="all",
help=(
"Choose whether to apply overdue warnings to all vendors or only to "
"specific vendors."
),
)
warn_supplier_specific_ids = fields.Many2many(
comodel_name="res.partner",
domain=[("supplier_rank", ">", 0)],
string="Specific Vendors",
help="Select specific vendors to apply overdue invoice warnings.",
)
def warn_overdue_for_supplier(self, supplier):
"""Returns true if the current company settings indicate that the user should
be warned when confirming an order for the given supplier (res.partner)."""
self.ensure_one()
return self.warn_supplier_overdue and (
self.warn_supplier_scope == "all"
or (
self.warn_supplier_scope == "specific"
and supplier in self.warn_supplier_specific_ids
)
)