;EVergabe.au3

Func _start_Evergabe()
	Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0")

	Global $aHosts[2][2]
	$aHosts[1][0] = "www.evergabe.telekom.de"
	$aHosts[1][1] = _WinHttpConnect($hSession, $aHosts[1][0])
	Global $sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF

	$sUsername = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Benutzer", "xxx")
	$sPasswort = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Passwort", "xxx")


	$sRetrunLogin = _EV_Login($sUsername, $sPasswort)
	If $sRetrunLogin = "True" Then
;~ 		ConsoleWrite("Login Erfolgreich" & @CRLF)
		_Write_to_Console("Login Erfolgreich")
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call", "https://www.evergabe.telekom.de/")
;~ 		ClipPut($sHTML)
;~ 		MsgBox(64,"erstmal","fertig")

		$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
		If StringMid($sSMnr, 1, 1) = 0 Then
;~ 			_EV_Contract_Pos_add($sSMnr)
			_EV_Insert_Pos($sSMnr)
			_Write_to_Console("Positionen sind eingetragen")
;~ 			_EV_GET_DetailsID_Info($sDetailsID)
			MsgBox(64, "Fertig", "Fertig es ist alles eingetragen!")
		Else
;~ 			_EV_Contract_Pos_add("0" & $sSMnr)
			_EV_Insert_Pos($sSMnr)
;~ 			_EV_GET_DetailsID_Info($sDetailsID)
			_Write_to_Console("Positionen sind eingetragen")
			MsgBox(64, "Fertig", "Fertig es ist alles eingetragen!")
		EndIf

	Else
		MsgBox(64, "Login Fehler", "Login war nicht erfolgreich")
	EndIf
EndFunc   ;==>_start_Evergabe

Func _start_Evergabe_Neu()
	Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:145.0) Gecko/20100101 Firefox/145.0")

	Global $aHosts[2][2]
	$aHosts[1][0] = "www.evergabe.telekom.de"
	$aHosts[1][1] = _WinHttpConnect($hSession, $aHosts[1][0])
	Global $sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF

	$sEV_Username = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Benutzer", "xxx")
	$sEV_Passwort = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Passwort", "xxx")

	$sDatum = GUICtrlRead($kopf_tab_txt_datum)
	$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
	$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
	$sAbrufNR = GUICtrlRead($kopf_tab_txt_abrufnr)
	$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
	$sVertrag = GUICtrlRead($kopf_tab_chb_vertrag)
	$sStartDatum = GUICtrlRead($kopf_tab_datum_start)
	$sEndDatum = GUICtrlRead($kopf_tab_txt_datum_ende)

	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Datum", $sDatum)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", $sBaustelle)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", $sBauabschnitt)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AbrufNr", $sAbrufNR)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", $sSMnr)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Vertrag", $sVertrag)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", $sStartDatum)
	IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", $sEndDatum)

	$iReturn = _EV_Login($sEV_Username, $sEV_Passwort)

	If $iReturn = "True" Then
		_Write_to_Console("Login Erfolgreich")
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call", "https://www.evergabe.telekom.de/")

		$aInhalt = _GUIListViewEx_ReadToArray($LV_Aufm, 1)
		If IsArray($aInhalt) Then

			If GUICtrlRead($kopf_TAB_txt_detailsID) = "" Then
				; Positionen nach SM Eintragen
				_EV_Pos_eintragen($aInhalt)
			Else
				; Positionen nach DetailsID eintragen
				_EV_Pos_eintragen_Bestellung($aInhalt)
			EndIf



			_Write_to_Console("Fertig mit Eintragen!")
		Else
			_Write_to_Console("AufmaßListe ist leer")
		EndIf

	Else
		_Write_to_Console("Login Fehler Logindaten überprüfen")
	EndIf
EndFunc   ;==>_start_Evergabe_Neu

Func _EV_Pos_eintragen_Bestellung($aInhalt)
	Global $sDetailsID
	$sDetailsID = GUICtrlRead($kopf_TAB_txt_detailsID)
	$sSMnr = IniRead(@ScriptDir & "\conf.ini", "Kopfdaten", "SMNr", "")
	If IsArray($aInhalt) Then
		If $sDetailsID <> "" Then
			_Write_to_Console("Öffne DetailsID : | " & StringReplace($sDetailsID, "&c=1", ""))
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/purchase-order/details?id=" & $sDetailsID & "&c=1", "https://www.evergabe.telekom.de/")
			If Not StringInStr($sHTML, 'LERF nicht möglich') Then
				$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/purchase-order/details?id=" & $sDetailsID & "&c=1")
				$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/create-sheet?c=1&id=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/sheet/index?c=1&importId=" & $sDetailsID)     ;evtl nicht direkt eingabe
				$sCSRF = _EV_GET_CSRF($sHTML)
				If $sCSRF = "False" Then
					_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
				Else
					$sLeist_zeitv = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", "")
					$sLeist_zeitb = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", "")
;~ 					_Write_to_Console($sLeist_zeitv)
;~ 					_Write_to_Console($sLeist_zeitb)
					; mit UrlEncode
					$sLeistungsort1 = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "")
					If StringLen($sLeistungsort1) >= 25 Then
						$sLeistungsortso = $sLeistungsort1
						$sLeistungsort1 = StringMid($sLeistungsort1, 1, 25)
					Else
						$sLeistungsortso = $sLeistungsort1
					EndIf

;~ 					_Write_to_Console($sLeistungsort1)
					$sLeistungsort = _URIEncode($sLeistungsort1)     ; max 25 Zeichen
					$sSachbearbeiter = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Name", "xxx")
					If StringLen($sSachbearbeiter) >= 12 Then
						$sSachbearbeiter_temp = $sSachbearbeiter
						$sSachbearbeiter = StringMid($sSachbearbeiter_temp, 1, 12)
;~ 					$sSachbearbeiter =  $sSachbearbeiter_temp
					EndIf
;~ 					_Write_to_Console($sSachbearbeiter)

					$sBauabschnitt = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "")

					If StringLen($sBauabschnitt) >= 40 Then
						$sBauabschnitt = StringMid($sBauabschnitt, 1, 39)
					EndIf
;~ 					_Write_to_Console($sBauabschnitt)
					$sBauabschnitt = _URIEncode($sBauabschnitt)

					$sKurztext = "SM "     ; max 40 Zeichen
					$sKurztext = StringReplace($sKurztext, "SM ", "SM " & $sSMnr)
					If StringLen($sKurztext) >= 40 Then
						$sKurztext = StringMid($sKurztext, 1, 39)
					EndIf
;~ 					_Write_to_Console($sKurztext)
					$sKurztext = _URIEncode($sKurztext)
					; mit UrlEncode
					$s_SMnrINi = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", $sSMnr)
					$sLangtext = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "") & " " & IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "") & " " & "SM " & $s_SMnrINi & @CRLF & GUICtrlRead($tab_plan_ed_SListe)
;~ 				$sLangtext = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "") & " " & IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "") & " " & "SM " & $sSMnr; alt
;~ 					_Write_to_Console($sKurztext)
					$sLangtext = _URIEncode($sLangtext)

;~ 					MsgBox(64, "Langtext bestellung",  $sLangtext)


					$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF
;~ 					$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&description=" & $sLangtext & "&save+sheets="
					If GUICtrlRead($kopf_TAB_rd_teilauf) = $GUI_CHECKED Then
						$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="
					EndIf

					If GUICtrlRead($kopf_TAB_rd_schluss) = $GUI_CHECKED Then
						$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=X&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="
					Else
						$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="

					EndIf
					$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet/create-sheet?c=1&id=" & $sDetailsID, "https://www.evergabe.telekom.de/sheet/create-sheet?c=1&id=" & $sDetailsID, $sPost, $sHeader, True)
;~ 					MsgBox(64, "", "texte anschauen v")
;~ 				_Write_to_Console($aHTML[0])
;~ 				_Write_to_Console($aHTML[1])
;~ 				_DebugArrayDisplay($aHTML)


					If IsArray($aHTML) Then
						_Write_to_Console("Leb Angelegt! ")
;~ 						_Write_to_Console($aHTML[2])
;~ 					https://www.evergabe.telekom.de/sheet/header?c=1&sheetId=0007873547
						$aSheetID = StringRegExp($aHTML[2], 'sheetId=(.*)', 3)     ;alt
						If IsArray($aSheetID) Then
							$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/header?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe
							Global $iSheetID = $aSheetID[0]
							For $i = 0 To UBound($aInhalt) - 1
								$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe

								$sCSRF = _EV_GET_CSRF($sHTML)
								If $sCSRF = "False" Then
;~ 								GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
									_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
								Else
									$sPositionNr = $aInhalt[$i][1]

									$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5Bnumber%5D=" & $sPositionNr & "&insertPosition=0"
									$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
									If IsArray($aHTML) Then
										If StringInStr($aHTML[1], "Nullen können weggelassen") Then
											_Write_to_Console($aInhalt[$i][1] & "|" & $aInhalt[$i][8] & " keine gültige Positionen")
;~ 										ClipPut($aInhalt[$i][1])
;~ 										MsgBox(64, "keine gültige Pos", $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
										Else


											$aLocationlink = StringRegExp($aHTML[2], 'telekom.de(.*)', 3)
											If IsArray($aLocationlink) Then
												$aPosID = StringRegExp($aLocationlink[0], 'positionId=([^&]+)', 3)
												If IsArray($aPosID) Then
													$sHTML = _send_WinhttpS_GET($aHosts[1][1], $aLocationlink[0], "")     ;notwendig für neues Token
													$sCSRF = _EV_GET_CSRF($sHTML)
													If $sCSRF = "False" Then
;~ 													GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
;~ 											_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
													Else
														$iSheetID = $aSheetID[0]
														$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/create?insertPosition=0&positionId=" & $aPosID[0] & "&c=1&sheetId=" & $iSheetID, "")
														If $bDebug = "True" Then
															FileDelete(@ScriptDir & "\test_temp_body.txt")
															FileWrite(@ScriptDir & "\test_temp_body.txt", $sHTML)
															MsgBox(64, "show Body", "")
														EndIf
;~ 											$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=MFG+A536&ServicePosition%5B0%5D%5BformulaSymbol%5D=ME&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=2&ServicePosition%5B0%5D%5BformulaValueLength%5D=2&ServicePosition%5B0%5D%5BlongText%5D=Rohre+auslegen&ServicePosition%5B0%5D%5Bid%5D=" & $aPosID[0] & "&clientId=1&sheetId=" & $aSheetID[0] & "&insertPosition=0&save="
;~ 											$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
;~ 											FileWrite(@ScriptDir&"\test_temp_head.txt",$aHTML[0])
														If StringInStr($sHTML, "Pflichtbe") And $aInhalt[$i][9] = "" Then
;~ 												FileWrite(@ScriptDir&"\begründung_notwendig.txt",$sHTML)
;~ 												_Write_to_Console($aInhalt[$i][1] & " | " & $aInhalt[$i][8] & "| Begründung notwendig")
															FileWrite(@ScriptDir & "\begründung_notwendig_neu.txt", $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & @CRLF)
;~ 												MsgBox(64, $aInhalt[$i][1], $aInhalt[$i][8] & "| Begründung notwendig")

														EndIf
														If StringInStr($sHTML, "Pflichtbe") Then
															FileWrite(@ScriptDir & "\begründung_notwendig.txt", $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & @CRLF)
;~ 												MsgBox(64,$aInhalt[$i][1],$aInhalt[$i][8]&"| Begründung notwendig")

														EndIf

;~ 											MsgBox(64,"","schau an")
;~ 											_ArrayDisplay($aHTML)

														Select
															Case $aInhalt[$i][7] = "ST"
																;bei Stück
																_EV_ADD_ST_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 													_EV_ADD_ST_insert($aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF)
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
															Case $aInhalt[$i][7] = "M"
																; bei Meter
																_EV_ADD_M_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
															Case $aInhalt[$i][7] = "M2"
																; bei m2
																_EV_ADD_M2_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aInhalt[$i][4], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
															Case $aInhalt[$i][7] = "M3"
																;m3
																_EV_ADD_M3_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aInhalt[$i][4], $aInhalt[$i][5], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
															Case $aInhalt[$i][7] = "STD"
																; STD
																_EV_ADD_STD_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
															Case $aInhalt[$i][7] = "LE"
																; LE
																_EV_ADD_LE_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														EndSelect
;~ 											GUICtrlSetData($lbl_status, $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & "... Eintrag  hinzugefügt!")
;~ 											_Write_to_Console($aInhalt[$i][1] & "|" & $aInhalt[$i][8] & "... Eintrag  hinzugefügt!")
													EndIf
												EndIf
											Else
												MsgBox(64, "kein Location link vorhanden", "kein Location link vorhanden")
											EndIf
										EndIf
									EndIf
;~ 								MsgBox(64, "Pos insert check", "")
								EndIf

							Next

						Else
							_Write_to_Console("sheetID link=> " & $aHTML[2] & "Pattern: " & "sheetId=(.*)")
						EndIf
;~ 					MsgBox(64, "LerF Fehler__", "__Bitte Lerf Annehmen!!!!")
					EndIf


				EndIf
			Else

			EndIf
		EndIf
	Else
		_Write_to_Console("kein Aufmaß gefunden!")
	EndIf
EndFunc   ;==>_EV_Pos_eintragen_Bestellung

Func _EV_Pos_eintragen($aInhalt)
	Global $sDetailsID
	$sSMnr = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", "")
	If IsArray($aInhalt) Then
		_Write_to_Console("Suche SM-Nr: | " & $sSMnr)
		$aArrayList = _EV_Search_SM($sSMnr)
;~ 		_DebugArrayDisplay($aArrayList)
		If UBound($aArrayList) > 1 Then
			$sDetailsID = _create_Gui_Ausw($aArrayList)
		Else
			$sDetailsID = $aArrayList[0][3]
		EndIf
		_Write_to_Console("DetailsID: " & $sDetailsID)


		_Write_to_Console("Öffne DetailsID : | " & StringReplace($sDetailsID, "&c=1", ""))
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1", "https://www.evergabe.telekom.de/")

		If Not StringInStr($sHTML, 'LERF nicht möglich') Then
			;LEB anlegen
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/create-sheet?c=1&id=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/sheet/index?c=1&importId=" & $sDetailsID)     ;evtl nicht direkt eingabe
			$sCSRF = _EV_GET_CSRF($sHTML)
			If $sCSRF = "False" Then
				_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
			Else

				$sLeist_zeitv = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", "")
				$sLeist_zeitb = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", "")
				; mit UrlEncode
				$sLeistungsort1 = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "")
				If StringLen($sLeistungsort1) >= 25 Then
					$sLeistungsortso = $sLeistungsort1
					$sLeistungsort1 = StringMid($sLeistungsort1, 1, 25)
				Else
					$sLeistungsortso = $sLeistungsort1
				EndIf
				$sLeistungsort = _URIEncode($sLeistungsort1)     ; max 25 Zeichen
				$sSachbearbeiter = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Name", "xxx")
				If StringLen($sSachbearbeiter) >= 12 Then
					$sSachbearbeiter_temp = $sSachbearbeiter
					$sSachbearbeiter = StringMid($sSachbearbeiter_temp, 1, 12)
;~ 					$sSachbearbeiter =  $sSachbearbeiter_temp
				EndIf
