// ##################### Stadt Essen - Prozessakte ######################

// Dokumentarten - in g01 deklariert
//global G01_DS_PROZESSA	  = "APROZ"
//global G01_DS_PROZESSD 	  = "DPROZ"

// Feldpositionen
vars POS_AZ 		= 1
vars POS_Jahr 		= 2
vars POS_StatZ		= 3
vars POS_GerichtAZ	= 4
vars POS_Klaeger    = 9
vars POS_Zda		= 13
vars POS_Beklaeger  = 15
vars POS_AusArt		= 23
vars POS_DokGrp 	= 30
vars POS_DokTyp 	= 31
vars POS_AusDat 	= 51
vars POS_ZLM		= 35
vars POS_LOESCHGRD  = 36
vars POS_GADRESSE	= 33
vars POS_Gericht	= 20
vars POS_DOKIDORG	= 10

// Feldpostitionen Adressverwaltung
vars POS_FFOE		= 2
vars POS_Name		= 9
vars POS_Strasse	= 21
vars POS_Hnr		= 29
vars POS_Plz		= 24
vars POS_Ort		= 25

// Variablen - Aufbewahrungsfristen (in Jahren)
vars FRIST_AUSSONDERUNG = 10		// 10 Jahre
vars WM_TRENNZEICHEN	= ";"
vars STATUS_ZDA			= 0
vars NEUES_AZ			= 0
vars CHANGE_GERICHT		= 0

// Datenbanktabelle
vars TB_DokGrpTyp		= "DV_PROZ_Doktyp"

/////////////////////////// proz01_insert_entry_10 /////////////////////////////////////
// Vor Archivierung
// Uebernehmen der Werte aus der Akte
// Vorbelegen der laufenden Nummer
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_insert_entry_10(user_ref, doc_type_short)
{
	call proz01_split_AZ(1)
	call proz01_split_Gericht()
}

/////////////////////////// proz01_insert_exit_10 ///////////////////////////////////////
// nach dem Import, Rollback noch moeglich
////////////////////////////////////////////////////////////////////////////////////////
proc proz01_insert_exit_10 (doc_id, file_destination, import_ok, user_ref, doc_type_short)
{
	if(doc_type_short == G01_DS_PROZESSA)
	{
		// Erstellung des Aktenzeichens
		vars update = 0
		call proz01_fill_AZ_Nummer(doc_id, update)
	}
}

