<?php
	require_once("config/connect.php");
	require_once("global_functions.php");
	check_login('', '', 'kassenabschluss');

?>
<!DOCTYPE html> 
<html> 
<head>
	<meta charset="utf-8">
	<title>SITPOS Kassenablschluss</title>
	<?php echo PAGE_CACHE_OFF; ?>
	<script src="jquery/jquery-2.1.1.min.js"></script>
	<script src="jquery/jquery-ui1.11.4.js"></script>
	<script src="jquery/datepicker-de.js"></script>
	<script src="include/global_js_functions.js"></script>
	<link rel="stylesheet" type="text/css" href="include/menue.css">
	<link rel="stylesheet" type="text/css" href="include/menue.css">
	<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css">
	<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css">
	
	<style type="text/css">
		<?php include 'include/main.css'; ?>
		<?php include 'include/menue.css'; ?>
		#selectUserAbrDiv{ position:relative; float:left; width:55%; height:100%;			}
		#selectUserAbrDiv p { position:relative; float:left; font-size:14px; margin-right:5px;	}
		#selectUserAbrDiv select { position:relative; float:left; width:42%; height:70%;  margin:2% 2%; font:<?php echo SCHRIFT_MENUE ?>;
			 border-radius:4px;	}
		#selectUserAbrDiv select option {  font-size:15px; font-weight:bold; border-bottom:1px #444 solid; padding:4px 0; color:#000; text-align:center;	}
		#abrechnungsUserSelect { position:relative; float:left; font-size:12px; font-weight:bold; display:none;		}
		#checkboxAbrechnungUser { position:relative; margin:5% 0 0 0;			}
		
		input::placeholder{	color:#999; font-size:.8em; 		}	
	</style>

</head>
<body>
	<input id="hiddenUserAbrechEnablerField" hidden  type="text" />
	<input id="hiddenUserAbrechIdField" hidden  type="text" />

	<div id="errorDialog"></div>
	<div id="licenseDialog"></div>
	<div id="sit_world"><img id="sit_world_gif" src="images/sIT_world.gif" /> <div id="sit_world_text"> </div></div>
<?php
		
		#font-size:15px;  color:#fff;  background: transparent -moz-linear-gradient(center top , #FAA51A, #F47A20) repeat scroll 0% 0%;
		
		#	$ausdruck_button="<input type='button'  id='Drucken' class='ausdrucken_button button_gross button orange' onclick=\'seite_drucken('kassenabschluss', 'bon_id', '', '')\' value='Drucken' />";
		$selectUserAbrOption="<div id='selectUserAbrDiv'><p style='font-weight:bold;' >Vordruck nach Benutzer: <input type='checkbox' id='checkboxAbrechnungUser' onclick='displayOption()' /></p><select id='abrechnungsUserSelect' class='button_gross button orange'  ><option id='selUserId0' onclick='setSelectedUser(this.id), drucke_kassenabschluss_aus(0)' >Benutzer Auswahl</option>";
		$userQl=mysql_query("SELECT * FROM benutzer");
		while($userR=mysql_fetch_array($userQl)){
			$selectUserAbrOption.="<option id=\'selUserId".$userR['id']."\' onclick=\'setSelectedUser(this.id), drucke_kassenabschluss_aus(0)\' >".$userR['name']."</option>";
		
		}
		#AND REPLACE(CAST(betr_satz_null AS DECIMAL), ',', '.') = 0 AND REPLACE(CAST(0betr_satz_besonder AS DECIMAL), ',', '.') = 0
		$selectUserAbrOption.="</select></div>";
		
		$abschlussStatus =monatsAbschlussStatus();
		
		$abschlussMsg=false;
		if($abschlussStatus != false){
			$abschlussMsg=$abschlussStatus;
		}

?>

<script>

	licenseStatus=false;

	function displayOption(){
		if($("#checkboxAbrechnungUser").prop('checked') == true){
			$("#abrechnungsUserSelect").css({ "display":"inline"			});
			$("#hiddenUserAbrechEnablerField").val( $("#abschluss_bon").val() );
		}
		else{
			$("#abrechnungsUserSelect").css({ "display":"none"			});
			$("#hiddenUserAbrechEnablerField").val("");
			$("#hiddenUserAbrechIdField").val("");
			drucke_kassenabschluss_aus( $("#abschluss_bon").val() );
		}
	
	
	}
	
	function setSelectedUser(userId){
		$("#hiddenUserAbrechIdField").val(userId);
	}
		
	function drucke_EC_kassenabschluss_aus(bon_id)
	{	
		checkMode=$("#hiddenUserAbrechEnablerField").val();
		if(bon_id == 0) bon_id= $("#hiddenUserAbrechEnablerField").val();
		if(checkMode > 0 && bon_id > 0){
			$("#hiddenUserAbrechEnablerField").val( bon_id);
			abschlUserId=$("#hiddenUserAbrechIdField").val();
		}
		else abschlUserId="";


		$.ajax({
			type: "POST",
			url: "ajax_funktionen.php",
			dataType : "html",
			data: {funktion: "ec_kassenabschluss_ausdrucken", id: bon_id, abschlOnUser:abschlUserId, },
			async: false,
			success:function(html){
				$("#fenster_rechts").html(html).css({ "height":$("#fenster_links").height(), "width":"auto" });
			}
		})
		
	}
	
	function drucke_kassenabschluss_aus(bon_id)
	{	
		invoicebonPdfPrint="<?php echo AUSDRUCK_RECHNUNGSBON_PDF; ?>";
		userSelectionDiv="<?php echo $selectUserAbrOption; ?>";
		if(invoicebonPdfPrint.toLowerCase() == 'ja')forcePdfPrint=true;
		else forcePdfPrint=false;
		checkMode=$("#hiddenUserAbrechEnablerField").val();
		if(bon_id == 0) bon_id= $("#hiddenUserAbrechEnablerField").val();
		if(checkMode > 0 && bon_id > 0){
			$("#hiddenUserAbrechEnablerField").val( bon_id);
			abschlUserId=$("#hiddenUserAbrechIdField").val();
		}
		else abschlUserId="";


		$.ajax({
			type: "POST",
			url: "ajax_funktionen.php",
			dataType : "html",
			data: {funktion: "kassenabschluss_ausdrucken", id: bon_id, abschlOnUser:abschlUserId, },
			async: false,
			success:function(html){
				$("#fenster_rechts").html(html).css({ "height":$("#fenster_links").height(), "width":"auto" });
				xWidth=$("#fenster_rechts").width();
				
				var abschlStatus = $(html).filter(".abrechnungsAusdrHeader").text();				
				var butTxt= 'Drucken';
				if(abschlStatus.indexOf('KASSAABSCHLUSS VORDRUCK') !== -1 || abschlStatus.indexOf('Abrechnungs Ausdruck') !== -1){
					butTxt= 'Vordruck erstellen';
				}
				else userSelectionDiv="";
			
				button_html=userSelectionDiv+"<input type='button'  id='Drucken' class='ausdrucken_button button_gross button orange' onclick=\"seite_drucken('kassenabschluss', "+bon_id+", '', "+forcePdfPrint+")\" value='"+butTxt+"' /><div class='cclear'></div>";

				butMargin=".5% "+xWidth*.1;
				$("#menuDivRight").html(button_html).css({ "visibility":"visible", "overflow":"initial", "width":"75%", 	});
				$("#Drucken").css({ "width":"35%", "float":"right", "margin-left":"0", "margin-top":".9%", "margin-right":"2%",	});
				$("#checkboxAbrechnungUser").css({ 	});	
				
				if( checkMode >0 ){
					$("#checkboxAbrechnungUser").prop('checked', true);
					$("#abrechnungsUserSelect").css({ "display":"inline"			});

					currUserid=$("#hiddenUserAbrechIdField").val();
					if( currUserid != ''){ selUserId=currUserid;	}
					else selUserId="selUserId0";
					$('#abrechnungsUserSelect option[id='+selUserId+']').prop('selected', true);
				}
				
			}
		})
		
	}
	
	function kassenAbschlTest(){
		return "kassenabschl aufruf Test";
	}
	
	function kassenAbschldurchfuehren(){	
		kassastand=$("#kassastandKassaabschl").val();
			//	kassastand=-kassastand;
			// 	licenseStatus wird in ajax_funktionen in der funktion kassenabschluss_ausdrucken gesetzt !!!
	
			if(kassastand < 0 ){
				betragFormated=(kassastand*1).toFixed(2);
				betragFormated=betragFormated.replace(".", ",")+" ";
				addLicWarning=false;
				addLicWarningHead=false;
				if(licenseStatus != false){
					addLicWarning=licenseStatus+"<hr />";
					addLicWarningHead="Fehlende Lizensierung / ";
				
				}
				
				dialogContent="<p class='generalDialogP' style='text-align:center;' >Derzeitiger Kassastand: "+betragFormated+"</p>";
				openKassenabschlDialog('kassaabschlussstand_minus', 'Kassenabschluss Betrag Minus', dialogContent, 'wrapper_bon');
				
			}
			else if(licenseStatus != false){
				dialogContent=licenseStatus;
				// openLicenseDialog('licenseViolation', 'Fehlende Lizensierung', dialogContent, 'wrapper_bon');
				openKassenabschlDialog('licenseViolation', 'Fehlende Lizensierung', dialogContent, 'wrapper_bon');
			}
			else {
				sitpos_welt_anzeigen("Kassenabschluss wird durchgeführt ...");
				$("#kassa_abschluss_durchfuehren").click();	
				sitpos_welt_ausblenden();
			}
			
			
			if (<?php if(defined('KASSENLADE_VORHER_OEFFNEN') && strtolower(KASSENLADE_VORHER_OEFFNEN) == 'ja') echo "true"; else echo "false" ?>)
			{
				kassenladeOeffnen();
				
			}
			
			
	}
	
	$(document).ready(function() {

		$("#kassa_abschluss_durchfuehren").click(function() {
			$("#checkboxAbrechnungUser").prop('checked', false);
			$("#abrechnungsUserSelect").css({ "display":"none"			});
			$("#hiddenUserAbrechEnablerField").val("");
			$("#hiddenUserAbrechIdField").val("");
			
			invoicebonPdfPrint="<?php echo AUSDRUCK_RECHNUNGSBON_PDF; ?>";
			invoice_a4_PdfPrint="<?php echo AUSDRUCK_RECHNUNG_A4; ?>";
			abschluss_bon=document.getElementById("abschluss_bon").value;
			data = $("#kassa_abschluss_durchfuehren_id").serialize();
			console.log(data);
			$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: data,			
				async: false,
				success:function(html){
					console.log(html);
					$("#fenster_links").html(html);
					drucke_kassenabschluss_aus(abschluss_bon);
					//seite_drucken();
					invoicebonPdfPrint="<?php echo AUSDRUCK_RECHNUNGSBON_PDF; ?>";
					autoBackup="<?php echo strtolower(AUTOMATISCH_BACKUP_KASSENABSCHLUSS); ?>";
					mailSenden="<?php echo strtolower(EMAIL_VERSENDEN_KASSENABSCHLUSS); ?>";
					autoBackupEmail="<?php echo strtolower(BACKUP_EMAIL_VERSENDEN_KASSENABSCHLUSS); ?>";

						if(invoicebonPdfPrint.toLowerCase() != 'ja') seite_drucken();		// ansonsten wird der pdf ausdruck in ajax funktionen "kassa_schliessen_db_schreiben()" aufgerufen
						fileLink=false;
						if(mailSenden == 'ja' && autoBackupEmail == 'ja'){
							 kassenabschlussMailVersenden(abschluss_bon, "autobackupMailSenden");
							
						}
						else if(mailSenden == 'ja' && autoBackupEmail != 'ja'){
							 kassenabschlussMailVersenden(abschluss_bon, fileLink); 
						}
						else if(mailSenden != 'ja' && autoBackupEmail == 'ja'){
							runAutoBackup('mailSenden'); 
						}
						else if(mailSenden != 'ja' && autoBackupEmail != 'ja' && autoBackup == 'ja'){
							sitpos_welt_anzeigen("Backup wird durchgefuehrt und gespeichert ...");
							runAutoBackup(false); 
							sitpos_welt_ausblenden();
						}

						let checkVarDump = "<?php if (FILIALSYSTEM_IST_FILIALSYSTEM == "ja" && FILIALSYSTEM_SYNCHRONISATION_KASSA_ABSCHLUSS == "ja" && SYNCHRONISATION_SQL_DUMP == "ja") echo SYNCHRONISATION_SQL_DUMP; ?>";
						let checkVar = "<?php if (FILIALSYSTEM_IST_FILIALSYSTEM == "ja" && FILIALSYSTEM_SYNCHRONISATION_KASSA_ABSCHLUSS == "ja") echo FILIALSYSTEM_SYNCHRONISATION_KASSA_ABSCHLUSS; ?>";
						
						if (checkVarDump !== "") {
							sitpos_welt_anzeigen("Daten werden auf Filialsystem synchronisiert ...");
							$.ajax({
								type: "POST",
								url: "ajax_funktionen.php",
								dataType : "html",
								data: {funktion: "upsync_mysql_dump"},
								async: false,
								success:function(html){	
									//alert(html);
									console.log(html);
								}
							});
							sitpos_welt_ausblenden();
						}
						else if (checkVar !== "") {
							sitpos_welt_anzeigen("Daten werden auf Filialsystem synchronisiert ...");
							$.ajax({
								type: "POST",
								url: "ajax_funktionen.php",
								dataType : "html",
								data: {funktion: "upsync", selVal: "incr"},
								async: false,
								success:function(html){	
									console.log(html);
								}
							});
							sitpos_welt_ausblenden();
						}
						
						
						let checkProd = "<?php if (FILIALSYSTEM_IST_FILIALSYSTEM == "ja" && FILIALSYSTEM_SYNCHRONISATION_PRODUKTE_KASSA_ABSCHLUSS == "ja") echo FILIALSYSTEM_SYNCHRONISATION_PRODUKTE_KASSA_ABSCHLUSS; ?>";
						if (checkProd !== "") {
							sitpos_welt_anzeigen("Produkte und Warengruppen werden vom Filialsystem synchronisiert ...");
							$.ajax({
								type: "POST",
								url: "ajax_funktionen.php",
								dataType : "html",
								data: {funktion: "syncProducts", incremental: "true"}, /*, origin: "abg_bon"*/
								async: false,
								success:function(html){	
									console.log(html);
								}
							});
							sitpos_welt_ausblenden();
						}
						
					//	if(autoBackup == 'ja') { fileLink=runAutoBackup(addFunction); 	}
						
					//	if(mailSenden == 'ja'){	kassenabschlussMailVersenden(abschluss_bon, fileLink); 		}
						
						// Ohne timeout funktioniert der redirect nicht, hoffentlich geht das auf jedem Rechner
					 window.setTimeout(function(){
						window.location.href = "kassenabschluss.php";
					}, 2000);
					
					
				}
			})
		
			return false;
		});
		
		
	});
	
	function kassenabschlussMailVersenden(kassenabschlussId, backupFileSenden){
		$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {funktion: "kassenabschluss_ausdrucken_pdf", requestId:kassenabschlussId, requestFunktion:"kassenabschl_mail_senden", backupFileSenden:backupFileSenden },		
				async: false,
				success:function(response){
					respArray=JSON.parse(response);
					pdfFunktionReturn=respArray[0];
					fileLink=respArray[1];
					backupFileLink=respArray[2];

					sendEmail('kassenabschluss', fileLink, backupFileLink);
				}
		});
		
	
	}
	
	function runAutoBackup(addFunction=false){
		$.ajax({
				type: "POST",
				url: "ajax_funktionen.php",
				dataType : "html",
				data: {funktion: "run_auto_backup_command" },		
				async: true,
				success:function(response){
					console.log("************************ run_auto_backup_command ********************************");
					console.log(response);
					console.log("********************************************************");
					respArray=JSON.parse(response);		
					backupPathFile=respArray[0];
					execOutput=respArray[1];
					execErrorCode=respArray[2];
					fileLink=respArray[3];
					
					cContent="<p>Fehler beim erstellen der automatischen Datensicherung.</p><p>Error Code: "+execErrorCode+"</p><p>"+execOutput+"</p><p>"+backupPathFile+"</p>";
					if(execErrorCode !== 0){
						openKassenabschlDialog('autobackup', 'Automatische Datensicherung Fehlgeschlagen', cContent, 'wrapper_bon');
					}
					else if(execErrorCode === 0 && addFunction == 'mailSenden'){
						console.log("im autoBackup ajax response ..: "+fileLink+", error code: "+execErrorCode);
						sendEmail('autoBackup', fileLink);
					}
					else if(execErrorCode === 0 && addFunction != 'mailSenden'){
						console.log("auto backup ohne mail !!");
					}
				}
		});
	}
	
	function openKassenabschlDialog(callFrom=false, boxTitle, dialogContent=false, wrappEr=false) {		
		
		if(wrappEr == false){ wrappEr='wrapper';   }
		wrapHeight=$("#"+wrappEr).height();	
			dialogCssClass='generalDialogBox';
			buttonTxtLeft="Bestätigen";
			buttonTxtRight="Fenster schließen";
			mminHeight=150;
			wwidth=600;
			
			if(callFrom == 'kassaabschlussstand_minus' || callFrom == 'licenseViolation'){
				buttonTxtLeft="Trotzdem durchführen";				
				buttonTxtRight="Abschluss abbrechen";
				wwidth=750;
			}
		
		$("#errorDialog").html(dialogContent);
		$("#errorDialog").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
										$("body").css({ "overflow":"hidden"		});
			},
			beforeClose: function( event, ui ) { $("body").css({ "overflow":"visible"		}); },
			modal: true,
			title: boxTitle,
			height: 'auto',
			minHeight: mminHeight,
			maxHeight: wrapHeight,
			width: wwidth,
			
			position: { my: "center", at: "center", of: "#"+wrappEr },
			dialogClass: dialogCssClass,
			
			buttons:{
				"1": { id: 'dialogButL', text: buttonTxtLeft, click: function(){ 
							if(callFrom == 'kassaabschlussstand_minus' || callFrom == 'licenseViolation') $("#kassa_abschluss_durchfuehren").click();	
							$(this).dialog("close"); 
						}, 
							"class":"button button_extra_gross dialog_orange" },
						
				"2": { id: 'dialogButR', text: buttonTxtRight, click: function(){ 
							$(this).dialog("close"); }, "class":"button button_extra_gross dialog_orange" }				
			}
		});	
		
		if(callFrom != 'kassaabschlussstand_minus' && callFrom != 'licenseViolation')  $("#dialogButL").css({ "display":"none"	});
	}	
			
	
	function openLicenseDialog(callFrom=false, boxTitle, dialogContent=false, wrappEr=false){
		if(wrappEr == false){ wrappEr='wrapper';   }
			wrapHeight=$("#"+wrappEr).height();	
			dialogCssClass='generalDialogBox';
			buttonTxtLeft="Bestätigen";
			buttonTxtRight="Fenster schließen";
			mminHeight=150;
			wwidth=600;
		$("#licenseDialog").html(dialogContent);
		$("#licenseDialog").dialog({
			resizable: false,
			open: function(event, ui) { $(".ui-dialog-titlebar-close", ui.dialog | ui).hide(); 
										$("body").css({ "overflow":"hidden"		});
			},
			beforeClose: function( event, ui ) { $("body").css({ "overflow":"visible"		}); },
			modal: true,
			title: boxTitle,
			height: 'auto',
			minHeight: mminHeight,
			maxHeight: wrapHeight,
			width: wwidth,
			
			position: { my: "center", at: "center", of: "#"+wrappEr },
			dialogClass: dialogCssClass,
			
			buttons:{
				"1": { id: 'dialogButR', text: buttonTxtRight, click: function(){ 
							$(this).dialog("close"); }, "class":"button button_extra_gross dialog_orange" }	
			
			}
			
		});
	
	}
			
			
			
			
			
	
	function clearFilter(targetIpField){
		$("#"+targetIpField).val('');
	
	}
	
	function testXX(){
		addFunction='mailSenden';
	/*	abschluss_bon = 210;
		kassenabschlussMailVersenden(abschluss_bon); 
		runAutoBackup(addFunction);
		*/
		backupFileLink=runAutoBackup(addFunction);
		console.log("testaufruf von runAutoBackup: "+backupFileLink);
	}

