Skip to content

Integración en una aplicación

La aplicación consumidora debe separar la captura de datos, el cálculo y la presentación. El motor no conoce monedas, sesiones, formularios ni persistencia.

Flujo recomendado

text
1. Seleccionar categoría y actuación
2. Consultar tipoCalculo y baseCalculo
3. Solicitar únicamente los campos necesarios
4. Validar y normalizar números
5. Ejecutar la función correspondiente
6. Comprobar isValid
7. Guardar entrada, versión y resultado
8. Mostrar montos, referencia, notas y alertas
ts
import {
  calculateHonorarios,
  getActuacionesByCategoria,
} from '@dikaia-io/honorarios';

const actuaciones = getActuacionesByCategoria('familia');
const seleccionada = actuaciones.find((item) => item.id === actuacionId);

if (!seleccionada) {
  throw new Error('Actuación no encontrada');
}

const requiereMonto = seleccionada.tipoCalculo !== 'jornales-fijos';

La etiqueta del campo económico debe derivarse de baseCalculo. Por ejemplo, alimentos-anual recibe la prestación mensual y el motor la anualiza, mientras que valor-inmueble espera directamente el valor total del inmueble.

Adaptador seguro

Centralizá la validación de la entrada antes de llamar al paquete:

ts
import {
  calculateHonorarios,
  type HonorarioInputs,
} from '@dikaia-io/honorarios';

export function calcularJudicial(inputs: HonorarioInputs) {
  if (!Number.isFinite(inputs.caseAmount) || inputs.caseAmount < 0) {
    return { ok: false as const, errors: ['Monto inválido'] };
  }

  if (!Number.isFinite(inputs.jornalMinimo) || (inputs.jornalMinimo ?? 0) <= 0) {
    return { ok: false as const, errors: ['Jornal mínimo requerido'] };
  }

  const result = calculateHonorarios(inputs);

  return result.isValid
    ? { ok: true as const, value: result }
    : { ok: false as const, errors: result.errors ?? [] };
}

Esta capa permite aplicar reglas más estrictas que las requeridas por compatibilidad dentro del paquete.

Persistencia y auditoría

Para reproducir un cálculo, guardá como mínimo:

  • versión exacta de @dikaia-io/honorarios;
  • entrada completa enviada al motor;
  • actuacionId o serviceType;
  • jornal mínimo utilizado;
  • resultado completo, incluidas referencias, notas y alertas;
  • fecha de cálculo;
  • versión o fecha del catálogo si la aplicación mantiene un snapshot.

No guardes solamente el monto final: una actualización legal o del catálogo podría producir otro resultado para la misma pantalla.

Presentación

  • Formateá guaraníes en la interfaz, sin transformar el número persistido.
  • Mostrá rangos como rangos; no elijas automáticamente un punto intermedio.
  • No presentes amountMax ausente como cero.
  • Identificá qué valor es un piso legal y cuál es un monto fijo.
  • Incluí reference, notes y alerts junto al cálculo.

Actualizaciones

Fijá una versión exacta en aplicaciones críticas y actualizala mediante una revisión controlada:

  1. leer el changelog;
  2. ejecutar tests del consumidor;
  3. comparar casos de regresión relevantes;
  4. regenerar snapshots o catálogos derivados;
  5. desplegar con registro de la nueva versión.

Documentación del Ecosistema Dikaia — Tecnología justa para el derecho