//////////////////////////////// proz01_upd_attrib_entry_20 ////////////////////////////
// vor Änderung von Attributwerten
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_upd_attrib_entry_20(doc_id, user_ref, doc_type_short, doc_type_short_new)
{
	if(doc_type_short == G01_DS_ORGANI)
	{
		if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Name], POS_Name) == 1)
		{
				CHANGE_GERICHT = 1
		}
		else if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Strasse], POS_Strasse) == 1)
		{
				CHANGE_GERICHT = 1
		}
		else if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Hnr], POS_Hnr) == 1)
		{
				CHANGE_GERICHT = 1
		}
		else if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Plz], POS_Plz) == 1)
		{
				CHANGE_GERICHT = 1
		}
		else if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Ort], POS_Ort) == 1)
		{
				CHANGE_GERICHT = 1
		}
		call api_log_error("proz01_upd_attrib_entry_20 Adresse verändert? :CHANGE_GERICHT ")
		
	}
	else
	{
		call proz01_split_AZ(1)
		call proz01_split_Gericht()
		
		if(g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Zda], POS_Zda) == 1)
		{
				STATUS_ZDA = 1
		}
		
		// Wenn das Feld zum Löschen markiert auf Ja gesetzt wurde, überprüfe ob beim Löschgrund etwas eingetragen wurde. Falls nicht, gebe eine Fehlermeldung aus.
		// Wenn das Feld zum Löschen markiert auf Nein gesetzt wurde, dann leere das Feld Löschgrund
		if(dok_dat_feld[POS_ZLM] != get_doc_property(doc_id, "doc_field[:POS_ZLM]"))
		{
			if(dok_dat_feld[POS_ZLM] == G01_STR_JA)
			{
				if(dok_dat_feld[POS_LOESCHGRD] == "")
				{
					return -403 //Bitte geben Sie einen Löschgrund an!
				}
			}
			else if(dok_dat_feld[POS_ZLM] == G01_STR_NEIN)
			{
				dok_dat_feld[POS_LOESCHGRD] = ""
			}
		}
		
		
		if(doc_type_short == G01_DS_PROZESSA && g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Jahr], POS_Jahr) == 1)
		{	
			NEUES_AZ = 1
		}
		
		// hinzugefügt am 13.02.23 - Bei manueller Änderung des Feld Aktenzeichen wird eine Fehlermeldung ausgegeben
		//if((user_ref != "d3_async" || user_ref != "Master" ) && g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_AZ], POS_AZ) == 1)
		//{	
		//	call api_log_error("proz01_upd_attrib_entry_20 - Das aktenezichen wurde von :user_ref verändert!")
		//	return -403
		//}
		

		if(doc_type_short == G01_DS_PROZESSA && (g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_Gericht], POS_Gericht) == 1 || g02_strAttrHasChanged(doc_id, dok_dat_feld[POS_GADRESSE], POS_GADRESSE) == 1))
		{	
			vars DocID, Name, Strasse, PLZ, Ort, Hnr, iCnt
		
			DBMS ALIAS Name, Strasse, Hnr, PLZ, Ort 
			DBMS SQL SELECT dok_dat_feld_:POS_Name, dok_dat_feld_:POS_Strasse, dok_dat_feld_:POS_Hnr, dok_dat_feld_:POS_Plz, dok_dat_feld_:POS_Ort \
			FROM firmen_spezifisch \ 
			WHERE kue_dokuart = 'AAORG' AND dok_dat_feld_:POS_Name = :+dok_dat_feld[POS_Gericht] //AND doku_id = :+doc_id
			iCnt = @dmrowcount
			DBMS ALIAS
		
			
			
			if(Name == "" || Strasse == "" || Hnr == "" || PLZ == "" || Ort == "")
			{
				//Gerichtsdaten nicht gepflegt! Bitte in der Organisation pflegen.
				return -569 
			}
			
			vars Gerichtsadresse = Strasse ## " " ## Hnr ## ", " ## PLZ  ## " " ## Ort
			call api_log_error("Änderung Ticket vor IF Gerichtsadresse - :Strasse :Hnr :PLZ :Ort")
			if(Gerichtsadresse != dok_dat_feld[POS_GADRESSE])
			{
				//Gerichtsadresse entspricht nicht dem aktuell ausgewählten Gericht!
				return -570 
			}
			
		}
		
		
	}
		
}

//////////////////////////////// ld01_upd_attrib_exit_20 /////////////////////////////
// UpdateAttribute: NACH Aenderung
// 
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_upd_attrib_exit_20(doc_id, error_number, user_ref, doc_type_short, doc_type_short_old)
{
	// Update des Aktenzeichens bei Änderung des Jahres
	if(NEUES_AZ == 1 && doc_type_short != G01_DS_ORGANI)
	{
		NEUES_AZ = 0
		vars update = 1	
		call proz01_fill_AZ_Nummer(doc_id, update)
	}

	
	if(STATUS_ZDA == 1 && doc_type_short != G01_DS_ORGANI)
	{
		STATUS_ZDA = 0
		
		vars strZDA, strDatum
			
		if(dok_dat_feld[POS_Zda] == G01_STR_JA)
		{
			strZDA	 = G01_STR_JA
			strDatum = proz01_getAussonderungsdatum(FRIST_AUSSONDERUNG)
		}
		else if(dok_dat_feld[POS_Zda] == G01_STR_NEIN)
		{
			strZDA	 = G01_STR_NEIN
			strDatum = ""
		}
		
		call docSearchCreate()
		call docSearchAddSearchParam("doc_type_short", "==", G01_DS_PROZESSA)
		call docSearchAddSearchParam("doc_type_short", "==", G01_DS_PROZESSD)
		call docSearchAddSearchParam("doc_field[:POS_AZ]", "==", dok_dat_feld[POS_AZ])
		call docSearchAddReplacementParam("doc_field[:POS_Zda]", "*", strZDA)
		call docSearchAddReplacementParam("doc_field[:POS_AusDat]", "*", strDatum)
		call docSearchAddReplacementParam("doc_field[:POS_AusArt]", "*", dok_dat_feld[POS_AusArt])
		call docSearchExecute()
		call docSearchDestroy()
	}
	
	if(CHANGE_GERICHT == 1 && doc_type_short == G01_DS_ORGANI)
	{
		CHANGE_GERICHT = 0

		vars strDocID, strNameNeu, strStrasseNeu, strPLZNeu, strOrtNeu, strHnrNeu, iCnt
		
		DBMS ALIAS strNameNeu, strStrasseNeu, strHnrNeu, strPLZNeu, strOrtNeu 
		DBMS SQL SELECT dok_dat_feld_:POS_Name, dok_dat_feld_:POS_Strasse, dok_dat_feld_:POS_Hnr, dok_dat_feld_:POS_Plz, dok_dat_feld_:POS_Ort \
		FROM firmen_spezifisch \ 
		WHERE kue_dokuart = 'AAORG' AND doku_id = :+doc_id
		iCnt = @dmrowcount
		DBMS ALIAS
		
		call api_log_error("proz01_upd_attrib_exit_20  Datenbankabfrage durchgelaufen  iCnt => :iCnt")
		
		if(iCnt == 1)
		{
			vars strGAdresse  = strStrasseNeu ## " " ## strHnrNeu ## ", " ## strPLZNeu ## " " ## strOrtNeu
			call api_log_error("proz01_upd_attrib_exit_20  neue Adresse => :strGAdresse neuer Name => :strNameNeu")
			
			call docSearchCreate()
			call docSearchAddSearchParam("doc_type_short", "==", G01_DS_PROZESSA)
			call docSearchAddSearchParam("doc_field[:POS_DOKIDORG]", "==", doc_id)
			call docSearchAddReplacementParam("doc_field[:POS_GADRESSE]", "*", strGAdresse)
			call docSearchAddReplacementParam("doc_field[:POS_Gericht]", "*", strNameNeu)
			call docSearchExecute()
			call docSearchDestroy()	
		}
	}
}

