Index: WSimpl/Halux/AAP/DnaCodeService.cls.xml =================================================================== diff -u -r55685 -r55687 --- WSimpl/Halux/AAP/DnaCodeService.cls.xml (.../DnaCodeService.cls.xml) (revision 55685) +++ WSimpl/Halux/AAP/DnaCodeService.cls.xml (.../DnaCodeService.cls.xml) (revision 55687) @@ -143,24 +143,34 @@ } Else { #dim DnaCode As DOM.Halux.AAP.DnaCode = DnaCodeIterator.Next() - Set DnaCode.InitialenScanner = DnaCodeAfmeldenRequest.Header.Initialen - Set DnaCode.PalletCode = DnaCodeAfmeldenRequest.PalletCode - - Set ToeleveringId = DnaCode.Toelevering - - Do ..DnaCodeRepository.Bewaar(DnaCode) - - Set DnaCodeIterator = ..DnaCodeRepository.ZoekViaToeleveringId(ToeleveringId) - - If DnaCodeIterator.HasNext() { - Set Response.Header.Status = "200" - While DnaCodeIterator.HasNext() { - Do ##class(Tools.Wlip).%New(127).String("radaa") - Do Response.DnaCodes.Insert(..DnaCodeNaarDto(DnaCodeIterator.Next())) - } + If ($$$HasLength(DnaCodeAfmeldenRequest.Toelevering) && $$$Not(DnaCode.Toelevering = DnaCodeAfmeldenRequest.Toelevering)) { + Set Response.Header.Status = ##class(TECH.enu.ExceptionCode).InvalidInput() + Set Response.Header.Omschrijving = "Toeleveringen verschillend: '"_DnaCodeAfmeldenRequest.Toelevering_"' en '"_DnaCode.Toelevering_"'" } Else { - Set Response.Header.Status = ##class(TECH.enu.ExceptionCode).DataNotFound() - Set Response.Header.Omschrijving = "Geen data gevonden voor DNACode '"_ToeleveringId_"'" + If $$$HasLength(DnaCode.PalletCode) { + Set Response.Header.Status = ##class(TECH.enu.ExceptionCode).InvalidInput() + Set Response.Header.Omschrijving = "PalletCode reeds ingevuld voor '"_DnaCodeAfmeldenRequest.DnaCode_"' ("_DnaCode.PalletCode_")" + } Else { + + Set DnaCode.InitialenScanner = DnaCodeAfmeldenRequest.Header.Initialen + Set DnaCode.PalletCode = DnaCodeAfmeldenRequest.PalletCode + + Set ToeleveringId = DnaCode.Toelevering + + Do ..DnaCodeRepository.Bewaar(DnaCode) + + Set DnaCodeIterator = ..DnaCodeRepository.ZoekViaToeleveringId(ToeleveringId) + + If DnaCodeIterator.HasNext() { + Set Response.Header.Status = "200" + While DnaCodeIterator.HasNext() { + Do Response.DnaCodes.Insert(..DnaCodeNaarDto(DnaCodeIterator.Next())) + } + } Else { + Set Response.Header.Status = ##class(TECH.enu.ExceptionCode).DataNotFound() + Set Response.Header.Omschrijving = "Geen data gevonden voor DNACode '"_ToeleveringId_"'" + } + } } } } Catch { Index: vhUnitTest/WSimpl/Halux/AAP/DnaCodeService/DnaCodeAfmelden/Test.cls.xml =================================================================== diff -u -r55686 -r55687 --- vhUnitTest/WSimpl/Halux/AAP/DnaCodeService/DnaCodeAfmelden/Test.cls.xml (.../Test.cls.xml) (revision 55686) +++ vhUnitTest/WSimpl/Halux/AAP/DnaCodeService/DnaCodeAfmelden/Test.cls.xml (.../Test.cls.xml) (revision 55687) @@ -43,6 +43,7 @@ Set DnaCodeRepositoryMock = ##class(vhTest.Mock.DOM.Halux.AAP.DnaCodeRepository).%New() Do DnaCodeRepositoryMock.IndienMethodCall("ZoekViaDnaCode",Request.DnaCode).DanReturn(..EmptyIterator()) + Do DnaCodeRepositoryMock.VerwachtMethodCall("Bewaar",$$$ElkeWaarde).ExactAantalKeer(0) Set DnaCodeService = ##class(WSimpl.Halux.AAP.DnaCodeService).%New(HeaderValidatorMock, DnaCodeRepositoryMock) @@ -51,13 +52,62 @@ Do $$$AssertEquals(Antwoord.Header.Status,##class(TECH.enu.ExceptionCode).DataNotFound()) Do $$$AssertEquals(Antwoord.DnaCodes.Count(),0) Do HeaderValidatorMock.Verifieer() + Do DnaCodeRepositoryMock.Verifieer() ]]> + - + +