;~ 				MsgBox(64, "", $sSachbearbeiter)
				; mit UrlEncode


				$sBauabschnitt = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "")

				If StringLen($sBauabschnitt) >= 40 Then
					$sBauabschnitt = StringMid($sBauabschnitt, 1, 39)
				EndIf
				$sBauabschnitt = _URIEncode($sBauabschnitt)

				$sKurztext = "SM "     ; max 40 Zeichen
				$sKurztext = StringReplace($sKurztext, "SM ", "SM " & $sSMnr)
				If StringLen($sKurztext) >= 40 Then
					$sKurztext = StringMid($sKurztext, 1, 39)
				EndIf
				$sKurztext = _URIEncode($sKurztext)
				; mit UrlEncode
				$s_SMnrINi = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", $sSMnr)
				$sLangtext = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "") & " " & IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "") & " " & "SM " & $s_SMnrINi & @CRLF & GUICtrlRead($tab_plan_ed_SListe)
;~ 				$sLangtext = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "") & " " & IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "") & " " & "SM " & $sSMnr; alt
				$sLangtext = _URIEncode($sLangtext)

				Sleep(1000)
;~ 				MsgBox(64, "Langtext",  $sLangtext)
				$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF & "Origin: https://www.evergabe.telekom.de" & @CRLF & "Upgrade-Insecure-Requests: 1" & @CRLF & "Sec-Fetch-Dest: document" & @CRLF & "Sec-Fetch-Mode: navigate" & @CRLF & "Sec-Fetch-Site: same-origin" & @CRLF & "Sec-Fetch-User: ?1" & @CRLF

				If GUICtrlRead($kopf_TAB_rd_teilauf) = $GUI_CHECKED Then
					$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="
				EndIf

				If GUICtrlRead($kopf_TAB_rd_schluss) = $GUI_CHECKED Then
					$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=X&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="
				Else
					$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&BapiEssr%5Bdescription%5D=" & $sLangtext & "&save+sheets="
				EndIf

;~ 				_Write_to_Console($sPost)
;~ 				ConsoleWrite($sPost)
;~ 				MsgBox(64, "stop", "stop")

				$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet/create-sheet?c=1&iid=" & $sDetailsID, "https://www.evergabe.telekom.de/sheet/create-sheet?c=1&iid=" & $sDetailsID, $sPost, $sHeader, True)
;~ 				_Write_to_Console($aHTML[0])
;~ 				_Write_to_Console($aHTML[1])
;~ 				_DebugArrayDisplay($aHTML)
;~ 				MsgBox(64, "stop", "stop")
				If IsArray($aHTML) Then
					_Write_to_Console("Leb Angelegt! ")
					_Write_to_Console($aHTML[2])
;~ 					https://www.evergabe.telekom.de/sheet/header?c=1&sheetId=0007873547
					$aSheetID = StringRegExp($aHTML[2], 'sheetId=(.*)', 3)     ;alt
					If IsArray($aSheetID) Then
						$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/header?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe
						Global $iSheetID = $aSheetID[0]
						For $i = 0 To UBound($aInhalt) - 1
							$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe

							$sCSRF = _EV_GET_CSRF($sHTML)
							If $sCSRF = "False" Then
;~ 								GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
								_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
							Else
								$sPositionNr = $aInhalt[$i][1]

								$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5Bnumber%5D=" & $sPositionNr & "&insertPosition=0"
								$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
								If IsArray($aHTML) Then
									If StringInStr($aHTML[1], "Nullen können weggelassen") Then
										_Write_to_Console($aInhalt[$i][1] & "|" & $aInhalt[$i][8] & " keine gültige Positionen")
;~ 										ClipPut($aInhalt[$i][1])
;~ 										MsgBox(64, "keine gültige Pos", $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
									Else


										$aLocationlink = StringRegExp($aHTML[2], 'telekom.de(.*)', 3)
										If IsArray($aLocationlink) Then
											$aPosID = StringRegExp($aLocationlink[0], 'positionId=([^&]+)', 3)
											If IsArray($aPosID) Then
												$sHTML = _send_WinhttpS_GET($aHosts[1][1], $aLocationlink[0], "")     ;notwendig für neues Token
												$sCSRF = _EV_GET_CSRF($sHTML)
												If $sCSRF = "False" Then
;~ 													GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
;~ 											_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
												Else
													$iSheetID = $aSheetID[0]
													$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/create?insertPosition=0&positionId=" & $aPosID[0] & "&c=1&sheetId=" & $iSheetID, "")
													If $bDebug = "True" Then
														FileDelete(@ScriptDir & "\test_temp_body.txt")
														FileWrite(@ScriptDir & "\test_temp_body.txt", $sHTML)
														MsgBox(64, "show Body", "")
													EndIf
;~ 											$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=MFG+A536&ServicePosition%5B0%5D%5BformulaSymbol%5D=ME&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=2&ServicePosition%5B0%5D%5BformulaValueLength%5D=2&ServicePosition%5B0%5D%5BlongText%5D=Rohre+auslegen&ServicePosition%5B0%5D%5Bid%5D=" & $aPosID[0] & "&clientId=1&sheetId=" & $aSheetID[0] & "&insertPosition=0&save="
;~ 											$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
;~ 											FileWrite(@ScriptDir&"\test_temp_head.txt",$aHTML[0])
													If StringInStr($sHTML, "Pflichtbe") And $aInhalt[$i][9] = "" Then
;~ 												FileWrite(@ScriptDir&"\begründung_notwendig.txt",$sHTML)
;~ 												_Write_to_Console($aInhalt[$i][1] & " | " & $aInhalt[$i][8] & "| Begründung notwendig")
														FileWrite(@ScriptDir & "\begründung_notwendig_neu.txt", $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & @CRLF)
;~ 												MsgBox(64, $aInhalt[$i][1], $aInhalt[$i][8] & "| Begründung notwendig")

													EndIf
													If StringInStr($sHTML, "Pflichtbe") Then
														FileWrite(@ScriptDir & "\begründung_notwendig.txt", $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & @CRLF)
;~ 												MsgBox(64,$aInhalt[$i][1],$aInhalt[$i][8]&"| Begründung notwendig")

													EndIf

;~ 											MsgBox(64,"","schau an")
;~ 											_ArrayDisplay($aHTML)

													Select
														Case $aInhalt[$i][7] = "ST"
															;bei Stück
															_EV_ADD_ST_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 													_EV_ADD_ST_insert($aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF)
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														Case $aInhalt[$i][7] = "M"
															; bei Meter
															_EV_ADD_M_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8]) ; alt
