unit Agent; interface uses AfdrukService, DnaCodeService, GebruikerService, System.SysUtils, Vcl.Forms, UiContext, System.Classes; type TAgent = class private fUiContext: TUiContext; fServer: string; fGebruikerServiceSoap: GebruikerServiceSoap; fDnaCodeServiceSoap: DnaCodeServiceSoap; fAfdrukServiceSoap: AfdrukServiceSoap; function ComputerName: String; function WUserName: String; public Constructor Create(UiContext: TUiContext); overload; function FullName: String; function GebruikerAanmelden(Initialen: string; LoginCode: string): GebruikerAanmeldenResponse; function GebruikerAfmelden(Initialen, LoginCode: string): boolean; function ZoekAangemeldeGebruikers(): ZoekAangemeldeGebruikersResponse; 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 ZoekViaKlantnummer(Klantnummer: string): ZoekViaKlantnummerResponse; function ZoekViaLadecode(Ladecode: string): ZoekViaLadecodeResponse; function ZoekViaOrdernummer(Ordernummer: string): ZoekViaOrdernummerResponse; function ZoekViaBatchId(BatchId: string): ZoekViaBatchResponse; function BewerkKlantinstellingen(Actie: string; KlantId: string; IsExport: boolean; WegwerpPallet: boolean; MeerdereToeleveringen: boolean): BewerkKlantinstellingenResponse; function ProboxEtiketAfdrukken(DnaCodesStringList: TStringList; LijnWaaropGeprintMoetWorden: string): AfdrukService.ProboxEtiketAfdrukkenResponse; function KlantEtiketAfdrukken(DnaCodesStringList: TStringList): KlantEtiketAfdrukkenResponse; function ProductEtiketAfdrukken(DnaCodesStringList: TStringList): ProductEtiketAfdrukkenResponse; end; implementation uses Winapi.Windows, Main; { 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); fAfdrukServiceSoap := AfdrukService.GetAfdrukServiceSoap(false,'http://'+fServer+':57772/csp/'+fNameSpace+'/WS.Halux.AAP.AfdrukService.cls',nil); end; function TAgent.DnaCodeAfmelden(DnaCode, Toelevering, PalletCode: string; Aantal: integer): 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; 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(Initialen, LoginCode: string): boolean; var Request: GebruikerAfmeldenRequest; Header: RequestHeader; begin Request := GebruikerAfmeldenRequest.Create; Header := RequestHeader.Create; try if Initialen = '' then Request.Initialen := fUiContext.Initialen else Request.Initialen := Initialen; if LoginCode = '' then Request.LoginCode := fUiContext.LoginCode else Request.LoginCode := LoginCode; Header.Initialen := fUiContext.Initialen; Request.Header := Header; fGebruikerServiceSoap.GebruikerAfmelden(Request); Result := true; finally Request.Free; end; end; function TAgent.ZoekAangemeldeGebruikers: ZoekAangemeldeGebruikersResponse; var Request: ZoekAangemeldeGebruikersRequest; Header: RequestHeader; begin Request := ZoekAangemeldeGebruikersRequest.Create; Header := RequestHeader.Create; try Request.Initialen := fUiContext.Initialen; Request.LoginCode := fUiContext.LoginCode; Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); Request.Header := Header; Result := fGebruikerServiceSoap.ZoekAangemeldeGebruikers(Request); 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.ZoekViaBatchId(BatchId: string): ZoekViaBatchResponse; var Header: DnaCodeService.RequestHeader; fZoekViaBatchRequest: ZoekViaBatchRequest; begin fZoekViaBatchRequest := ZoekViaBatchRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaBatchRequest.Header := Header; fZoekViaBatchRequest.BatchId := BatchId; result := fDnaCodeServiceSoap.ZoekViaBatch(fZoekViaBatchRequest); finally fZoekViaBatchRequest.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.ZoekViaKlantnummer(Klantnummer: string): ZoekViaKlantnummerResponse; var Header: DnaCodeService.RequestHeader; fZoekViaKlantnummerRequest: ZoekViaKlantnummerRequest; begin fZoekViaKlantnummerRequest := ZoekViaKlantnummerRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaKlantnummerRequest.Header := Header; fZoekViaKlantnummerRequest.Klantnummer := Klantnummer; result := fDnaCodeServiceSoap.ZoekViaKlantnummer(fZoekViaKlantnummerRequest); finally fZoekViaKlantnummerRequest.Free; end; end; function TAgent.ZoekViaLadecode(Ladecode: string): ZoekViaLadecodeResponse; var Header: DnaCodeService.RequestHeader; fZoekViaLadecodeRequest: ZoekViaLadecodeRequest; begin fZoekViaLadecodeRequest := ZoekViaLadecodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaLadecodeRequest.Header := Header; fZoekViaLadecodeRequest.Ladecode := Ladecode; result := fDnaCodeServiceSoap.ZoekViaLadecode(fZoekViaLadecodeRequest); finally fZoekViaLadecodeRequest.Free; end; end; function TAgent.ZoekViaOrdernummer(Ordernummer: string): ZoekViaOrdernummerResponse; var Header: DnaCodeService.RequestHeader; fZoekViaOrdernummerRequest: ZoekViaOrdernummerRequest; begin fZoekViaOrdernummerRequest := ZoekViaOrdernummerRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekViaOrdernummerRequest.Header := Header; fZoekViaOrdernummerRequest.Ordernummer := Ordernummer; result := fDnaCodeServiceSoap.ZoekViaOrdernummer(fZoekViaOrdernummerRequest); finally fZoekViaOrdernummerRequest.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; LijnWaaropGeprintMoetWorden: string): AfdrukService.ProboxEtiketAfdrukkenResponse; var Header: AfdrukService.RequestHeader; fProboxEtiketAfdrukkenRequest: AfdrukService.ProboxEtiketAfdrukkenRequest; DnaCodesArray: AfdrukService.ArrayOfStringString; ii: integer; begin fProboxEtiketAfdrukkenRequest := AfdrukService.ProboxEtiketAfdrukkenRequest.Create; Header := AfdrukService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fProboxEtiketAfdrukkenRequest.Header := Header; DnaCodesArray := AfdrukService.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; fProboxEtiketAfdrukkenRequest.LijnWaaropGeprintMoetWorden := LijnWaaropGeprintMoetWorden; result := fAfdrukServiceSoap.ProboxEtiketAfdrukken(fProboxEtiketAfdrukkenRequest); finally fProboxEtiketAfdrukkenRequest.Free; end; end; function TAgent.ProductEtiketAfdrukken( DnaCodesStringList: TStringList): ProductEtiketAfdrukkenResponse; var Header: AfdrukService.RequestHeader; fProductEtiketAfdrukkenRequest: AfdrukService.ProductEtiketAfdrukkenRequest; DnaCodesArray: AfdrukService.ArrayOfStringString; ii: integer; begin fProductEtiketAfdrukkenRequest := AfdrukService.ProductEtiketAfdrukkenRequest.Create; Header := AfdrukService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fProductEtiketAfdrukkenRequest.Header := Header; DnaCodesArray := AfdrukService.ArrayOfStringString.Create(); SetLength(DnaCodesArray, DnaCodesStringList.Count); ii := 0; while ii < DnaCodesStringList.Count do begin DnaCodesArray[ii] := DnaCodesStringList[ii]; ii := ii + 1; end; fProductEtiketAfdrukkenRequest.DnaCodes := DnaCodesArray; result := fAfdrukServiceSoap.ProductEtiketAfdrukken(fProductEtiketAfdrukkenRequest); finally fProductEtiketAfdrukkenRequest.Free; end; end; function TAgent.KlantEtiketAfdrukken( DnaCodesStringList: TStringList): KlantEtiketAfdrukkenResponse; var Header: AfdrukService.RequestHeader; fKlantEtiketAfdrukkenRequest: AfdrukService.KlantEtiketAfdrukkenRequest; DnaCodesArray: AfdrukService.ArrayOfStringString; ii: integer; begin fKlantEtiketAfdrukkenRequest := AfdrukService.KlantEtiketAfdrukkenRequest.Create; Header := AfdrukService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fKlantEtiketAfdrukkenRequest.Header := Header; DnaCodesArray := AfdrukService.ArrayOfStringString.Create(); SetLength(DnaCodesArray, DnaCodesStringList.Count); ii := 0; while ii < DnaCodesStringList.Count do begin DnaCodesArray[ii] := DnaCodesStringList[ii]; ii := ii + 1; end; fKlantEtiketAfdrukkenRequest.DnaCodes := DnaCodesArray; result := fAfdrukServiceSoap.KlantEtiketAfdrukken(fKlantEtiketAfdrukkenRequest); finally fKlantEtiketAfdrukkenRequest.Free; end; end; function TAgent.BewerkKlantinstellingen(Actie, KlantId:string; IsExport: boolean; WegwerpPallet: boolean; MeerdereToeleveringen: boolean): BewerkKlantinstellingenResponse; var Header: DnaCodeService.RequestHeader; fBewerkKlantinstellingenRequest: BewerkKlantinstellingenRequest; begin fBewerkKlantinstellingenRequest := BewerkKlantinstellingenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fBewerkKlantinstellingenRequest.Header := Header; fBewerkKlantinstellingenRequest.Actie := Actie; fBewerkKlantinstellingenRequest.KlantId := KlantId; fBewerkKlantinstellingenRequest.IsExport := IsExport; fBewerkKlantinstellingenRequest.WegwerpPallet := WegwerpPallet; fBewerkKlantinstellingenRequest.MeerdereToeleveringen := MeerdereToeleveringen; result := fDnaCodeServiceSoap.BewerkKlantinstellingen(fBewerkKlantinstellingenRequest); finally fBewerkKlantinstellingenRequest.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.