Buenas,
Tenemos un cliente con más de 1500 activos y cuando realizamos en Odoo SH en la versión 16 Enterprise calcular amortizaciones desde el asistente del módulo de OCA, no se llega a ejecutar por la gran cantidad de líneas de amortización que tiene que calcular y ejecutar la creación de los asientos
Por la prisa del cliente en tener una solución hemos realizado una acción de servidor que os comparto por si alguien lo necesita, hemos harckodeado la fecha hasta la que hay que amortizar, (se puede mejorar)
# Configuración del tamaño del lote
batch_size = 50 # Número de activos por bloque (habría que ajustarlo pero de momento así hace 100 por minuto)
# Variables de progreso
processed_count = 0
error_assets = []
# Fecha límite de amortización
target_date = datetime.date(2025, 1, 1)
# Procesar los activos seleccionados
for batch_start in range(0, len(records), batch_size):
batch = records[batch_start:batch_start + batch_size]
for asset in batch:
try:
# Filtrar las líneas de amortización asociadas al activo
depreciation_lines = asset.depreciation_line_ids.filtered(
lambda l: l.line_date and l.line_date < target_date and not l.move_id
)
# Ejecutar `create_move` para cada línea de amortización
for line in depreciation_lines:
line.create_move()
processed_count += 1
except Exception as e:
# Capturar errores y guardar el ID del activo con error
error_assets.append((asset.id}: {e}", level="error")
# Crear mensaje final
result_message = f"Amortización completada: {processed_count} activos procesados."
if error_assets:
result_message += f"\n{len(error_assets)} activos con errores: {error_assets}"
# Mostrar notificación al usuario
action = {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
'title': 'Amortización por lotes completada',
'message': result_message,
'type': 'success' if not error_assets else 'warning',
}
}
¿Este módulo ayudaría, o no tiene nada que ver?
account_asset_batch_compute
https://github.com/OCA/account-financial-tools/tree/16.0/account_asset_batch_compute
Juan Ignacio Úbeda Goenaga
CEO | Consultoría y desarrollo Odoo
Soluciones Tecnológicas Freedoo, S.L.U.
946 66 96 07
juani@freedoo.es
Aviso legal: Este mensaje electrónico está dirigido únicamente a la(s) dirección(es) indicadas anteriormente; el carácter confidencial, personal e intransferible del mismo está protegido legalmente. Cualquier revelación, uso o reenvío no autorizado, completo o en parte, está prohibido. Si ha recibido este mensaje por equivocación, notifíquelo inmediatamente a la persona que lo ha enviado y borre el mensaje original junto con sus ficheros anexos sin leerlo ni grabarlo, total o parcialmente