;~ 															_EV_ADD_M_insert($aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														Case $aInhalt[$i][7] = "M2"
															; bei m2
															_EV_ADD_M2_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aInhalt[$i][4], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														Case $aInhalt[$i][7] = "M3"
															;m3
															_EV_ADD_M3_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][2], $aInhalt[$i][3], $aInhalt[$i][4], $aInhalt[$i][5], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														Case $aInhalt[$i][7] = "STD"
															; STD
															_EV_ADD_STD_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
														Case $aInhalt[$i][7] = "LE"
															; LE
															_EV_ADD_LE_insert($i, $aInhalt[$i][0], $aInhalt[$i][9], $aInhalt[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aInhalt[$i][1] & "|" & $aInhalt[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aInhalt[$i][1] & " "& $aInhalt[$i][0] " hinzugefügt!")
													EndSelect
;~ 											GUICtrlSetData($lbl_status, $aInhalt[$i][1] & "|" & $aInhalt[$i][8] & "... Eintrag  hinzugefügt!")
;~ 											_Write_to_Console($aInhalt[$i][1] & "|" & $aInhalt[$i][8] & "... Eintrag  hinzugefügt!")
												EndIf
											EndIf
										Else
											MsgBox(64, "kein Location link vorhanden", "kein Location link vorhanden")
										EndIf
									EndIf
								EndIf
;~ 								MsgBox(64, "Pos insert check", "")
							EndIf

						Next

					Else
						_Write_to_Console("sheetID link=> " & $aHTML[2] & " Pattern: " & "sheetId=(.*)")
					EndIf
				EndIf

			EndIf
		Else
			MsgBox(64, "LerF Fehler", "Bitte Lerf Annehmen!!!!")
		EndIf
	Else
		_Write_to_Console("kein Aufmaß gefunden!")
	EndIf
EndFunc   ;==>_EV_Pos_eintragen

Func _EV_GET_DetailsID_Info($sDetailsIDPreis)
;~ 	https://www.evergabe.telekom.de
	$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
	$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
	$sAbrufNR = GUICtrlRead($kopf_tab_txt_abrufnr)
	$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
;~ 	FileWrite(@ScriptDir & "\Aufträge2Excel.txt", $txt_smnr & "|" & $txt_abrufnr & "|" & $txt_bauabschnitt & "|" & $iSum & @CRLF)
	$sDateiname = ""
	$sText = ""
	$sDateiname = $sBaustelle & "_" & $sBauabschnitt & "_" & $sSMnr & "_" & $sAbrufNR
	$sDateiname = StringReplace($sDateiname, "?", " ")
	$sDateiname = StringReplace($sDateiname, "*", " ")
	$sDateiname = StringReplace($sDateiname, "<", " ")
	$sDateiname = StringReplace($sDateiname, ">", " ")
	$sDateiname = StringReplace($sDateiname, ",", " ")
	$sDateiname = StringReplace($sDateiname, "\", " ")
	$sDateiname = StringReplace($sDateiname, "+", " ")
	$sDateiname = StringReplace($sDateiname, ":", " ")
	$sDateiname = StringReplace($sDateiname, "=", " ")
	$sDateiname = StringReplace($sDateiname, "/", " ")
	$sDateiname = StringReplace($sDateiname, '"', " ")
	$sDateiname = StringReplace($sDateiname, ";", " ")
	$sDateiname = StringReplace($sDateiname, "[", " ")
	$sDateiname = StringReplace($sDateiname, "]", " ")
	$sDateiname = StringReplace($sDateiname, "[", " ")
	$sDateiname = StringReplace($sDateiname, "{", " ")
	$sDateiname = StringReplace($sDateiname, "}", " ")
	$sDateiname = StringReplace($sDateiname, "|", " ")
	$sDateiname = StringReplace($sDateiname, " ", "_")
	$sDateiname = StringReplace($sDateiname, "__", "_")

	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsIDPreis, "https://www.evergabe.telekom.de/framework-agreement-call")
	$aPages = StringRegExp($sHTML, 'importId=\d+&page=([^"]+)', 3)
	If IsArray($aPages) Then
		$iMax = _ArrayMax($aPages)
		Dim $aLEBP[1]
		Dim $aShID[1]
		For $iPage = 1 To $iMax
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsIDPreis & "&page=" & $iPage, "https://www.evergabe.telekom.de/framework-agreement-call")
			$aLEBPreis = StringRegExp($sHTML, 'Wert LEB: ([^ ]+)€', 3)
			$aSheetIDs = StringRegExp($sHTML, '€</span></div></td><td>([^<]+)</td><td>', 3)

			For $iiii = 0 To UBound($aLEBPreis) - 1
				_ArrayAdd($aLEBP, $aLEBPreis[$iiii])
				_ArrayAdd($aShID, $aSheetIDs[$iiii])
			Next
		Next
		For $i = 0 To UBound($aShID) - 1
			If $aShID[$i] = $iSheetID Then
				ConsoleWrite("##########" & @CRLF)
				ConsoleWrite($sDateiname & " => " & $aLEBP[$i] & @CRLF)
				ConsoleWrite("https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aShID[$i] & "&c=1" & @CRLF)
				ConsoleWrite("##########" & @CRLF)

				$sText_log = $sDateiname & " => " & $aLEBP[$i] & @CRLF & "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aShID[$i] & "&c=1" & @CRLF
				FileWrite(@ScriptDir & "\daten\_LOG_E-Vergabe.txt", $sText_log & @CRLF)

				$txt_bauabschnitt = $sBaustelle & "_" & $sBauabschnitt
				$iSum = $aLEBP[$i]
				FileWrite(@ScriptDir & "\daten\Aufträge2Excel.txt", $sSMnr & "|" & $sAbrufNR & "|" & $txt_bauabschnitt & "|" & $iSum & @CRLF)


				$sText = $sDateiname & " => " & $aLEBP[$i]
				GUICtrlSetData($logs_tab_ed_logs, GUICtrlRead($logs_tab_ed_logs) & @CRLF & $sText)
				$sText = "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aShID[$i] & "&c=1"
				GUICtrlSetData($logs_tab_ed_logs, GUICtrlRead($logs_tab_ed_logs) & @CRLF & $sText)
				_GUICtrlEdit_LineScroll($logs_tab_ed_logs, 0, _GUICtrlEdit_GetLineCount($logs_tab_ed_logs))


;~ 			;https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=0006740712&c=1
			EndIf
		Next
	Else
		$aLEBPreis = StringRegExp($sHTML, 'Wert LEB: ([^ ]+)€', 3)
		$aSheetIDs = StringRegExp($sHTML, '€</span></div></td><td>([^<]+)</td><td>', 3)

		For $i = 0 To UBound($aSheetIDs) - 1
			If $aSheetIDs[$i] = $iSheetID Then
				ConsoleWrite("##########" & @CRLF)
				ConsoleWrite($sDateiname & " => " & $aLEBPreis[$i] & @CRLF)
				ConsoleWrite("https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aSheetIDs[$i] & "&c=1" & @CRLF)
				ConsoleWrite("##########" & @CRLF)

				$sText_log = $sDateiname & " => " & $aLEBPreis[$i] & @CRLF & "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aSheetIDs[$i] & "&c=1" & @CRLF
				FileWrite(@ScriptDir & "\daten\_LOG_E-Vergabe.txt", $sText_log & @CRLF)

				$txt_bauabschnitt = $sBaustelle & "_" & $sBauabschnitt
				$iSum = $aLEBPreis[$i]
				FileWrite(@ScriptDir & "\daten\Aufträge2Excel.txt", $sSMnr & "|" & $sAbrufNR & "|" & $txt_bauabschnitt & "|" & $iSum & @CRLF)

				$sText = $sDateiname & " => " & $aLEBPreis[$i]
				GUICtrlSetData($logs_tab_ed_logs, GUICtrlRead($logs_tab_ed_logs) & @CRLF & $sText)
				$sText = "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $aSheetIDs[$i] & "&c=1"
				GUICtrlSetData($logs_tab_ed_logs, GUICtrlRead($logs_tab_ed_logs) & @CRLF & $sText)
				_GUICtrlEdit_LineScroll($logs_tab_ed_logs, 0, _GUICtrlEdit_GetLineCount($logs_tab_ed_logs))
				;https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=0006740712&c=1
			EndIf
		Next
	EndIf

EndFunc   ;==>_EV_GET_DetailsID_Info

Func _EV_Login($sUsername, $sPasswort)
	$sHTML = _send_Winhttp_GET($aHosts[1][1], "/", "https://www.evergabe.telekom.de/")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64, "Startseite", "Quellcode")
	$aCSRF = StringRegExp($sHTML, '_csrf" value="([^=]+)', 3)

	If IsArray($aCSRF) Then
		Global $sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF & "Origin: https://www.evergabe.telekom.de" & @CRLF
		;_csrf=3Ufeg_ufz3Ppp6mfgHBrH2YDc_XRBM54nglmoJ3FsHySLonRzturNNHz0OjWP15cDzEYmJ1c_BTaeTeRroT6OQ==&LoginForm[username]=Ufuk Tool&LoginForm[password]=Ufuk2021!
		;_csrf=3Ufeg_ufz3Ppp6mfgHBrH2YDc_XRBM54nglmoJ3FsHySLonRzturNNHz0OjWP15cDzEYmJ1c_BTaeTeRroT6OQ%3D%3D&LoginForm%5Busername%5D=Ufuk+Tool&LoginForm%5Bpassword%5D=Ufuk2021%21


		$sPosu = "_csrf=" & $aCSRF[0] & "%3D%3D&LoginForm%5Busername%5D=" & _URIEncode($sUsername) & "&LoginForm%5Bpassword%5D=" & _URIEncode($sPasswort)
		$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/public/login", "https://www.evergabe.telekom.de/", $sPosu, "", True)
;~ 		_DebugArrayDisplay($aHTML)
;~ 		ClipPut($sPosu)
;~ 		MsgBox(64, $sPosu, "")
		If IsArray($aHTML) Then

			If StringInStr($aHTML[1], 'Abmelden</a>') Then
				Return "True"
			Else
				Return "False"
			EndIf


		EndIf
	EndIf
	_Write_to_Console("Seitenfehler/Check Internetseite")
EndFunc   ;==>_EV_Login

Func _EV_Suche_Status_All($sStatus)
	;Status Alle max 10
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=-1
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=NEU
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=ANGENOMME
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=AUSGEF%C3%9CHRT
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=ABGESCHLOSSEN
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=GEAENDERT
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=STORNO
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=LEB_FREIGEGEBEN
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=LEB_ABGELEHNT
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=LEB_IN_BEARBEITUNG
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=LEB_AKZEPTIERT
;~ 	/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=10&OrderRecallSearch%5Bdocument_state%5D=LEB_rbu

;~ 	Dim $aStatus[12] = ["-1","NEU","ANGENOMME","AUSGEF%C3%9CHRT","ABGESCHLOSSEN","GEAENDERT","STORNO","LEB_FREIGEGEBEN","LEB_ABGELEHNT","LEB_IN_BEARBEITUNG","LEB_AKZEPTIERT","LEB_rbu"]

	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/index?OrderRecallSearch%5Bhead_line%5D=&OrderRecallSearch%5Bdocument_no%5D=&OrderRecallSearch%5Bincoming_date%5D=&OrderRecallSearch%5Border_date%5D=&OrderRecallSearch%5Bgeneral_agreement_id%5D=&OrderRecallSearch%5Bdocument_state%5D=" & $sStatus, "https://www.evergabe.telekom.de")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64,"","")
	$aAnzBelgeGesamt = StringRegExp($sHTML, '(\d+)</b> Belegen', 3)
;~ 	_ArrayDisplay($aAnzBelgeGesamt)
	If IsArray($aAnzBelgeGesamt) Then
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/index?OrderRecallSearch%5Blimit%5D=" & $aAnzBelgeGesamt[0] & "&OrderRecallSearch%5Bdocument_state%5D=" & $sStatus, "https://www.evergabe.telekom.de/")
;~ 		ClipPut($sHTML)
;~ 		MsgBox(0, "Status:" & $sStatus & " Belege:" & $aAnzBelgeGesamt[0], "Status:" & $sStatus & " Belege:" & $aAnzBelgeGesamt[0])
;~ 		;Abrufliste gefhilter nach Status
		;auslesen Titel
		;array's
		$aTitel = _EV_Abrufliste_GET_Title($sHTML)
		$aSMnr = _EV_Abrufliste_GET_Bedarfnr($sHTML) ;SMnr
		$aBelegEinDatum = _EV_Abrufliste_GET_Belegeingang($sHTML) ;Eingang E-Vergabe
		$aBelegNr42 = _EV_Abrufliste_GET_Belegnr($sHTML) ;42Nr
		$aAusfuehrungsfrist = _EV_Abrufliste_GET_Ausfuehrungsfrist($sHTML) ;Ausführungsfrist
		$aDetailID = _EV_Abrufliste_GET_DetailsID($sHTML) ;DetailsID intern für E-Vergabe
		$aRV = _EV_Abrufliste_GET_RV($sHTML) ;Rahmenvertrag
		$aStatus = _EV_Abrufliste_GET_Status($sHTML) ;Status Angenommen Abgelehnt usw.

;~ 		Dim $aListe[UBound($aTitel)][8]
;~ 		For $i = 0 to UBound($aTitel) - 1
;~ 			$aListe[$i][0] = $aRV[$i]
;~ 			$aListe[$i][1] = $aSMnr[$i]
;~ 			$aListe[$i][2] = $aTitel[$i]
;~ 			$aListe[$i][3] = $aBelegNr42[$i]
;~ 			$aListe[$i][4] = $aBelegEinDatum[$i]
;~ 			$aListe[$i][5] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][6] = $aDetailID[$i]
;~ 			$aListe[$i][7] = $aStatus[$i]
;~ 		Next

		Dim $aListe[UBound($aTitel)][10]
		For $i = 0 To UBound($aTitel) - 1
			$aTitel[$i] = StringReplace($aTitel[$i], @CR, ' ')
			$aTitel[$i] = StringReplace($aTitel[$i], @LF, ' ')
			$aListe[$i][0] = $aSMnr[$i]
			$aListe[$i][1] = $aBelegNr42[$i]
			$aListe[$i][2] = $aDetailID[$i]
			$aListe[$i][3] = ""
			$aListe[$i][4] = $aTitel[$i]
			$aListe[$i][5] = $aRV[$i]
			$aListe[$i][6] = $aBelegEinDatum[$i]
			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
			$aListe[$i][8] = ""
			$aListe[$i][9] = $aStatus[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
;~ 			$aListe[$i][7] = $aAusfuehrungsfrist[$i]
			ConsoleWrite($aListe[$i][0] & "|" & $aListe[$i][1] & "|" & $aListe[$i][2] & "|" & $aListe[$i][3] & "|" & $aListe[$i][4] & "|" & $aListe[$i][5] & "|" & $aListe[$i][6] & "|" & $aListe[$i][7] & "|" & $aListe[$i][8] & "|" & $aListe[$i][9] & @CRLF)
		Next

		Return $aListe
;~ 		_ArrayDisplay($aListe)
	EndIf
EndFunc   ;==>_EV_Suche_Status_All

;auch noch ändern.
Func _EV_Insert_Pos($sSMnr)
	Global $sDetailsID
	; Hole Listview in Array
	$aInhalt = _GUIListViewEx_ReadToArray($LV_Aufm, 1)
;~ 	_DebugArrayDisplay($aAufmaListe)
;~ 	$aInhalt = _GUIListViewEx_ReturnArray($iLV_Left_Index, 3)
;~ 	_DebugArrayDisplay($aInhalt)
	If IsArray($aInhalt) Then


;~ 	_DebugArrayDisplay($aInhalt)

		;entferne Leere Zeilen vom Array
		$aAufmaListeString = _ArrayToString($aInhalt, "|")
		$aTest = StringSplit($aAufmaListeString, @LF)
		Dim $aListeImport[0][13]
		For $iii = 1 To UBound($aTest) - 1
			If StringInStr($aTest[$iii], "|||||") Then
			Else
				_ArrayAdd($aListeImport, $aTest[$iii])
			EndIf
		Next
;~ 	_DebugArrayDisplay($aListeImport)

		If GUICtrlRead($kopf_TAB_txt_detailsID) = "" Then
			;suche Aufmaß nach SMnr:
			_Write_to_Console("Suche SM-Nr: | " & $sSMnr)
			$aArrayList = _EV_Search_SM($sSMnr)
;~ 		_DebugArrayDisplay($aArrayList)
			If UBound($aArrayList) > 1 Then
;~ 			ConsoleWrite(UBound($aArrayList) & @CRLF)
				$sDetailsID = _create_Gui_Ausw($aArrayList)
;~ 			MsgBox(64, "", $sDetailsID_Return)
			Else
				$sDetailsID = $aArrayList[0][3]
			EndIf
		Else
			$sDetailsID = GUICtrlRead($kopf_TAB_txt_detailsID)
		EndIf




		_Write_to_Console("Öffne DetailsID : | " & StringReplace($sDetailsID, "&c=1", ""))
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1", "https://www.evergabe.telekom.de/")

		If Not StringInStr($sHTML, 'LERF nicht möglich') Then
			;LEB anlegen
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/create-sheet?c=1&id=" & $sDetailsID, "https://www.evergabe.telekom.de/" & "/sheet/index?c=1&importId=" & $sDetailsID)     ;evtl nicht direkt eingabe
			$sCSRF = _EV_GET_CSRF($sHTML)
			If $sCSRF = "False" Then
				GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
;~ 				_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
			Else
				$sLeist_zeitv = GUICtrlRead($kopf_tab_datum_start)
				$sLeist_zeitb = GUICtrlRead($kopf_tab_txt_datum_ende)
				; mit UrlEncode
				$sLeistungsort1 = GUICtrlRead($kopf_tab_txt_baustelle)
				If StringLen($sLeistungsort1) >= 25 Then
					$sLeistungsortso = $sLeistungsort1
					$sLeistungsort1 = StringMid($sLeistungsort1, 1, 25)
				Else
					$sLeistungsortso = $sLeistungsort1
				EndIf
				$sLeistungsort = _URIEncode($sLeistungsort1)     ; max 25 Zeichen
				$sSachbearbeiter = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Name", "xxx")
				; mit UrlEncode


				$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)

				If StringLen($sBauabschnitt) >= 40 Then
					$sBauabschnitt = StringMid($sBauabschnitt, 1, 39)
				EndIf
				$sBauabschnitt = _URIEncode($sBauabschnitt)

				$sKurztext = "SM "     ; max 40 Zeichen
				$sKurztext = StringReplace($sKurztext, "SM ", "SM " & $sSMnr)
				If StringLen($sKurztext) >= 40 Then
					$sKurztext = StringMid($sKurztext, 1, 39)
				EndIf
				$sKurztext = _URIEncode($sKurztext)
				; mit UrlEncode
				$sLangtext = GUICtrlRead($kopf_tab_txt_baustelle) & " " & GUICtrlRead($kopf_tab_txt_bauabschnitt) & " " & "SM " & GUICtrlRead($kopf_TAB_txt_smnr)
				$sLangtext = _URIEncode($sLangtext)

				$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF
				$sPost = "_csrf=" & $sCSRF & "%3D%3D&BapiEssr%5Bfinal%5D=&BapiEssr%5Bfinal%5D=&BapiEssr%5Blzvon%5D=" & $sLeist_zeitv & "&BapiEssr%5Blzbis%5D=" & $sLeist_zeitb & "&BapiEssr%5Bdlort%5D=" & $sLeistungsort & "&BapiEssr%5Bsbnaman%5D=" & $sSachbearbeiter & "&BapiEssr%5Btxz01%5D=" & $sBauabschnitt & "&description=" & $sLangtext & "&save+sheets="
				$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet/create-sheet?c=1&id=" & $sDetailsID, "https://www.evergabe.telekom.de/sheet/create-sheet?c=1&id=" & $sDetailsID, $sPost, $sHeader, True)
;~ 					_Write_to_Console($aHTML[0])
;~ 					_Write_to_Console($aHTML[1])
;~ 					_DebugArrayDisplay($aHTML)
				If IsArray($aHTML) Then
;~ 					_Write_to_Console("LEB angelegt.")
					GUICtrlSetData($lbl_status, "LEB angelegt.")
					_Write_to_Console("Leb Angelegt! ")
;~ 						;MsgBox(64, "LEB angelegt schauen", "")
;~ 					_DebugArrayDisplay($aHTML)
					$aSheetID = StringRegExp($aHTML[2], 'sheetId=(.*)', 3)     ;alt
;~ 						$aSheetID = StringRegExp($aHTML[2], 'id=(.*)', 3);neu
					If IsArray($aSheetID) Then
;~ 						_DebugArrayDisplay($aSheetID)
						$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/header?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe
						Global $iSheetID = $aSheetID[0]
						For $i = 0 To UBound($aListeImport) - 1
							$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "")     ;evtl nicht direkt eingabe

							$sCSRF = _EV_GET_CSRF($sHTML)
							If $sCSRF = "False" Then
								GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
;~ 								_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
							Else
								$sPositionNr = $aListeImport[$i][1]

								$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5Bnumber%5D=" & $sPositionNr & "&insertPosition=0"
								$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
								If IsArray($aHTML) Then
									If StringInStr($aHTML[1], "Nullen können weggelassen") Then
										_Write_to_Console($aListeImport[$i][1] & "|" & $aListeImport[$i][8] & " keine gültige Positionen")
;~ 										ClipPut($aListeImport[$i][1])
;~ 										MsgBox(64, "keine gültige Pos", $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
									Else


										$aLocationlink = StringRegExp($aHTML[2], 'telekom.de(.*)', 3)
										If IsArray($aLocationlink) Then
											$aPosID = StringRegExp($aLocationlink[0], 'positionId=([^&]+)', 3)
											If IsArray($aPosID) Then
												$sHTML = _send_WinhttpS_GET($aHosts[1][1], $aLocationlink[0], "")     ;notwendig für neues Token
												$sCSRF = _EV_GET_CSRF($sHTML)
												If $sCSRF = "False" Then
													GUICtrlSetData($lbl_status, "CSRF Fehler Sitzung abgelaufen!")
;~ 											_Write_to_Console("CSRF Fehler Sitzung abgelaufen!")
												Else
													$iSheetID = $aSheetID[0]
													$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/create?insertPosition=0&positionId=" & $aPosID[0] & "&c=1&sheetId=" & $iSheetID, "")
													If $bDebug = "True" Then
														FileDelete(@ScriptDir & "\test_temp_body.txt")
														FileWrite(@ScriptDir & "\test_temp_body.txt", $sHTML)
														MsgBox(64, "show Body", "")
													EndIf
;~ 											$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=MFG+A536&ServicePosition%5B0%5D%5BformulaSymbol%5D=ME&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=2&ServicePosition%5B0%5D%5BformulaValueLength%5D=2&ServicePosition%5B0%5D%5BlongText%5D=Rohre+auslegen&ServicePosition%5B0%5D%5Bid%5D=" & $aPosID[0] & "&clientId=1&sheetId=" & $aSheetID[0] & "&insertPosition=0&save="
;~ 											$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/index?c=1&sheetId=" & $aSheetID[0], "https://www.evergabe.telekom.de/sheet-position/index?c=1&sheetId=" & $aSheetID[0], $sPost, "", True)
;~ 											FileWrite(@ScriptDir&"\test_temp_head.txt",$aHTML[0])
													If StringInStr($sHTML, "Pflichtbe") And $aListeImport[$i][9] = "" Then
;~ 												FileWrite(@ScriptDir&"\begründung_notwendig.txt",$sHTML)
;~ 												_Write_to_Console($aListeImport[$i][1] & " | " & $aListeImport[$i][8] & "| Begründung notwendig")
														FileWrite(@ScriptDir & "\begründung_notwendig_neu.txt", $aListeImport[$i][1] & "|" & $aListeImport[$i][8] & @CRLF)
;~ 												MsgBox(64, $aListeImport[$i][1], $aListeImport[$i][8] & "| Begründung notwendig")

													EndIf
													If StringInStr($sHTML, "Pflichtbe") Then
														FileWrite(@ScriptDir & "\begründung_notwendig.txt", $aListeImport[$i][1] & "|" & $aListeImport[$i][8] & @CRLF)
;~ 												MsgBox(64,$aListeImport[$i][1],$aListeImport[$i][8]&"| Begründung notwendig")

													EndIf

;~ 											MsgBox(64,"","schau an")
;~ 											_ArrayDisplay($aHTML)

													Select
														Case $aListeImport[$i][7] = "ST"
															;bei Stück
															_EV_ADD_ST_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 													_EV_ADD_ST_insert($aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][10], $aPosID[0], $iSheetID, $sCSRF)
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
														Case $aListeImport[$i][7] = "M"
															; bei Meter
															_EV_ADD_M_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][2], $aListeImport[$i][3], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
														Case $aListeImport[$i][7] = "M2"
															; bei m2
															_EV_ADD_M2_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][2], $aListeImport[$i][3], $aListeImport[$i][4], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
														Case $aListeImport[$i][7] = "M3"
															;m3
															_EV_ADD_M3_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][2], $aListeImport[$i][3], $aListeImport[$i][4], $aListeImport[$i][5], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
														Case $aListeImport[$i][7] = "STD"
															; STD
															_EV_ADD_STD_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
														Case $aListeImport[$i][7] = "LE"
															; LE
															_EV_ADD_LE_insert($i, $aListeImport[$i][0], $aListeImport[$i][9], $aListeImport[$i][10], $aPosID[0], $iSheetID, $sCSRF, $aListeImport[$i][1] & "|" & $aListeImport[$i][8])
