mirror of
https://github.com/bringout/oca-purchase.git
synced 2026-04-23 22:22:07 +02:00
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
# Copyright 2022 ForgeFlow S.L.
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html)
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class PurchaseOrder(models.Model):
|
|
_inherit = "purchase.order"
|
|
|
|
# Same as invoice_status, but excluding invoices in draft
|
|
invoice_status_validated = fields.Selection(
|
|
[
|
|
("no", "Nothing to Bill"),
|
|
("to invoice", "Waiting Bills"),
|
|
("invoiced", "Fully Billed"),
|
|
],
|
|
string="Posted Billing Status",
|
|
compute="_compute_invoice_status_validated",
|
|
store=True,
|
|
readonly=True,
|
|
copy=False,
|
|
default="no",
|
|
)
|
|
|
|
@api.depends("invoice_status", "invoice_ids.state")
|
|
def _compute_invoice_status_validated(self):
|
|
# Same as invoice status, execpt it is not invoiced unless there is no invoice
|
|
# in draft
|
|
for order in self:
|
|
if order.invoice_status in ("no", "to invoice"):
|
|
order.invoice_status_validated = order.invoice_status
|
|
else:
|
|
if not any(inv.state == "draft" for inv in order.invoice_ids):
|
|
order.invoice_status_validated = order.invoice_status
|
|
else:
|
|
order.invoice_status_validated = "to invoice"
|