From c109a59d3d087c13daa188499282cbd0103a45a1 Mon Sep 17 00:00:00 2001 From: Daniel Arroyo Date: Fri, 21 Aug 2026 20:07:41 -0400 Subject: [PATCH] feat(historial): recalcular run con precios actuales MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit H4: en el modal de detalle de un run del historial, agregar un botón que recalcula ganancia, costo y venta usando los precios actuales de insumos en lugar del snapshot guardado. Cambios: - Nuevo campo modalMode ('snapshot' | 'current') en historialSection. - displayItems()/recomputeItem(): si modalMode='current', recalcula cada item multiplicando las cantidades guardadas (cristalesUsados, oreNecesario, crafteosPosibles, shotsObtenidos) por los precios actuales de insumos. Las formulas del snapshot no se rederivan — solo se cambian los precios. - displayTotals(): agrega totales en el modo activo. - recomputeDelta(): snapshot_profit - current_profit para indicador. - Refactor de costCristalesTotal/Ore/Dwarven/Pct + totalCrafteos + marginPct/costPerShot/profitPerShot para usar displayItems/displayTotals en lugar de modalDetails directo. - Nuevos marginPctCurrent/costPerShotCurrent/profitPerShotCurrent. - Modal totals cards + tabla de items leen de displayTotals() / displayItems(). - Toggle button 'Recalcular con precios actuales' ↔ 'Volver al snapshot' en el header del modal. - Badge amarillo 'Precios actuales' cuando modalMode='current'. - Indicador de delta en la card de Ganancia (↑ verde si ganás más, ↓ rojo si perdés más), formateado como '↑ X.XXX vs snapshot'. Verificado en navegador: cambiar venta en Insumos → en el modal del historial, el toggle actualiza todos los valores (totales, desglose, distribución, items) usando precios nuevos. La matemática es consistente con la calculadora principal. --- .../templates/PageResource/historial.html | 158 ++++++++++++++---- 1 file changed, 130 insertions(+), 28 deletions(-) diff --git a/src/main/resources/templates/PageResource/historial.html b/src/main/resources/templates/PageResource/historial.html index ec59379..a4c3847 100644 --- a/src/main/resources/templates/PageResource/historial.html +++ b/src/main/resources/templates/PageResource/historial.html @@ -261,12 +261,29 @@