blob: 2aaf6d907f7c2b7e29ac0fd1e8c93f7b14384b2a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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.line_ids.matched_debit_ids',
'move_id.line_ids.matched_credit_ids',
)
def _compute_invoice_marketplace(self):
for line in self:
line.invoice_marketplace = False
move = line.move_id
if not move:
continue
# invoice
if move.move_type in ('out_invoice', 'in_invoice'):
line.invoice_marketplace = move.invoice_marketplace
# kas?/entries
else:
line.invoice_marketplace = move.reklas_used_by.invoice_marketplace if move.reklas_used_by else False
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"))
|