unit Agent; interface uses DnaCodeService, GebruikerService, AfdrukService, QRcodeNaarKenmerkenService, System.SysUtils, System.StrUtils, Vcl.Forms, UiContext, System.Classes; type TAgent = class private fUiContext: TUiContext; fServer: string; fGebruikerServiceSoap: GebruikerServiceSoap; fDnaCodeServiceSoap: DnaCodeServiceSoap; fQRcodeNaarKenmerkenServiceSoap: QRcodeNaarKenmerkenServiceSoap; 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(): 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; OokEWMSverwerken: boolean): 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(ToeleveringId: string; ProductNummer: string): GeefVolgendeTbpCodeResponse; function ZoekViaDnaCode(DnaCode: string): ZoekViaDnaCodeResponse; function ProboxEtiketAfdrukken(DnaCodesStringList: TStringList): ProboxEtiketAfdrukkenResponse; function RondAfKaderdeurDag(DnaCode: String): RondAfKaderdeurDagResponse; function ZoekAlleVhossLadesBijDnaCode(DnaCode: String): ZoekAlleVhossLadesBijDnaCodeResponse; function ZoekAlleDnaCodesDieOpVhossMoeten(FrameId: String): ZoekAlleDnaCodesDieOpVhossMoetenResponse; function BewerkKlantinstellingen(Actie: string; KlantId: string; IsExport: boolean; IsBlumXs: boolean; WegwerpPallet: boolean; MeerdereToeleveringen: boolean): BewerkKlantinstellingenResponse; function RondAfVhossBatch(BatchId: String): RondAfVhossBatchResponse; function GeefKenmerken(KlantNummer: string; ProductNummer: string): QRcodeNaarKenmerkenResponse; 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); fAfdrukServiceSoap := AfdrukService.GetAfdrukServiceSoap(false,'http://'+fServer+':57772/csp/'+fNameSpace+'/WS.Halux.AAP.AfdrukService.cls',nil); fQRcodeNaarKenmerkenServiceSoap := QRcodenaarKenmerkenService.GetQRcodeNaarKenmerkenServiceSoap(false,'http://'+fServer+':57772/csp/'+fNameSpace+'/WS.Vhisie4.QRcodeNaarKenmerkenService.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; Request.BatchId := fUiContext.BatchId; Result := fDnaCodeServiceSoap.DnaCodeAfmelden(Request); finally Request.Free; end; end; function TAgent.GebruikerAanmelden(Initialen, LoginCode: string): GebruikerAanmeldenResponse; var Request: GebruikerService.GebruikerAanmeldenRequest; Header: GebruikerService.RequestHeader; begin Request := GebruikerAanmeldenRequest.Create; Header := GebruikerService.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: GebruikerService.GebruikerAfmeldenRequest; Header: GebruikerService.RequestHeader; fResponse: GebruikerService.GebruikerAfmeldenResponse; begin Request := GebruikerAfmeldenRequest.Create; Header := GebruikerService.RequestHeader.Create; try Request.Initialen := fUiContext.Initialen; Request.LoginCode := fUiContext.LoginCode; Header.Initialen := fUiContext.Initialen; Request.Header := Header; fResponse := fGebruikerServiceSoap.GebruikerAfmelden(Request); Result := true; fResponse.Free; finally Request.Free; end; end; function TAgent.GeefVolgendeTbpCode(ToeleveringId: string; ProductNummer: string): 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; Request.ToeleveringId := ToeleveringId; Request.ProductNummer := ProductNummer; result := fDnaCodeServiceSoap.GeefVolgendeTbpCode(Request); finally Request.Free; end; end; function TAgent.HernoemPallet(OudeCode, NieuweCode, EnkelDezeDnaCode: string; OokEWMSverwerken: boolean): 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; Request.OokEWMSverwerken := OokEWMSverwerken; 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.ZoekAlleDnaCodesDieOpVhossMoeten( FrameId: String): ZoekAlleDnaCodesDieOpVhossMoetenResponse; var Header: DnaCodeService.RequestHeader; fZoekAlleDnaCodesDieOpVhossMoetenRequest: ZoekAlleDnaCodesDieOpVhossMoetenRequest; begin fZoekAlleDnaCodesDieOpVhossMoetenRequest := ZoekAlleDnaCodesDieOpVhossMoetenRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekAlleDnaCodesDieOpVhossMoetenRequest.Header := Header; fZoekAlleDnaCodesDieOpVhossMoetenRequest.FrameId := FrameId; result := fDnaCodeServiceSoap.ZoekAlleDnaCodesDieOpVhossMoeten(fZoekAlleDnaCodesDieOpVhossMoetenRequest); finally fZoekAlleDnaCodesDieOpVhossMoetenRequest.Free; end; end; function TAgent.ZoekAlleVhossLadesBijDnaCode( DnaCode: String): ZoekAlleVhossLadesBijDnaCodeResponse; var Header: DnaCodeService.RequestHeader; fZoekAlleVhossLadesBijDnaCodeRequest: ZoekAlleVhossLadesBijDnaCodeRequest; begin fZoekAlleVhossLadesBijDnaCodeRequest := ZoekAlleVhossLadesBijDnaCodeRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fZoekAlleVhossLadesBijDnaCodeRequest.Header := Header; fZoekAlleVhossLadesBijDnaCodeRequest.DnaCode := DnaCode; fZoekAlleVhossLadesBijDnaCodeRequest.GuiVhossVolgnummer := fUiContext.InternVhossId; result := fDnaCodeServiceSoap.ZoekAlleVhossLadesBijDnaCode(fZoekAlleVhossLadesBijDnaCodeRequest); finally fZoekAlleVhossLadesBijDnaCodeRequest.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: AfdrukService.RequestHeader; fProboxEtiketAfdrukkenRequest: ProboxEtiketAfdrukkenRequest; DnaCodesArray: ArrayOfStringString; ii: integer; begin fProboxEtiketAfdrukkenRequest := ProboxEtiketAfdrukkenRequest.Create; Header := AfdrukService.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 := fAfdrukServiceSoap.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.RondAfVhossBatch(BatchId: String): RondAfVhossBatchResponse; var Header: DnaCodeService.RequestHeader; fRondAfVhossBatchRequest: RondAfVhossBatchRequest; begin fRondAfVhossBatchRequest := RondAfVhossBatchRequest.Create; Header := DnaCodeService.RequestHeader.Create; try Header.Initialen := fUiContext.Initialen; Header.ComputerNaam := FullName(); fRondAfVhossBatchRequest.Header := Header; fRondAfVhossBatchRequest.BatchId := BatchId; result := fDnaCodeServiceSoap.RondAfVhossBatch(fRondAfVhossBatchRequest); finally fRondAfVhossBatchRequest.Free; end; end; function TAgent.BewerkKlantinstellingen(Actie, KlantId:string; IsExport: boolean; IsBlumXs: 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.IsBlumXs := IsBlumXs; fBewerkKlantinstellingenRequest.WegwerpPallet := WegwerpPallet; fBewerkKlantinstellingenRequest.MeerdereToeleveringen := MeerdereToeleveringen; result := fDnaCodeServiceSoap.BewerkKlantinstellingen(fBewerkKlantinstellingenRequest); finally fBewerkKlantinstellingenRequest.Free; end; end; function TAgent.GeefKenmerken(KlantNummer: string; ProductNummer: string): QRcodeNaarKenmerkenResponse; var Header: QRcodeNaarKenmerkenService.RequestHeader; fQRcodeNaarKenmerkenRequest: QRcodeNaarKenmerkenRequest; begin fQRcodeNaarKenmerkenRequest := QRcodeNaarKenmerkenRequest.Create; Header := QRcodeNaarKenmerkenService.RequestHeader.Create; try Header.KlantID := SplitString(KlantNummer, '||')[2]; fQRcodeNaarKenmerkenRequest.Header := Header; fQRcodeNaarKenmerkenRequest.QRcodeData := 'AdminProductnummer=' + ProductNummer; result := fQRcodeNaarKenmerkenServiceSoap.GeefKenmerken(fQRcodeNaarKenmerkenRequest); finally fQRcodeNaarKenmerkenRequest.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.