feat(planning): implement constraint-first leave planner

This commit is contained in:
nessar committed 2026-08-28 22:44:14 +02:00
1 parent ba8dbe92d9
commit 7ceaf1a57a
32 files changed
+4842 -880

No files matched your search

+31 -1
View File
@@ -9,10 +9,22 @@
"calculate": "Calcular",
"remainingDaysWarning": "{count} día{plural} de vacaciones no colocado{plural}:",
"remainingDaysManualPlace": "Por favor, colóquelos manualmente.",
"deleteEntry": "Eliminar entrada",
"chooseDate": "Elija una fecha",
"availableDate": "Disponible desde",
"daySuffix": "día",
"daysSuffix": "días",
"expires": "exp."
"expires": "exp.",
"remainingClassification": {
"unavoidableExpiry": "Vencimiento inevitable",
"atRisk": "En riesgo",
"deferred": "Aplazado"
},
"remainingReason": {
"unavoidableExpiry": "caducó antes del horizonte",
"atRisk": "caduca dentro del horizonte",
"deferred": "disponible después del horizonte"
}
},
"dayTypes": {
"weekend": "Fin de semana",
@@ -37,6 +49,7 @@
"ifThenTemplate": "Si un día festivo cae en <strong>{day}</strong>, colocar <strong>{placeDays}</strong> día(s) <strong>{placeType}</strong> <strong>{placement}</strong> y obtener <strong>{rewardDays}</strong> día(s) <strong>{rewardType}</strong> de bonificación.",
"timeWindowTemplate": "Colocar <strong>{placeDays}</strong> día(s) <strong>{placeType}</strong> entre el <strong>{startDate}</strong> y el <strong>{endDate}</strong>.",
"editRule": "Editar regla",
"deleteRule": "Eliminar regla",
"addRule": "Añadir una regla",
"place": "Colocar",
"ruleName": "Nombre de la regla",
@@ -45,6 +58,9 @@
"type": "Tipo",
"position": "Posición",
"getBonus": "Obtener en bonificación",
"force": "Fuerza de la regla",
"obligation": "Obligación",
"preference": "Preferencia",
"startDate": "Fecha de inicio",
"endDate": "Fecha de fin",
"cancel": "Cancelar",
@@ -71,6 +87,20 @@
"auto": "Auto (Mejor opción)"
}
},
"planning": {
"invalidInput": "Los datos de planificación no son válidos.",
"conflict": "Las obligaciones no se pueden satisfacer juntas.",
"incomplete": "El cálculo se detuvo antes de completar todas las etapas de calidad.",
"error": "El planificador encontró un error inesperado.",
"complete": "Plan calculado."
},
"benchmark": {
"title": "Prueba del planificador de vacaciones",
"instructions": "Ejecuta los cinco escenarios fijos y copia el informe resultante.",
"run": "Ejecutar prueba",
"running": "En curso…",
"copy": "Copiar informe"
},
"loading": "Calculando...",
"weekdaysShort": ["L", "M", "M", "J", "V", "S", "D"]
}