Skip to content

Arquitectura del motor

El paquete separa el dominio, el catálogo y las funciones de cálculo. No tiene I/O ni estado persistente: para una misma entrada produce el mismo resultado.

text
Entrada del consumidor

        ├── actuación judicial o penal ──> calculateHonorarios
        ├── contexto sucesorio ──────────> calculateHonorariosSucesion
        └── servicio extrajudicial ──────> calculateHonorariosExtrajudiciales

Catálogo y tipos ────────────────────────────┘

        └── resultado, referencias, notas y alertas

Módulos principales

ArchivoResponsabilidad
src/types.tsTipos de dominio, entradas y resultados
src/calculations.tsLos tres motores públicos de cálculo
src/mappers.tsMapeo de IDs extrajudiciales a serviceType
src/data/*.tsCatálogos judicial, penal y extrajudicial
src/data/index.tsCatálogo consolidado y helpers
src/index.tsSuperficie pública del paquete

Despacho judicial

Cuando se recibe actuacionId, el motor busca la actuación en los catálogos judicial y penal. Después aplica tipoCalculo:

TipoComportamiento
jornales-fijosMultiplica los jornales por jornalMinimo
porcentajeAplica el rango porcentual a la base correspondiente
mixtoCalcula el porcentaje y aplica el piso de jornales cuando existe

Si no hay actuacionId, puede utilizarse caseType para mantener la compatibilidad con consumidores anteriores. Las nuevas integraciones deberían preferir el catálogo porque aporta una regla y referencia legal específica.

Bases directas y derivadas

La mayoría de las actuaciones interpreta caseAmount como la base monetaria indicada por baseCalculo. Hay dos grupos con transformación adicional:

  • Bases anualizadas: multiplican una entrada mensual por 12 o 24.
  • Bases derivadas de honorarios: calculan primero el rango general del Art. 32 y luego aplican el porcentaje propio de la actuación.

Consultá el detalle generado en Bases de cálculo.

Roles e instancias

Después de calcular el primer tramo judicial, el motor aplica el rol profesional:

RolMultiplicador
patrocinante o ausente1.0
procurador0.5
doble-caracter1.5

La segunda y tercera instancia se calculan cada una entre el 25% y el 35% del tramo de primera instancia. La tercera exige que la segunda esté incluida.

Jornal mínimo

jornalMinimo es opcional en el tipo para conservar compatibilidad, pero es necesario para:

  • convertir jornales fijos a guaraníes;
  • aplicar pisos mínimos de jornales;
  • expresar montos porcentuales también en jornales.

Una aplicación de producción debe suministrar explícitamente el valor vigente y registrar cuál fue utilizado en cada cálculo.

Redondeo

El motor redondea los importes calculados a dos decimales. Las horas de una consulta verbal se redondean hacia arriba con Math.ceil. El formateo visual en guaraníes corresponde a la aplicación consumidora y no debe modificar el valor numérico original.

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