##### 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 + "" + WebServiceTemplateSTART + ">"
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 + "" + WebServiceTemplateSTOP + ">"
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():