</script>

<?php
		// ******************************************************** Funktionen um einen Filter für eine Tabelle zu erstellen ********************************************************************
	//Funktion erzeugt eine Select option, die nach dem Submit des Forms wieder die gleiche Auswahl hat, wie zuvor (kein Reset des Form)
	//Der erste Paramter ist der Select Name und die weiteren sind Paare von value und select Text
	// $filter_select_name .... name, wie die select box heissen soll - string muss mit "filter_" beginnen
	// $filter_row_name    .... ist der name, der reihe wie er in der WHERE clause des select angesprochen wird
	// $f_filter_array     .... das array, wie die optionen angezeigt werden sollen. z.B. array(array('value'=>"alle",'text'=>"Alle"),array("value"=>"0", "text"=>"Nein"), array("value"=>"1", "text"=>"Ja"))
	function show_fixed_filter_selectbox($filter_select_name, $filter_row_name, $f_filter_array, $filter_type="select", $box_size="14")
	{
		if ($filter_type=="datalist")
		{
			$selected_option="";
			
			if (isset($_REQUEST[$filter_select_name])) $selected_option=" value='".$_REQUEST[$filter_select_name]."' ";
			if ($_SESSION["userLevel"] >= ENABLERKEY_KASSENABSCHLUSS_ANZEIGEN)
			{
				echo "	<p style='display:inline;' class='div_ueberschrift' >Beleg ID: </p>
					<input type='text' id='reportNoIpField' class='adminPmeInputMed_1' name='".$filter_select_name."' size='".$box_size."' style='width:17%;'
							placeholder='z.B 22 od 12-14' onselect='this.form.submit()' list='list_".$filter_select_name."'".$selected_option.">";
				echo "<datalist id='list_".$filter_select_name."'>";
				foreach($f_filter_array as $arg_element)
				{
					echo "<option value='".$arg_element['value']."'>";
				}
				echo "</datalist>";
			}
		}
		else if($filter_type=="dDate"){
			if (isset($_REQUEST[$filter_select_name])) $selected_option=" value='".$_REQUEST[$filter_select_name]."' ";
			//echo "<input type='text' name='".$filter_select_name."' size='".$box_size."' onselect='this.form.submit()' list='list_".$filter_select_name."'".$selected_option." />";
			if ($_SESSION["userLevel"] >= ENABLERKEY_KASSENABSCHLUSS_ANZEIGEN)
			{
				echo "	<input type='hidden' name='filter_date_set' value='doDateFilter' />
					<p style='display:inline; margin-left:22px;' class='div_ueberschrift' >Eröffnungs Datum: </p>
							<input type='text'  class='datepicker adminPmeInputMed_2'  name='filter_report_date' size='' style='width:17%;' />";
				#	<p style='display:inline' class='div_ueberschrift' >Bis: </p><input type='text' class='datepicker adminPmeInputMed_2' name='filter_date_to'  size='' />
				echo		"<button class='button_im_pme orange filterSetBut' onclick='this.form.submit()' >Filter setzen</button>
						<button class='button_im_pme orange filterClearBut' onclick=\"clearFilter('reportNoIpField')\" >Filter löschen</button>
						<p style='display:inline' ></p>";
			}
		}
		else
		{
			echo "<select name='".$filter_select_name."' onchange='this.form.submit()'>";
			foreach($f_filter_array as $arg_element)
			{
				$selected_option="";
				if (isset($_REQUEST[$filter_select_name]) && $_REQUEST[$filter_select_name]==$arg_element['value']) $selected_option="selected";
				echo "<option value='".$arg_element['value']."'".$selected_option." >".$arg_element['text']."</option>";
			}
		}
		echo "</select>";
		echo "<input type='hidden' name='reihe_".$filter_select_name."' value='".$filter_row_name."' />";
	}
	
	// Durchsuche alle $_REQUEST, die mit filter beginnen und mache daraus eine where Clause
	// Der Name, der Reihe die in der Where clause abgefragt wird wird als eigener input hidden mitgegeben name="reihe_xxxxx" 
	// Wenn der value 'alle' ist, dann wird die where clause für diese Reihe nicht abgefragt
	function get_filter_string($where_string="")
	{
		#$where_string="";

					# alles nicht (^) nummerisch und nicht "-" weg, sind zb spaces und so
		if(isset($_REQUEST['filter_bon_nr']) && $_REQUEST['filter_bon_nr'] != ""){
				
				 $_REQUEST['filter_bon_nr']=preg_replace("/[^0-9\-]/", '', $_REQUEST['filter_bon_nr']);
			
		}				
		if(! isset( $_REQUEST['filter_bon_nr']) || (isset( $_REQUEST['filter_bon_nr']) && $_REQUEST['filter_bon_nr'] == "" && 
				(! isset($_REQUEST['filter_report_date']) || $_REQUEST['filter_report_date'] == "" )	)){		
			
			$maxId=mysql_fetch_array(mysql_query("SELECT MAX(id) AS abschlId FROM kassa_abschluesse LIMIT 1"));
			$abschlFrom=$maxId['abschlId'] - 10;
			$abschlTo=$maxId['abschlId'];
			
			$where_string=" WHERE kassa_abschluesse.id >= ".$abschlFrom." AND kassa_abschluesse.id <= ".$abschlTo." ";
		}
		else if(isset($_REQUEST['filter_bon_nr']) && preg_match('/[0-9](-)[0-9]/', $_REQUEST['filter_bon_nr'], $matchX)==1){
			
			$abschlRange=preg_replace('/\s+/', '', $_REQUEST['filter_bon_nr']);
			$rangeArray=explode("-", $abschlRange);
			
				$valA=$rangeArray[0];
				$valB=$rangeArray[1];
				
				if($valA < $valB)	$where_string= "WHERE kassa_abschluesse.id >= ".$valA." AND kassa_abschluesse.id <= ".$valB." ";
				else if($valA > $valB)	$where_string= "WHERE kassa_abschluesse.id >= ".$valB." AND kassa_abschluesse.id <= ".$valA." ";
			
			
			
			#file_put_contents("kpcheckit.txt", "\n". __FILE__ . " / ". __LINE__ ." where strg: -> sind im if else range !! ->   ".$rangeArray[0]." - ".$rangeArray[1]."\n".$where_string."\n", FILE_APPEND);
		
			
		}

		else if(isset($_REQUEST['filter_date_set']) && $_REQUEST['filter_date_set'] == 'doDateFilter' && 
					((isset($_REQUEST['filter_report_date']) && $_REQUEST['filter_report_date'] != '')  ) ){
				
				$where_string="";
				$tmp_string="";
				$dateReport=$_REQUEST['filter_report_date'];
				if($dateReport != ""){
					$tmp_string=" WHERE DATE(datum_start) = '".$dateReport."'";		# WHERE DATE(datetime) = '2009-10-20'
				}
				
				$where_string.=$tmp_string;					
			//	else $where_string=" WHERE bon_erstellt_datum >= '2016-02-27'";
				
		}
		if($where_string == ""){
			foreach($_REQUEST as $key=>$value)
			{
				
				if (strpos($key, "filter_bon") === 0)	// wenn die Variable mit filter anfängt, dann ist das ein Filer Wert!
				{
					if (isset($value))
					{
						$reihen_input_name="reihe_".$key;
						if (isset($_REQUEST[$reihen_input_name])) $reihen_name=$_REQUEST[$reihen_input_name];
						$filter_value=$value;
						if ($filter_value != "alle" && $filter_value!="")
						{
							if ($where_string=="") $where_string="WHERE ".$reihen_name."='".$filter_value."'";
							else $where_string=$where_string." AND ".$reihen_name."='".$filter_value."'";
						}
					}
				}
			}
		}
		
		#	 [filter_bon_nr] => [reihe_filter_bon_nr] => kassa_abschluesse.id [filter_date_set] => doDateFilter [filter_report_date] => [reihe_filter_date] => 
		
			# alle **** reset !  KPE  Oct 2020
		$_REQUEST['filter_bon_nr']=""; $_REQUEST['reihe_filter_bon_nr']=""; $_REQUEST['filter_date_set']=""; $_REQUEST['filter_report_date']=""; $_REQUEST['reihe_filter_date']="";
		
		return($where_string);
	}
	
	// ******************************************************************************************************************************************************
	
	
	function bonjournal_ansehen()
    {
		$CONDITION=get_filter_string();

		$query="SELECT kassa_abschluesse.id as bon_id, kassen_id, IF(ce_balance IS NULL or ce_balance = '', false, true) as ce_balance, datum_start, datum_ende, benutzer_eroeffnung.name as benutzer_eroeffnung, 
						benutzer_abschluss.name as benutzer_abschluss, kassa_offen, wechselgeld
						FROM kassa_abschluesse 
						LEFT JOIN benutzer AS benutzer_eroeffnung on kassa_abschluesse.verkaufer_id=benutzer_eroeffnung.id
						LEFT JOIN benutzer AS benutzer_abschluss on kassa_abschluesse.verkaufer_id_abschluss=benutzer_abschluss.id
						".$CONDITION." ORDER by kassa_abschluesse.id DESC";
		//echo $query;
       $sqlP=mysql_query($query);
       if (! $sqlP)
       {
         die('SQL Fehler beim suchen der ID in der Datenbank: ' . mysql_error() );
       }

	   // Befülle das Array für den Filter des Kunden Namen ********************************************
		$query_vs="SELECT DISTINCT id FROM kassa_abschluesse ORDER BY id DESC ";
		$sql_vs=mysql_query($query_vs);
		if (! $sql_vs)
		{
			die('SQL Fehler beim suchen des Kunden Namen in der Datenbank: ' . mysql_error() );
		}
		$f_bon_id_array=array();
		array_push($f_bon_id_array, array("value" => "alle", "text" => "Alle"));
		while ($row_vs=mysql_fetch_assoc($sql_vs)) {array_push($f_bon_id_array, array('value'=>$row_vs['id'], 'text'=>$row_vs['id']));}

		// Sitpos Welt wird nur angezeigt wenn etwas ausgeführt wird, das länger dauert z.b. Kassenabschluss...
		
		
	   $gerade = TRUE;
       echo "<TABLE  id='abschlussjournal' class=auswertungen schrift_auswertungen>";
	   echo "<FORM action='kassenabschluss.php' id='filter_form'>
			<TR>
			<TD colspan='10' class='ueberschrift'>
				<div class='tableFilterRow'>";
				show_fixed_filter_selectbox("filter_bon_nr", "kassa_abschluesse.id", $f_bon_id_array, "datalist", 12);
		echo "";
						show_fixed_filter_selectbox('filter_date', '', '', 'dDate', 10);
		echo "</div></TD>";
			//show_fixed_filter_selectbox("filter_zahlungsart", "verkauf.zahlungsart", $f_zahlungsart_array);
		echo "<input type='submit' hidden/></TR> </FORM> ";
		
		echo "<TR>";
				echo "<TD class='ueberschrift'><div class='div_ueberschrift width50'>Anz.</div></TD>
				<TD class='ueberschrift'><div class='div_ueberschrift width50'>EC Karte</div></TD>";
			
			echo "<TD class='ueberschrift'><div class='div_ueberschrift width50'>Beleg ID</div></TD>
			<TD class='ueberschrift'><div class='div_ueberschrift width100'>Kassa ID</div></TD>
			<TD class=ueberschrift>Er&ouml;ffnung</TD>
			<TD class=ueberschrift>Abschlu&szlig;</TD>
			<TD class=ueberschrift>Benuter Er&ouml;ffnung</TD>
			<TD class=ueberschrift >Benutzer Abschlu&szlig;</TD>
			<TD class=ueberschrift>Kassa offen</TD>
			<TD class=ueberschrift align=right>Wechselgeld</TD>
			</TR>";
		$summe_preis=0;
		$summe_karten=0;
		$zeile=0;
        while($rowP=mysql_fetch_array($sqlP))
        {
	        $gerade=!$gerade;
			$kassa_offen=$rowP['kassa_offen'] ? 'Ja' : 'Nein';
			
		    if ($gerade) $CLASS="class='d0'";
		    else $CLASS="class='d1'";
            echo "<TR id='row".$zeile."' ".$CLASS.">";
				if ($_SESSION["userLevel"] >= ENABLERKEY_KASSENABSCHLUSS_ANZEIGEN)
				{
					echo "<TD align=center > <div class='hoehe'><img src='images/lupe.gif' class='bild' onclick='drucke_kassenabschluss_aus(".$rowP['bon_id'].");'/></TD></div>
				  <TD align=center > ";
				  if ($rowP['ce_balance']) echo "<div class='hoehe'><img src='images/ec.png' class='bild' onclick='drucke_EC_kassenabschluss_aus(".$rowP['bon_id'].");'/></div>";
				  echo "</TD>";
				}
				else 
				{
					echo "<TD></TD><TD></TD>";
				}
				  echo "<TD align=center >".$rowP['bon_id']."</TD></div>
				  <TD align=left >".$rowP['kassen_id']."</TD>
				  <TD align=center >".$rowP['datum_start']."</TD>
				  <TD align=center >".$rowP['datum_ende']."</TD>
				<TD align=center >".$rowP['benutzer_eroeffnung']."</TD>
				<TD align=center >".$rowP['benutzer_abschluss']."</TD>
				<TD align=center >".$kassa_offen."</TD>
				<TD align=right>".number_format($rowP['wechselgeld'],2,",",".")."</TD>";
			echo "</TR>";
			$zeile++;
       }
	    echo "<TR>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			<TD></TD>
			</TR>";
       echo "</TABLE>";
       echo "</pre>";
    }
	
	if (isset($_REQUEST['funktion'])) $funktion=$_REQUEST['funktion'];
	if (isset($_REQUEST['verkauf_id'])) $verkauf_id=$_REQUEST['verkauf_id'];
	
	if (isset($funktion))
	{
	  switch ($funktion)
      {
         case 'stornieren':
            stornieren($verkauf_id);
         break;

         default:
         break; 
      }
	}
	
	
	echo '<div id="wrapper_bon" class="wrapper_bon">';

	menue_anzeigen();
	
	
	
	// Fenster Rechts
	echo "<div id='fenster_rechts' class='fenster_rechts'></div>";
	
	// Unterer Teil
	echo '<div id="fenster_links" class="fenster_links">';
	
	$disableKassenabschl='';
	$disableStyle="";
	$abschlTxt="<p >Kassenabschluss durchf&uuml;hren ? </p>";
	$checkOffenerBon=mysql_query("SELECT ID FROM offener_bon");
	if(mysql_num_rows($checkOffenerBon) > 0 && (defined('KASSENABSCHLUSS_NUR_BEI_OFFENER_BON_LEER') && strtolower(KASSENABSCHLUSS_NUR_BEI_OFFENER_BON_LEER) == 'ja')){
		$disableKassenabschl='disabled';
		$disableStyle=" opacity:0.5;";
		$abschlTxt="<p style='color:#a00'>Offener Bon,<br />Kassa schließen nicht möglich !</p>";
	}
	
	// ************** Kassenabschluss nur wenn Arbeitszeiten geschrieben wurden
	if (defined('KASSENABSCHLUSS_NUR_WENN_ARBEITSZEIT_GESCHRIEBEN') && strtolower(KASSENABSCHLUSS_NUR_WENN_ARBEITSZEIT_GESCHRIEBEN) == 'ja')
	{
		if(! wurden_alle_arbeitszeiten_geschrieben())
		{
			$disableKassenabschl='disabled';
			$disableStyle=" opacity:0.5;";
			$abschlTxt="<p style='color:#a00'>Arbeitszeiten NICHT komplett geschrieben!<br />Kassa schließen nicht möglich !</p>";
		}
	}
	// ************** 
	
	$abschluss_bon=ist_kassa_offen();
	//echo "Offener Bon: " . $abschluss_bon;
	if ($abschluss_bon !== false)
	{
		
		echo "<div class='adminPageTxtDiv adminPageTxtKassaabschlDiv' id='abschlussstatus' style='font-weight:bold;' >".$abschlussStatus."</div>";
		echo "<form id='kassa_abschluss_durchfuehren_id' >";
		echo "	<div class='adminPageTxtDiv adminPageTxtKassaabschlDiv'>
				<h4 >Kassenabschluss Sequenz ".$abschluss_bon." ist offen.</h4>"
				.$abschlTxt;
		$date = date('d-m-Y H:i:s', time());
		echo "<p>Datum: ".$date."</p>";
		echo '<input type="hidden" name="funktion" value="kassa_schliessen_db_schreiben">';
		echo '<input type="hidden" name="abschluss_bon" id="abschluss_bon" value="'.$abschluss_bon.'">';
			# hier wurde urspr der kassenabschl ausgelöst, wurde auf display none gesetzt und die funktion kassenAbschldurchfuehren vorangestellt, diese prüft
			# ob die Kssa einen minus Betrag hat, wenn ja kommt Warnung. abbrechen od bestätigen wo dann der urspr button vom Programm mit click die funktion ausführt
		
	
		echo '<button id="kassa_abschluss_durchfuehren" class="" style="float:right" >Kassa schlie&szlig;en</button>
				<div id="abschlussDruckenDiv" class="abschlussDruckenDiv" ></div>				
				<div class="cclear"></div>
			</div>';
		echo "</form>";
		
		echo '<button  '.$disableKassenabschl.' onclick="kassenAbschldurchfuehren()" class="kassenAbschlBut button_gross button orange"
					style="float:right; '.$disableStyle.'" >Kassa schlie&szlig;en</button>
				<div class="cclear"></div>';
				
			#August 2020 Kassenabschl auf A4
	#	echo '<button  '.$disableKassenabschl.' onclick="kassenAbschl_A4_durchfuehren()" class="kassenAbschlBut button_gross button orange"
	#				style="float:right; '.$disableStyle.'" >Kassa schlie&szlig;en</button>
	#			<div class="cclear"></div>';
			
			
		
	}
	
	else
	{
		$date = date('d-m-Y H:i:s', time());
		echo "<p>Datum: ".$date."</p>";
	}
	
	bonjournal_ansehen();
	
	
	echo '</div>';
	
	echo '</div>';
	if ($abschluss_bon !== false) echo '<script>drucke_kassenabschluss_aus("'.$abschluss_bon.'"); </script>';
?>


<script>
	$(function(){
		//Add, Save, Edit and Delete functions code
		
		$( ".datepicker" ).datepicker({ dateFormat: "yy-mm-dd" });
		$( ".datepicker" ).datepicker({ altField: "#actualDate" });
		$( ".datepicker" ).datepicker();
	});

</script>

<?php 
	#print_r($_REQUEST);

?>


</body>
</html>