fix: MT-DP-06 Reihenfolge Duplikat-Check vor Status-Check
parent
b04757f9db
commit
51619ceb8f
|
|
@ -113,18 +113,20 @@ public class DokumentServiceImpl implements DokumentService {
|
||||||
public Auftragsbestaetigung erstelleAuftragsbestaetigung(String angebotsNummer) {
|
public Auftragsbestaetigung erstelleAuftragsbestaetigung(String angebotsNummer) {
|
||||||
Angebot angebot = ladeAngebot(angebotsNummer);
|
Angebot angebot = ladeAngebot(angebotsNummer);
|
||||||
|
|
||||||
// Status-Prüfung (PH-DP-04)
|
// Duplikat-Check zuerst (PH-DP-05 / MT-DP-06): wenn bereits eine AB existiert,
|
||||||
|
// ist das Angebot zwangsläufig UEBERFUEHRT und beide Prüfungen würden anschlagen.
|
||||||
|
// Die Spec verlangt in diesem Szenario explizit DuplicateDocumentException.
|
||||||
|
if (repository.existsFolgedokument(angebotsNummer)) {
|
||||||
|
throw new DuplicateDocumentException(angebotsNummer);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allgemeiner Status-Check (PH-DP-04): greift bei anderen Nicht-OFFEN-Zuständen.
|
||||||
if (angebot.getStatus() != DokumentStatus.OFFEN) {
|
if (angebot.getStatus() != DokumentStatus.OFFEN) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalStateException(
|
||||||
"Angebot " + angebotsNummer + " ist nicht mehr OFFEN (Status: " +
|
"Angebot " + angebotsNummer + " ist nicht mehr OFFEN (Status: " +
|
||||||
angebot.getStatus() + "). Auftragsbestätigung kann nicht erzeugt werden.");
|
angebot.getStatus() + "). Auftragsbestätigung kann nicht erzeugt werden.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Doppelte AB verhindern (PH-DP-05)
|
|
||||||
if (repository.existsFolgedokument(angebotsNummer)) {
|
|
||||||
throw new DuplicateDocumentException(angebotsNummer);
|
|
||||||
}
|
|
||||||
|
|
||||||
// AB erzeugen – Positionen 1:1 übernehmen
|
// AB erzeugen – Positionen 1:1 übernehmen
|
||||||
Auftragsbestaetigung ab = new Auftragsbestaetigung();
|
Auftragsbestaetigung ab = new Auftragsbestaetigung();
|
||||||
ab.setDokumentNummer(abGenerator.naechsteNummer());
|
ab.setDokumentNummer(abGenerator.naechsteNummer());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue