unit BestaandePalletScherm; 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; type TfmBestaandePalletScherm = class(TfmDrieKnoppenScherm) lblPalletCode: TLabel; pnlAnnuleren: TPanel; imgAnnuleren: TImage; lblAnnuleren: TLabel; pnlExtraToelevering: TPanel; imgExtraToelevering: TImage; lblExtraToelevering: TLabel; pnlHuidigeToelevering: TPanel; imgHuidigeToelevering: TImage; lblHuidigeToelevering: TLabel; pnlRework: TPanel; imgRework: TImage; lblRework: TLabel; procedure FormShow(Sender: TObject); procedure actHomeExecute(Sender: TObject); procedure actPalletExecute(Sender: TObject); procedure btnExtraToeleveringClick(Sender: TObject); procedure btnReworkClick(Sender: TObject); procedure imgHuidigeToeleveringClick(Sender: TObject); procedure imgReworkClick(Sender: TObject); procedure imgExtraToeleveringClick(Sender: TObject); procedure imgRechtsOnderClick(Sender: TObject); private function BepaalAantalToeleveringenOpPallet(PalletCode: string): integer; public { Public declarations } end; var fmBestaandePalletScherm: TfmBestaandePalletScherm; implementation uses UiContext, DnaCodeService, Agent; {$R *.dfm} procedure TfmBestaandePalletScherm.actHomeExecute(Sender: TObject); begin inherited; Self.ModalResult := mrHome; end; procedure TfmBestaandePalletScherm.actPalletExecute(Sender: TObject); begin inherited; Self.ModalResult := mrPallet; end; procedure TfmBestaandePalletScherm.btnExtraToeleveringClick(Sender: TObject); begin inherited; Self.ModalResult := mrDnaCode; end; procedure TfmBestaandePalletScherm.btnReworkClick(Sender: TObject); begin inherited; Self.ModalResult := mrDnaCode; end; procedure TfmBestaandePalletScherm.FormShow(Sender: TObject); begin btnLinksOnder.Action := actPallet; btnCentraalOnder.Action := actHome; btnRechtsOnder.Action := nil; lblPalletCode.Caption := UiContext.Pallet; fImagesScherm.ilAlgemeen128.GetIcon(7, imgHuidigeToelevering.Picture.Icon); fImagesScherm.ilAlgemeen128.GetIcon(10, imgRework.Picture.Icon); fImagesScherm.ilAlgemeen128.GetIcon(9, imgExtraToelevering.Picture.Icon); fImagesScherm.ilAlgemeen128.GetIcon(2, imgAnnuleren.Picture.Icon); inherited; end; procedure TfmBestaandePalletScherm.imgExtraToeleveringClick(Sender: TObject); begin inherited; UiContext.Toelevering := ''; Self.ModalResult := mrDnaCode; end; procedure TfmBestaandePalletScherm.imgHuidigeToeleveringClick(Sender: TObject); begin inherited; Self.ModalResult := mrDnaCode; end; procedure TfmBestaandePalletScherm.imgRechtsOnderClick(Sender: TObject); begin inherited; Self.ModalResult := mrPallet; end; procedure TfmBestaandePalletScherm.imgReworkClick(Sender: TObject); begin inherited; if (BepaalAantalToeleveringenOpPallet(UiContext.Pallet) = 1) then begin UiContext.Toelevering := TAgent.Create(UiContext).ZoekViaPalletCode(UiContext.Pallet).DnaCodes[0].Toelevering; end else if (BepaalAantalToeleveringenOpPallet(UiContext.Pallet) > 1) then begin UiContext.Toelevering := ''; end; Self.ModalResult := mrDnaCode; end; function TfmBestaandePalletScherm.BepaalAantalToeleveringenOpPallet( PalletCode: string): integer; var Response: ZoekViaPalletCodeResponse; DnaCodeTeller: integer; ToeleveringStringList: TStringList; begin Response := TAgent.Create(UiContext).ZoekViaPalletCode(UiContext.Pallet); DnaCodeTeller := 0; try if Response.Header.Status = '200' then begin ToeleveringStringList := TStringList.Create; ToeleveringStringList.Sorted := true; ToeleveringStringList.Duplicates := dupIgnore; while DnaCodeTeller < length(Response.DnaCodes) do begin ToeleveringStringList.Add(Response.DnaCodes[DnaCodeTeller].Toelevering); DnaCodeTeller := DnaCodeTeller + 1; end; result := ToeleveringStringList.Count; end else begin ToonPopupScherm(Response.Header.Omschrijving, 'Probeer opnieuw',''); result := -1; end; finally Response.Free; end; end; end.