;~ 														GUICtrlSetData($lbl_status,"Position: "&$aListeImport[$i][1] & " "& $aListeImport[$i][0] " hinzugefügt!")
													EndSelect
;~ 											GUICtrlSetData($lbl_status, $aListeImport[$i][1] & "|" & $aListeImport[$i][8] & "... Eintrag  hinzugefügt!")
;~ 											_Write_to_Console($aListeImport[$i][1] & "|" & $aListeImport[$i][8] & "... Eintrag  hinzugefügt!")
												EndIf
											EndIf
										Else
											MsgBox(64, "kein Location link vorhanden", "kein Location link vorhanden")
										EndIf
									EndIf
								EndIf
;~ 								MsgBox(64, "Pos insert check", "")
							EndIf

						Next


						_EV_GET_DetailsID_Info($sDetailsID)

					Else
						MsgBox(64, "keine SheetID", "keine SheetID vorhanden.")
					EndIf
				Else

				EndIf
			EndIf
		Else

		EndIf

	Else
		MsgBox(64, "Keine Liste", "Keine Lesbare Liste vorhanden!")
	EndIf
EndFunc   ;==>_EV_Insert_Pos

Func _EV_ADD_LE_insert($iZeile, $sAbschnitt, $sLangtext, $iLE, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
	$sLongText = _URIEncode($sLangtext) ; max 40
	$iLE = StringReplace($iLE, ",", "%2C")
	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5Bquantity%5D=" & $iLE & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
;~ 	                                    &ServicePosition%5B0%5D%5BsectionText%5D=VAO                &ServicePosition%5B0%5D%5Bquantity%5D=100         &ServicePosition%5B0%5D%5BlongText%5D=VAO               &ServicePosition%5B0%5D%5Bid%5D=43945349         &clientId=1&sheetId=0006425482&insertPosition=0&save=
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de//sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		ClipPut($aHTML[1])
		MsgBox(64, "Check LE", "txtfiles")
	EndIf
EndFunc   ;==>_EV_ADD_LE_insert

Func _EV_ADD_STD_insert($iZeile, $sAbschnitt, $sLangtext, $iStueck, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
	$sLongText = _URIEncode($sLangtext) ; max 40
	$iStueck = StringReplace($iStueck, ",", "%2C")
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF

	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5Bquantity%5D=" & $iStueck & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		MsgBox(64, "Check std", "txtfiles")
	EndIf
EndFunc   ;==>_EV_ADD_STD_insert

Func _EV_ADD_M3_insert($iZeile, $sAbschnitt, $sLangtext, $sFaktor, $iLang, $iBreit, $iTief, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
	$sFaktor = StringReplace($sFaktor, ",", "%2C")
	$sLongText = _URIEncode($sLangtext) ; max 40
	$iLang = StringReplace($iLang, ",", "%2C")
	$iBreit = StringReplace($iBreit, ",", "%2C")
	$iTief = StringReplace($iTief, ",", "%2C")
	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5BformulaSymbol%5D=MV&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=" & $sFaktor & "&ServicePosition%5B0%5D%5BformulaValueLength%5D=" & $iLang & "&ServicePosition%5B0%5D%5BformulaValueWidth%5D=" & $iBreit & "&ServicePosition%5B0%5D%5BformulaValueDepth%5D=" & $iTief & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF

	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		MsgBox(64, "Check m3", "txtfiles")
	EndIf
EndFunc   ;==>_EV_ADD_M3_insert

Func _EV_ADD_M2_insert($iZeile, $sAbschnitt, $sLangtext, $sFaktor, $iLang, $iBreit, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
;~ 	$sFaktor = StringReplace($sFaktor, ",", ".")
;~ 	If $sFaktor =  "1.0" Then
;~ 		$sFaktor =  "1"
;~ 	EndIf
;~ 	If $sFaktor =  "1,0" Then
;~ 		$sFaktor =  "1"
;~ 	EndIf
	$sFaktor = StringReplace($sFaktor, ",", "%2C")
	$sLongText = _URIEncode($sLangtext) ; max 40
	$iLang = StringReplace($iLang, ",", "%2C")
	$iBreit = StringReplace($iBreit, ",", "%2C")
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF

	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5BformulaSymbol%5D=MF&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=" & $sFaktor & "&ServicePosition%5B0%5D%5BformulaValueLength%5D=" & $iLang & "&ServicePosition%5B0%5D%5BformulaValueWidth%5D=" & $iBreit & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		MsgBox(64, "Check m2", "txtfiles")
	EndIf
EndFunc   ;==>_EV_ADD_M2_insert

Func _EV_ADD_ST_insert($iZeile, $sAbschnitt, $sLangtext, $iStueck, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
	$sLongText = _URIEncode($sLangtext) ; max 40
	$iStueck = StringReplace($iStueck, ",", "%2C")
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF

	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5Bquantity%5D=" & $iStueck & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		MsgBox(64, "Check st", "txtfiles")
	EndIf

EndFunc   ;==>_EV_ADD_ST_insert

Func _EV_ADD_M_insert($iZeile, $sAbschnitt, $sLangtext, $sFaktor, $sMeter, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
	If StringLen($sAbschnitt) >= 25 Then
		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
	EndIf
	$sAbschnitt = _URIEncode($sAbschnitt)
	$sFaktor = StringReplace($sFaktor, ",", "%2C")
	$sMeter = StringReplace($sMeter, ",", "%2C")
	$sLongText = _URIEncode($sLangtext) ; max 40
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF & "Origin: https://www.evergabe.telekom.de" & @CRLF

	$sPost = "_csrf=" & $sCSRF & "%3D%3D&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5BformulaSymbol%5D=ME&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=" & $sFaktor & "&ServicePosition%5B0%5D%5BformulaValueLength%5D=" & $sMeter & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=" & $iZeile & "&save="
;~ 	;&ServicePosition[0][sectionText]=Abschnitt&ServicePosition[0][formulaSymbol]=ME&ServicePosition[0][formulaValueMultiplier]=1&ServicePosition[0][formulaValueLength]=95&ServicePosition[0][longText]=Langtext&ServicePosition[0][id]=82627311&clientId=1&sheetId=0008943838&insertPosition=&save=
;~ 	ConsoleWrite($sPost & @crlf)
;~ 	MsgBox(64, "", "")

	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=" & $iZeile & "&positionId=" & $iPosNrID & "&c=1&per-page=20&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;~ 	_DebugArrayDisplay($aHTML)
	If IsArray($aHTML) Then
		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
	EndIf
	If $bDebug = "True" Then
		ConsoleWrite("Post=##########" & @CRLF)
		ConsoleWrite($sPost & @CRLF)
		ConsoleWrite("Post=##########" & @CRLF)
		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
		MsgBox(64, "Check m", "txtfiles")
	EndIf
EndFunc   ;==>_EV_ADD_M_insert

;~ Func _EV_ADD_M_insert($sAbschnitt, $sLangtext, $sFaktor, $sMeter, $iPosNrID, $iSheetID, $sCSRF, $sPosNrKurztext)
;~ 	If StringLen($sAbschnitt) >= 25 Then
;~ 		$sAbschnitt = StringMid($sAbschnitt, 1, 25)
;~ 	EndIf
;~ 	$sAbschnitt = _URIEncode($sAbschnitt)
;~ 	$sFaktor = StringReplace($sFaktor, ",", ".")
;~ 	$sMeter = StringReplace($sMeter, ",", "%2C")
;~ 	$sLongText = _URIEncode($sLangtext) ; max 40
;~ 	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF & "Origin: https://www.evergabe.telekom.de"& @CRLF

;~ 	$sPost = "_csrf=" & $sCSRF & "&ServicePosition%5B0%5D%5BsectionText%5D=" & $sAbschnitt & "&ServicePosition%5B0%5D%5BformulaSymbol%5D=ME&ServicePosition%5B0%5D%5BformulaValueMultiplier%5D=" & $sFaktor & "&ServicePosition%5B0%5D%5BformulaValueLength%5D=" & $sMeter & "&ServicePosition%5B0%5D%5BlongText%5D=" & $sLongText & "&ServicePosition%5B0%5D%5Bid%5D=" & $iPosNrID & "&clientId=1&sheetId=" & $iSheetID & "&insertPosition=0&save="

;~ 	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&per-page=20&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet-position/create?insertPosition=0&positionId=" & $iPosNrID & "&c=1&sheetId=" & $iSheetID, $sPost, $sHeader, True)
;_DebugArrayDisplay($aHTML)
;~ 	If IsArray($aHTML) Then
;~ 		_Write_to_Console($sPosNrKurztext & "|" & "... eingetragen!")
;~ 	EndIf
;~ 	If $bDebug = "True" Then
;~ 		ConsoleWrite("Post=##########" & @CRLF)
;~ 		ConsoleWrite($sPost & @CRLF)
;~ 		ConsoleWrite("Post=##########" & @CRLF)
;~ 		FileWrite(@ScriptDir & "\test_temp_head.txt", $aHTML[0])
;~ 		FileWrite(@ScriptDir & "\test_temp_body.txt", $aHTML[1])
;~ 		MsgBox(64, "Check m", "txtfiles")
;~ 	EndIf
;~ EndFunc   ;==>_EV_ADD_M_insert

Func _EV_GET_CSRF($sHTML)
	$aCSRF = StringRegExp($sHTML, 'token" content="([^=]+)', 3)
	If IsArray($aCSRF) Then
		Return $aCSRF[0]
	Else
		MsgBox(64, "Kein CSRF Token gefunden!", "Kein CSRF Token gefunden!")
		Return "False"
	EndIf
EndFunc   ;==>_EV_GET_CSRF

Func _EV_KopfDaten2Array($iLV_ID, $sSMnr)
	Dim $aArray[9]
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $iLV_ID & "&c=1", "https://www.evergabe.telekom.de/")
	;ClipPut($sHTML)
	;MsgBox(64,"12345","")
	$aBVT_Name = StringRegExp($sHTML, 'Name</th><td>([^<]+)', 3)
	$aBVT_Email = StringRegExp($sHTML, 'E-mail</th><td><a href="mailto:([^"]+)', 3)
	$aBTV_Tel = StringRegExp($sHTML, 'Telefon</th><td>([^<]+)', 3)
	$aStatus = StringRegExp($sHTML, 'Status: ([^<]+)', 3)
	$aBelegnr = StringRegExp($sHTML, 'Belegnummer</th><td>(\d+)', 3)
	$aAuftragdatum = StringRegExp($sHTML, 'Auftragsdatum</th><td>([^<]+)', 3)
	$aFertigstellDatum = StringRegExp($sHTML, 'Fertigstellungstermin</th><td>([^<]+)', 3)
	If IsArray($aBVT_Name) Then
		$sBTV_Name = $aBVT_Name[0]
	Else
		$sBTV_Name = "NA"
	EndIf
	If IsArray($aBVT_Email) Then
		$sBVT_Email = $aBVT_Email[0]
	Else
		$sBVT_Email = "NA"
	EndIf
	If IsArray($aStatus) Then
		$sStatus = $aStatus[0]
	Else
		$sStatus = "NA"
	EndIf
	If IsArray($aBTV_Tel) Then
		$sBTV_Tel = $aBTV_Tel[0]
	Else
		$sBTV_Tel = "NA"
	EndIf
	If IsArray($aBelegnr) Then
		$sBelegnr = $aBelegnr[0]
	Else
		$sBelegnr = "NA"
	EndIf
	If IsArray($aAuftragdatum) Then
		$sAuftragdatum = $aAuftragdatum[0]
	Else
		$sAuftragdatum = "NA"
	EndIf
	If IsArray($aFertigstellDatum) Then
		$sFertigstellDatum = $aFertigstellDatum[0]
	Else
		$aFertigstellDatum = StringRegExp($sHTML, 'Fertigstellungstermin</th><td><[^>]+>([^<]+)', 3)
		If IsArray($aFertigstellDatum) Then
			$sFertigstellDatum = $aFertigstellDatum[0]
		Else
			$sFertigstellDatum = "NA"
		EndIf


	EndIf
	$aArray[0] = StringReplace($iLV_ID, "&c=1", "")
	$aArray[1] = GUICtrlRead($kopf_TAB_txt_smnr)
	$aArray[2] = $sBelegnr
	$aArray[3] = $sStatus
	$aArray[4] = $sAuftragdatum
	$aArray[5] = $sBTV_Name
	$aArray[6] = $sBVT_Email
	$aArray[7] = $sBTV_Tel
	$aArray[8] = $sFertigstellDatum

;~ 	_ArrayDisplay($aArray,"in Funktion")
;~ 	ConsoleWrite(StringReplace($aAllIDs[$i], "&c=1", "") & "|" & $sSMnr & "|" & $sBelegnr & "|" & $sStatus & "|" & $sAuftragdatum & "|" & $sBTV_Name & "|" & $sBVT_Email & "|" & $sBTV_Tel & "|" & $sAuftragdatum & @crlf)
	Return $aArray
EndFunc   ;==>_EV_KopfDaten2Array

Func _EV_Search_SM($sSMnr)
	;suche Aufmaß nach SMnr:
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call?OrderRecallSearch%5Bhead_line%5D=" & $sSMnr & "&OrderRecallSearch%5Bdocument_no%5D=&OrderRecallSearch%5Bincoming_date%5D=&OrderRecallSearch%5Border_date%5D=&OrderRecallSearch%5Bgeneral_agreement_id%5D=&OrderRecallSearch%5Bdocument_state%5D=-1", "https://www.evergabe.telekom.de/framework-agreement-call")
	_Write_to_Console("Suche SM-Nr: | " & $sSMnr)
;~
;~ 	ClipPut($sHTML)
;~ 	_Write_to_Console($sHTML)
;~ 	MsgBox(64,"","")
	$aTitle = _EV_Abrufliste_GET_Title($sHTML)
	$aBedarfnr = _EV_Abrufliste_GET_Bedarfnr($sHTML) ;SMnr
	$aBelegEinDatum = _EV_Abrufliste_GET_Belegeingang($sHTML) ;Eingang E-Vergabe
	$aBelegnr = _EV_Abrufliste_GET_Belegnr($sHTML) ;42Nr
	$aAusfuehrungsfrist = _EV_Abrufliste_GET_Ausfuehrungsfrist($sHTML) ;Ausführungsfrist
	$aDetailID = _EV_Abrufliste_GET_DetailsID($sHTML) ;DetailsID intern für E-Vergabe
	$aRV = _EV_Abrufliste_GET_RV($sHTML) ;Rahmenvertrag
	$aStatus = _EV_Abrufliste_GET_Status($sHTML) ;Status Angenommen Abgelehnt usw.
	Dim $aReturn[UBound($aTitle)][9]
;~ 	_DebugArrayDisplay($aReturn)

	For $i = 0 To UBound($aTitle) - 1
		$aReturn[$i][0] = $aTitle[$i]
		$aReturn[$i][1] = $aBedarfnr[$i]
		$aReturn[$i][2] = $aBelegnr[$i]
		$aReturn[$i][3] = $aDetailID[$i]
		$aReturn[$i][4] = _EV_DDL_P83_GET_Bez($aDetailID[$i]) ; Bezeichnung auslesen
;~ 		$aReturn[$i][4] = $aRV[$i]
		If IsArray($aRV) Then
			$aReturn[$i][5] = $aRV[$i]
		Else
			$aReturn[$i][5] = ""
		EndIf

		$aReturn[$i][6] = $aBelegEinDatum[$i]
		If IsArray($aAusfuehrungsfrist) Then
			$aReturn[$i][7] = $aAusfuehrungsfrist[$i]
		Else
			$aReturn[$i][7] = ""
		EndIf

		If IsArray($aStatus) Then
			$aReturn[$i][8] = $aStatus[$i]
		Else
			$aReturn[$i][8] = ""
		EndIf


	Next
;~ 	_DebugArrayDisplay($aReturn)
	Return $aReturn
EndFunc   ;==>_EV_Search_SM


Func _EV_DDL_P83_GET_Bez($sDetailID)
	;https://www.evergabe.telekom.de/framework-agreement-call/details?id=17005356&c=1
	;https://www.evergabe.telekom.de/file/gaeb-83?c=1&iid=17005356&f=p2000 ;P83 download link
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $sDetailID & "&c=1", "https://www.evergabe.telekom.de/framework-agreement-call")
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "GET", "/file/gaeb-83?c=1&iid=" & $sDetailID & "&f=p2000", "https://www.evergabe.telekom.de/framework-agreement-call", Default, $sHeader, False, 2)
	_Write_to_Console("File Download: | " & $sDetailID & ".p83")
	$hBild = FileOpen(@ScriptDir & "\test_" & $sDetailID & ".p83", 18)
	FileWrite($hBild, $aHTML)
	FileClose($hBild)
;~ 	$aHTML = FileRead(@ScriptDir & "\test_" & $sDetailID & ".p83")
	$sFilePath = @ScriptDir & "\test_" & $sDetailID & ".p83"
	Local $hFileOpen = FileOpen($sFilePath, $FO_READ)
	If $hFileOpen = -1 Then
		MsgBox($MB_SYSTEMMODAL, "", "An error occurred when reading the file.")
		Return False
	EndIf

	; Read the contents of the file using the handle returned by FileOpen.
	Local $sFileRead = FileRead($hFileOpen)

	; Close the handle returned by FileOpen.
	FileClose($hFileOpen)
	$aBez = StringRegExp($sFileRead, '\[Bez]([^\[]+)', 3)
	If IsArray($aBez) Then
		FileDelete($sFilePath)
		Return $aBez[0]
	Else
		Return "NA"
	EndIf

;~ 	ClipPut($sFileRead)
;~ 	_Write_to_Console($sFileRead)
;~ 	MsgBox(64,"","")

EndFunc   ;==>_EV_DDL_P83_GET_Bez

Func _EV_LV_anzeigen2Array($iSheetID, $iImportId)

	$iSheetID = StringReplace($iSheetID, '&c=1', "")

	;vorhande LV-Anzeige in Array schreiben. Die selbst angelegt wurde!

;~ 	https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=0005770735&c=1
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/header?class=list-item&sheetId=" & $iSheetID & "&c=1", "https://www.evergabe.telekom.de/sheet/index?c=1&importId=" & $iImportId)
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64,"LV-Kopfanzeigen","")


	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $iSheetID, "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $iSheetID & "&c=1")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64,"qu Anzahl Pos ausgeben!","")
	$aAnzPos = StringRegExp($sHTML, 'tabindex="-1">(\d+)</a></li></ul>', 3) ; nur wenn es größere aufmaß ist 10 und mehr Pos.
	If IsArray($aAnzPos) Then
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $iSheetID & "&per-page=" & $aAnzPos[0], "https://www.evergabe.telekom.de" & "/sheet-position/index?c=1&sheetId=" & $iSheetID)
;~ 		ClipPut($sHTML)
;~ 		MsgBox(64,"quasdfasd Anzahl Pos ausgeben!","")
;~ 		_EV_GET_Posi_with_langtext($sHTML,$iSheetID)
		$aReturn = _EV_Get_Positionen($sHTML)
;~ 		_ArrayDisplay($aReturn, "großeListe")
		Return $aReturn
	Else
;~ 		_EV_GET_Posi_with_langtext($sHTML,$iSheetID)
		$aReturn = _EV_Get_Positionen($sHTML)
;~ 		_ArrayDisplay($aReturn, "kleine Liste")
		Return $aReturn
	EndIf
EndFunc   ;==>_EV_LV_anzeigen2Array

Func _EV_Get_Positionen($sHTML)
	$aLV_PosNr = StringRegExp($sHTML, '</a></td><td>([^<]+)', 3)
	$aLV_Kurztext = StringRegExp($sHTML, 'weight: bold">([^<]+)', 3)
	$aLV_Abschnitt = StringRegExp($sHTML, '</div></td><td>([^<]+)', 3)
	$aLV_MengeRT = StringRegExp($sHTML, '"highlight">([^<]+)', 3)
	$aLV_MengeGR = StringRegExp($sHTML, '3px 8px;">([^<]+)', 3)

	Dim $aArray[UBound($aLV_PosNr)][5]
	_ArrayDisplay($aArray)
	For $i = 0 To UBound($aLV_PosNr) - 1
		If IsArray($aLV_PosNr) Then
			$sLV_PosNr = $aLV_PosNr[$i]
		Else
			$sLV_PosNr = "NA"
		EndIf
		If IsArray($aLV_Kurztext) Then
			$sLV_Kurztext = $aLV_Kurztext[$i]
		Else
			$sLV_Kurztext = "NA"
		EndIf
		If IsArray($aLV_Abschnitt) Then
			$sLV_Abschnitt = $aLV_Abschnitt[$i]
		Else
			$sLV_Abschnitt = "NA"
		EndIf
		If IsArray($aLV_MengeRT) Then
			$sLV_MengeRT = $aLV_MengeRT[$i]
		Else
			$sLV_MengeRT = "NA"
		EndIf
		If IsArray($aLV_MengeGR) Then
			$sLV_MengeGR = $aLV_MengeGR[$i]
		Else
			$sLV_MengeGR = "NA"
		EndIf
		$aArray[$i][0] = $sLV_PosNr
		$aArray[$i][1] = $sLV_Kurztext
		$aArray[$i][2] = $sLV_Abschnitt
		$aArray[$i][3] = $sLV_MengeRT
		$aArray[$i][4] = $sLV_MengeGR
;~ 		ConsoleWrite($sLV_PosNr & "|" & $sLV_Kurztext & "|" & $sLV_Abschnitt & "|" & $sLV_MengeRT & "|" & $sLV_MengeGR & @CRLF)
;~ 			_ArrayDisplay($aArray)
	Next
	Return $aArray
EndFunc   ;==>_EV_Get_Positionen

Func _EV_PDF_Kopdaten_2Array($sDetailsID)
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1", "https://www.evergabe.telekom.de/")
;~
;~ 		ClipPut($sHTML)
;~ 	MsgBox(64,"qu Anzahl Pos ausgeben!","")

	$aAspaName = StringRegExp($sHTML, "Name</th><td>([^<]+)</td>", 3)
	$aAspaMail = StringRegExp($sHTML, 'mailto:([^"]+)', 3)
	$aAspaTel = StringRegExp($sHTML, 'Telefon</th><td>([^<]+)', 3)
	If IsArray($aAspaTel) Then
		$sApaTel = $aAspaTel[0]
	Else
		$sApaTel = ""
	EndIf
	If IsArray($aAspaName) Then
		$sApaName = $aAspaName[0]
	Else
		$sApaName = ""
	EndIf
	If IsArray($aAspaMail) Then
		$sApaMail = $aAspaMail[1]
	Else
		$sApaMail = ""
	EndIf
	If Not StringInStr($sHTML, 'LERF nicht möglich') Then
		$aFileDL = StringRegExp($sHTML, 'href="(/file[^"]+)" title="D', 3)
		If IsArray($aFileDL) Then
;~ 			_DebugArrayDisplay($aFileDL)
;~ 				$hRequest = _WinHttpSimpleSendRequest($hConnect, Default, "aida64extreme520.exe")
			For $i = 0 To UBound($aFileDL) - 1
				$sHeader = ""
				$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "GET", $aFileDL[$i], "https://www.evergabe.telekom.de/framework-agreement-call", Default, $sHeader, False, 2)
				_Write_to_Console("File Download => " & $aFileDL[$i])
				$hBild = FileOpen(@ScriptDir & "\test_" & $i & ".pdf", 18)
				FileWrite($hBild, $aHTML)
				FileClose($hBild)

				$sTel = ""
				Sleep(1500)
				_Write_to_Console("PDF-File convert to TXT-File ")
				_XPDF_ToText(@ScriptDir & "\test_" & $i & ".pdf", @ScriptDir & "\test_" & $i & ".txt")


				Local $sFileRead = FileRead(@ScriptDir & "\test_" & $i & ".txt")

				FileDelete(@ScriptDir & "\test_" & $i & ".pdf")
				FileDelete(@ScriptDir & "\test_" & $i & ".txt")

				$sFilePath = @ScriptDir & "\Kopfdaten.txt"

				Local $hFileOpen = FileOpen($sFilePath, 1)
				If $hFileOpen = -1 Then
					MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
					Return False
				EndIf


				FileWrite($hFileOpen, $sFileRead & @CRLF)

				; Close the handle returned by FileOpen.
				FileClose($hFileOpen)



