# Copyright (C) 2021: Criptomart () # @author: Criptomart () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). #import logging from odoo import models, fields, api #_logger = logging.getLogger(__name__) class SaleOrderOrderLine(models.Model): _inherit = 'sale.order.line' @api.depends('product_uom_qty', 'discount', 'price_unit', 'tax_id') def _compute_amount(self): """ Compute the amounts of the SO line. """ for line in self: price = line.price_unit taxes = line.tax_id.compute_all(price, line.order_id.currency_id, line.product_uom_qty, product=line.product_id, partner=line.order_id.partner_shipping_id) if line.discount: price_disc = taxes['total_excluded'] * (1 - (line.discount or 0.0) / 100.0) ctx = dict(self.env.context, force_price_include=False) taxes = line.tax_id.with_context(ctx).compute_all(price_disc, line.order_id.currency_id, line.product_uom_qty, product=line.product_id, partner=line.order_id.partner_shipping_id) line.update({ 'price_tax': sum(t.get('amount', 0.0) for t in taxes.get('taxes', [])), 'price_total': taxes['total_included'], 'price_subtotal': taxes['total_excluded'], })