unit Agent; interface uses DnaCodeService, GebruikerService, System.SysUtils, Vcl.Forms, UiContext, System.Classes; type TAgent = class private fUiContext: TUiContext; function ComputerName: String; function WUserName: String; public Constructor Create(UiContext: TUiContext); overload; function FullName: String; function GebruikerAanmelden(Initialen: string; LoginCode: string): GebruikerAanmeldenResponse; function GebruikerAfmelden(): boolean; function ValideerPalletCode(PalletCode: string): ValideerPalletCodeResponse; function ZoekViaPalletCode(PalletCode: string): ZoekViaPalletCodeResponse; function DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; Aantal: integer): DnaCodeAfmeldenResponse; function ZoekViaToelevering(Toelevering: string): ZoekViaToeleveringResponse; function HernoemPallet(OudeCode, NieuweCode, EnkelDezeDnaCode: string): HernoemPalletResponse; function IsDirecteLevering(Toelevering: string): DirecteLeveringResponse; function PalletBijwerken(Pallet: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): PalletBijwerkenResponse; function ToeleveringBijwerken(Toelevering: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): ToeleveringBijwerkenResponse; function GeefVolgendeTbpCode(): GeefVolgendeTbpCodeResponse; function ZoekViaDnaCode(DnaCode: string): ZoekViaDnaCodeResponse; function ProboxEtiketAfdrukken(DnaCodesStringList: TStringList): ProboxEtiketAfdrukkenResponse; end; implementation uses Winapi.Windows, ProScanMain; { TAgent } constructor TAgent.Create(UiContext: TUiContext); begin fUiContext := UiContext; end; function TAgent.DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; Aantal: integer): DnaCodeAfmeldenResponse; var Service: DnaCodeServiceSoap; Request: DnaCodeAfmeldenRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := DnaCodeAfmeldenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.DnaCode := DnaCode; Request.Toelevering := Toelevering; Request.PalletCode := PalletCode; Request.Aantal := Aantal; Result := Service.DnaCodeAfmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAanmelden(Initialen, LoginCode: string): GebruikerAanmeldenResponse; var Service: GebruikerServiceSoap; Request: GebruikerAanmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAanmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := Initialen; Request.LoginCode := LoginCode; Header.Initialen := Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Result := Service.GebruikerAanmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAfmelden(): boolean; var Service: GebruikerServiceSoap; Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Service := GebruikerService.GetGebruikerServiceSoap(); Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := fUiContext.Initialen; Request.LoginCode := fUiContext.LoginCode; Header.Initialen := fUiContext.Initialen; Request.Header := Header; Service.GebruikerAfmelden(Request); Result := true; finally Request.Free; end; end; function TAgent.GeefVolgendeTbpCode: GeefVolgendeTbpCodeResponse; var Service: DnaCodeServiceSoap; Request: GeefVolgendeTbpCodeRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := GeefVolgendeTbpCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; result := Service.GeefVolgendeTbpCode(Request); finally Request.Free; end; end; function TAgent.HernoemPallet(OudeCode, NieuweCode, EnkelDezeDnaCode: string): HernoemPalletResponse; var Service: DnaCodeServiceSoap; Request: HernoemPalletRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := HernoemPalletRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.OudeCode := OudeCode; Request.NieuweCode := NieuweCode; Request.EnkelDezeDnaCode := EnkelDezeDnaCode; result := Service.HernoemPallet(Request); finally Request.Free; end; end; function TAgent.IsDirecteLevering(Toelevering: string): DirecteLeveringResponse; var Service: DnaCodeServiceSoap; Request: DirecteLeveringRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := DirecteLeveringRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.Toelevering := Toelevering; result := Service.IsDirecteLevering(Request); finally Request.Free; end; end; function TAgent.PalletBijwerken(Pallet: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): PalletBijwerkenResponse; var Service: DnaCodeServiceSoap; Request: PalletBijwerkenRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := PalletBijwerkenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.Pallet := Pallet; Request.Status := Status; Request.IsDirecteLevering := IsDirecteLevering; result := Service.PalletBijwerken(Request); finally Request.Free; end; end; function TAgent.ToeleveringBijwerken(Toelevering: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): ToeleveringBijwerkenResponse; var Service: DnaCodeServiceSoap; Request: ToeleveringBijwerkenRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := ToeleveringBijwerkenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.Toelevering := Toelevering; Request.Status := Status; Request.IsDirecteLevering := IsDirecteLevering; result := Service.ToeleveringBijwerken(Request); finally Request.Free; end; end; function TAgent.ValideerPalletCode(PalletCode: string): ValideerPalletCodeResponse; var Service: DnaCodeServiceSoap; Request: ValideerPalletCodeRequest; Header: DnaCodeService.RequestHeader; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); Request := ValideerPalletCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.PalletCode := PalletCode; result := Service.ValideerPalletCode(Request); finally Request.Free; end; end; function TAgent.ZoekViaDnaCode(DnaCode: string): ZoekViaDnaCodeResponse; var Service: DnaCodeServiceSoap; Header: DnaCodeService.RequestHeader; fZoekViaDnaCodeRequest: ZoekViaDnaCodeRequest; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); fZoekViaDnaCodeRequest := ZoekViaDnaCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaDnaCodeRequest.Header := Header; fZoekViaDnaCodeRequest.DnaCode := DnaCode; result := Service.ZoekViaDnaCode(fZoekViaDnaCodeRequest); finally fZoekViaDnaCodeRequest.Free; end; end; function TAgent.ZoekViaPalletCode( PalletCode: string): ZoekViaPalletCodeResponse; var Service: DnaCodeServiceSoap; Header: DnaCodeService.RequestHeader; fZoekViaPalletCodeRequest: ZoekViaPalletCodeRequest; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); fZoekViaPalletCodeRequest := ZoekViaPalletCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaPalletCodeRequest.Header := Header; fZoekViaPalletCodeRequest.PalletCode := PalletCode; result := Service.ZoekViaPalletCode(fZoekViaPalletCodeRequest); finally fZoekViaPalletCodeRequest.Free; end; end; function TAgent.ZoekViaToelevering( Toelevering: string): ZoekViaToeleveringResponse; var Service: DnaCodeServiceSoap; Header: DnaCodeService.RequestHeader; fZoekViaToeleveringRequest: ZoekViaToeleveringRequest; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); fZoekViaToeleveringRequest := ZoekViaToeleveringRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaToeleveringRequest.Header := Header; fZoekViaToeleveringRequest.Toelevering := Toelevering; result := Service.ZoekViaToelevering(fZoekViaToeleveringRequest); finally fZoekViaToeleveringRequest.Free; end; end; function TAgent.ProboxEtiketAfdrukken(DnaCodesStringList: TStringList): ProboxEtiketAfdrukkenResponse; var Service: DnaCodeServiceSoap; Header: DnaCodeService.RequestHeader; fProboxEtiketAfdrukkenRequest: ProboxEtiketAfdrukkenRequest; DnaCodesArray: ArrayOfStringString; ii: integer; begin Service := DnaCodeService.GetDnaCodeServiceSoap(); fProboxEtiketAfdrukkenRequest := ProboxEtiketAfdrukkenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fProboxEtiketAfdrukkenRequest.Header := Header; DnaCodesArray := ArrayOfStringString.Create(); SetLength(DnaCodesArray, DnaCodesStringList.Count); ii := 0; while ii < DnaCodesStringList.Count do begin DnaCodesArray[ii] := DnaCodesStringList[ii]; ii := ii + 1; end; fProboxEtiketAfdrukkenRequest.DnaCodes := DnaCodesArray; result := Service.ProboxEtiketAfdrukken(fProboxEtiketAfdrukkenRequest); finally fProboxEtiketAfdrukkenRequest.Free; end; end; function TAgent.ComputerName: String; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetComputerName(buffer, size) then Result := buffer else Result := '' end; function TAgent.WUserName: String; var nSize: DWord; begin nSize := 1024; SetLength(Result, nSize); if GetUserName(PChar(Result), nSize) then SetLength(Result, nSize-1) else RaiseLastOSError; end; function TAgent.FullName: String; begin Result := ComputerName + ' / ' + WUserName; end; end.