//////////////////////////////// proz01_validate_update_entry_10 ///////////////////////
// Vor Pruefen der Daten vor dem Ändern
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_validate_update_entry_10(user_ref, doc_type_short)
{
	call api_log_error("proz01_validate_update_entry_10 gestartet")
	call proz01_split_AZ(1)
	call proz01_split_Gericht()
}

/////////////////////////// proz01_search_entry_10 /////////////////////////////////////
// vor der Recherche
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_search_entry_10(user_ref, doc_type_short)
{
	call proz01_split_AZ(0)
	call proz01_split_Gericht()

}
 

//////////////////  Wertemengenhooks  ////////////////////////////////////////////////
 
//////////////////// proz01_fill_Klaeger /////////////////////////////////////////////////
// Wertemengenhook zum fuellen des Felds Kläger mit AZ;Klaeger;Gerichtszeichen
// aus der Datenbank
//////////////////////////////////////////////////////////////////////////////////
proc proz01_fill_Klaeger(repos_id)
{
	vars iRet, iCnt, i
	vars strAZ[1000], strKlaeger[1000], strGerichtsZ[1000]
	
	vars strEingabe		= dok_dat_feld[POS_Klaeger]
	vars igetippt		= @length(strEingabe)
	vars igetippt_min 	= 3
	
	if(igetippt >= igetippt_min)
	{
		DBMS ALIAS strAZ, strKlaeger, strGerichtsZ
		DBMS SQL SELECT DISTINCT dok_dat_feld_:POS_AZ, dok_dat_feld_:POS_Klaeger, dok_dat_feld_:POS_GerichtAZ \
			FROM firmen_spezifisch WHERE kue_dokuart = :+G01_DS_PROZESSA AND (dok_dat_feld_:POS_AZ LIKE '%:strEingabe%' OR dok_dat_feld_:POS_Klaeger LIKE '%:strEingabe%')
		iRet = @dmretcode
		iCnt = @dmrowcount
		DBMS ALIAS
		
		for i = 1 while (i <= iCnt) step 1
		{
			d3server_value_char_allowed[i]	= strAZ[i] ## ";" ## strKlaeger[i] ## ";" ## strGerichtsZ[i] 
			d3server_repos_id_allowed[i]	= repos_id
		}
	}

}

