/**
 * El valor de un ajuste tardío viaja como TEXTO decimal exacto: el servidor rechaza cualquier número JSON con decimales
 * porque un float cambiaría los últimos dígitos de un DECIMAL(18,6). Acá se valida lo que se escribe y se deja el texto
 * como está, sin pasarlo nunca por `Number`.
 *
 * Acepta «12», «12.5», «-2.25» y «12,50» (coma decimal, como se escribe en Guatemala). Rechaza más de 6 decimales,
 * miles con coma («1,250.00» es ambiguo) y notación científica.
 */
export function valorDeAjuste(entrada: string): string | null {
  const t = entrada.trim().replace(/^\+/, "");
  if (/^-?\d{1,12}(?:[.,]\d{1,6})?$/.test(t) === false) return null;
  const normal = t.replace(",", ".");
  // «-0» y «0.000» no son un ajuste.
  if (/^-?0+(?:\.0+)?$/.test(normal)) return null;

  return normal;
}