;~ 				ClipPut($sFileRead)
;~ 				ConsoleWrite($sFileRead & @CRLF)
;~ 				MsgBox(64, "asdfasdf", "")

				If StringInStr($sFileRead, "ext  geändert") Then
					ExitLoop
				EndIf
;~ 				MsgBox(64, "", "")
			Next

			$sFileRead = FileRead(@ScriptDir & "\Kopfdaten.txt")
			FileDelete(@ScriptDir & "\Kopfdaten.txt")
			Dim $aArray[9]

			$aArray[0] = _EV_Kopfdaten_GET_AbrufNr($sFileRead)
			$aArray[1] = _EV_Kopfdaten_GET_SMnr($sFileRead)
			$aArray[2] = _EV_Kopfdaten_GET_RV($sFileRead)
			$aArray[3] = _EV_Kopfdaten_GET_SDatum($sFileRead)
			$aArray[4] = _EV_Kopfdaten_GET_EDatum($sFileRead)
			$aArray[5] = StringReplace(_EV_Kopfdaten_GET_GesamtS($sFileRead), ".", "")
			$aArray[6] = $sApaName
			$aArray[7] = $sApaTel
			$aArray[8] = $sApaMail

			Return $aArray

		Else
			_Write_to_Console("Pattern Filedownload prüfen=> | " & 'href="(/file[^"]+)" title="F')
		EndIf
	EndIf
EndFunc   ;==>_EV_PDF_Kopdaten_2Array

Func _EV_PDF_Kopdaten_ddl($sDetailsID)
	GUICtrlSetData($kopf_TAB_txt_detailsID, $sDetailsID)

	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $sDetailsID & "&c=1", "https://www.evergabe.telekom.de/")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64, "1", "")
	If Not StringInStr($sHTML, 'LERF nicht möglich') Then
		$aFileDL = StringRegExp($sHTML, 'href="(/file[^"]+)" title="D', 3)
		If IsArray($aFileDL) Then
;~ 			_DebugArrayDisplay($aFileDL)
;~ 				$hRequest = _WinHttpSimpleSendRequest($hConnect, Default, "aida64extreme520.exe")
			For $i = 0 To UBound($aFileDL) - 1
				$sHeader = ""
				$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "GET", $aFileDL[$i], "https://www.evergabe.telekom.de/framework-agreement-call", Default, $sHeader, False, 2)
				_Write_to_Console("File Download => " & $aFileDL[$i])
				$hBild = FileOpen(@ScriptDir & "\test_" & $i & ".pdf", 18)
				FileWrite($hBild, $aHTML)
				FileClose($hBild)

				$sTel = ""
				Sleep(1500)
				_Write_to_Console("PDF-File convert to TXT-File ")
				_XPDF_ToText(@ScriptDir & "\test_" & $i & ".pdf", @ScriptDir & "\test_" & $i & ".txt")


				Local $sFileRead = FileRead(@ScriptDir & "\test_" & $i & ".txt")

				FileDelete(@ScriptDir & "\test_" & $i & ".pdf")
				FileDelete(@ScriptDir & "\test_" & $i & ".txt")

				$sFilePath = @ScriptDir & "\Kopfdaten.txt"

				Local $hFileOpen = FileOpen($sFilePath, 1)
				If $hFileOpen = -1 Then
					MsgBox($MB_SYSTEMMODAL, "", "An error occurred whilst writing the temporary file.")
					Return False
				EndIf


				FileWrite($hFileOpen, $sFileRead & @CRLF)

				; Close the handle returned by FileOpen.
				FileClose($hFileOpen)



;~ 				ClipPut($sFileRead)
;~ 				ConsoleWrite($sFileRead & @CRLF)
;~ 				MsgBox(64, "asdfasdf", "")

				If StringInStr($sFileRead, "ext  geändert") Then
					ExitLoop
				EndIf
;~ 				MsgBox(64, "", "")
			Next

			$sFileRead = FileRead(@ScriptDir & "\Kopfdaten.txt")
;~ 			ShellExecute(@ScriptDir & "\Kopfdaten.txt")
;~ 			ClipPut($sFileRead)
;~ 			MsgBox(64, "", "")
			FileDelete(@ScriptDir & "\Kopfdaten.txt")
			Dim $aArray[9]
			$aArray[0] = _EV_Kopfdaten_GET_AbrufNr($sFileRead)
			$aArray[1] = _EV_Kopfdaten_GET_SMnr($sFileRead)
			$aArray[2] = _EV_Kopfdaten_GET_RV($sFileRead)
			$aArray[3] = _EV_Kopfdaten_GET_SDatum($sFileRead)
			$aArray[4] = _EV_Kopfdaten_GET_EDatum($sFileRead)
			$aArray[5] = _EV_Kopfdaten_GET_GesamtS($sFileRead)
			$aArray[6] = _EV_Kopfdaten_GET_Bvt($sFileRead)
			$aArray[7] = _EV_Kopfdaten_GET_Bvt_tel($sFileRead)
			$aArray[8] = _EV_Kopfdaten_GET_Email($sFileRead)

;~ 			4650009407
;~ NA
;~ 4650009407
;~ 14.03.2023

;~ 0
;~ 79798 Jestetten

;~ info@telekom.de | Internet: www.telekom.de


;~ 			_DebugArrayDisplay($aArray)
			;NEu Kopfdaten in Ini schreiben




;~ _DebugArrayDisplay($aArray)
			Local $aKV = IniReadSection($sPfadIni, "LV")
			_ArraySort($aKV)