//////////////////// proz01_fill_Beklagter /////////////////////////////////////////////////
// Wertemengenhook zum fuellen des Felds Beklagter mit AZ;Beklagter;Gerichtszeichen
// aus der Datenbank
//////////////////////////////////////////////////////////////////////////////////
proc proz01_fill_Beklagter(repos_id)
{
	vars iRet, iCnt, i
	vars strAZ[1000], strBeklagter[1000], strGerichtsZ[1000]
	
	vars strEingabe		= dok_dat_feld[POS_Beklaeger]
	vars igetippt		= @length(strEingabe)
	vars igetippt_min	= 3
	
	/*
	if(igetippt >= igetippt_min)
	{
		DBMS ALIAS strAZ, strBeklagter, strGerichtsZ
		DBMS SQL SELECT DISTINCT dok_dat_feld_:POS_AZ, dok_dat_feld_:POS_Beklaeger, dok_dat_feld_:POS_GerichtAZ \
			FROM firmen_spezifisch WHERE kue_dokuart = :+G01_DS_PROZESSA AND (dok_dat_feld_:POS_AZ LIKE '%:strEingabe%' OR dok_dat_feld_:POS_Beklaeger LIKE '%:strEingabe%')
		iRet = @dmretcode
		iCnt = @dmrowcount
		DBMS ALIAS
		
		for i = 1 while (i <= iCnt) step 1
		{
			d3server_value_char_allowed[i]	= strAZ[i] ## ";" ## strBeklagter[i] ## ";" ## strGerichtsZ[i] 
			d3server_repos_id_allowed[i]	= repos_id
		}
	}
	
	*/
	
	//Neu erstellt von N.Tietjen 25.10.2022
	if(igetippt >= igetippt_min)
	{
		DBMS ALIAS d3server_value_char_allowed, d3server_repos_id_allowed
		DBMS SQL SELECT DISTINCT dok_dat_feld_:POS_Beklaeger, :+repos_id \
			FROM firmen_spezifisch WHERE kue_dokuart = :+G01_DS_PROZESSA AND dok_dat_feld_:POS_Beklaeger LIKE '%:strEingabe%'
		iRet = @dmretcode
		iCnt = @dmrowcount
		DBMS ALIAS
	}
	
}

//////////////////proz01_WM_DOKGRP ////////////////////////////////////////////////
proc proz01_WM_DOKGRP(repos_id)
{
	vars strDokTyp = dok_dat_feld[POS_DokTyp]
	
	if(strDokTyp != "")
	{
		DBMS ALIAS d3server_value_char_allowed, d3server_repos_id_allowed
		DBMS SQL SELECT DISTINCT Dokumentgruppe, ':repos_id' FROM :TB_DokGrpTyp WHERE Dokumenttyp = :+strDokTyp
		DBMS ALIAS
	}
	else
	{
		DBMS ALIAS d3server_value_char_allowed, d3server_repos_id_allowed
		DBMS SQL SELECT DISTINCT Dokumentgruppe, ':repos_id' FROM :TB_DokGrpTyp 
		DBMS ALIAS
	}
}
 
//////////////////proz01_WM_DOKTYP ////////////////////////////////////////////////
proc proz01_WM_DOKTYP(repos_id)
{
	vars strDokGrp = dok_dat_feld[POS_DokGrp]
	
	if(strDokGrp != "")
	{
		DBMS ALIAS d3server_value_char_allowed, d3server_repos_id_allowed
		DBMS SQL SELECT DISTINCT Dokumenttyp, ':repos_id' FROM :TB_DokGrpTyp WHERE Dokumentgruppe = :+strDokGrp
		DBMS ALIAS
	}
	else
	{
		DBMS ALIAS d3server_value_char_allowed, d3server_repos_id_allowed
		DBMS SQL SELECT DISTINCT Dokumenttyp, ':repos_id' FROM :TB_DokGrpTyp 
		DBMS ALIAS
	}
}
 
 
/////////////////// UNTERFUNKTIONEN ////////////////////////////////////////////////
 
//////////////////// l01_split_AZ /////////////////////////////////////////////////
// Funktion zum des Felds Aktenzeichen nach AZ;Klaeger;Gerichtszeichen
// und fuellen in die jeweiligen Felder
//////////////////////////////////////////////////////////////////////////////////
proc proz01_split_AZ(NotSearch)
{
	vars strKlaeger = dok_dat_feld[POS_Klaeger]
	//call api_log_error("proz01_split_AZ gestartet - strKlaeger => :strKlaeger")
	
	vars iSplit = api_function("string_split", strKlaeger, WM_TRENNZEICHEN)
	
	//call api_log_error("proz01_split_AZ - NotSearch => :NotSearch  iSplit => :iSplit")
	
	if(iSplit > 2)
	{	
		// Neu hinzugefügt - Leeren des Feldes Kläger bei der Suche - LH 06.12.22
		dok_dat_feld[POS_Klaeger]    	= ""
		dok_dat_feld[POS_AZ]  			= api_splitted_string[1]
		
		if(NotSearch == 1)
		{
			//call api_log_error("proz01_split_AZ - in NotSearch")
			dok_dat_feld[POS_Klaeger]    	= api_splitted_string[2]
			dok_dat_feld[POS_GerichtAZ]  	= api_splitted_string[3]
		}
	}
}

