Files
enterprise-addons/pos_settle_due/models/account_move.py
T

29 lines
1.1 KiB
Python

from odoo import models, api, fields
class AccountMove(models.Model):
_inherit = 'account.move'
pos_order_line_ids = fields.One2many('pos.order.line', 'settled_invoice_id', string="Order lines settling the invoice")
pos_amount_unsettled = fields.Monetary(
string="Amount To Pay In POS",
compute='_compute_pos_amount_unsettled',
store=True,
)
@api.model
def _load_pos_data_fields(self, config):
return ['name', 'amount_residual', 'pos_amount_unsettled']
@api.model
def _load_pos_data_domain(self, data, config):
return False
@api.depends('pos_order_line_ids', 'amount_residual_signed', 'pos_order_line_ids.order_id.state', 'pos_order_line_ids.order_id.session_id.state')
def _compute_pos_amount_unsettled(self):
for invoice in self:
total_pos_paid = sum(invoice.pos_order_line_ids.filtered(
lambda line: line.order_id.session_id.state != 'closed' and line.order_id.state != 'cancel'
).mapped('price_unit'))
invoice.pos_amount_unsettled = invoice.amount_residual_signed - total_pos_paid