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) lblBestaandePallet: TLabel; btnHuidigeToelevering: TButton; btnRework: TButton; btnExtraToelevering: TButton; btnTerug: TButton; procedure FormShow(Sender: TObject); procedure btnExtraToeleveringClick(Sender: TObject); procedure btnReworkClick(Sender: TObject); procedure btnHuidigeToeleveringClick(Sender: TObject); procedure btnTerugClick(Sender: TObject); private function BepaalAantalToeleveringenOpPallet(PalletCode: string): integer; public { Public declarations } end; var fmBestaandePalletScherm: TfmBestaandePalletScherm; implementation uses UiContext, DnaCodeService, Agent, ProScanMain; {$R *.dfm} procedure TfmBestaandePalletScherm.btnExtraToeleveringClick(Sender: TObject); begin inherited; UiContext.Toelevering := ''; (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; procedure TfmBestaandePalletScherm.btnHuidigeToeleveringClick(Sender: TObject); begin inherited; (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; procedure TfmBestaandePalletScherm.btnReworkClick(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.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrDnaCode); end; procedure TfmBestaandePalletScherm.btnTerugClick(Sender: TObject); begin inherited; (Self.Parent.Parent As TfmProScanHoofdscherm).NavigeerNaar(mrPallet); end; procedure TfmBestaandePalletScherm.FormShow(Sender: TObject); begin btnLinksOnder.Action := actPallet; btnCentraalOnder.Action := actHome; btnRechtsOnder.Action := nil; lblBestaandePallet.Caption := 'Bestaande pallet: '+UiContext.Pallet; inherited; 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.