Odoo genera asientos por diferencia de cambio de manera automática. Por ejemplo, supongamos que tenemos una factura de 1000 USD creada en el momento que el USD se encontraba con un tipo de cambio de 800 ARS
Luego pagamos dicha factura con un pago tambien de 1000 USD, pero en un momento en el que el USD se encuentra a 900 ARS
Cuando conciliamos el pago con la factura, vemos que se genera un asiento por la diferencia de cambio.
Siendo el asiento por diferencia de cambio el siguiente
/
Arriba podemos ver el asiento generado.
Deshabilitando la creación de asientos por diferencia de cambio
Hay clientes que no necesitan los asientos de diferencia de cambio, por ejemplo necesitan las notas de debito para el cliente en su lugar. Entonces, como podemos hacer para deshabilitar la creación de dichos asientos? Para ello creamos el módulo disable_exchange_account_move.
Despues de instalar el modulo, debemos configurar el parametro disable_exchange_difference
Con dicho parametro seteado en 1, se deshabilita el asiento de diferencia de cambio cuando conciliamos la factura
Como sigue esto? Posiblemente con el módulo que cree en forma automática las notas de débito cuando se concilien los pagos con sus facturas
Notas técnicas
Como se logra esto? Es simple, solo se debe reescribir el método _create_reconciliation_partials del modelo account.move.line (al fin y al cabo, estamos trabajando con conciliaciones de apuntes contables) y chequeando si el parámetro está seteado o no
# ==== Create exchange difference moves ====
if self.env['ir.config_parameter'].sudo().get_param('disable_exchange_differente',False) != '1':
for index, exchange_vals in exchange_data.items():
partials[index].exchange_move_id = self._create_exchange_difference_move(exchange_vals)