<?php
@session_start();
include_once( "f_admin.php" );
include_once( "f_wfl.php" );
include_once( "su_web.php" );
include_once( "w_fkt.php" );


if ( isset( $_GET[ "cmd" ] ) )
{
	$aseiuzrfsuaeghfol_cmd								= $_GET[ "cmd" ];
	
	if ( isset( $_GET[ "mid" ] ) )
	{
		$aseiuzrfsuaeghfol_maske_id						= $_GET[ "mid" ];
	}
	if ( isset( $_GET[ "wid" ] ) )
	{
		$aseiuzrfsuaeghfol_workflow_id					= $_GET[ "wid" ];
	}
	if ( isset( $_GET[ "did" ] ) )
	{
		$aseiuzrfsuaeghfol_dok_id							= $_GET[ "did" ];
	}
	if ( isset( $_GET[ "eid" ] ) )
	{
		$aseiuzrfsuaeghfol_element_id							= $_GET[ "eid" ];
	}
}
else
{
	$aseiuzrfsuaeghfol_cmd						= "";
}

if ( isset( $_POST[ "cmd" ] ) )
{
	$aseiuzrfsuaeghfol_cmd								= $_POST[ "cmd" ];
}	





switch ( $aseiuzrfsuaeghfol_cmd )
{
	case "render":
		$aseiuzrfsuaeghfol_html_output = _wfl_render( $aseiuzrfsuaeghfol_workflow_id, $aseiuzrfsuaeghfol_maske_id, $aseiuzrfsuaeghfol_dok_id, $aseiuzrfsuaeghfol_element_id );
		echo $aseiuzrfsuaeghfol_html_output;
		break;
	case "verarbeitung":
		$aseiuzrfsuaeghfol_html_output = _wfl_verarbeitung( $_POST );
		//echo $aseiuzrfsuaeghfol_html_output;
		break;
	default:
		break;
}



	function _wfl_render( $aseiuzrfsuaeghfol_workflow_id, $aseiuzrfsuaeghfol_maske_id, $aseiuzrfsuaeghfol_dok_id, $aseiuzrfsuaeghfol_element_id )
	{
		
		$aseiuzrfsuaeghfol_sp = sperre_dokument( $aseiuzrfsuaeghfol_dok_id, $_SESSION[ "benutzer_anmeldename" ] );
		

		$aseiuzrfsuaeghfol_workflow		= liefere_workflowinformationen( $_SESSION[ "mandant_name" ], "", $aseiuzrfsuaeghfol_workflow_id );
		$aseiuzrfsuaeghfol_maske		= liefere_maskeninformationen( $_SESSION[ "mandant_name" ], $aseiuzrfsuaeghfol_workflow[ 2 ][ "workflow_name" ], "", $aseiuzrfsuaeghfol_maske_id, $aseiuzrfsuaeghfol_workflow );
		$aseiuzrfsuaeghfol_dokument		= liefere_dokumentinformationen( $_SESSION[ "mandant_name" ], $aseiuzrfsuaeghfol_dok_id );
		
		if ( strlen( $aseiuzrfsuaeghfol_dokument[ 2 ][ "titel_lang" ] ) > 0 )
		{
			$aseiuzrfsuaeghfol_dok = $aseiuzrfsuaeghfol_dokument[ 2 ][ "titel_lang" ];
		}
		else
		{
			$aseiuzrfsuaeghfol_dok = $aseiuzrfsuaeghfol_dok_id;
		}
		
		if ( $aseiuzrfsuaeghfol_sp[ 0 ] > 0 )
		{
			
			
			
			
			
			
			$aseiuzrfsuaeghfol_kopf = liefere_kopf( $aseiuzrfsuaeghfol_workflow[ 2 ], $aseiuzrfsuaeghfol_maske[ 2 ], $aseiuzrfsuaeghfol_dok );
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output.$aseiuzrfsuaeghfol_kopf[ "html" ];
			
			$aseiuzrfsuaeghfol_plugins = array( "maske_plugin_01", "maske_plugin_02", "maske_plugin_03", "maske_plugin_04", "maske_plugin_05", "maske_plugin_06", "maske_plugin_07", "maske_plugin_08", "maske_plugin_09", "maske_plugin_10" );
			
			//$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."<script>window.open( 'w_maske.php?cmd=zeige_dok&d=".$aseiuzrfsuaeghfol_dok_id."&m=".$aseiuzrfsuaeghfol_dokument[ 2 ][ "mime_type" ]."', 'dok_anzeige', 'dependent=yes,location=no,menubar=no,status=no, toolbar=no' );</script>";
			//<div id='maske' style='display:inline; border: 4px solid blue; ' >
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."<div style=' float:left; width:60%;'>"; //border: 4px solid green; 
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."
				<form action='w_maske.php' method='POST' accept-charset='utf-8' >
					<input type='hidden' name='mandant_name' value='".$_SESSION[ "mandant_name" ]."' />
					<input type='hidden' name='workflow_name' value='".$aseiuzrfsuaeghfol_workflow[ 2 ][ "workflow_name" ]."' />
					<input type='hidden' name='workflow_id' value='".$aseiuzrfsuaeghfol_workflow[ 2 ][ "workflow_id" ]."' />
					<input type='hidden' name='maske_name' value='".$aseiuzrfsuaeghfol_maske[ 2 ][ "maske_name" ]."' />
					<input type='hidden' name='maske_id' value='".$aseiuzrfsuaeghfol_maske[ 2 ][ "maske_id" ]."' />
					<input type='hidden' name='element_id' value='".$aseiuzrfsuaeghfol_element_id."' />
					<input type='hidden' name='dok_id' value='".$aseiuzrfsuaeghfol_dok_id."' />
					<input type='hidden' name='cmd' value='verarbeitung' />
			";
			
			foreach ( $aseiuzrfsuaeghfol_plugins as $aseiuzrfsuaeghfol_p )
			{
				
				if ( strlen( $aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p ] ) > 0 )
				{
					
					if ( $aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p."_accordion" ] == "ja" )
					{
						$we4aifnaweufnauewfiaerw_titel = "<h3>".$aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p."_bezeichnung" ]."</h3>";
						if ( $aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p."_geoeffnet" ] == "ja" )
						{
							$aseiuzrfsuaeghfol_geoeffnet = "0";
						}
						else
						{
							$aseiuzrfsuaeghfol_geoeffnet = "false";
						}
						
						//maske_plugin_01_einklappbar
						
						if ( $aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p."_einklappbar" ] == "ja" )
						{
							$aseiuzrfsuaeghfol_einklappbar = "true";
						}
						else
						{
							$aseiuzrfsuaeghfol_einklappbar = "false";
						}
						$aseiuzrfsuaeghfol_accord	= " id='accordion_".$aseiuzrfsuaeghfol_p."' ";
						$oweifhnjawoeifmskript		= "<script> $( \"#accordion_".$aseiuzrfsuaeghfol_p."\" ).accordion({ collapsible: ".$aseiuzrfsuaeghfol_einklappbar.", active:".$aseiuzrfsuaeghfol_geoeffnet.", heightStyle: 'content' });</script>";
					}
					else
					{
						$aseiuzrfsuaeghfol_accord			= "";
						$oweifhnjawoeifmskript				= "";
						$we4aifnaweufnauewfiaerw_titel		= "";
					}
					
					
					
					$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."<div  ".$aseiuzrfsuaeghfol_accord." style='width:100%;' >";
					
					$aseiuzrfsuaeghfol_funcname = explode( ".", $aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p ] );
					$aseiuzrfsuaeghfol_funcname = $aseiuzrfsuaeghfol_funcname[ 0 ];
					
					$aseiuzrfsuaeghfol_maske_pos = explode( "_", $aseiuzrfsuaeghfol_p );
					$aseiuzrfsuaeghfol_maske_pos = $aseiuzrfsuaeghfol_maske_pos[ 2 ];
					
					include_once( "wfl_plugins/".$aseiuzrfsuaeghfol_maske[ 2 ][ $aseiuzrfsuaeghfol_p ] );
					
					
					$aseiuzrfsuaeghfol_id = liefere_zufaelligen_string();
					
					
					//maske_plugin_01_bezeichnung
					$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output.$we4aifnaweufnauewfiaerw_titel;
					$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."<div id='".$aseiuzrfsuaeghfol_id."'>";
					
					
					
					
					
					
					
					
					
					
					$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output.$aseiuzrfsuaeghfol_funcname( $_SESSION[ "mandant_name" ], $aseiuzrfsuaeghfol_workflow, $aseiuzrfsuaeghfol_maske, $aseiuzrfsuaeghfol_maske_pos, $aseiuzrfsuaeghfol_dokument );
					
					
					//maske_plugin_01_geoeffnet
					
					
					
					$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."</div></div><hr  style='max-width: 100%; text-align:left; margin-left:0px;' />".$oweifhnjawoeifmskript;
					
				}
			}
			
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."</form>";
			
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."</div><div id='aseiuzrfsuaeghfol_anzeige' style=' width:39%; vertical-align:top; float:right; '>"._web_verpacke_dok_in_tags( $aseiuzrfsuaeghfol_dokument[ 2 ][ "dok_id" ], $aseiuzrfsuaeghfol_dokument[ 2 ][ "mime_type" ], 14 )."</div><div style='clear:both;'></div>";
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output.liefere_fuss( $aseiuzrfsuaeghfol_kopf );
		}
		else
		{
			$aseiuzrfsuaeghfol_kopf_output = liefere_kopf( $aseiuzrfsuaeghfol_workflow[ 2 ], $aseiuzrfsuaeghfol_maske[ 2 ], $aseiuzrfsuaeghfol_dok );
			
			$aseiuzrfsuaeghfol_kopf_output = $aseiuzrfsuaeghfol_kopf_output;
			
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_kopf_output[ "html" ]."<div style='min-height:600px;'><p style='margin-left: 40px;' >".$aseiuzrfsuaeghfol_sp[ 1 ]."</p>";
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output."<input type='button'  style='margin-left: 40px;' value='zum Schreibtisch' onclick='window.location.href=\"us_schreibtisch.php\"' /></div>";
			
			$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output.liefere_fuss( $aseiuzrfsuaeghfol_kopf );
		}
		
		
		
		return $aseiuzrfsuaeghfol_html_output;
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	function _wfl_verarbeitung( $POST )
	{
		//xlog( 4, json_encode( $POST ) );
		
		//2015.01.26 10:08:33 INFO  24 {"mandant_name":"Gaia","workflow_name":"Checkup","workflow_id":"1","maske_name":"sachliche Pr\u00fcfung","maske_id":"1","element_id":"61","dok_id":"100024147","cmd":"verarbeitung","a":{"num_01":"","alpha_01":"test","alpha_02":"d3batchdocumentcheck.pdf","alpha_04":"","alpha_09":"","datum_01":"","alpha_03":"","alpha_05":""},"zeile1":{"p_datum_01":"28.01.2015","p_geld_01":"","p_num_01":"312","p_alpha_02":"Originalgr\u00f6\u00dfe","p_alpha_04":"","p_alpha_01":""},"zeile2":{"p_datum_01":"08.01.2015","p_geld_01":"","p_num_01":"123","p_alpha_02":"verkleinerte Darstellung","p_alpha_04":"","p_alpha_01":""},"zeile3":{"p_datum_01":"04.01.2015","p_geld_01":"","p_num_01":"213","p_alpha_02":"verkleinerte Darstellung","p_alpha_04":"","p_alpha_01":""},"vers_aWKy9H7bYFJd4MIuxBPoobPbe6_length":"25","weiterleitung_ziel":"","aktion":"speichern"}
		
		$multi = array();
		
		foreach( $POST as $key => $value )
		{
			switch ( $key )
			{
				case "a":
					$kopfdaten = $value;
					break;
				case "mandant_name":
					$mandant_name = $value;
					break;
				case "workflow_name":
					$workflow_name = $value;
					break;
				case "workflow_id":
					$workflow_id = $value;
					break;
				case "maske_name":
					$maske_name = $value;
					break;
				case "maske_id":
					$aktuelle_maske_id = $value;
					break;
				case "element_id":
					$element_id = $value;
					break;
				case "dok_id":
					$dok_id = $value;
					break;
				case "weiterleitung_ziel_oa":
					$weiterleitung_ziel_oa = $value;
					break;
				case "weiterleitung_ziel_zs":
					$weiterleitung_ziel_zs = $value;
					break;
				case "weiterleitung_ziel_emp":
					$weiterleitung_ziel_emp = $value;
					break;
				case "aktion":
					$aktion = $value;
					break;
				default:
					if ( substr( $key, 0, 5 ) == "zeile" )
					{
						$mehrfachattribute[] = $value;
					}
					break;
			}
		}
		
		
		
		
		//	xlog( 5, "Aktion: ".$aktion );
		//	xlog( 5, "Post: ".json_encode( $POST ) );
		
		switch( $aktion )
		{
			
			
			
			
			case "nicht_speichern":
				// Keine Aktion nötig.
				
				$d					= entsperre_dokument( $dok_id );
				
				
				break;
				
				
				
				
				
				
				
				
			case "weiterleiten":
				
				$w					= liefere_workflowinformationen( $mandant_name, "", $workflow_id );
				
				$aktuelle_maske		= liefere_maskeninformationen( $mandant_name, $workflow_name, "", $aktuelle_maske_id, "" );
				
				
				if ( $aktuelle_maske[ 2 ][ "maske_default_frist" ] > 0 )
				{
					$heute		= time();
					
					$frist		= bcmul( $aktuelle_maske[ 2 ][ "maske_default_frist" ], 86400, 0 );
					
					$ziel		= bcadd( $heute, $frist, 0 );
					
					$zieldatum	= date( "d.m.Y", $ziel );
					
					$frist_txt	= " (Bearbeitungsfrist: ".$zieldatum.")";
				}
				else
				{
					$zieldatum	= "";
					
					$frist_txt	= "";
					
				}
				
				if ( strpos( $weiterleitung_ziel_oa, "(" ) === false )
				{
					// Gruppe
					$empfaenger			= $weiterleitung_ziel_oa;
					$empfaenger_typ		= "g";
					$weiterl			= "der Gruppe ";
				}
				else
				{
					// Benutzer
					
					$anfang = bcadd( strpos( $weiterleitung_ziel_oa, "(" ), 1, 0 );
					
					$laenge	= bcsub( strpos( $weiterleitung_ziel_oa, ")" ), $anfang, 0 );
					
					$empfaenger			= substr( $weiterleitung_ziel_oa, $anfang, $laenge );
					$empfaenger_typ		= "b";
					$weiterl			= "dem Benutzer ";
				}
				
				$e					= aktualisiere_dokument_attribute( $mandant_name, $dok_id, $kopfdaten, $mehrfachattribute );
				
				$f					= erzeuge_postkorb_element( $mandant_name, $dok_id, $empfaenger, $_SESSION[ "benutzer_anmeldename" ], "Dokument zur Bearbeitung: ".$workflow_name."/".$aktuelle_maske[ 2 ][ "maske_name" ], 1, $empfaenger_typ, $zieldatum, $zieldatum, "", $workflow_id, $aktuelle_maske_id );
				
				if ( $w[ 2 ][ "protokoll" ] == "ja" )
				{
					$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "WEITERLEITUNG", "Das Dokument wurde in der Maske ".$aktuelle_maske[ 2 ][ "maske_name" ]." vom Benutzer ".$_SESSION[ "benutzer_anmeldename" ]." ".$weiterl." ".$weiterleitung_ziel_oa." weitergeleitet".$frist_txt."." );
				}
				
				$g					= quittiere_postkorb_element( $mandant_name, $element_id );
				
				$d					= entsperre_dokument( $dok_id );
				
				break;
				
				
				
				
				
				
				
				
				
				
				
			case "weiterleiten_zu_schritt":
				
				$w					= liefere_workflowinformationen( $mandant_name, "", $workflow_id );
				
				$aktuelle_maske		= liefere_maskeninformationen( $mandant_name, $workflow_name, "", $aktuelle_maske_id, "" );
				
				$naechste_maske		= liefere_maskeninformationen( $mandant_name, $workflow_name, "", $weiterleitung_ziel_zs, "" );
				
				if ( $aktuelle_maske[ 2 ][ "maske_default_frist" ] > 0 )
				{
					$heute		= time();
					
					$frist		= bcmul( $aktuelle_maske[ 2 ][ "maske_default_frist" ], 86400, 0 );
					
					$ziel		= bcadd( $heute, $frist, 0 );
					
					$zieldatum	= date( "d.m.Y", $ziel );
					
					$frist_txt	= " (Bearbeitungsfrist: ".$zieldatum.")";
				}
				else
				{
					$zieldatum	= "";
					
					$frist_txt	= "";
					
				}
				
				if ( strpos( $weiterleitung_ziel_emp, "(" ) === false )
				{
					// Gruppe
					$empfaenger			= $weiterleitung_ziel_emp;
					$empfaenger_typ		= "g";
					$weiterl			= "der Gruppe ";
				}
				else
				{
					// Benutzer
					
					$anfang = bcadd( strpos( $weiterleitung_ziel_emp, "(" ), 1, 0 );
					
					$laenge	= bcsub( strpos( $weiterleitung_ziel_emp, ")" ), $anfang, 0 );
					
					$empfaenger			= substr( $weiterleitung_ziel_emp, $anfang, $laenge );
					$empfaenger_typ		= "b";
					$weiterl			= "dem Benutzer ";
				}
				
				$e					= aktualisiere_dokument_attribute( $mandant_name, $dok_id, $kopfdaten, $mehrfachattribute );
				
				$f					= erzeuge_postkorb_element( $mandant_name, $dok_id, $empfaenger, $_SESSION[ "benutzer_anmeldename" ], "Dokument zur Bearbeitung: ".$workflow_name."/".$naechste_maske[ 2 ][ "maske_name" ], 1, $empfaenger_typ, $zieldatum, $zieldatum, "", $workflow_id, $weiterleitung_ziel_zs );
				
				//xlog( 4, json_encode( $w ) );
				
				if ( $w[ 2 ][ "protokoll" ] == "ja" )
				{
					$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "WEITERLEITUNG_ZU_SCHRITT", "Das Dokument wurde in der Maske ".$aktuelle_maske[ 2 ][ "maske_name" ]." vom Benutzer ".$_SESSION[ "benutzer_anmeldename" ]." ".$weiterl." ".$weiterleitung_ziel_emp." in die Ziel-Maske ".$naechste_maske[ 2 ][ "maske_name" ]." weitergeleitet".$frist_txt."." );
				}
				
				$g					= quittiere_postkorb_element( $mandant_name, $element_id );
				
				$d					= entsperre_dokument( $dok_id );
				
				break;
				
				
				
				
				
				
				
				
				
				
				
				
				
			case "speichern":
				$e					= aktualisiere_dokument_attribute( $mandant_name, $dok_id, $kopfdaten, $mehrfachattribute );
				
				if ( $w[ 2 ][ "protokoll" ] == "ja" )
				{
					$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "ATTRIB_SPEICHERN", "Der Benutzer ".$_SESSION[ "benutzer_anmeldename" ]." hat die Attribute gespeichert." );
				}
				
				$d					= entsperre_dokument( $dok_id );
				
				break;
				
				
				
				
				
				
				
				
			case "schritt_abschliessen":
				
				
				///////////////////////////////////////////////
				// Hole Informationen über den Workflow:
				
				$w					= liefere_workflowinformationen( $mandant_name, "", $workflow_id );
				
				
				///////////////////////////////////////////////
				// Hole Informationen über die aktuell abgeschlossene Maske:
				
				$aktuelle_maske		= liefere_maskeninformationen( $mandant_name, $workflow_name, "", $aktuelle_maske_id, "" );
				
				
				
				///////////////////////////////////////////////
				// Wenn das aktuelle Element das letzte aus diesem Workflowschritt ist und quittiert wurde (Radiobutton "Bearbeitung abschließen"), dann wird das Dokument in diese Maske weitergeleitet.
				
				$neue_maske_id		= $aktuelle_maske[ 2 ][ "maske_default_folgemaske" ];
				
				if ( $neue_maske_id != 0 )
				{
					
					$neue_maske			= liefere_maskeninformationen( $mandant_name, $workflow_name, "", $neue_maske_id, "" );
					
					
					
					///////////////////////////////////////////////
					// An diese Empfänger wird der Workflow das Element weiterleiten. Die spätere Hook-Funktion hat die Möglichkeit, das Array aus Empfänger-Arrays zu ändern.
					
					$neue_empfaenger = array( array( "empfaenger"=>$neue_maske[ 2 ][ "maske_default_empfaenger" ], "empfaenger_typ"=>$neue_maske[ 2 ][ "maske_default_empfaenger_typ" ] ) );
					
				}
				
				
				///////////////////////////////////////////////
				// Berechnung der Bearbeitungsfrist
				
				
				if ( $aktuelle_maske[ 2 ][ "maske_default_frist" ] > 0 )
				{
					$heute		= time();
					
					$frist		= bcmul( $aktuelle_maske[ 2 ][ "maske_default_frist" ], 86400, 0 );
					
					$ziel		= bcadd( $heute, $frist, 0 );
					
					$zieldatum	= date( "d.m.Y", $ziel );
					
					$frist_txt	= " (Bearbeitungsfrist: ".$zieldatum.")";
				}
				else
				{
					$zieldatum	= "";
					
					$frist_txt	= "";
					
				}
				
				
				///////////////////////////////////////////////
				// Hook-Funktion
				$funcname = "workflow_".$workflow_id."_".$aktuelle_maske_id;
				
				
				
				if ( function_exists( $funcname ) )
				{
					$erg_1 = $funcname( $dok_id, $element_id, $kopfdaten, $mehrfachattribute, $neue_empfaenger, $aktuelle_maske[ 2 ], $neue_maske_id, $POST );
					
					//return array( $kopfdaten, $mehrfachattribute, $neue_empfaenger, $attribute, $neue_maske_id );
					
					$kopfdaten				= $erg_1[ 0 ];
					$mehrfachattribute		= $erg_1[ 1 ];
					$neue_empfaenger		= $erg_1[ 2 ];
					$attribute				= $erg_1[ 3 ];
					$neue_maske_id			= $erg_1[ 4 ];
					
				}
				
				if ( $neue_maske_id != 0 )
				{
					// Weiter im Workflow zur nächsten Maske
					
					
					
					
					
					
					
					
					///////////////////////////
					// Der Schritt kann nur weitergeleitet werden, wenn es keinen weiteren unquittierten Postkorbeintrag in diesem Workflowschritt gibt.
					// Wenn $anzahl == 1 dann gibt es keinen weiteren Postkorbeintrag außer dem, der hier gerade behandelt wird.
					// Ist $anzahl > 1, dann gibt es noch weitere Postkorbeinträge, die erst noch bearbeitet werden müssen, bevor die Maske gewechselt werden kann.
					
					$STATEMENT = "select count( * ) anzahl from ca_postkorb where dok_id = ".$dok_id." and wid = ".$workflow_id." and mid = ".$aktuelle_maske_id." and quittiert_am = ''";
					
					$ergebnis = xdb( $STATEMENT );
					
					$anzahl = $ergebnis[ 1 ][ 0 ][ "anzahl" ];
					
					if ( $w[ 2 ][ "protokoll" ] == "ja" )
					{
						$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "SCHRITT_ABGESCHLOSSEN", "Der Benutzer ".$_SESSION[ "benutzer_anmeldename" ]." hat die Bearbeitung des Dokumentes ".$dok_id." in der Maske ".$aktuelle_maske[ 2 ][ "maske_name" ]." (Workflow ".$workflow_name.") abgeschlossen." );
					}
					
					if ( $anzahl == 1 )
					{
					
						foreach( $neue_empfaenger as $r )
						{
							//xlog( 4, json_encode( $r ) );
							$f					= erzeuge_postkorb_element( $mandant_name, $dok_id, $r[ "empfaenger" ], $_SESSION[ "benutzer_anmeldename" ], "Dokument zur Bearbeitung: ".$workflow_name."/".$neue_maske[ 2 ][ "maske_name" ], 1, $r[ "empfaenger_typ" ], $zieldatum, $zieldatum, "", $workflow_id, $neue_maske_id );
							if ( $w[ 2 ][ "protokoll" ] == "ja" )
							{
								if ( $r[ "empfaenger_typ" ] == "b" )
								{
									$empf = "Der Benutzer ";
								}
								else
								{
									$empf = "Die Gruppe ";
								}
								
								if ( $w[ 2 ][ "protokoll" ] == "ja" )
								{
									$p				= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "SCHRITT_EMPFANGEN", $empf.$r[ "empfaenger" ]." hat das Dokument ".$dok_id." in der Maske ".$neue_maske[ 2 ][ "maske_name" ]." (Workflow ".$workflow_name.") zur Bearbeitung bekommen".$frist_txt."." );
								}
							}
						}
					}
					
					
				}
				else
				{
					// Workflow für dieses Dokument beenden
					
					///////////////////////////
					// Den Workflow beenden heißt, den letzten Postkorb-Eintrag zu quittieren, der im Zuge des Workflows noch unquittiert ist.
					// Wir stellen also fest, ob es noch unquittierte Einträge außer dem hier behandelten gibt - falls nein ($anzahl == 1) => der Workflow wird beendet,
					// d.h. das letzte Element quittiert.
					
					$STATEMENT = "select count( * ) anzahl from ca_postkorb where dok_id = ".$dok_id." and wid = ".$workflow_id." and mid = ".$aktuelle_maske_id." and quittiert_am = ''";
					
					$ergebnis = xdb( $STATEMENT );
					
					$anzahl = $ergebnis[ 1 ][ 0 ][ "anzahl" ];
					
					if ( $w[ 2 ][ "protokoll" ] == "ja" )
					{
						$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "SCHRITT_ABGESCHLOSSEN", "Der Benutzer ".$_SESSION[ "benutzer_anmeldename" ]." hat die Bearbeitung des Dokumentes ".$dok_id." in der Maske ".$aktuelle_maske[ 2 ][ "maske_name" ]." (Workflow ".$workflow_name.") abgeschlossen." );
						
					}
					
					if ( $anzahl == 1 )
					{
						$p					= erstelle_protokolleintrag( $mandant_name, $workflow_name, $dok_id, $_SESSION[ "benutzer_anmeldename" ], "WFL_ENDE", "Der Workflow ".$workflow_name." des Dokumentes ".$dok_id." wurde beendet." );
					}
					
					
				}
				
				$e					= aktualisiere_dokument_attribute( $mandant_name, $dok_id, $kopfdaten, $mehrfachattribute );
				
				$g					= quittiere_postkorb_element( $mandant_name, $element_id );
				
				$d					= entsperre_dokument( $dok_id );
				
				
				break;
			
		}
		
		
		
		
		
		
		
		
		
		//xlog( 4, json_encode( $multi ) );
		
		//
		
		
		header( "Location: us_schreibtisch.php" );
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	function liefere_kopf( $wfl, $maske, $dok_id )
	{
		
		$mandant_name			= $_SESSION[ "mandant_name" ];
		$benutzer_anmeldename	= $_SESSION[ "benutzer_anmeldename" ];
		
		if ( strlen( $benutzer_anmeldename ) > 0 )
		{
			
			$time = time();
			
			$vergangene_zeit = bcsub( $time, $_SESSION[ "eingeloggt_ts" ], 0 );
			
			
			$ts = berechne_zeitspanne( $vergangene_zeit );
			
			
			
			if ( ( $benutzer_anmeldename == "superuser" ) and ( $mandant_name == "Standard" ) )
			{
				$name = "Superuser/Mandanten- und Systemverwaltung";
			}
			else
			{
				$benutzer = liefere_benutzerinformationen( $mandant_name, $benutzer_anmeldename );
				$name = $benutzer[ 2 ][ "benutzer_vorname" ]." ".$benutzer[ 2 ][ "benutzer_nachname" ];
			}
			
			// <form name="sap" action="redir.php" style="display:inline;" method="post" ><input type="text" name="ziel" ><input type="submit" value="=>" ></form>
			
			
			
			
			//<input type="button" style="height:20px;font-size:x-small;" value="Go!" onclick="alert(\'hallo\');"><span style="color:silver;">
			
			
			
			$eingeloggt_1 = "<b>".$wfl[ "workflow_name" ]." / Schritt: ".$maske[ "maske_name" ].' / Dokument '.$dok_id."</b>";
			
			
			$eingeloggt_2 = "<span id='span_menu_1' >Mandant: </span><span id='span_menu_2'>".$mandant_name."</span>&nbsp;&nbsp;<span id='span_menu_3'>|</span>&nbsp;&nbsp;<span id='span_menu_4'>Benutzer: </span><span id='span_menu_5'>".$name."</span><span id='span_menu_6'>, eingeloggt seit ".$ts."</span>";
			
			
			$eingeloggt_3 = "&nbsp;&nbsp;<span style='color:silver;'>|</span>&nbsp;&nbsp;";
			
		}
		else
		{
			$eingeloggt_1 = "";
			$eingeloggt_2 = "";
		}
		
		if ( $_SESSION[ "css" ] == "index.php" )
		{
			$css_datei = liefere_konfig( "Standard", "login_css" );
		}
		else
		{
			$css_datei = liefere_konfig( $mandant_name, "login_css" );
		}
		
		header( "Content-Type: text/html; charset=utf-8" );
		
		$aseiuzrfsuaeghfol_html_output = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 1.0 Strict//EN"
			"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

		
		<html>
			<head>
				<meta http-equiv="Content-Type" content="text/html; charset=utf-8" > 
				<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon" >
				
				<!-- #################### JAVASCRIPT standard #################### -->
				
				<script language="javascript" type="text/javascript" src="js/jquery-3.2.1.min.js" ></script>
				<script language="javascript" type="text/javascript" src="js/jquery-ui.min.js" ></script>
				<script language="javascript" type="text/javascript" src="js/su.js" ></script>
				<script language="javascript" type="text/javascript" src="js/jquery-ui-i18n.min.js"></script>
				<script language="javascript" type="text/javascript" src="js/chosen.jquery.min.js"></script>
				<script language="javascript" type="text/javascript" src="js/jstree.min.js"></script>
				<script language="javascript" type="text/javascript" src="js/jquery.dataTables.min.js"></script>
				<script language="javascript" type="text/javascript" src="js/jquery.fancybox.pack.js"></script>
				
		
				
		';
		
		
				
				$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. '
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/jquery-ui.min.css" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/'.$css_datei.'" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/chosen.css" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/style.jstree.css" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/jquery.fancybox.css" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/jquery.dataTables_themeroller.css" >
						<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/jquery.dataTables.min.css" >
						
						
					';
				//<link rel="stylesheet" type="text/css" href="stil/'.$css_datei.'/styles.css" ></link>
				
				
				
				
				$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. '
				
				<!-- #################### Titel #################### -->
				<title>calbers.de Webapplikationen - Workflowbearbeitung</title>
				
			</head>
			<body>';
		
		$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. "<a name='header' ></a>";
		
		
		$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. '<div id="menu_top">
		<table border="0" ><tr><td><img src="img/calbers.de.gif" alt="Logo" style="display:inline;" /></td><td><img src="img/calbers.de.gif" alt="Logo" style="display:inline;" /></td></tr></table></div>
		<h1 id="title">Workflowbearbeitung</h1>';
		
		
		$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. '<div id="menu_1">';
		$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. $eingeloggt_1;
		$aseiuzrfsuaeghfol_html_output = $aseiuzrfsuaeghfol_html_output. "</div><div id='content' style='' >";
		
		return array( "html"=>$aseiuzrfsuaeghfol_html_output, "name"=>$name, "ts"=>$ts, "eingeloggt"=>$eingeloggt_2 );
	}
	
	function liefere_fuss( $input )
	{
		
		return '</div><div id="menu_2">'.$input[ "eingeloggt" ].'</div><p id="footer" style="text-align:center;">&copy; calbers.de 2011-2015</p><a name="footer" ></a></body></html>';
	}
	
	
	
	
	
	
	
	
	
	
?>