/////////////////////////// proz01_WM_AZ_Nummer //////////////////////////////////////
// Wertemenge für laufende Nummer
// Zusammengesetzt aus: Fortlaufende Nummer, Herrsteller, Anwendungsbezeichnung
//////////////////////////////////////////////////////////////////////////////////////
proc proz01_fill_AZ_Nummer(doc_id, update)
{
	vars iRet, iCnt
	vars strNummer, sqlCount
	vars strJahr = dok_dat_feld[POS_Jahr]
	vars strLNR = dok_dat_feld[POS_AZ]
	
	if (update == 0)
	{
		/*DBMS ALIAS sqlCount
		DBMS SQL SELECT COUNT(*) FROM firmen_spezifisch WHERE kue_dokuart = :+G01_DS_PROZESSA	
		iRet = @dmretcode	
		if(iRet != 0  && iRet != DM_NO_MORE_ROWS)
		{
			call api_log_error ("proz01_fill_AZ_Nummer => Fehler beim Ermitteln von Prozessakten. FEHLER: :iRet")
		}
		DBMS ALIAS 		
		*/
		DBMS ALIAS sqlCount
		DBMS SQL SELECT TOP (1) right(dok_dat_feld_:POS_AZ, 4) + 1  from firmen_spezifisch WHERE kue_dokuart = :+G01_DS_PROZESSA ORDER BY right(dok_dat_feld_:POS_AZ,4) DESC	
		iRet = @dmretcode	
		if(iRet != 0  && iRet != DM_NO_MORE_ROWS)
		{
			call api_log_error ("proz01_fill_AZ_Nummer => Fehler beim Ermitteln von Prozessakten. FEHLER: :iRet")
		}
		DBMS ALIAS 
 
		
		vars string strCount = sqlCount	
		iRet = api_function ("string_fill_leading_char", strCount, 0, 4)
		strNummer = strJahr ## "-" ## api_converted_string
	}
	else if(update == 1)
	{
		vars strTrennzeichen = "-"	
		vars iSplit = api_function("string_split", strLNR, strTrennzeichen)
		if (iSplit > 1)
		{			
			strNummer = strJahr ## "-" ## api_splitted_string[2]
		}
	}
			
	iRet = api_function ("attribute_update_single", POS_AZ , strNummer, "", doc_id, "")
		
	if(iRet != 0  )
	{
		call api_log_error ("proz01_fill_AZ_Nummer => Fehler beim Setzen des Aktenzeichens für :doc_id . FEHLER: :iRet")
	} 
	
	// Vererbung des neuen Gerichtsaktenzeichens auf die darunterliegenden Dokumente - soll nicht umgesetzt werden
	/*if(iRet == 0 && update == 1)
	{		
		call docSearchCreate()
		call docSearchAddSearchParam("doc_type_short", "==", G01_DS_PROZESSD)
		call docSearchAddSearchParam("doc_field[:POS_AZ]", "==", strLNR)
		call docSearchAddReplacementParam("doc_field[:POS_AZ]", "*", strNummer)
		call docSearchExecute()
		call docSearchDestroy()		
	}	*/
	
	// Kategorie-Kürzel ermitteln
	//strNummer = api_str_sub( strNummer, 4, 4)	//Position Trennzeichen für Kategorie-Kürzel
	//call api_log_error("proz01_fill_AZ_Nummer nach splitten der Funktion  strNummer => :strNummer ")	
	
	/*if(iCnt == 1 && strNummer != -1)
	{
		vars strLNr = strNummer + 0001
		iRet = api_function ("string_fill_leading_char", strLNr, 0, 4)
		call api_log_error("proz01_fill_AZ_Nummer nach splitten der Funktion  strLNr => :strLNr   iRet => :iRet")	
		if(iRet >= 0)
		{
			d3server_value_char_allowed = strJahr ## "-" ## strLNr
			d3server_repos_id_allowed   = repos_id
		}
	} */
}

