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; Index: ProScan/UI/DnaCodeScherm.pas =================================================================== diff -u -r664 -r665 --- ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 664) +++ ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 665) @@ -355,7 +355,7 @@ end; fAgent := TAgent.Create(UiContext); - Response := fAgent.DnaCodeAfmelden(edtDnaCode.Text,UiContext.Toelevering,UiContext.Pallet,1,Locatie); + Response := fAgent.DnaCodeAfmelden(edtDnaCode.Text,UiContext.Toelevering,UiContext.Pallet,UiContext.LpnCode,1,Locatie); fAgent.Free; try List := TStringList.Create; Index: ProScan/WS/Agent.pas =================================================================== diff -u -r663 -r665 --- ProScan/WS/Agent.pas (.../Agent.pas) (revision 663) +++ ProScan/WS/Agent.pas (.../Agent.pas) (revision 665) @@ -23,7 +23,7 @@ function ValideerPalletCode(PalletCode: string): ValideerPalletCodeResponse; function ZoekViaPalletCode(PalletCode: string): ZoekViaPalletCodeResponse; function ZoekViaLpnCode(LpnCode: string): ZoekViaLpnCodeResponse; - function DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; Aantal: integer; Locatie: string): DnaCodeAfmeldenResponse; + function DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; LpnCode: string; Aantal: integer; Locatie: string): DnaCodeAfmeldenResponse; function ZoekViaToelevering(Toelevering: string): ZoekViaToeleveringResponse; function HernoemPallet(OudeCode, NieuweCode, EnkelDezeDnaCode: string; OokEWMSverwerken: boolean): HernoemPalletResponse; function IsDirecteLevering(Toelevering: string): DirecteLeveringResponse; @@ -62,7 +62,7 @@ end; function TAgent.DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; - Aantal: integer; Locatie: string): DnaCodeAfmeldenResponse; + LpnCode: string; Aantal: integer; Locatie: string): DnaCodeAfmeldenResponse; var Request: DnaCodeAfmeldenRequest; Header: DnaCodeService.RequestHeader; @@ -76,12 +76,12 @@ Request.DnaCode := DnaCode; Request.Toelevering := Toelevering; Request.PalletCode := PalletCode; + Request.LpnCode := LpnCode; Request.Aantal := Aantal; Request.Locatie := Locatie; Request.BatchId := fUiContext.BatchId; Result := fDnaCodeServiceSoap.DnaCodeAfmelden(Request); - finally Request.Free; end; Index: ProScan/UI/InfoLogScherm.pas =================================================================== diff -u -r629 -r665 --- ProScan/UI/InfoLogScherm.pas (.../InfoLogScherm.pas) (revision 629) +++ ProScan/UI/InfoLogScherm.pas (.../InfoLogScherm.pas) (revision 665) @@ -79,7 +79,7 @@ if fWaarschuwingModalResult = mrYes then begin fAgent := TAgent.Create(UiContext); - Response := fAgent.DnaCodeAfmelden(sgToeleveringData.Rows[sgToeleveringData.Row][2], UiContext.Toelevering, sgToeleveringData.Rows[sgToeleveringData.Row][1], -1,''); + Response := fAgent.DnaCodeAfmelden(sgToeleveringData.Rows[sgToeleveringData.Row][2], UiContext.Toelevering, sgToeleveringData.Rows[sgToeleveringData.Row][1],'', -1,''); fAgent.Free; try if Response.Header.Status <> '200' then begin Index: ProScan/UI/DnaCodeReedsGescandScherm.pas =================================================================== diff -u -r516 -r665 --- ProScan/UI/DnaCodeReedsGescandScherm.pas (.../DnaCodeReedsGescandScherm.pas) (revision 516) +++ ProScan/UI/DnaCodeReedsGescandScherm.pas (.../DnaCodeReedsGescandScherm.pas) (revision 665) @@ -135,7 +135,7 @@ fAgent: TAgent; begin fAgent := TAgent.Create(UiContext); - Response := fAgent.DnaCodeAfmelden(UiContext.LaatsteDnaCode,UiContext.Toelevering,UiContext.Pallet,-1,''); + Response := fAgent.DnaCodeAfmelden(UiContext.LaatsteDnaCode,UiContext.Toelevering,UiContext.Pallet,UiContext.LpnCode,-1,''); fAgent.Free; try if Response.Header.Status <> '200' then begin