Fix: Redondear SCAA Score a múltiplos de 0.25
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s

PROBLEMA:
El SCAA Score debe moverse en steps de 0.25 (no aceptar
cualquier valor decimal racional).

SOLUCIÓN:

1. Nueva función en catacion.ts:
   - redondearA025(): Redondea al múltiplo de 0.25 más cercano
   - Math.round(valor / 0.25) * 0.25

2. Aplicado en todas las funciones de SCAA:
   - calcularSCAA(): redondea el resultado final
   - sumatoriaAfectivaASCAA(): redondea la conversión

3. ModalAsignacionRapida.vue:
   - Input step cambiado de 0.01 a 0.25
   - onScaaChange(): redondea el valor ingresado
   - Placeholder actualizado: 58.75-112.00

VALORES VÁLIDOS:
Ahora el SCAA Score solo puede tener valores como:
- 85.00, 85.25, 85.50, 85.75, 86.00, etc.
- Nunca valores como 85.17 o 85.33

La visualización con .toFixed(2) sigue mostrando 2 decimales
correctamente.
This commit is contained in:
2025-10-19 02:37:35 -06:00
parent b1f008ab26
commit e36d7dac6b
2 changed files with 20 additions and 6 deletions

View File

@@ -50,8 +50,8 @@
type="number"
:min="scaaMin"
:max="scaaMax"
step="0.01"
placeholder="58.65-112.00"
step="0.25"
placeholder="58.75-112.00"
class="cata-input w-full px-3 py-2 rounded-md text-center text-lg"
@input="onScaaChange"
/>
@@ -146,7 +146,7 @@
<script setup lang="ts">
import type { Muestra } from '~/types/catacion'
import { scaaASumatoriaAfectiva, sumatoriaAfectivaASCAA } from '~/types/catacion'
import { scaaASumatoriaAfectiva, sumatoriaAfectivaASCAA, redondearA025 } from '~/types/catacion'
interface Props {
modelValue: boolean
@@ -226,6 +226,9 @@ const onScaaChange = () => {
actualizandoInput.value = true
// Redondear al múltiplo de 0.25 más cercano
scaaDeseado.value = redondearA025(scaaDeseado.value)
// Validar rango
if (scaaDeseado.value < scaaMin) scaaDeseado.value = scaaMin
if (scaaDeseado.value > scaaMax) scaaDeseado.value = scaaMax
@@ -239,7 +242,7 @@ const onScaaChange = () => {
// Asegurar rango válido
puntajeDeseado.value = Math.max(9, Math.min(90, sumatoriaRedondeada))
// Recalcular SCAA Score con el valor redondeado
// Recalcular SCAA Score con el valor redondeado (ya aplicará redondeo a 0.25)
scaaDeseado.value = sumatoriaAfectivaASCAA(puntajeDeseado.value)
actualizandoInput.value = false