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

29 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models, api
class PosOrderLine(models.Model):
_inherit = 'pos.order.line'
settled_order_id = fields.Many2one('pos.order', string='Settled Order', index='btree_not_null')
settled_invoice_id = fields.Many2one('account.move', string='Settled Invoice', index='btree_not_null')
@api.model
def _load_pos_data_fields(self, config):
params = super()._load_pos_data_fields(config)
params += ['settled_order_id', 'settled_invoice_id']
return params
def _prepare_tax_base_line_values(self):
# We don't want to create tax lines for settled and deposit orderlines (except on invoice to appear on it)
if self.env.context.get('invoicing'):
return super()._prepare_tax_base_line_values()
lines = self.filtered(lambda line: not line._is_settle_or_deposit())
return super(PosOrderLine, lines)._prepare_tax_base_line_values()
def _is_settle_or_deposit(self):
self.ensure_one()
return self.settled_order_id or self.settled_invoice_id or self.product_id == self.order_id.config_id.deposit_product_id