Index: ProScan/UI/PalletScherm.pas =================================================================== diff -u -r644 -r665 --- ProScan/UI/PalletScherm.pas (.../PalletScherm.pas) (revision 644) +++ ProScan/UI/PalletScherm.pas (.../PalletScherm.pas) (revision 665) @@ -24,6 +24,7 @@ procedure SetContext; procedure SetModus(GescandeInput: string); function ValideerPalletCode(GescandeInput: string): boolean; + function GeefLpnCode(): string; public { Public declarations } end; @@ -62,6 +63,7 @@ if fPalletGevalideerd and not(UiContext.Modus = modusKAD) and not(UiContext.Modus = modusVHOSS ) then begin fAgent := TAgent.Create(UiContext); fZoekViaPalletCodeResponse := fAgent.ZoekViaPalletCode(edtPallet.Text); + UiContext.LpnCode := GeefLpnCode(); fAgent.Free; try if fZoekViaPalletCodeResponse.Header.Status = '200' then begin @@ -128,6 +130,27 @@ end; end; +function TfmPalletScherm.GeefLpnCode(): string; +var + fZoekViaLpnCodeResponse: ZoekViaLpnCodeResponse; + fGeefVolgendeLpnCodeResponse: GeefVolgendeLpnCodeResponse; + fAgent: TAgent; +begin + fAgent := TAgent.Create(UiContext); + fZoekViaLpnCodeResponse := fAgent.ZoekViaLpnCode(UiContext.LpnCode); + try + if (fZoekViaLpnCodeResponse.Header.Status <> '200') or (Length(fZoekViaLpnCodeResponse.DnaCodes) >= 2) then begin + fGeefVolgendeLpnCodeResponse := fAgent.GeefVolgendeLpnCode(); + result := fGeefVolgendeLpnCodeResponse.VolgendeLpnCode; + fGeefVolgendeLpnCodeResponse.Free; + end else + result := UiContext.LpnCode; + finally + fZoekViaLpnCodeResponse.Free; + end; + fAgent.Free; +end; + procedure TfmPalletScherm.btnGenereerTbpClick(Sender: TObject); var fGeefVolgendeTbpCodeResponse: GeefVolgendeTbpCodeResponse;