;~ 			_DebugArrayDisplay($aKV)
			For $iii = 1 To UBound($aKV) - 1
				If $aKV[$iii][1] = $aArray[2] Then
					$sIndexChbVertrag = _GUICtrlComboBox_FindString($LVE_TAB_chb_Vertrag, $aKV[$iii][0])
					_GUICtrlComboBox_SetCurSel($LVE_TAB_chb_Vertrag, $sIndexChbVertrag)
					_GUICtrlComboBox_SetCurSel($kopf_TAB_chb_vertrag, $sIndexChbVertrag)
				EndIf
			Next

			_Load_LV_From_Chb()

;~ 			;Vertrag von Kopdaten in Aufmaßhile
;~ 			Local $aChb_rv = StringRegExp(GUICtrlRead($kopf_TAB_chb_vertrag), "([^_]+)", 3)
;~ 			If IsArray($aChb_rv) Then
;~ 				Local $sChb_rv = $aChb_rv[0]

;~ 				;Vertrag von Kopdaten in Aufmaßhile
;~ 				$sIndexChbVertrag = _GUICtrlComboBox_FindString($chb_vertrag, "data_" & $sChb_rv & ".ini")
;~ 				_GUICtrlComboBox_SetCurSel($chb_vertrag, $sIndexChbVertrag)
;~ 			EndIf


			IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AbrufNr", $aArray[0])
			IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", $aArray[1])
			IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Vertrag", $aArray[2])
			IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", $aArray[3])
			IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", $aArray[4])


;~ 			$aKopfdaten = _EV_PDF_Kopdaten_2Array($sDetailsID)
			; old but Gold
			$aKopfdaten = _EV_KopfDaten2Array($sDetailsID, $aArray[1])

;~ 			_DebugArrayDisplay($aKopfdaten, "aKopfdaten")



			GUICtrlSetData($kopf_TAB_txt_aspa, $aKopfdaten[5])
			GUICtrlSetData($kopf_TAB_txt_abrufnr, $aKopfdaten[2])

			$aStartDatum = StringSplit($aKopfdaten[4], ".")
			If IsArray($aStartDatum) Then

;~ 			_DebugArrayDisplay($aStartDatum)
				$iYear = $aStartDatum[3]
				$iMonth = $aStartDatum[2]
				$iDay = $aStartDatum[1]
				_GUICtrlMonthCal_SetCurSel($kopf_TAB_datumfeld_start, $iYear, $iMonth, $iDay)
			EndIf
			GUICtrlSetData($kopf_TAB_datum_start, $aKopfdaten[4])

			$aStartDatum = StringSplit($aKopfdaten[8], ".")
			If IsArray($aStartDatum) Then
				$iYear = $aStartDatum[3]
				$iMonth = $aStartDatum[2]
				$iDay = $aStartDatum[1]
				_GUICtrlMonthCal_SetCurSel($kopf_TAB_datumfeld_ende, $iYear, $iMonth, $iDay)
			EndIf
			GUICtrlSetData($kopf_TAB_txt_datum_ende, $aKopfdaten[8])

