Index: ProScan/UI/DnaCodeScherm.pas =================================================================== diff -u -r517 -r522 --- ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 517) +++ ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 522) @@ -50,6 +50,7 @@ procedure RondAfKaderdeurDag(); procedure RondAfVhossBatch(); procedure ZetAfrondActieStatus(actief: boolean); + function GeefJuisteToelevering(fDnaCodeAfmeldenResponse: DnaCodeAfmeldenResponse; fDnaCode: string): string; public end; @@ -360,7 +361,7 @@ ExtractStrings([':'], [], PChar(Response.Header.Status), List); case strtoint(List[0]) of 200: begin - UiContext.Toelevering := Response.DnaCodes[0].Toelevering; + UiContext.Toelevering := GeefJuisteToelevering(Response, edtDnaCode.Text); UiContext.BatchId := Response.DnaCodes[0].BatchId; lblAantalGescand.Caption := IntToStr(Response.AantalReedsGescand); lblTotaalAantal.Caption := IntToStr(Response.AantalInToelevering); @@ -388,6 +389,20 @@ (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(Self.ModalResult); end; +function TfmDnaCodeScherm.GeefJuisteToelevering(fDnaCodeAfmeldenResponse: DnaCodeAfmeldenResponse; fDnaCode: string): string; +var + fDnaCodeTeller: integer; +begin + result := fDnaCodeAfmeldenResponse.DnaCodes[0].Toelevering; + fDnaCodeTeller := 0; + while fDnaCodeTeller < length(fDnaCodeAfmeldenResponse.DnaCodes) do begin + if (fDnaCodeAfmeldenResponse.DnaCodes[fDnaCodeTeller].DnaCode = fDnaCode) then + result := fDnaCodeAfmeldenResponse.DnaCodes[fDnaCodeTeller].Toelevering; + + fDnaCodeTeller := fDnaCodeTeller + 1; + end; +end; + procedure TfmDnaCodeScherm.PalletBijwerken(Status: DnaCodeStatus; IsDirecteLevering: boolean); var @@ -446,7 +461,7 @@ fAantalGescand: integer; fAgent: TAgent; begin - if (UiContext.LaatsteDnaCode = '') or (not UiContext.LaatsteDnaCodeGoedAfgemeld) then begin + if (UiContext.LaatsteDnaCode = '') or (not UiContext.LaatsteDnaCodeGoedAfgemeld) or (UiContext.Toelevering = '') then begin fAgent := TAgent.Create(UiContext); fZoekAlleDnaCodesDieOpVhossMoetenResponse := fAgent.ZoekAlleDnaCodesDieOpVhossMoeten(UiContext.Pallet); fAgent.Free; @@ -642,6 +657,8 @@ ToonPopupScherm('Onvolledige toeleveringen','OK','',0,-1,-1,$001717CD,cdsRondAfKaderdeurDag) end else ToonPopupScherm('Toeleveringen afgerond','OK','',19,-1,-1,clGreen); + UiContext.Toelevering := ''; + UiContext.Pallet := ''; end else begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw'); end;