Fix: Redondear SCAA Score a múltiplos de 0.25
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m5s
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:
@@ -213,17 +213,26 @@ export function calcularPuntajeFinal(muestra: Muestra): number {
|
||||
return calcularSumatoriaAfectiva(muestra)
|
||||
}
|
||||
|
||||
/**
|
||||
* Redondea un número al múltiplo de 0.25 más cercano
|
||||
*/
|
||||
export function redondearA025(valor: number): number {
|
||||
return Math.round(valor / 0.25) * 0.25
|
||||
}
|
||||
|
||||
/**
|
||||
* Calcula el SCAA Score a partir de la muestra
|
||||
* Fórmula: S = 0.65625 × Σhᵢ + 52.75 - 2u - 4d
|
||||
* donde hᵢ = puntaje afectivo (1-9), u = tazas no uniformes, d = tazas defectuosas
|
||||
* El resultado se redondea al múltiplo de 0.25 más cercano
|
||||
*/
|
||||
export function calcularSCAA(muestra: Muestra): number {
|
||||
const sumatoriaAfectiva = calcularSumatoriaAfectiva(muestra)
|
||||
const u = muestra.tazasNoUniformes.length
|
||||
const d = muestra.tazasDefectuosas.length
|
||||
|
||||
return 0.65625 * sumatoriaAfectiva + 52.75 - 2 * u - 4 * d
|
||||
const scaaRaw = 0.65625 * sumatoriaAfectiva + 52.75 - 2 * u - 4 * d
|
||||
return redondearA025(scaaRaw)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -237,9 +246,11 @@ export function scaaASumatoriaAfectiva(scaaScore: number): number {
|
||||
/**
|
||||
* Convierte Sumatoria Afectiva a SCAA Score (sin penalizaciones)
|
||||
* Fórmula: S = 0.65625 × Σhᵢ + 52.75
|
||||
* El resultado se redondea al múltiplo de 0.25 más cercano
|
||||
*/
|
||||
export function sumatoriaAfectivaASCAA(sumatoriaAfectiva: number): number {
|
||||
return 0.65625 * sumatoriaAfectiva + 52.75
|
||||
const scaaRaw = 0.65625 * sumatoriaAfectiva + 52.75
|
||||
return redondearA025(scaaRaw)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user