Index: ProScan/UI/DnaCodeScherm.pas =================================================================== diff -u -r665 -r669 --- ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 665) +++ ProScan/UI/DnaCodeScherm.pas (.../DnaCodeScherm.pas) (revision 669) @@ -53,6 +53,8 @@ procedure ZetAfrondActieStatus(actief: boolean); function GeefJuisteToelevering(fDnaCodeAfmeldenResponse: DnaCodeAfmeldenResponse; fDnaCode: string): string; function GeefAantalOpPallet(Palletcode: String): integer; + procedure GenereerTbpCode(DnaCode: DnaCode); + procedure ZetPalletContext(PalletCode: string); public end; @@ -337,6 +339,8 @@ procedure TfmDnaCodeScherm.MeldDnaCodeAf; var + fZoekViaDnaCodeResponse: ZoekViaDnaCodeResponse; + fDnaCode: DnaCode; Response: DnaCodeAfmeldenResponse; List: TStrings; Locatie: string; @@ -345,6 +349,20 @@ if edtDnaCode.Text = '' then exit; + if UiContext.MoetTbpCodeGenereren then begin + fAgent := TAgent.Create(UiContext); + fZoekViaDnaCodeResponse := fAgent.ZoekViaDnaCode(edtDnaCode.Text); + fAgent.Free; + + if fZoekViaDnaCodeResponse.Header.Status <> '200' then begin + ToonPopupScherm(fZoekViaDnaCodeResponse.Header.Omschrijving, 'Probeer opnieuw') + end else begin + fDnaCode := fZoekViaDnaCodeResponse.DnaCodes; + GenereerTbpCode(fDnaCode); + UiContext.MoetTbpCodeGenereren := false; + end; + end; + UiContext.LaatsteDnaCode := edtDnaCode.Text; lblLaatstGescandData.Caption := edtDnaCode.Text; @@ -355,7 +373,7 @@ end; fAgent := TAgent.Create(UiContext); - Response := fAgent.DnaCodeAfmelden(edtDnaCode.Text,UiContext.Toelevering,UiContext.Pallet,UiContext.LpnCode,1,Locatie); + Response := fAgent.DnaCodeAfmelden(edtDnaCode.Text,UiContext.Toelevering,UiContext.Pallet,1,Locatie); fAgent.Free; try List := TStringList.Create; @@ -390,6 +408,31 @@ (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(Self.ModalResult); end; +procedure TfmDnaCodeScherm.GenereerTbpCode(DnaCode: DnaCode); +var + fGeefVolgendeTbpCodeResponse: GeefVolgendeTbpCodeResponse; + fTbpCode: string; + fAgent: TAgent; +begin + inherited; + fAgent := TAgent.Create(UiContext); + fGeefVolgendeTbpCodeResponse := fAgent.GeefVolgendeTbpCode(DnaCode.Toelevering, DnaCode.ProductNummer); + fAgent.Free; + try + if fGeefVolgendeTbpCodeResponse.Header.Status <> '200' then begin + Self.ModalResult := mrPallet; + ToonPopupScherm(fGeefVolgendeTbpCodeResponse.Header.Omschrijving, 'Probeer opnieuw'); + fTbpCode := ''; + end else begin + fTbpCode := fGeefVolgendeTbpCodeResponse.VolgendeTbpCode; + UiContext.Toelevering := ''; + end; + ZetPalletContext(fTbpCode); + finally + fGeefVolgendeTbpCodeResponse.Free; + end; +end; + function TfmDnaCodeScherm.GeefJuisteToelevering(fDnaCodeAfmeldenResponse: DnaCodeAfmeldenResponse; fDnaCode: string): string; var fDnaCodeTeller: integer; @@ -829,4 +872,14 @@ Result := fAantal; end; +procedure TfmDnaCodeScherm.ZetPalletContext(PalletCode: string); +begin + if TCommonFunctions.IsKaderdeurLocatie(PalletCode) then + UiContext.Pallet := PalletCode + else + UiContext.Pallet := UpperCase(PalletCode); + + lblHuidigePalletData.Caption := UiContext.Pallet; +end; + end.