<?php 

	header('Content-Type: text/html; charset=utf-8');
	header("Cache-Control: no-cache, no-store, must-revalidate, pre-check=0, max-age=0, post-check=0");

	require_once("../global_functions.php");
	
	if(isset($_POST['functionKey']) && $_POST['functionKey'] != '') $functionKey=$_POST['functionKey'];

	switch ($functionKey){
		case "exeTest": exeTest(); break;
		case "serienNr": serienNr(); break;
		

		default: echo "Error !!! Falscher Aufruf von ajax_funktionen, Funktion nicht bekannt";
	}
	
	

	
	
	function exeTest(){
	
		if(isset($_POST['testParm']) && $_POST['testParm'] != '') $testParam=$_POST['testParm'];
		else $testParam=false;
		
		if(isset($_POST['selectedOption']) && $_POST['selectedOption'] != '') $selOption=$_POST['selectedOption'];
		else $selOption = false;
		
		if(isset($_POST['AEScode']) && $_POST['AEScode'] != '') $aesKey=$_POST['AEScode'];
		else $aesKey = false;
		

		$checkLocation=getenv("HOMEPATH");
		if(preg_match("/users\\\kp_/i", $checkLocation)){	

																						#	$command="C:\sitpos\_rkExe\kpxx.bat 2>&1";	# funktioniert !!!!!
			
			if($selOption == true){
			#	echo "xoxoxoxoxox:".$selOption."<br >";
			#	$zuz='--certserial';
				
				if($selOption == '--signjws'){
					$dataStr=$testParam;
					if($dataStr == ''){
						$getLastBonId=mysql_fetch_array(mysql_query("SELECT MAX(bon_id) AS lastBonId, bon_erstellt_datum FROM abgeschlossener_bon"));
						$lastBonId=$getLastBonId['lastBonId'];
						$bonDateTime=$getLastBonId['bon_erstellt_datum'];
						
						$dataStr=dep_data_create($lastBonId, $bonDateTime);
						
						file_put_contents('../kpcheckit.txt', "\n ".date('Ymd H:i')." ".basename( __FILE__)." / ". __LINE__ ." last bon Id: ".$lastBonId.", Data String: ".$dataStr."\n", FILE_APPEND);
						
					#	$dataStr="nimm irgendwosssss";
					}
				
				}
				
				else if($selOption == '--qrcode'){
					$imgPath='C:\sitpos\_rkExe\qr1zuz.bmp';
					$dataStr='--qrdata "R1-AT1_DEMO-CASH-BOX426_776730_2015-10-14T18:20:23_0,00_0,00_0,00_0,00_0,00_PT7P6PGD2KOQ2===_968935007593160625_PT7P6PGD2KOQ2===" --scalefactor 6 --margin 3 --outfile '.$imgPath;
					
					file_put_contents('../kpcheckit.txt', "\n ".date('Ymd H:i')." ".basename( __FILE__)." / ". __LINE__ ." qr....:, Data String: ".$selOption." ".$dataStr."\n", FILE_APPEND);
				
				}
				else if($selOption == '--aes_encrypt'){
					$outFilePath='C:\sitpos\_rkExe\revenueKpTest.txt';
					$dataStr='--aes_key '.$aesKey.' --umsatz 333333 --kassenid '.KASSA_ID.' --belegnummer 4711 --outfile '.$outFilePath ;
					
					file_put_contents('../kpcheckit.txt', "\n ".date('Ymd H:i')." ".basename( __FILE__)." / ". __LINE__ .", Data String: ".$selOption." ".$dataStr."\n", FILE_APPEND);
				
				}
				else if($selOption == '--aes_decrypt'){				#  --encrypted_data %encrypted%   --outfile decryptedumsatz.txt  
					$inFilePath='C:\sitpos\_rkExe\revenueKpTest.txt';
					$outFilePath='C:\sitpos\_rkExe\revenueDecryptKpTest.txt';
					$cryptedData="tkDMFamdLoele08CcB05/Q==";
				#	exec('type C:\sitpos\_rkExe\revenueKpTest.txt', $output, $error_code);
					$cryptedData='tkDMFamdLoele08CcB05/Q==';
				#	$dataStr='--aes_key '.$aesKey.' --encrypted_data '.$cryptedData.' --kassenid '.KASSA_ID.' --belegnummer 4711 --outfile '.$outFilePath ;
					$dataStr='--aes_key '.$aesKey.' --encrypted_data '.$cryptedData.' --kassenid '.KASSA_ID.' --belegnummer 4711';
					
					file_put_contents('../kpcheckit.txt', "\n ".date('Ymd H:i')." ".basename( __FILE__)." / ". __LINE__ .", Data String: ".$selOption." ".$dataStr."\n", FILE_APPEND);
				
				}
				
				else if($selOption == '--aes_generate'){
					$dataStr='--outfile C:\sitpos\_rkExe\kp_aesKey.txt';
				
				}

			#	ATrustRegistrierkasseExe.exe --aes_decrypt --aes_key NXWdzSTp286C1o58eYmwSsyKYbHDSfGFqgnuJc5K3KU= --encrypted_data tkDMFamdLoele08CcB05/Q== --kassenid sITPOS0001 --belegnummer 4711 
			
				
				
				else $dataStr=false;
			
				$command='C:\sitpos\_rkExe\ATrustRegistrierkasseExe.exe '.$selOption.' '.$dataStr;

				exec($command, $output, $error_code);
				$rRes="";
				for($i=0; $i < sizeof($output); $i++){
					$rRes.=$output[$i]."\n";
				}
				if($selOption == '--help' && $rRes == true) echo "".$rRes."";	
				else if($selOption == '--certserial' && $rRes == true) echo "Ergebnis von Ser Nr Test: <b>".$rRes."</b>";
				else if($selOption == '--check_card' && $rRes == false) echo "Ergebnis von Karte Test: <b>Kein Fehler</b>";
				else if($selOption == '--check_software' && $rRes == false) echo "Ergebnis von Software Test: <b>Kein Fehler</b>";		
				else if($selOption == '--zdaid' && $rRes == true) echo "Ergebnis von ZDA-ID auslesen: <b>".$rRes."</b>";		
				else if($selOption == '--certificate' && $rRes == true) echo "Ergebnis von Zertifikat auslesen: <b>".$rRes."</b>";
				else if($selOption == '--issuer' && $rRes == true) echo "Aussteller Zertifikat auslesen: <b>".$rRes."</b>";
				else if($selOption == '--signjws' && $rRes == true) echo "JWS Signatur auslesen: <b>".$rRes."</b>";
				else if($selOption == '--qrcode' && $rRes == false) echo "QR Code Erstellen: <b>Kein Fehler</b>";
				else if($selOption == '--aes_generate' && $rRes == false) echo "AES Code Erstellen: <b>Kein Fehler</b><br />
						<img src=\'data:image/bmp;base64, ".encode64('C:\sitpos\_rkExe\qr1zuz.bmp')."\' />";
				else if($selOption == '--aes_encrypt' && $rRes == false) echo "Umsatzzähler verschlüsseln Ergebnis: <b>Kein Fehler</b>";
				else if($selOption == '--aes_encrypt' && $rRes == true) echo "Umsatzzähler verschlüsseln Ergebnis: <b>".$rRes."</b>";
				else if($selOption == '--aes_decrypt' && $rRes == true) echo "Umsatzzähler entschlüsseln Ergebnis: <b>".$rRes."</b>";
				
				else echo "Fehler: ".$selOption.": -> ".$rRes;
			}
			
			else if(strtolower($testParam) == 'ser' || strtolower($testParam) == 'seriennummer'){
				$command='C:\sitpos\_rkExe\ATrustRegistrierkasseExe.exe  --certserial';
				
				exec($command, $output, $error_code);
				$xx="";
				for($i=0; $i < sizeof($output); $i++){
					$xx.=$output[$i]."\n";
				}
				
				echo "ser nr aufgerufen !!!!<br />".$xx;
			
			}
			else{
				$command='C:\sitpos\_rkExe\ATrustRegistrierkasseExe.exe --aes_generate';
				$p = popen($command, "r");
						if (!$p) exit("Cannot run command.\n");
						while (!feof($p)) echo fgets($p);
						pclose($p);
				$xMsg=array();		
				

				exec($command, $output, $error_code);
				$xx="";
				for($i=0; $i < sizeof($output); $i++){
					$xx.=$output[$i]."\n";
				}
				echo "\n\n".count($output)."\n\n";
				echo $xx;
			}
		}
		else {		
		#	$outputTarget=__DIR__ ."\..\docs\sIT_".$supplFunc."_bon_".$currentTable."_".date('d_m_H_i').".pdf";
		#	$command="start /B C:\sitpos\pdfxchange\PDF-XChangeViewerPortable.exe /print:printer=\"$drucker\" \"$outputTarget\" ";			
		}
		
			#	echo "-- ". basename( __FILE__ )." zeile: ". __LINE__ ."<br />";
	
	}


		function dep_data_create($bon_id, $bonDateTime){

		$kpMsg="";
			
		$callDepData= getLastDepData($bon_id);

		if($callDepData == false){			
			return false;
		}
		
		else {
			$revenueBefore= $callDepData[0];
			$lastZertifizierungsdata=$callDepData[1];
				
		}
		
		$taxQl=mysql_query("SELECT gesamt_betrag, tax_rate FROM abgeschlossener_bon_steuern WHERE bon_id = ".$bon_id." ");
		
		
		$taxN=0;
		$tax1=0;
		$tax2=0;
		$taxNull=0;
		$taxB=0;
		while($getTax=mysql_fetch_assoc($taxQl)){
			if($getTax['tax_rate']==0.2) $taxN=$getTax['gesamt_betrag']*(1+$getTax['tax_rate']);
			if($getTax['tax_rate']==0.1) $tax1=$getTax['gesamt_betrag']*(1+$getTax['tax_rate']);
			if($getTax['tax_rate']==0.13) $tax2=$getTax['gesamt_betrag']*(1+$getTax['tax_rate']);
			if($getTax['tax_rate']==0.0) $taxNull=$getTax['gesamt_betrag'];
			if($getTax['tax_rate']==0.19) $taxB=$getTax['gesamt_betrag']*(1+$getTax['tax_rate']);
		}
		
		$bonUmsatz=$taxN+$tax1+$tax2+$taxNull+$taxB;
		$umsatzZaehler=$revenueBefore+($bonUmsatz*100);
		$testZert=substr($lastZertifizierungsdata ,-20).md5(date("Y-m-d H:i"));
		
		$taxN=number_format($taxN, 2, ",", "");
		$tax1=number_format($tax1, 2, ",", "");
		$tax2=number_format($tax2, 2, ",", "");
		$taxNull=number_format($taxNull, 2, ",", "");
		$taxB=number_format($taxB, 2, ",", "");
		
		$checkLocation=getenv("HOMEPATH");
		if(preg_match("/users\\\kp_/i", $checkLocation)){
			$command='C:\sitpos\_rkExe\ATrustRegistrierkasseExe.exe --aes_generate';
		}
		
		else {
		
		
		}
		
			#	muster:
			#	    _R1-AT1_1_1_2016-02-24T10:42:13_0,00_0,00_0,00_0,00_0,00_wBuMAAdZM4c=_987234644_qdXooXdnO+I= 
			#	sITPOS0001_1706_2016-03-06T22:00_
			
			
			$dDate = strtotime( $bonDateTime );
			$depDate=date( 'Y-m-d', $dDate )."T".date( 'H:i:s', $dDate );
			
			$testStrg=KASSA_ID."_".$bon_id."_".$depDate."_".$taxN."_".$tax1."_".$tax2."_".$taxNull."_".$taxB."_".$umsatzZaehler;
			
			
			return $testStrg;
		
		
	/*	
		
		$insQl=mysql_query("INSERT INTO dep SET kassen_id='".KASSA_ID."', beleg_nr = ".$bon_id.",  datum_zeit=NOW(), betr_satz_norm = '".$taxN."',
														betr_satz_erm_1 = '".$tax1."', betr_satz_erm_2 = '".$tax2."', betr_satz_null = '".$taxNull."', betr_satz_besonder = '".$taxB."',
														umsatz_zaehler = ".$umsatzZaehler.", zertif_nr = '".$testZert."' 		");
		if(!$insQl) $kpMsg.="DB Error ".mysql_error()."\n";
		
		else return true;
	*/	

	}
	

























?>