Odoo tiene una visión bastante ingenua sobre como se manejan los impuestos en el mundo. Los impuestos en paises como Argentina son arbitrarios y complejos (dependen de la voracidad fiscal del gobernante del mundo) y el enfoque de "agregamos el mismo impuesto en todas las líneas" no sirve. Más si tenemos que agregar impuestos a las facturas de compra, donde nos encontramos con impuestos ridículos con montos totalmente impredecibles.
Pero bueno, como podemos hacerlo? Esta es la forma que aprendí a hacer en Odoo 15 el día de ayer.
El primer punto es modificar los impuestos y hacer que sean del tipo "Compras" y tengan un valor de 1, así cada vez que los agregamos a las líneas de las facturas los impuestos automáticamente se agregan a los apuntes contables:

Y luego tenemos que agregar los impuestos deseados a las líneas de la factura. Por ejemplo en Argentina, podemos hacerlo de la siguiente manera:
taxes = self.env['account.tax']
taxes += self.env.ref('l10n_ar.1_ri_tax_vat_21_compras')
# buscamos los impuestos que necesitamos
domain = [('type_tax_use','=','purchase'),('amount','=',1),('amount_type','=','fixed')]
tax_ids = self.env['account.tax'].search(domain)
for tax_id in tax_ids:
taxes += tax_id
# actualizamos las líneas con los impuestos que deseamos agregar
for line in move.invoice_line_ids:
line.tax_ids = [(6,0,taxes.ids)]
Aca como podemos ver tomamos los impuestos de IVA Compras de 21%, y les agregamos los impuestos que deseamos agregar a las facturas. Eso nos permite agregar los impuestos al cuadro de totales de la factura

Ahora, solo nos resta actualizar los apuntes contables para que los apuntes que pertenezcan a los impuestos agregados. En dicha actualización solo tenemos que actualizar el monto del débito o crédito (según corresponda) con el monto del impuesto.
for move_line in move.line_ids:
# línea de apunte con el impuesto
if move_line.tax_line_id and move_line.tax_line_id.amount_type == 'fixed':
vals = {
'debit': value_tax,
'credit': 0,
}
move_line.with_context(check_validity=False).write(vals)
Como pueden ver, se actualiza el monto del apunte contable con el monto del impuesto que tenemos calculado (el cálculo de los mismos depende de la excentricidad de los gobernantes argentinos). Algo a tener en cuenta aquí es el campo tax_line_id, permite en un apunte contable saber el impuesto al que pertenece dicha línea del asiento contable.
Al menos en Odoo 15 este mecanismo funciona, habría que probarlo en otras versiones para ver que ocurre. El como se modifican las líneas de las facturas y como impactan en ella los cambios a las líneas y apuntes contables fue algo siempre delicado (y poco documentado por lo cierto). Esta no es la única técnica para hacerlo, hay otras tambien. Pero resulta ser la que utilice y funcionó el día de ayer.
Para que sirven estas técnicas? Tres usos que se me vienen a la mente: agregado de percepciones en Argentina (manejar percepciones con posiciones fiscales es una idiotez), agregado manual de impuestos (como por ejemplo impuesto de combustibles o al dioxido de carbono en Argentina), o crear facturas desde un PDF y agregarle los impuestos que necesitamos.