|
|
"""
Note: as total_amount can be set directly by the user when the currency_rate is overriden,
the tax must be computed after the total_amount.
"""
AccountTax = self.env['account.tax']
for expense in self:
if expense.is_multiple_currency:
base_line = expense._prepare_base_line_for_taxes_computation(
price_unit=expense.total_amount,
quantity=1.0,
currency=expense.company_currency_id,
)
AccountTax._add_tax_details_in_base_line(base_line, expense.company_id)
AccountTax._round_base_lines_tax_details([base_line], expense.company_id)
tax_details = base_line['tax_details']
expense.tax_amount = tax_details['total_included_currency'] - tax_details['total_excluded_currency']
else: # Mono-currency case computation shortcut
expense.tax_amount = expense.tax_amount_currency
|
|