##### Import ##### from tkinter import* from datetime import datetime import cv2 import numpy as np from pyzbar.pyzbar import decode import requests ###### Variables ##### WebServiceActioncode = "1" Arbeitnehmernummer = "" ArbeitsZeitPause = "0" # "0" - Arbeitszeit "1" - Pause StartStopPause = "Ende" # "Start" = Arbeitszeit beginnen "Ende" = Arbeitszeit beenden Fehlzeitenstamm = "1" ##### Server-Options ##### WebServiceURL = "localhost" WebServiceBenutzerName = "a" WebServiceBenutzerPasswort = "b" WinLineMandant = "MEDT" WebServiceTemplateSTART = "Zeitnahme" WebServiceTemplateSTOP = "STOP" WebServiceType = "36" ###### Variables for Timestamp and XML ##### now = datetime.now() current_time = now.strftime("%D:%H:%M:%S") Datumvon = datetime.now().strftime('%Y-%m-%d') + "T" + datetime.now().strftime('%H:%M:%S') Datumbis = datetime.now().strftime('%Y-%m-%d') + "T" + datetime.now().strftime('%H:%M:%S') AN_Gruppe_Ressource = Arbeitnehmernummer ###### Filter ###### if ArbeitsZeitPause == "1": WebServiceTemplateExport = "ExportPause" Filter = "FilterTestP-" + Arbeitnehmernummer else: WebServiceTemplateExport = "Export" Filter = "FilterTest-" + Arbeitnehmernummer ###### QR-Code-Scan ###### def button_action(): anweisungs_label.config(text=current_time) #img = cv2.imread ('QR1.jpg') cap = cv2.VideoCapture(0) cap.set(3,640) cap.set(4,480) x = True myData = None while x == True: #code=decode(img) #print(code) success, img = cap.read() for barcode in decode(img): myData = barcode.data.decode('utf-8') print(myData) #pts = np.array([barcode.polygon],np.int32) #pts = pts.reshape((-1,1,2)) #cv2.polylines(img,[pts],True,(255,0,255),5) #pts2 = barcode.rect #cv2.putText(img,myData,(pts2[0],pts[1]),cv2.FONT_HERSHEY_SIMPLEX) cv2.imshow('Result',img) cv2.waitKey(1) if myData is not None: x = False return myData ###### Frame ###### fenster = Tk() fenster.configure(bg="white") fenster.title("DD-Zeiterfassung") fenster.geometry("1024x768") start_button = Button(fenster, text="Arbeitstag beginnen",fg="white",bg="green", command=button_action) exit_button = Button (fenster, text="Arbeitstag beenden",fg="white",bg="red",command=fenster.quit) pause_button = Button (fenster, text="Pause beginnen",fg="white",bg="#b47a0e", command=button_action) pause_end_button = Button (fenster, text="Pause beenden",fg="white",bg="#b47a0e", command=button_action) anweisungs_label = Label(fenster, text="Test") info_label = Label(fenster, text="info") anweisungs_label.grid(row=0, column=2, pady = 20) start_button.grid(row=1, column=1, pady = 20) exit_button.grid(row=1, column=2) pause_button.grid (row=1, column=3) pause_end_button.grid (row=1, column=4) fenster.mainloop() ##### Build Start-XML ##### def BuildXMLStart(): XML_Start = "" XML_Start = XML_Start + "" XML_Start = XML_Start + "" XML_Start = XML_Start + "<" + WebServiceTemplateSTART + ">" #Location for WinLine fields XML_Start = XML_Start + "" + Datumvon + "" XML_Start = XML_Start + "" + Fehlzeitenstamm + "" XML_Start = XML_Start + "" + AN_Gruppe_Ressource + "" XML_Start = XML_Start + "" + ArbeitsZeitPause + "" XML_Start = XML_Start + "" XML_Start = XML_Start + "" return XML_Start ##### Build Start-URL ##### def BuildURLStart(XML_Start): URL_Start = "http://%SERVER%/ewlservice/import?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Data=%DATA%" URL_Start = "http://%SERVER%/ewlservice/import?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Data=%DATA%"" URL_Start.replace("%SERVER%", WebServiceURL) URL_Start = URL_Start.replace("%USER%", WebServiceBenutzerName) URL_Start = URL_Start.replace("%PASSWORD%", WebServiceBenutzerPasswort) URL_Start = URL_Start.replace("%COMPANY%", WinLineMandant) URL_Start = URL_Start.replace("%TYPE%", WebServiceType) URL_Start = URL_Start.replace("%VORLAGE%", WebServiceTemplateSTART) URL_Start = URL_Start.replace("%ACTIONCODE%", WebServiceActioncode) URL_Start = URL_Start.replace("%DATA%", XML_Start) return URL_Start ##### Webservice-Export ##### def BuildURLExport(XML_Start): XMLExport = Filter URL_Export = "http://%SERVER%/ewlservice/export?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Key=%KEY%" URL_Export = URL_Export.replace("%SERVER%", WebServiceURL) URL_Export = URL_Export.replace("%USER%", WebServiceBenutzerName) URL_Export = URL_Export.replace("%PASSWORD%", WebServiceBenutzerPasswort) URL_Export = URL_Export.replace("%COMPANY%", WinLineMandant) URL_Export = URL_Export.replace("%TYPE%", WebServiceType) URL_Export = URL_Export.replace("%VORLAGE%", WebServiceTemplateExport) URL_Export = URL_Export.replace("%ACTIONCODE%", WebServiceActioncode) URL_Export = URL_Export.replace("%KEY%", XMLExport) URL_Export = URL_Export.replace("%FILTER%", Filter) print("URL_Export = " + URL_Export) HTTPRequest_Export = requests.post(URL_Export) return URL_Export ##### Build End-XML ##### IndexVonDatum = HTTPRequest_Export.text.find("") v1 = IndexVonDatum + len("") v2 = v1 + 19 Datumvon = HTTPRequest_Export.text[v1:v2] print(Datumvon) print(Datumbis) XML_Ende = "" XML_Ende = XML_Ende + "" XML_Ende = XML_Ende + "" XML_Ende = XML_Ende + "<" + WebServiceTemplateSTOP + ">" # Location for WinLine fields XML_Ende = XML_Ende + "" + Datumvon + "" XML_Ende = XML_Ende + "" + Datumbis + "" XML_Ende = XML_Ende + "" + Fehlzeitenstamm + "" XML_Ende = XML_Ende + "" + AN_Gruppe_Ressource + "" XML_Ende = XML_Ende + "" + ArbeitsZeitPause + "" XML_Ende = XML_Ende + "" + "1" + "" XML_Ende = XML_Ende + "" XML_Ende = XML_Ende + "" ##### Build End-URL ##### URL_Ende = "http://%SERVER%/ewlservice/import?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Data=%DATA%" URL_Ende = URL_Ende.replace("%SERVER%", WebServiceURL) URL_Ende = URL_Ende.replace("%USER%", WebServiceBenutzerName) URL_Ende = URL_Ende.replace("%PASSWORD%", WebServiceBenutzerPasswort) URL_Ende = URL_Ende.replace("%COMPANY%", WinLineMandant) URL_Ende = URL_Ende.replace("%TYPE%", WebServiceType) URL_Ende = URL_Ende.replace("%VORLAGE%", WebServiceTemplateSTOP) URL_Ende = URL_Ende.replace("%ACTIONCODE%", WebServiceActioncode) URL_Ende = URL_Ende.replace("%DATA%", XML_Ende) ##### Requests ##### if StartStopPause == "Start": HTTPRequest_Start = requests.post(URL_Start) print(URL_Start) print(HTTPRequest_Start.text) else: HTTPRequest_Ende = requests.post(URL_Ende) print(HTTPRequest_Ende.text) fenster = Tk() fenster.configure(bg="white") fenster.title("DD-Zeiterfassung") fenster.geometry("1024x768") start_button = Button(fenster, text="Arbeitstag beginnen",fg="white",bg="green", command=button_action) exit_button = Button (fenster, text="Arbeitstag beenden",fg="white",bg="red",command=fenster.quit) pause_button = Button (fenster, text="Pause beginnen",fg="white",bg="#b47a0e", command=button_action) pause_end_button = Button (fenster, text="Pause beenden",fg="white",bg="#b47a0e", command=button_action) anweisungs_label = Label(fenster, text="Test") info_label = Label(fenster, text="info") anweisungs_label.grid(row=0, column=2, pady = 20) start_button.grid(row=1, column=1, pady = 20) exit_button.grid(row=1, column=2) pause_button.grid (row=1, column=3) pause_end_button.grid (row=1, column=4) fenster.mainloop() def WebserviceCall():