summaryrefslogtreecommitdiff
path: root/fixco_custom/models/account_move_line.py
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"))