Repository: urlaubsverwaltung/urlaubsverwaltung (java)

Issue:
Fehlende Fehlermeldung bei Antrag auf Überstundenabbau
**Describe the bug**
Wenn ein Antrag auf Überstundenabbau gestellt wird und der Antrag aufgrund zu niedriger Stundenzahl an der globalen Einstellung "Minimale Anzahl an abgebauten Stunden pro Antrag" nicht angenommen wird, gibt es keine Fehlermeldung, der Antrag wird einfach nochmal angezeigt ohne Formvalidation Error oder ähnliches

**To Reproduce**
Steps to reproduce the behavior:
1. Go to Einstellungen / Arbeitszeiten
2. Aktiviere Überstundenverwaltung und die "Minimale Anzahl an abgebauten Stunden pro Antrag" z.B. auf 8 Stunden
3. Stelle einen Antrag auf Überstundenabbau mit z.B. 7 Stunden
4. Sehe keinen Validierungsfehler

**Expected behavior**
Validierungsfehler mit der Info, dass man mindestens 8 Stunden abbauen muss.


Pull request description:
Show error message on minimum overtime reduction
closes #5292

<!--

Thanks for contributing to the Urlaubsverwaltung.
Please review the following notes before submitting you pull request.

Please look for other issues or pull requests which already work on this topic. Is somebody already on it? Do you need to synchronize?

# Security Vulnerabilities

🛑 STOP! 🛑 If your contribution fixes a security vulnerability, please do not submit it.
Instead, please open a report of a security vulnerability via
[Report a security vulnerability](https://github.com/urlaubsverwaltung/urlaubsverwaltung/security/advisories/new)


# Describing Your Changes

If, having reviewed the notes above, you're ready to submit your pull request, please
provide a brief description of the proposed changes.

If they:
 🐞 fix a bug, please describe the broken behaviour and how the changes fix it.
    Please label with 'type: bug' and 'status: new'
    
 🎁 make an enhancement, please describe the new functionality and why you believe it's useful.
    Please label with 'type: enhancement' and 'status: new'
 
If your pull request relates to any existing issues,
please reference them by using the issue number prefixed with #.

-->


Patch:
diff --git a/src/main/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidator.java b/src/main/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidator.java
index c01bb5fb7..aa25f9548 100644
--- a/src/main/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidator.java
+++ b/src/main/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidator.java
@@ -332,7 +332,7 @@ class ApplicationForLeaveFormValidator implements Validator {
         final Duration minimumDuration = Duration.ofHours(minimumOvertimeReduction);
         final Duration overtimeReduction = applicationForLeave.getOvertimeReduction();
         if (overtimeReduction != null && overtimeReduction.compareTo(minimumDuration) < 0) {
-            errors.rejectValue("overtimeReduction", "overtime.error.minimumReductionRequired", new Object[]{minimumOvertimeReduction}, null);
+            errors.rejectValue(ATTRIBUTE_HOURS, "overtime.error.minimumReductionRequired", new Object[]{minimumOvertimeReduction}, null);
         }
     }
 


Test patch:
diff --git a/src/test/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidatorTest.java b/src/test/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidatorTest.java
index 669bb7454..d6eb23a6a 100644
--- a/src/test/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidatorTest.java
+++ b/src/test/java/org/synyx/urlaubsverwaltung/application/application/ApplicationForLeaveFormValidatorTest.java
@@ -882,7 +882,7 @@ class ApplicationForLeaveFormValidatorTest {
 
         sut.validate(appForm, errors);
 
-        verify(errors).rejectValue("overtimeReduction", "overtime.error.minimumReductionRequired", new Object[]{4}, null);
+        verify(errors).rejectValue("hours", "overtime.error.minimumReductionRequired", new Object[]{4}, null);
         verify(errors).hasErrors();
         verifyNoMoreInteractions(errors);
     }