//////////////////////////////////////////////////////////////////////
// Auslesen des Gerichts und dessen Adresse aus der Adressverwaltung 
// Einfügen in die Felder Gericht und Gerichtadresse
/////////////////////////////////////////////////////////////////////
proc proz01_getGericht(repos_id, user, doc_type_short)
{
	vars strGericht  = dok_dat_feld[POS_Gericht]
	vars strGAdresse = dok_dat_feld[POS_GADRESSE]
	vars strEingabe	 = dok_dat_feld[POS_Strasse]
	
	vars strGName[1000], strGStrasse[1000], strGHNR[1000], strGPLZ[1000], strGOrt[1000], strDokId[1000]
	vars iCnt, iRet, i
	vars igetippt = @length(strGericht)
	vars igetippt_min = 2
	
	if(igetippt >= igetippt_min)
	{
		/*DBMS ALIAS strGName, strGStrasse, strGHNR, strGPLZ, strGOrt
		DBMS SQL SELECT dok_dat_feld_:POS_Name, dok_dat_feld_:POS_Strasse, dok_dat_feld_:POS_Hnr, dok_dat_feld_:POS_Plz, dok_dat_feld_:POS_Ort \
		FROM firmen_spezifisch \ 
		WHERE kue_dokuart = 'AAORG' AND dok_dat_feld_:POS_Name like '%:strGericht%' 
		iCnt = @dmrowcount
		iRet = @dmretcode
		DBMS ALIAS
		*/
		
		// Sucht die Adressen raus, bei denen der Benutzer in der federfuehrenden OE Gruppe ist oder bei der keine federfuehrende OE eingetragen ist
		DBMS ALIAS strGName, strGStrasse, strGHNR, strGPLZ, strGOrt, strDokId
		DBMS SQL SELECT fs.dok_dat_feld_:POS_Name, fs.dok_dat_feld_:POS_Strasse, fs.dok_dat_feld_:POS_Hnr, fs.dok_dat_feld_:POS_Plz, fs.dok_dat_feld_:POS_Ort, fs.doku_id \
		FROM firmen_spezifisch fs \
		LEFT JOIN benutzergruppen gruppe \
		ON gruppe.benutzergruppe = fs.dok_dat_feld_:POS_FFOE \
		Left JOIN benutzer_in_gruppe bInGrp \
		ON gruppe.gruppen_id = bInGrp.benutzergruppe \
		WHERE fs.kue_dokuart = 'AAORG' AND  (bInGrp.benutzername = :+user OR fs.dok_dat_feld_:POS_FFOE IS NULL) AND dok_dat_feld_:POS_Name LIKE '%:strGericht%' 
		iCnt = @dmrowcount
		iRet = @dmretcode
		DBMS ALIAS
		  
		  
		for i = 1 while (i <= iCnt) step 1
		{
			d3server_value_char_allowed[i] = strGName[i] ## "|" ## strGStrasse[i] ## " " ## strGHNR[i] ## ", " ## strGPLZ[i]  ## " " ## strGOrt[i] ## "|" ## strDokId[i] 
			d3server_repos_id_allowed [i] = repos_id
		}
	}	

}

//////////////////// l01_split_Gericht /////////////////////////////////////////////////
// Funktion zum des Felds Aktenzeichen nach AZ;Klaeger;Gerichtszeichen
// und fuellen in die jeweiligen Felder
//////////////////////////////////////////////////////////////////////////////////
proc proz01_split_Gericht()
{
	vars strGericht = dok_dat_feld[POS_Gericht]
	vars strTrennzeichen = "|"
	
	vars iSplit = api_function("string_split", strGericht, strTrennzeichen)
	
	if(iSplit > 1)
	{	
		dok_dat_feld[POS_Gericht]  		= api_splitted_string[1]		
		dok_dat_feld[POS_GADRESSE]    	= api_splitted_string[2]
		dok_dat_feld[POS_DOKIDORG]		= api_splitted_string[3]
	}
}

/**
# Funktion: Liefert das Aussonderungsdatum anhand einer Frist 
# Parameter: iFrist - Aufbewahrungsfrist
# Rückgabewert: -
**/
String proc proz01_getAussonderungsdatum(iFrist)
{
	vars dAussondatum = ""
	
	vars heutigesDatum = aktuelles_datum_deu
	
	dAussondatum = heutigesDatum(7,4) + iFrist
	dAussondatum = "31.12." ## dAussondatum
			
	return dAussondatum
}
