from odoo import models, api, fields, _ from odoo.exceptions import AccessError, UserError, ValidationError class AccountMoveLine(models.Model): _inherit = "account.move.line" qty_outstanding = fields.Float(string='Qty Outstanding', compute='_compute_qty_outstanding') invoice_marketplace = fields.Text("Invoice Mearketplace", compute='_compute_invoice_marketplace') @api.depends('move_id', 'move_id.invoice_marketplace') def _compute_invoice_marketplace(self): for line in self: invoice_origin = line.move_id.invoice_marketplace line.invoice_marketplace = invoice_origin def _compute_qty_outstanding(self): for line in self: qty_received = line.purchase_line_id.qty_received qty_billed = line.purchase_line_id.qty_invoiced line.qty_outstanding = qty_received - qty_billed @api.onchange('quantity') def _onchange_quantity(self): for line in self: if line.move_id.move_type == 'in_invoice' and line.id.origin: if line and line.quantity > line.qty_outstanding and line.qty_outstanding > 0: raise UserError(_("Quantity Tidak Boleh Melebihi Qty Outstanding"))