oca-purchase/odoo-bringout-oca-purchase-workflow-purchase_fully_invoiced/purchase_fully_invoiced/models/purchase.py
Ernad Husremovic 7378b233e9 Add oca-purchase submodule with 96 purchase modules moved from oca-workflow-process
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-30 18:00:40 +02:00

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"