;~ 			GUICtrlSetData($kopf_TAB_txt_aspa, $aArray[5])
			GUICtrlSetData($kopf_TAB_txt_telnr, $aKopfdaten[7])

			GUICtrlSetData($txt_abruf_details_ev_EVH, "https://www.evergabe.telekom.de/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
			GUICtrlSetData($txt_Leistungserfassung_EVH, "https://www.evergabe.telekom.de/sheet/index?c=1&importId=" & $sDetailsID)
			GUICtrlSetData($txt_lv_geab_EVH, "https://www.evergabe.telekom.de/gaeb-viewer/index?c=1&id=" & $sDetailsID)
			GUICtrlSetData($txt_beleg_eingang_EVH, $aArray[4])
			GUICtrlSetData($txt_ausfuehrungsfrist_EVH, $aArray[5])
			GUICtrlSetData($txt_rv_EVH, $aArray[2])

			$aArray[0] = _EV_Kopfdaten_GET_AbrufNr($sFileRead)
			$aArray[1] = _EV_Kopfdaten_GET_SMnr($sFileRead)
			$aArray[2] = _EV_Kopfdaten_GET_RV($sFileRead)
			$aArray[3] = _EV_Kopfdaten_GET_SDatum($sFileRead)
			$aArray[4] = _EV_Kopfdaten_GET_EDatum($sFileRead)
			$aArray[5] = _EV_Kopfdaten_GET_GesamtS($sFileRead)
			$aArray[6] = _EV_Kopfdaten_GET_Bvt($sFileRead)
			$aArray[7] = _EV_Kopfdaten_GET_Bvt_tel($sFileRead)
			$aArray[8] = _EV_Kopfdaten_GET_Email($sFileRead)
			GUICtrlSetData($txt_beleg_eingang_EVH, $aArray[3])
			GUICtrlSetData($txt_ausfuehrungsfrist_EVH, $aArray[4])
			GUICtrlSetData($txt_rv_EVH, $aArray[2])
			GUICtrlSetData($txt_beleg_EVH, $aArray[0])

		Else
			_Write_to_Console("Pattern Filedownload prüfen=> | " & 'href="(/file[^"]+)" title="F')
		EndIf
	EndIf
;~ 		GUICtrlSetData($kopf_TAB_txt_abrufnr, "kein Abruf vorhanden")
EndFunc   ;==>_EV_PDF_Kopdaten_ddl

Func _EV_Kopfdaten_GET_AbrufNr($sQuellcode)
	$aAbrufNr = StringRegExp($sQuellcode, 'Betrifft Abruf [^/]+/(.*)', 3)
	If IsArray($aAbrufNr) Then

		Return $aAbrufNr[0]
	Else
		$aAbrufNr = StringRegExp($sQuellcode, 'Betrifft Bestellnummer [^/]+/.(\d*)', 3)
		If IsArray($aAbrufNr) Then
			Return $aAbrufNr[0]
		Else

			$aVertrag = StringRegExp($sQuellcode, 'Kontrakt Nr\s+(\d+)', 3)
			If IsArray($aVertrag) Then
				Return $aVertrag[0]

			Else
				Return "kein Abruf vorhanden"
			EndIf


		EndIf
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_AbrufNr

Func _EV_Kopfdaten_GET_RV($sQuellcode)
	$aVertrag = StringRegExp($sQuellcode, 'Kontrakt: ([^/]+)', 3)
	If IsArray($aVertrag) Then
		Return $aVertrag[0]
	Else
		$aVertrag = StringRegExp($sQuellcode, 'Rahmenvertrag: (\d+)', 3)
		If IsArray($aVertrag) Then
			Return $aVertrag[0]

		Else

			$aVertrag = StringRegExp($sQuellcode, 'Kontrakt Nr\s+(\d+)', 3)
			If IsArray($aVertrag) Then
				Return $aVertrag[0]

			Else

				Return "NA"
			EndIf
		EndIf

	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_RV

Func _EV_Kopfdaten_GET_Email($sQuellcode)
	$aEmail = StringRegExp($sQuellcode, 'E-Mail: (.*)', 3)
	If IsArray($aEmail) Then
		Return $aEmail[0]
	Else
		Return "NA"
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_Email

Func _EV_Kopfdaten_GET_SMnr($sQuellcode)
	$aSMnr = StringRegExp($sQuellcode, 'Bedarfs Nr.: (.*)', 3)
;~ 	ConsoleWrite($sQuellcode & @CRLF)
;~ 	ClipPut($sQuellcode)
;~ 	MsgBox(64, "Qeullcode GEt SMnr", "")
	If IsArray($aSMnr) Then

		$aStringA = StringRegExp($aSMnr[0], '0(\d{9})', 3) ; entferne die erste Null  + 9 Zahlen extrahieren
		If IsArray($aStringA) Then
			Return $aStringA[0]
		EndIf

	Else
		Return "NA"
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_SMnr

Func _EV_Kopfdaten_GET_Bvt($sQuellcode)
	$aBvt = StringRegExp($sQuellcode, 'Bauaufsicht: (.*)', 3)
	If IsArray($aBvt) Then
		Return $aBvt[0]
	Else
		$aBvt = StringRegExp($sQuellcode, 'Bestellnummer .*\d+.\s*(.*)', 3)
		If IsArray($aBvt) Then
			If StringInStr($aBvt[0], "Fachliche Rückfragen") Then

			Else
				Return $aBvt[0]
			EndIf

		Else
			Return "NA"
		EndIf

	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_Bvt

Func _EV_Kopfdaten_GET_Bvt_tel($sQuellcode)
	$aTel = StringRegExp($sQuellcode, 'Tel.: (.*)', 3)
	If IsArray($aTel) Then

		If UBound($aTel) = 1 Then
			Return ""
		Else
			If StringInStr($aTel[1], "Fax") Then
				Return $aTel[0]
			Else

				Return $aTel[1]
			EndIf
		EndIf

	Else
		Return ""
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_Bvt_tel

Func _EV_Kopfdaten_GET_GesamtS($sQuellcode)
	$aGesamtS = StringRegExp($sQuellcode, 'Gesamtnettowert ohne USt. EUR  (.*)', 3)
	If IsArray($aGesamtS) Then
		$summe = StringReplace($aGesamtS[0], ".", "")
		$summe = StringReplace($aGesamtS[0], " ", "")
;~ 					Return $summe
		Return $summe
;~ 					_ArrayAdd($aArray, $summe)
	Else
		Return "0"
;~ 					_ArrayAdd($aArray, $summe)
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_GesamtS

Func _EV_Kopfdaten_GET_SDatum($sQuellcode)
	$aStart = StringRegExp($sQuellcode, 'Ausführungsbeginn:(.*)', 3)
	If IsArray($aStart) Then
		Return StringReplace($aStart[0], " ", "")
	Else
		Return ""
	EndIf
EndFunc   ;==>_EV_Kopfdaten_GET_SDatum

Func _EV_Kopfdaten_GET_EDatum($sQuellcode)
	$aEnde = StringRegExp($sQuellcode, 'Ausführungsende:(.*)', 3)
	If IsArray($aEnde) Then
		Return StringReplace($aEnde[0], " ", "")
	Else
		Return ""
;~ 		$aArray[5] = $sEndeDatum
	EndIf

EndFunc   ;==>_EV_Kopfdaten_GET_EDatum

Func _EV_Hole_Kopfdaten()
	Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0")

	Global $aHosts[2][2]
	$aHosts[1][0] = "www.evergabe.telekom.de"
	$aHosts[1][1] = _WinHttpConnect($hSession, $aHosts[1][0])
	Global $sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF

	$sUsername = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Benutzer", "xxx")
	$sPasswort = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Passwort", "xxx")

	$sRetrunLogin = _EV_Login($sUsername, $sPasswort)
	If $sRetrunLogin = "True" Then
;~ 		ConsoleWrite("Login Erfolgreich" & @CRLF)
		_Write_to_Console("Login Erfolgreich")
		$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
		$aArrayList = _EV_Search_SM($sSMnr)
;~ 		_DebugArrayDisplay($aArrayList)
		If UBound($aArrayList) > 1 Then
;~ 			ConsoleWrite(UBound($aArrayList) & @CRLF)
			$sDetailsID = _create_Gui_Ausw($aArrayList)
;~ 			MsgBox(64, "", $sDetailsID)
		Else
			If UBound($aArrayList) = -1 Or UBound($aArrayList, $UBOUND_ROWS) = 0 Then
				_Write_to_Console("Kein Abruf gefunden. Bitte in E-Vergabe prüfen")
			Else

				$sDetailsID = $aArrayList[0][3]
				_EV_PDF_Kopdaten_ddl($sDetailsID)

				GUICtrlSetData($txt_sm_EVH, $sSMnr)
				_Write_to_Console("hole Kopfdaten erledigt.")
			EndIf


		EndIf

	Else
		_Write_to_Console("Login Fehler")
	EndIf
;~ 	_EV_Logout()
EndFunc   ;==>_EV_Hole_Kopfdaten

Func _EV_Abrufliste_GET_Title($sQuellcode)
	;Rückgabe Array sonst $error string
	Local $aTitle = StringRegExp($sQuellcode, '(?m)no-wrap" title="([^"]+)', 3)
;~ 	_DebugArrayDisplay($aTitle)
	If IsArray($aTitle) Then
		For $i = 0 To UBound($aTitle) - 1
			$aTitle[$i] = StringReplace($aTitle[$i], "SM Auftragsnummer: 000", " SM ")
			$aTitle[$i] = StringReplace($aTitle[$i], @CR, "") ;CR out
			$aTitle[$i] = StringReplace($aTitle[$i], @LF, "") ;LF out
		Next
		Return $aTitle
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Title

Func _EV_Abrufliste_GET_Bedarfnr($sQuellcode)
	;SMNr
	;Rückgabe Array sonst $error string
	Local $aBedarfnr = StringRegExp($sQuellcode, 'Bedarfsnr.: ([^<]+)</td>', 3)
	If IsArray($aBedarfnr) Then
		For $i = 0 To UBound($aBedarfnr) - 1
;~ 			If string
			$aStringA = StringRegExp($aBedarfnr[$i], '0(\d{9})', 3) ; entferne die erste Null  + 9 Zahlen extrahieren
			If IsArray($aStringA) Then
				$aBedarfnr[$i] = $aStringA[0]
			EndIf

		Next

		Return $aBedarfnr
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Bedarfnr

Func _EV_Abrufliste_GET_Belegeingang($sQuellcode)
	;42Nr
	;Rückgabe Array sonst $error string
	Local $aBelegeingang = StringRegExp($sQuellcode, 'Bedarfsnr.: [^<]+</td><td>[^<]+</td><td>([^<]+)', 3)
	If IsArray($aBelegeingang) Then
		Return $aBelegeingang
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Belegeingang

Func _EV_Abrufliste_GET_Belegnr($sQuellcode)
	;42Nr
	;Rückgabe Array sonst $error string
	Local $aBelegnr = StringRegExp($sQuellcode, 'Bedarfsnr.: [^<]+</td><td>([^/]+)', 3)
	If IsArray($aBelegnr) Then
		Return $aBelegnr
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Belegnr

Func _EV_Abrufliste_GET_Ausfuehrungsfrist($sQuellcode)
	;Ausführungsfrist
	;Rückgabe Array sonst $error string
	Local $aAusfuehrungsfrist = StringRegExp($sQuellcode, '(\d\d\.\d\d\.\d\d\d\d)</td><td><a href', 3)
	If IsArray($aAusfuehrungsfrist) Then
		Return $aAusfuehrungsfrist
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Ausfuehrungsfrist

Func _EV_Abrufliste_GET_DetailsID($sQuellcode)
	;DetailsID intern für E-Vergabe
	;Rückgabe Array sonst $error string
	Local $aDetailsID = StringRegExp($sQuellcode, 'call/details.id=([^&]+)&c=1', 3)
	If IsArray($aDetailsID) Then
		Return $aDetailsID
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_DetailsID

Func _EV_Abrufliste_GET_RV($sQuellcode)
	;Rahmenvertrag
	;Rückgabe Array sonst $error string
	Local $aRV = StringRegExp($sQuellcode, '/framework-agreement/details.id=[^"]+">([^/]+)', 3)
	If IsArray($aRV) Then
		Return $aRV
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_RV

Func _EV_Abrufliste_GET_Status($sQuellcode)
	;Stauts
	;Rückgabe Array sonst $error string
	Local $aStatus = StringRegExp($sQuellcode, '/framework-agreement/details.id=[^"]+">[^"]+"[^>]+>([^<]+)', 3)
	If IsArray($aStatus) Then
		Return $aStatus
	Else
		Return "Error"
	EndIf
EndFunc   ;==>_EV_Abrufliste_GET_Status

Func _EV_Logout()
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call", "https://www.evergabe.telekom.de/framework-agreement-call")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(64, "", "")
	$sCRSRF = _EV_GET_CSRF($sHTML)
	$sPost = "_csrf=" & $sCRSRF & "%3D%3D"
	$sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF & "Content-Type: application/x-www-form-urlencoded" & @CRLF
	$sPost = "_csrf=" & $sCRSRF & "%3D%3D"
	$aHTML = _WinHttpSimpleSSLRequest($aHosts[1][1], "POST", "/public/logout", "https://www.evergabe.telekom.de/framework-agreement-call", $sPost, $sHeader, True)
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/", "")
	If StringInStr($sHTML, 'action="/public/login" method="post"') Then
		_Write_to_Console("User wurde ausgeloggt!")
		GUICtrlSetData($lbl_status, "User wurde ausgeloggt!")
	EndIf
EndFunc   ;==>_EV_Logout

Func _EV_GET_AufmPositioinen()
	Local $aArrayEVAufm
	$sLEBNr = GUICtrlRead($frm_evaufm_txt_lebnr)

	Global $hSession = _WinHttpOpen("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0")

	Global $aHosts[2][2]
	$aHosts[1][0] = "www.evergabe.telekom.de"
	$aHosts[1][1] = _WinHttpConnect($hSession, $aHosts[1][0])
	Global $sHeader = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" & @CRLF & "Accept-Language: de,en-US;q=0.7,en;q=0.3" & @CRLF & "Accept-Encoding: gzip, deflate, br" & @CRLF

	$sUsername = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Benutzer", "xxx")
	$sPasswort = IniRead(@ScriptDir & "\daten\conf.ini", "EVergabe", "Passwort", "xxx")

	$sRetrunLogin = _EV_Login($sUsername, $sPasswort)
	If $sRetrunLogin = "True" Then
;~ 		ConsoleWrite("Login Erfolgreich" & @CRLF)
		_Write_to_Console("Login Erfolgreich")
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call", "https://www.evergabe.telekom.de/")

		$aArrayEVAufm = _get_EV_Aufma_positionen($sLEBNr)
;~ 		_DebugArrayDisplay($aArrayEVAufm)
		_GUICtrlListView_AddArray($frm_lv_evaufm, $aArrayEVAufm)
;~ 		_Listview_AutoWidthHeader($frm_lv_evaufm)
		_EV_Logout()
	Else
		MsgBox(64, "Login Fehler", "Login war nicht erfolgreich")
	EndIf
EndFunc   ;==>_EV_GET_AufmPositioinen

Func _EV_GET_LEB_Liste($sDetailsID)
	;Detailsid,LEB,Title,Status
	;15564152|0006004494| 1. TA NVT 2V1011 Tiefbau Mollenberg|AKZEPTIERT

	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID & "&BapiEssrSearch%5Blimit%5D=20", "https://www.evergabe.telekom.de/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(0, "/framework-agreement-call/index", "")
	$aPages = StringRegExp($sHTML, 'Blimit%5D=\d+&page=(\d+)" data-page="1">\d+', 3)
	;_ArrayDisplay($aPages)

	If IsArray($aPages) Then
		$aBelege = StringRegExp($sHTML, '<b>(\d+)</b> Belegen', 3)
		If IsArray($aBelege) Then
			Dim $aArray[1]

			For $i = 1 To $aPages[0]
				_Write_to_Console("Pages=> " & $i & " von " & $aPages[0])
				$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID & "&page=" & $i, "https://www.evergabe.telekom.de/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
				;ClipPut($sHTML)
				;MsgBox(0, "/framework-agreement-call/index", $aPages[$i])
				;MsgBox(64, "", $aPages[$i])
				$aSheetID = StringRegExp($sHTML, 'sheetId=([^&]+)&c=1" title="[^"]+', 3)
				$aTitle = StringRegExp($sHTML, 'sheetId=[^&]+&c=1" title="([^"]+)', 3)
				$aStatus = StringRegExp($sHTML, 'leb-status[^>]+.([^<]+)', 3)
				If IsArray($aSheetID) Then
					For $iI = 0 To UBound($aSheetID) - 1
						_ArrayAdd($aArray, $aSheetID[$iI] & "#" & $aTitle[$iI] & "#" & $aStatus[$iI])
						_Write_to_Console($aSheetID[$iI] & "#" & $aTitle[$iI] & "#" & $aStatus[$iI])
					Next
				EndIf

			Next
			If StringInStr($sHTML, 'Schlussaufmaß') Then
				$aArray[0] = "Schlussaufmaß"
			EndIf
;~ 			_ArrayDelete($aArray, 0)
			Dim $aReturn[UBound($aArray)][4]
			;_ArrayDisplay($aArray)
			For $i = 1 To UBound($aReturn) - 1
				$aSplitt = StringSplit($aArray[$i], "#")
;~ 				$aReturn[$i][0] = $aArray[0]
				$aReturn[$i][0] = $sDetailsID
				$aReturn[$i][1] = $aSplitt[1]
				$aReturn[$i][2] = $aSplitt[2]
				$aReturn[$i][3] = $aSplitt[3]
			Next
			;_ArrayDisplay($aReturn)
			Return $aReturn
		EndIf

	Else
		Dim $aArray[1]
		;nur eine Seite
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/index?c=1&importId=" & $sDetailsID, "https://www.evergabe.telekom.de/framework-agreement-call/details?id=" & $sDetailsID & "&c=1")
		;ClipPut($sHTML)
		;MsgBox(0, "/framework-agreement-call/index", $aPages[$i])
		;MsgBox(64, "", $aPages[$i])
		$aSheetID = StringRegExp($sHTML, 'sheetId=([^&]+)&c=1" title="[^"]+', 3)
		$aTitle = StringRegExp($sHTML, 'sheetId=[^&]+&c=1" title="([^"]+)', 3)
		$aStatus = StringRegExp($sHTML, 'leb-status[^>]+.([^<]+)', 3)
		If IsArray($aSheetID) Then
			For $iI = 0 To UBound($aSheetID) - 1
				_ArrayAdd($aArray, $aSheetID[$iI] & "#" & $aTitle[$iI] & "#" & $aStatus[$iI])
				_Write_to_Console($aSheetID[$iI] & "#" & $aTitle[$iI] & "#" & $aStatus[$iI])
			Next
			_ArrayDelete($aArray, 0)

			Dim $aReturn[UBound($aArray)][4]
			;_ArrayDisplay($aArray)
			For $i = 0 To UBound($aReturn) - 1
				$aSplitt = StringSplit($aArray[$i], "#")
				$aReturn[$i][0] = $sDetailsID
				$aReturn[$i][1] = $aSplitt[1]
				$aReturn[$i][2] = $aSplitt[2]
				$aReturn[$i][3] = $aSplitt[3]
			Next
			Return $aReturn
		EndIf

	EndIf
	;'sheetId=([^&]+)&c=1" title="([^"]+)' SheetID und Titel
	;'leb-status[^>]+.([^<]+)' Status

	;https://www.evergabe.telekom.de/sheet/index?c=1&importId=15564152
	;https://www.evergabe.telekom.de/sheet/index?c=1&importId=15564152&page=2
	;https://www.evergabe.telekom.de/sheet/index?c=1&importId=15564152&page=1
	;/sheet/index?c=1&importId=15564152&BapiEssrSearch%5Blimit%5D=10

EndFunc   ;==>_EV_GET_LEB_Liste

Func _get_EV_Aufma_positionen($sLEB_NR)
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $sLEB_NR, "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
;~ 	ClipPut($sHTML)
;~ 	MsgBox(0,"/sheet-position/index?c=1&sheetId=" & $sLEB_NR,"/sheet-position/index?c=1&sheetId=" & $sLEB_NR)
;~
	$aPages = StringRegExp($sHTML, '<li><a href="/sheet-position/index.c=1&sheetId=\d+&page=(\d+)', 3)
	Dim $aAufM[1]
	If IsArray($aPages) Then
		For $i = 1 To $aPages[UBound($aPages) - 1]
			$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $sLEB_NR & "&page=" & $i, "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
			;ClipPut($sHTML)
			;MsgBox(0, $sLEB_NR, "")
			$aShowlinks = StringRegExp($sHTML, '(/sheet-position[^c]+c=1)">00', 3)
;~ 			_ArrayDisplay($aShowlinks)
			If IsArray($aShowlinks) Then
				For $iI = 0 To UBound($aShowlinks) - 1
					$sHTML = _send_WinhttpS_GET($aHosts[1][1], $aShowlinks[$iI], "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
					;ClipPut($sHTML)
					;MsgBox(0, $sLEB_NR, "asdf")
					$aPosNr = StringRegExp($sHTML, 'Position 0([^:]+)', 3)
					$aPosKurztext = StringRegExp($sHTML, 'Position 0[^:]+:.([^<]+)', 3)
					$aPosAbschnitt = StringRegExp($sHTML, 'sectionText]" value="([^"]+)', 3)
					$aPosMenge = StringRegExp($sHTML, 'quantity]" value="([^"]+)', 3)
					$aPosEinheit = StringRegExp($sHTML, 'unitOfQuantity]" value="([^"]+)', 3)
					$aBegrund = StringRegExp($sHTML, 'longText]" disabled>([^<]+)', 3)
					$aFaktor = StringRegExp($sHTML, 'Multiplier]" value="([^"]+)', 3)
					$aLeange = StringRegExp($sHTML, 'formulaValueLength]" value="([^"]+)', 3)
					$aBreite = StringRegExp($sHTML, 'formulaValueWidth]" value="([^"]+)', 3)
					$aTiefe = StringRegExp($sHTML, 'formulaValueDepth]" value="([^"]+)', 3)
					If IsArray($aPosNr) Then
						$sPosNr = $aPosNr[0]
					Else
						$sPosNr = ""
					EndIf
					If IsArray($aPosKurztext) Then
						$sPosKurztext = $aPosKurztext[0]
					Else
						$sPosKurztext = ""
					EndIf
					If IsArray($aPosAbschnitt) Then
						$sPosAbschnitt = $aPosAbschnitt[0]
					Else
						$sPosAbschnitt = ""
					EndIf
					If IsArray($aPosMenge) Then
						$sPosMenge = $aPosMenge[0]
					Else
						$sPosMenge = ""
					EndIf
					If IsArray($aPosEinheit) Then
						$sPosEinheit = $aPosEinheit[0]
					Else
						$sPosEinheit = ""
					EndIf
					If IsArray($aBegrund) Then
						$sBegrund = $aBegrund[0]
					Else
						$sBegrund = ""
					EndIf
					If IsArray($aFaktor) Then
						If $aFaktor[0] = "1" Then
							$sFaktor = "1,0"
						EndIf
						$sFaktor = $aFaktor[0]
					Else
						$sFaktor = "1,0"
					EndIf
					If IsArray($aLeange) Then
						$sLeange = $aLeange[0]
					Else
						$sLeange = ""
					EndIf
					If IsArray($aBreite) Then
						$sBreite = $aBreite[0]
					Else
						$sBreite = ""
					EndIf
					If IsArray($aTiefe) Then
						$sTiefe = $aTiefe[0]
					Else
						$sTiefe = ""
					EndIf
					If IsArray($aPosEinheit) Then

						Select
							Case $aPosEinheit[0] = "ST"
								$sFaktor = "1,0"
								$sLeange = ""
								$sBreite = ""
								$sTiefe = ""
							Case $aPosEinheit[0] = "LE"
								$sFaktor = "1,0"
								$sLeange = ""
								$sBreite = ""
								$sTiefe = ""
							Case $aPosEinheit[0] = "STD"
								$sFaktor = "1,0"
								$sLeange = ""
								$sBreite = ""
								$sTiefe = ""
							Case $aPosEinheit[0] = "M"
								$sBreite = ""
								$sTiefe = ""
								$sPosMenge = $sLeange
							Case $aPosEinheit[0] = "M2"
;~ 							$sLeange = ""
;~ 							$sBreite = ""
								$sPosMenge = $sLeange * $sBreite
							Case $aPosEinheit[0] = "M3"

								$sPosMenge = $sLeange * $sBreite * $sTiefe
						EndSelect
						_ArrayAdd($aAufM, $sPosAbschnitt & "#" & $sPosNr & "#" & $sFaktor & "#" & $sLeange & "#" & $sBreite & "#" & $sTiefe & "#" & $sPosMenge & "#" & $sPosEinheit & "#" & $sPosKurztext & "#" & $sBegrund & "#" & $sPosMenge)
;~ 						;_ArrayDisplay($aAufM)
					EndIf
				Next
			EndIf
		Next
	Else
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet-position/index?c=1&sheetId=" & $sLEB_NR & "&page=1", "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
		;ClipPut($sHTML)
		;MsgBox(0, $sLEB_NR, "")
		$aShowlinks = StringRegExp($sHTML, '(/sheet-position[^c]+c=1)">00', 3)
		;_ArrayDisplay($aShowlinks)
		If IsArray($aShowlinks) Then
			For $iI = 0 To UBound($aShowlinks) - 1
				$sHTML = _send_WinhttpS_GET($aHosts[1][1], $aShowlinks[$iI], "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
				;ClipPut($sHTML)
				;MsgBox(0, $sLEB_NR, "asdf")
				$aPosNr = StringRegExp($sHTML, 'Position 0([^:]+)', 3)
				$aPosKurztext = StringRegExp($sHTML, 'Position 0[^:]+:.([^<]+)', 3)
				$aPosAbschnitt = StringRegExp($sHTML, 'sectionText]" value="([^"]+)', 3)
				$aPosMenge = StringRegExp($sHTML, 'quantity]" value="([^"]+)', 3)
				$aPosEinheit = StringRegExp($sHTML, 'unitOfQuantity]" value="([^"]+)', 3)
				$aBegrund = StringRegExp($sHTML, 'longText]" disabled>([^<]+)', 3)
				$aFaktor = StringRegExp($sHTML, 'Multiplier]" value="([^"]+)', 3)
				$aLeange = StringRegExp($sHTML, 'formulaValueLength]" value="([^"]+)', 3)
				$aBreite = StringRegExp($sHTML, 'formulaValueWidth]" value="([^"]+)', 3)
				$aTiefe = StringRegExp($sHTML, 'formulaValueDepth]" value="([^"]+)', 3)
				If IsArray($aPosNr) Then
					$sPosNr = $aPosNr[0]
				Else
					$sPosNr = ""
				EndIf
				If IsArray($aPosKurztext) Then
					$sPosKurztext = $aPosKurztext[0]
				Else
					$sPosKurztext = ""
				EndIf
				If IsArray($aPosAbschnitt) Then
					$sPosAbschnitt = $aPosAbschnitt[0]
				Else
					$sPosAbschnitt = ""
				EndIf
				If IsArray($aPosMenge) Then
					$sPosMenge = $aPosMenge[0]
				Else
					$sPosMenge = ""
				EndIf
				If IsArray($aPosEinheit) Then
					$sPosEinheit = $aPosEinheit[0]
				Else
					$sPosEinheit = ""
				EndIf
				If IsArray($aBegrund) Then
					$sBegrund = $aBegrund[0]
				Else
					$sBegrund = ""
				EndIf
				If IsArray($aFaktor) Then
					If $aFaktor[0] = "1" Then
						$sFaktor = 1.0
					EndIf
					$sFaktor = $aFaktor[0]
				Else
					$sFaktor = 1.0
				EndIf
				If IsArray($aLeange) Then
					$sLeange = $aLeange[0]
				Else
					$sLeange = ""
				EndIf
				If IsArray($aBreite) Then
					$sBreite = $aBreite[0]
				Else
					$sBreite = ""
				EndIf
				If IsArray($aTiefe) Then
					$sTiefe = $aTiefe[0]
				Else
					$sTiefe = ""
				EndIf
				If IsArray($aPosEinheit) Then

					Select
						Case $aPosEinheit[0] = "ST"
							$sFaktor = 1.0
							$sLeange = ""
							$sBreite = ""
							$sTiefe = ""
						Case $aPosEinheit[0] = "LE"
							$sFaktor = 1.0
							$sLeange = ""
							$sBreite = ""
							$sTiefe = ""
						Case $aPosEinheit[0] = "STD"
							$sFaktor = 1.0
							$sLeange = ""
							$sBreite = ""
							$sTiefe = ""
						Case $aPosEinheit[0] = "M"
							$sBreite = ""
							$sTiefe = ""
							$sPosMenge = $sLeange
						Case $aPosEinheit[0] = "M2"
;~ 							$sLeange = ""
;~ 							$sBreite = ""
							$sPosMenge = $sLeange * $sBreite
						Case $aPosEinheit[0] = "M3"

							$sPosMenge = _replaceKom2Punkt($sLeange) * _replaceKom2Punkt($sBreite) * _replaceKom2Punkt($sTiefe) * _replaceKom2Punkt($sFaktor)
					EndSelect
					_ArrayAdd($aAufM, $sPosAbschnitt & "#" & $sPosNr & "#" & $sFaktor & "#" & $sLeange & "#" & $sBreite & "#" & $sTiefe & "#" & $sPosMenge & "#" & $sPosEinheit & "#" & $sPosKurztext & "#" & $sBegrund & "#" & $sPosMenge)
;~ 					;_ArrayDisplay($aAufM)
				EndIf
			Next
		EndIf
	EndIf
	_ArrayDelete($aAufM, 0)
	Dim $aReturn[UBound($aAufM)][13]
	;_ArrayDisplay($aReturn)
	For $i = 0 To UBound($aAufM) - 1
		$aSplitt = StringSplit($aAufM[$i], "#")
		;_ArrayDisplay($aSplitt)
		$aReturn[$i][0] = $aSplitt[1]
		$aReturn[$i][1] = $aSplitt[2]
;~ 		if $aSplitt[3] = "1" Then
;~ 			$aReturn[$i][2] = StringReplace($aSplitt[3],"1","1.0")
;~ 		Else
;~ 			$aReturn[$i][2] = $aSplitt[3]
;~ 		EndIf
		$aReturn[$i][2] = $aSplitt[3]
		$aReturn[$i][3] = $aSplitt[4]
		$aReturn[$i][4] = $aSplitt[5]
		$aReturn[$i][5] = $aSplitt[6]
		$aReturn[$i][6] = $aSplitt[7]
		$aReturn[$i][7] = $aSplitt[8]
		$aReturn[$i][8] = $aSplitt[9]
		$aReturn[$i][9] = $aSplitt[10]
		$aReturn[$i][10] = $aSplitt[11]
	Next
	;_ArrayDisplay($aReturn)
	;MsgBox(64,"Array ohne Preise","")
	$aArray = _get_EV_Aufma_preise_to_Array($aReturn, $sLEB_NR)
	Return $aArray
;~ 	_ArrayDisplay($aArray)
EndFunc   ;==>_get_EV_Aufma_positionen

;get

;Hilffunktions für Preise beim Array
Func _get_EV_Aufma_preise_to_Array($aArray, $sLEB_NR)
	Global $aVertrag_Preis
	;https://www.evergabe.telekom.de/sheet/header?c=1&sheetId=0006119386
	$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/sheet/header?c=1&sheetId=" & $sLEB_NR, "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
	;ClipPut($sHTML)
	;MsgBox(0, $sLEB_NR, "asdf")
	$aDetailID = StringRegExp($sHTML, 'details\?id=([^&]+)', 3)
	If IsArray($aDetailID) Then
		;https://www.evergabe.telekom.de/framework-agreement-call/details?id=15562026&c=1
		$sHTML = _send_WinhttpS_GET($aHosts[1][1], "/framework-agreement-call/details?id=" & $aDetailID[0] & "&c=1", "https://www.evergabe.telekom.de/sheet/header?class=list-item&sheetId=" & $sLEB_NR & "&c=1")
;~ 		ClipPut($sHTML)
;~ 		MsgBox(0, $sLEB_NR, "asdf")
		$aRVertrag = StringRegExp($sHTML, 'c=1">(\d+)/00010', 3)
		If IsArray($aRVertrag) Then

			$sFilePath = @ScriptDir & "\daten\LV\" & $aRVertrag[0] & ".txt"
			_FileReadToArray($sFilePath, $aVertrag_Preis)
			_ArrayDelete($aVertrag_Preis, 0)
			;_ArrayDisplay($aVertrag_Preis)
;~ 			_ArrayDisplay($aArray)
			For $iI = 0 To UBound($aArray) - 1
				For $i = 0 To UBound($aVertrag_Preis) - 1
					$aSplitt = StringSplit($aVertrag_Preis[$i], "|")
					;_ArrayDisplay($aSplitt)
					If $aSplitt[1] = $aArray[$iI][1] Then
						$aArray[$iI][11] = _replaceKom2Punkt($aSplitt[4])
						$aArray[$iI][10] = _replaceKom2Punkt($aArray[$iI][2]) * _replaceKom2Punkt($aArray[$iI][6])
						$aArray[$iI][12] = _replaceKom2Punkt($aSplitt[4]) * _replaceKom2Punkt($aArray[$iI][10])
					EndIf
				Next
			Next
		EndIf
	EndIf

	For $i = 0 To UBound($aArray) - 1
		If $aArray[$i][2] = 1 Then
			$aArray[$i][2] = 1.0
		EndIf

		$aArray[$i][2] = _replacePunkt2Koma($aArray[$i][2])
		$aArray[$i][3] = _replacePunkt2Koma($aArray[$i][3])
		$aArray[$i][4] = _replacePunkt2Koma($aArray[$i][4])
		$aArray[$i][5] = _replacePunkt2Koma($aArray[$i][5])
		$aArray[$i][6] = _replacePunkt2Koma($aArray[$i][6])
		$aArray[$i][10] = _replacePunkt2Koma($aArray[$i][10])
		$aArray[$i][11] = _replacePunkt2Koma($aArray[$i][11])
		$aArray[$i][12] = _replacePunkt2Koma($aArray[$i][12])
	Next
;~ 	_ArrayDisplay($aArray)
	Return $aArray
EndFunc   ;==>_get_EV_Aufma_preise_to_Array


Func _send_Winhttp_POST($sHost, $sLink, $sReferer, $sPostContend)
	$aHTML = _WinHttpSimpleRequest($sHost, "POST", $sLink, $sReferer, $sPostContend, $sHeader, True, 1)
	_Write_to_Console("laden| " & $aHosts[1][0] & $sLink)
	If IsArray($aHTML) Then
		$aHTML[1] = StringReplace($aHTML[1], "amp;", "")
;~ 		$aHTML[1] = BinaryToString($aHTML[1], 4)
;~ 		_ArrayDisplay($aHTML)
		Return $aHTML[1]
	Else
		$aHTML = _WinHttpSimpleRequest($sHost, "POST", $sLink, $sReferer, $sPostContend)
		$aHTML = StringReplace($aHTML, "amp;", "")
;~ 		$aHTML = BinaryToString($aHTML, 4)
		Return $aHTML
	EndIf
EndFunc   ;==>_send_Winhttp_POST

Func _send_Winhttp_GET($sHost, $sLink, $sReferer)
	Local $sHeader = "Content-Type: application/x-www-form-urlencoded"
	$aHTML = _WinHttpSimpleRequest($sHost, "GET", $sLink, $sReferer, Default, $sHeader, True, 1)
	_Write_to_Console("laden| " & $aHosts[1][0] & $sLink)
	If IsArray($aHTML) Then
		$aHTML[1] = StringReplace($aHTML[1], "amp;", "")
		$aHTML[1] = BinaryToString($aHTML[1], 4)

		Return $aHTML[1]
	Else
		$aHTML = _WinHttpSimpleRequest($sHost, "GET", $sLink, $sReferer)
		$aHTML = StringReplace($aHTML, "amp;", "")
		$aHTML = BinaryToString($aHTML, 4)
		Return $aHTML
	EndIf
EndFunc   ;==>_send_Winhttp_GET

Func _send_WinhttpS_GET($sHost, $sLink, $sReferer)
;~ 	Local $sHeader = "Content-Type: application/x-www-form-urlencoded" & @CRLF & $sHeader_lovoo
	$aHTML = _WinHttpSimpleSSLRequest($sHost, "GET", $sLink, $sReferer, Default, $sHeader, True, 1)
	_Write_to_Console("laden| " & $aHosts[1][0] & $sLink)
	If IsArray($aHTML) Then
		$aHTML[1] = StringReplace($aHTML[1], "amp;", "")
;~ 		$aHTML[1] = BinaryToString($aHTML[1], 4)
;~ 		_ArrayDisplay($aHTML)
		Return $aHTML[1]
	Else
		$aHTML = _WinHttpSimpleSSLRequest($sHost, "GET", $sLink, $sReferer)
		$aHTML = StringReplace($aHTML, "amp;", "")
;~ 		$aHTML = BinaryToString($aHTML, 4)
		Return $aHTML
	EndIf
EndFunc   ;==>_send_WinhttpS_GET

Func _send_WinhttpS_POST($sHost, $sLink, $sReferer, $sPostContend)
;~ 	Local $sHeader = "Content-Type: application/x-www-form-urlencoded" & @CRLF & $sHeader_lovoo
	$aHTML = _WinHttpSimpleSSLRequest($sHost, "POST", $sLink, $sReferer, $sPostContend, $sHeader, True, 1)
	_Write_to_Console("laden| " & $aHosts[1][0] & $sLink)
	If IsArray($aHTML) Then
		$aHTML[1] = StringReplace($aHTML[1], "amp;", "")
;~ 		$aHTML[1] = BinaryToString($aHTML[1], 4)
		Return $aHTML[1]
	Else
		$aHTML = _WinHttpSimpleSSLRequest($sHost, "POST", $sLink, $sReferer, $sPostContend)
		$aHTML = StringReplace($aHTML, "amp;", "")
;~ 		$aHTML = BinaryToString($aHTML, 4)
		Return $aHTML
	EndIf
EndFunc   ;==>_send_WinhttpS_POST

Func _URIEncode($sData)
	; Prog@ndy
	Local $aData = StringSplit(BinaryToString(StringToBinary($sData, 4), 1), "")
	Local $nChar
	$sData = ""
	For $i = 1 To $aData[0]
;~ 		ConsoleWrite($aData[$i] & @CRLF)
		$nChar = Asc($aData[$i])
		Switch $nChar
			Case 45, 46, 48 - 57, 65 To 90, 95, 97 To 122, 126
				$sData &= $aData[$i]
			Case 32
				$sData &= "+"
			Case Else
				$sData &= "%" & Hex($nChar, 2)
		EndSwitch
	Next
	Return $sData
EndFunc   ;==>_URIEncode

Func _URIDecode($sData)
	; Prog@ndy
	Local $aData = StringSplit(StringReplace($sData, "+", " ", 0, 1), "%")
	$sData = ""
	For $i = 2 To $aData[0]
		$aData[1] &= Chr(Dec(StringLeft($aData[$i], 2))) & StringTrimLeft($aData[$i], 2)
	Next
	Return BinaryToString(StringToBinary($aData[1], 1), 4)
EndFunc   ;==>_URIDecode

Func _create_Gui_Ausw($aArrayList)
	Global $txt_detailsid = ""
	#Region ### START Koda GUI section ### Form=c:\users\flo\documents\isn autoit studio\projects\aufmasscreaterv2\forms\frm_ausw.kxf
	Global $frm_ausw = GUICreate("AuftragsAuswahl", 919, 231, 777, 303)
	Global $lv_auswahl = GUICtrlCreateListView("Beschreibung|SMNr|42Nr|DetailsID|Bezeichnung|Rahemvertrag|Start Datum|End Datum|Status", 5, 5, 905, 150, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 120)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 80)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 80)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 60)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 220)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 90)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 6, 80)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 7, 80)
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 8, 80)
	Global $frm_ausw_txt_besch = GUICtrlCreateInput("", 5, 160, 121, 21)
	Global $frm_ausw_txt_smnr = GUICtrlCreateInput("", 130, 160, 81, 21)
	Global $frm_ausw_txt_42er = GUICtrlCreateInput("", 215, 160, 71, 21)
	Global $frm_ausw_txt_detailsid = GUICtrlCreateInput("", 290, 160, 56, 21)
	Global $txt_ausw_txt_bez = GUICtrlCreateInput("", 350, 160, 216, 21)
	Global $frm_ausw_txt_rv = GUICtrlCreateInput("", 570, 160, 86, 21)
	Global $frm_ausw_txt_sDatum = GUICtrlCreateInput("", 660, 160, 76, 21)
	Global $frm_ausw_txt_eDatum = GUICtrlCreateInput("", 740, 160, 76, 21)
	Global $frm_ausw_txt_status = GUICtrlCreateInput("", 820, 160, 91, 21)
	Global $frm_ausw_bt_best = GUICtrlCreateButton("übernehmen", 5, 185, 75, 25)

	GUISetState(@SW_SHOW)
	#EndRegion ### END Koda GUI section ###


	_GUICtrlListView_AddArray($lv_auswahl, $aArrayList)

	While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
			Case $GUI_EVENT_CLOSE
				Exit
			Case $frm_ausw_bt_best
				$iRow = _GUICtrlListView_GetSelectedIndices($lv_auswahl)
