unit Agent; interface uses DnaCodeService, GebruikerService, System.SysUtils, Vcl.Forms, UiContext, System.Classes; type TAgent = class private fUiContext: TUiContext; fServer: string; fGebruikerServiceSoap: GebruikerServiceSoap; fDnaCodeServiceSoap: DnaCodeServiceSoap; 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; Locatie: string): 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; function RondAfKaderdeurDag(DnaCode: String): RondAfKaderdeurDagResponse; end; implementation uses Winapi.Windows, ProScanMain; { TAgent } constructor TAgent.Create(UiContext: TUiContext); var fNamespace: string; begin fUiContext := UiContext; fServer := UiContext.ServerName; fNameSpace := 'dev1'; if fServer = 'cache01' then fNameSpace := 'admin1'; fGebruikerServiceSoap := GebruikerService.GetGebruikerServiceSoap(false,'http://'+fServer+':57772/csp/'+fNameSpace+'/WS.Halux.AAP.GebruikerService.cls',nil); fDnaCodeServiceSoap := DnaCodeService.GetDnaCodeServiceSoap(false,'http://'+fServer+':57772/csp/'+fNameSpace+'/WS.Halux.AAP.DnaCodeService.cls',nil) end; function TAgent.DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; Aantal: integer; Locatie: string): DnaCodeAfmeldenResponse; var Request: DnaCodeAfmeldenRequest; Header: DnaCodeService.RequestHeader; begin 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; Request.Locatie := Locatie; Result := fDnaCodeServiceSoap.DnaCodeAfmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAanmelden(Initialen, LoginCode: string): GebruikerAanmeldenResponse; var Request: GebruikerAanmeldenRequest; Header: RequestHeader; begin Request := GebruikerAanmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := Initialen; Request.LoginCode := LoginCode; Header.Initialen := Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Result := fGebruikerServiceSoap.GebruikerAanmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAfmelden(): boolean; var Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try Request.Initialen := fUiContext.Initialen; Request.LoginCode := fUiContext.LoginCode; Header.Initialen := fUiContext.Initialen; Request.Header := Header; fGebruikerServiceSoap.GebruikerAfmelden(Request); Result := true; finally Request.Free; end; end; function TAgent.GeefVolgendeTbpCode: GeefVolgendeTbpCodeResponse; var Request: GeefVolgendeTbpCodeRequest; Header: DnaCodeService.RequestHeader; begin Request := GeefVolgendeTbpCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; result := fDnaCodeServiceSoap.GeefVolgendeTbpCode(Request); finally Request.Free; end; end; function TAgent.HernoemPallet(OudeCode, NieuweCode, EnkelDezeDnaCode: string): HernoemPalletResponse; var Request: HernoemPalletRequest; Header: DnaCodeService.RequestHeader; begin 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 := fDnaCodeServiceSoap.HernoemPallet(Request); finally Request.Free; end; end; function TAgent.IsDirecteLevering(Toelevering: string): DirecteLeveringResponse; var Request: DirecteLeveringRequest; Header: DnaCodeService.RequestHeader; begin Request := DirecteLeveringRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.Toelevering := Toelevering; result := fDnaCodeServiceSoap.IsDirecteLevering(Request); finally Request.Free; end; end; function TAgent.PalletBijwerken(Pallet: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): PalletBijwerkenResponse; var Request: PalletBijwerkenRequest; Header: DnaCodeService.RequestHeader; begin 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 := fDnaCodeServiceSoap.PalletBijwerken(Request); finally Request.Free; end; end; function TAgent.ToeleveringBijwerken(Toelevering: string; Status: DnaCodeStatus; IsDirecteLevering: boolean): ToeleveringBijwerkenResponse; var Request: ToeleveringBijwerkenRequest; Header: DnaCodeService.RequestHeader; begin 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 := fDnaCodeServiceSoap.ToeleveringBijwerken(Request); finally Request.Free; end; end; function TAgent.ValideerPalletCode(PalletCode: string): ValideerPalletCodeResponse; var Request: ValideerPalletCodeRequest; Header: DnaCodeService.RequestHeader; begin Request := ValideerPalletCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Request.PalletCode := PalletCode; result := fDnaCodeServiceSoap.ValideerPalletCode(Request); finally Request.Free; end; end; function TAgent.ZoekViaDnaCode(DnaCode: string): ZoekViaDnaCodeResponse; var Header: DnaCodeService.RequestHeader; fZoekViaDnaCodeRequest: ZoekViaDnaCodeRequest; begin fZoekViaDnaCodeRequest := ZoekViaDnaCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaDnaCodeRequest.Header := Header; fZoekViaDnaCodeRequest.DnaCode := DnaCode; result := fDnaCodeServiceSoap.ZoekViaDnaCode(fZoekViaDnaCodeRequest); finally fZoekViaDnaCodeRequest.Free; end; end; function TAgent.ZoekViaPalletCode( PalletCode: string): ZoekViaPalletCodeResponse; var Header: DnaCodeService.RequestHeader; fZoekViaPalletCodeRequest: ZoekViaPalletCodeRequest; begin fZoekViaPalletCodeRequest := ZoekViaPalletCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaPalletCodeRequest.Header := Header; fZoekViaPalletCodeRequest.PalletCode := PalletCode; result := fDnaCodeServiceSoap.ZoekViaPalletCode(fZoekViaPalletCodeRequest); finally fZoekViaPalletCodeRequest.Free; end; end; function TAgent.ZoekViaToelevering( Toelevering: string): ZoekViaToeleveringResponse; var Header: DnaCodeService.RequestHeader; fZoekViaToeleveringRequest: ZoekViaToeleveringRequest; begin fZoekViaToeleveringRequest := ZoekViaToeleveringRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaToeleveringRequest.Header := Header; fZoekViaToeleveringRequest.Toelevering := Toelevering; result := fDnaCodeServiceSoap.ZoekViaToelevering(fZoekViaToeleveringRequest); finally fZoekViaToeleveringRequest.Free; end; end; function TAgent.ProboxEtiketAfdrukken(DnaCodesStringList: TStringList): ProboxEtiketAfdrukkenResponse; var Header: DnaCodeService.RequestHeader; fProboxEtiketAfdrukkenRequest: ProboxEtiketAfdrukkenRequest; DnaCodesArray: ArrayOfStringString; ii: integer; begin 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 := fDnaCodeServiceSoap.ProboxEtiketAfdrukken(fProboxEtiketAfdrukkenRequest); finally fProboxEtiketAfdrukkenRequest.Free; end; end; function TAgent.RondAfKaderdeurDag(DnaCode: String): RondAfKaderdeurDagResponse; var Header: DnaCodeService.RequestHeader; fRondAfKaderdeurDagRequest: RondAfKaderdeurDagRequest; begin fRondAfKaderdeurDagRequest := RondAfKaderdeurDagRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fRondAfKaderdeurDagRequest.Header := Header; fRondAfKaderdeurDagRequest.DnaCode := DnaCode; result := fDnaCodeServiceSoap.RondAfKaderdeurDag(fRondAfKaderdeurDagRequest); finally fRondAfKaderdeurDagRequest.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.