unit DnaCodeReedsGescandScherm; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DrieKnoppenScherm, Vcl.ActnList, Vcl.StdCtrls, Vcl.ExtCtrls, DnaCodeService; type TfmDnaCodeReedsGescandScherm = class(TfmDrieKnoppenScherm) edtPallet: TEdit; lblScanPallet: TLabel; btnVerplaatsen: TButton; btnWegnemen: TButton; btnTerug: TButton; lblBestaandeDnaCode: TLabel; procedure FormShow(Sender: TObject); procedure edtPalletKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure btnTerugClick(Sender: TObject); procedure btnVerplaatsenClick(Sender: TObject); procedure btnWegnemenClick(Sender: TObject); private procedure Wegnemen; procedure Verplaatsen; procedure SetPalletControlsVisibility(IsVisible: boolean); function GeefStatusVanDnaCode(Code: string): DnaCodeStatus; public { Public declarations } end; var fmDnaCodeReedsGescandScherm: TfmDnaCodeReedsGescandScherm; implementation uses UiContext, Agent, CommonFunctions, ProScanMain; {$R *.dfm} procedure TfmDnaCodeReedsGescandScherm.btnTerugClick(Sender: TObject); begin inherited; PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; procedure TfmDnaCodeReedsGescandScherm.btnVerplaatsenClick(Sender: TObject); begin inherited; if GeefStatusVanDnaCode(UiContext.LaatsteDnaCode) = DnaCodeStatus.InBuffer then ToonPopupScherm('Reeds afgesloten. Gebruik ''Hernoem Pallet''', 'Probeer opnieuw',''); SetPalletControlsVisibility(true); end; procedure TfmDnaCodeReedsGescandScherm.btnWegnemenClick(Sender: TObject); begin inherited; SetPalletControlsVisibility(false); Wegnemen; end; procedure TfmDnaCodeReedsGescandScherm.edtPalletKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin inherited; if Key = VK_RETURN then begin Verplaatsen; Key := 0; end; end; procedure TfmDnaCodeReedsGescandScherm.FormShow(Sender: TObject); begin inherited; edtPallet.Enabled := False; edtPallet.Visible := False; lblScanPallet.Visible := False; lblBestaandeDnaCode.Caption := 'Bestaande DNA-Code: '+TCommonFunctions.VerkorteDnaCode(UiContext.LaatsteDnaCode); end; procedure TfmDnaCodeReedsGescandScherm.SetPalletControlsVisibility( IsVisible: boolean); begin lblScanPallet.Visible := IsVisible; edtPallet.Visible := IsVisible; edtPallet.Enabled := IsVisible; if IsVisible then edtPallet.SetFocus; end; procedure TfmDnaCodeReedsGescandScherm.Verplaatsen; var Response: HernoemPalletResponse; begin Response := TAgent.Create(UiContext).HernoemPallet(UiContext.Pallet, edtPallet.Text, UiContext.LaatsteDnaCode); try if Response.Header.Status <> '200' then begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw','') end else begin ToonPopupScherm(Response.Header.Omschrijving, 'OK',''); Self.ModalResult := mrDnaCode; end; finally Response.Free; end; if Self.ModalResult = mrDnaCode then begin PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; end; procedure TfmDnaCodeReedsGescandScherm.Wegnemen; var Response: DnaCodeAfmeldenResponse; begin Response := TAgent.Create(UiContext).DnaCodeAfmelden(UiContext.LaatsteDnaCode,UiContext.Toelevering,UiContext.Pallet,-1,''); try if Response.Header.Status <> '200' then begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw','') end; finally Response.Free; end; PostMessage(Self.Handle,WM_Close,0,0); (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; function TfmDnaCodeReedsGescandScherm.GeefStatusVanDnaCode(Code: string): DnaCodeStatus; var Response: ZoekViaDnaCodeResponse; begin Response := TAgent.Create(UiContext).ZoekViaDnaCode(Code); try begin result := DnaCodeStatus(Response.DnaCodes); end; finally Response.Free; end; end; end.