;~ 				_DebugArrayDisplay($aArrayList)
;~ 				ConsoleWrite(Int($iRow) & @CRLF & @CRLF  )
;~ 				GUICtrlSetData($frm_ausw_txt_besch, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 0))
;~ 				GUICtrlSetData($frm_ausw_txt_smnr, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 1))
;~ 				GUICtrlSetData($frm_ausw_txt_42er, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 2))
;~ 				GUICtrlSetData($frm_ausw_txt_detailsid, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 3))
;~ 				GUICtrlSetData($txt_ausw_txt_bez, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 4))
;~ 				GUICtrlSetData($frm_ausw_txt_rv, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 5))
;~ 				GUICtrlSetData($frm_ausw_txt_sDatum, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 6))
;~ 				GUICtrlSetData($frm_ausw_txt_eDatum, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 7))
;~ 				GUICtrlSetData($frm_ausw_txt_status, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 8))
;~ 				GUICtrlSetData($frm_ausw_bt_best, _GUICtrlListView_GetItemText($lv_auswahl, Int($iRow), 9
				
				GUICtrlSetData($kopf_TAB_txt_abrufnr, $aArrayList[Int($iRow)][2])
				GUICtrlSetData($kopf_TAB_datum_start, $aArrayList[Int($iRow)][5])
				GUICtrlSetData($kopf_TAB_txt_datum_ende, $aArrayList[Int($iRow)][6])
;~ 				_DebugArrayDisplay($aTest)
				ExitLoop

		EndSwitch
	WEnd
	$txt_detailsid = $aArrayList[Int($iRow)][3]
	GUIDelete($frm_ausw)
;~ 	MsgBox(64, "", $txt_detailsid)
	Return $txt_detailsid
EndFunc   ;==>_create_Gui_Ausw
