<?php 
	#header("Access-Control-Allow-Origin: *");
	
	header("Content-type: text/xml; charset=utf-8 ");

	
#	print_r ($_POST);


	if(isset($_POST['xmlData']) && $_POST['xmlData'] != "" && isset($_POST['xmlUser']) && $_POST['xmlUser'] != "" 
				&& isset($_POST['xmlPwd']) && $_POST['xmlPwd'] != ""){
			$postData=$_POST['xmlData'];
			
			require_once("config/connect.php");
			require_once("global_functions.php");
			
			$userQl=mysql_fetch_assoc(mysql_query("SELECT  id, passwort FROM benutzer WHERE name = '".$_POST['xmlUser']."' "));
			
		#	echo $userQl['passwort'];
			$verkauefer_id=$userQl['id'];
			
			if(md5($_POST['xmlPwd']) !== $userQl['passwort']){
				echo strip_tags("XML Anmelde Fehler.\nAufgerufene Funktion wurde nicht ausgeführt.")."\n";
				return false;
			
			}
			

			# check ob das ein report erstellen Request ist
			if(isset($_POST['reportRequest'])){
					# Date Functions used to all Reports
					$startDate=false;
					$endDate=false;
					if(isset($_POST['datumStart']) && strlen($_POST['datumStart']) > 8)$startDate=$_POST['datumStart'];
					if(isset($_POST['datumEnde']) && strlen($_POST['datumEnde']) > 8)$endDate=$_POST['datumEnde'];
					
					$stDate= strtotime($startDate);
					$startDate = date('Y-m-d H:i', $stDate);
					$enDate= strtotime($endDate);
					$endDate = date('Y-m-d H:i', $enDate);
					
					if(checkdate(date('m', strtotime($startDate)),date('d', strtotime($startDate)),date('Y', strtotime($startDate)))==true
								&& date('Y', strtotime($startDate)) != '1970'){
						if(date('H', strtotime($startDate)) > 0 || date('i', strtotime($startDate)) > 0) $startDate = $startDate;
						else $startDate = date('Y-m-d', $stDate)." 00:00:00";
						$repSt=true;
					}
					else $repSt=false;
					if(checkdate(date('m', strtotime($endDate)),date('d', strtotime($endDate)),date('Y', strtotime($endDate)))==true
								&& date('Y', strtotime($endDate)) != '1970'){
						
						if(date('H', strtotime($endDate)) > 0 || date('i', strtotime($endDate)) > 0) $endDate = $endDate;
						else $endDate = date('Y-m-d', $enDate)." 23:59:59";
						$repEnd=true;
					}
					else $repEnd=false;
				
				
				if(strtolower($_POST['reportRequest']) == 'gesamtumsatz'){
					$ajaxFileKennung='callFromCommandlineFile';
					require_once("ajax_funktionen_kp.php");
					
										
					$parseStDate=''; $parseEndDate='';
					if($repSt==true && $repEnd==true){
						$dateWhere="WHERE abgeschlossener_bon.bon_erstellt_datum >= '".$startDate."' 
								AND abgeschlossener_bon.bon_erstellt_datum < '".$endDate."'";
						$parseStDate=$startDate;
						$parseEndDate=$endDate;
					}
					else if($repSt==true && $repEnd==false){
						$dateWhere="WHERE abgeschlossener_bon.bon_erstellt_datum >= '".$startDate."'";
						$parseStDate=$startDate;
					}
					else if($repSt==false && $repEnd==true){
						$dateWhere="WHERE abgeschlossener_bon.bon_erstellt_datum < '".$endDate."'";
						$parseEndDate=$endDate;
					}
					else $dateWhere="";
					
					$commantLineParam=array('totalRevFromCommandLine', $dateWhere, $parseStDate, $parseEndDate);
					$getReport=getReportTotalRev($commantLineParam);
					if(is_array($getReport) && strtolower($getReport[0]) == 'success'){
						echo $getReport[1];
					}
					else echo "Report failed !!!!!";
					
					
				}
				else if(strtolower($_POST['reportRequest']) == 'ein_aus_zahlung_export'){
					$parseStDate=''; $parseEndDate='';
						if($repSt==true && $repEnd==true){
							$dateWhere="WHERE ein_aus_zahlungen.zahlung_erfolgt_datum >= '".$startDate."' 
									AND ein_aus_zahlungen.zahlung_erfolgt_datum < '".$endDate."'";
							$parseStDate=$startDate;
							$parseEndDate=$endDate;
						}
						else if($repSt==true && $repEnd==false){
							$dateWhere="WHERE ein_aus_zahlungen.zahlung_erfolgt_datum >= '".$startDate."'";
							$parseStDate=$startDate;
						}
						else if($repSt==false && $repEnd==true){
							$dateWhere="WHERE ein_aus_zahlungen.zahlung_erfolgt_datum < '".$endDate."'";
							$parseEndDate=$endDate;
						}
						else $dateWhere="";
						
					$eaQl=mysql_query("SELECT typ, kassa_abschluss_id, verkaufer_id, gesamt_betrag, zahlung_erfolgt_datum,
											Bemerkung FROM ein_aus_zahlungen ".$dateWhere."");
						
						$XMLDoc = new SimpleXMLElement("<?xml version='1.0' encoding='UTF-8' standalone='yes'?><einauszahlung></einauszahlung>");
						$xmlData = $XMLDoc->addChild("exportData");
						$creD="exportErstellt";
						$stD="datumStart";
						$endD="datumEnde";
						$kassenId="KassenId";
						$xmlData->$kassenId = KASSA_ID;
						$xmlData->$creD = date('Y-m-d H:i');
						$xmlData->$stD = $startDate;
						$xmlData->$endD = $endDate;
					 
					 while($eaRow=mysql_fetch_object($eaQl)){
						$xmlrow = $XMLDoc->addChild("zahlung");
						foreach($eaRow as $spalte => $wert){
							if($spalte == 'gesamt_betrag') $wert=number_format($wert, 2, ".", "");		
							if($wert == '')$wert=' ';
							$xmlrow->$spalte = $wert;
						}
					 
					 }					

					if(isset($_POST['fileTarget']) && strlen($_POST['fileTarget']) > 2){
						echo "Save Target: ".$_POST['fileTarget']."\n\n";
					}
					echo $XMLDoc->asXML();
				
				}
				else if(strtolower($_POST['reportRequest']) == 'kassenabschluss _export'){
					$ajaxFileKennung='callFromCommandlineFile';
					require_once("ajax_funktionen_kp.php");
					$bonWhere="";
					$eaWhere="";
					
					$parseStDate=''; $parseEndDate='';
						if($repSt==true && $repEnd==true){
							$dateWhere="WHERE kassa_abschluesse.datum_start >= '".$startDate."' AND kassa_abschluesse.datum_start < '".$endDate."'";
							$parseStDate=$startDate;
							$parseEndDate=$endDate;
						}
						else if($repSt==true && $repEnd==false){
							$dateWhere="WHERE kassa_abschluesse.datum_start >= '".$startDate."'";
							$parseStDate=$startDate;
						}
						else if($repSt==false && $repEnd==true){
							$dateWhere="WHERE kassa_abschluesse.datum_start < '".$endDate."'";
							$parseEndDate=$endDate;
						}
						else{
							$dateWhere="";
							$dateWhereEa="";
						}
					
					$abschlQl=mysql_query("SELECT * FROM Kassa_abschluesse ".$dateWhere."");
					
						$XMLDoc = new SimpleXMLElement("<?xml version='1.0' encoding='UTF-8' standalone='yes'?><kassaabschluesse></kassaabschluesse>");
						$xmlData = $XMLDoc->addChild("exportData");
						$creD="exportErstellt";
						$stD="datumStart";
						$endD="datumEnde";
						$kassenId="KassenId";
						$xmlData->$kassenId = KASSA_ID;
						$xmlData->$creD = date('Y-m-d H:i');
						$xmlData->$stD = $startDate;
						$xmlData->$endD = $endDate;
					
					while($abschlRow=mysql_fetch_object($abschlQl)){
						$xmlrow = $XMLDoc->addChild("abschluss");
						
						foreach($abschlRow as $spalte => $wert){
							if($spalte == 'gesamt_betrag') $wert=number_format($wert, 2, ".", "");		
							if($wert == '')$wert=' ';
							$xmlrow->$spalte = $wert;
						}
						
					}
						
					echo $XMLDoc->asXML();
					
				}
			
				return false;
			}
			else if(isset($_POST['request']) && strtolower($_POST['request']) == 'getsignaturunit'){
				if(defined('SIGNATUR_MODUS') && strtolower(SIGNATUR_MODUS) == 'com'){
					$sigcardData = new COM('ATrustRegistrierkasseCom.Registrierkasse');

					$iInit=$sigcardData->Initialize;
					$iInfo=$sigcardData->LoadInfo;
					$cCard=$sigcardData->CheckCard;
					
					if($iInfo != 0 || $cCard != 0){
						$fFin=$sigcardData->Finalize;
						$iInit=$sigcardData->Initialize;
						$iInfo=$sigcardData->LoadInfo;
						$cCard=$sigcardData->CheckCard;
					}
			
					$zdaId=false;
					$serialNo=false;

					$outputZda=$sigcardData->ZdaId;
					$outputSer=$sigcardData->CertificateSerial;
					
					$error_codeZda=true;
					$error_codeSer=true;
					$serNrHex=false;
					
					if(strlen($outputZda) > 2)$error_codeZda=false;
					
					if($outputSer > 1000){
						$error_codeSer=false;
						$serNrHex=dechex($outputSer);
					}
					
					if($error_codeZda == false && $error_codeSer == false){
						echo "Signaturkarte Serien Nummer: ".$outputSer."\n";
					}
					else echo "Signaturkarte konnte nicht ausgelesen werden !\n";
				}
				else{
					echo "Die Abfrage erwarten den Konstanten Wert 'com' für die Konsatante 'SIGNATUR_MODUS'.\Wert und/oder Konstante wurde nicht gefunden.\n";
				}
	
			
			}
			# report request komm nicht mit, ist Bon erstellen Request
			else{
				$kassa_abschluss_id=ist_kassa_offen();
				if ($kassa_abschluss_id==false) {
					echo  strip_tags("Eröffnen Sie die Kassa um die Buchungen vorzunehmen.\nVorgang abgebrochen.");
					return false;
				}
				
				
				$xml = simplexml_load_string($postData, "SimpleXMLElement", LIBXML_NOCDATA);				#		
				$json = json_encode($xml);
				$xmlData = json_decode($json, true);
							
				$auditData="";
				
				$tOp="";
				
					#	anglegte Steuersätze einlesen
					$angelegteTaxrates=array();
					$dbTaxRates=mysql_query("SELECT NAME, RATE FROM taxes");
					while($taxRow=mysql_fetch_array($dbTaxRates)){
						array_push($angelegteTaxrates, $taxRow['RATE']);
					}
					
					# Zahlungen prüfen.
					
					$angelegteZahlungsarten=array();
					$dbZahlungen=mysql_query("SELECT Name FROM zahlungsart");
					while($zahlungRow=mysql_fetch_array($dbZahlungen)){
						array_push($angelegteZahlungsarten, $zahlungRow['Name']);
					}
					$checkZahlungExist=false;
					if(isset($xmlData['zahlung'])){
						foreach($xmlData['zahlung'] as $zahlungsArt => $zahlBetrag ){
							
							if(is_array($zahlBetrag)) $zahlBetrag = implode($zahlBetrag);
							if(!in_array($zahlungsArt, $angelegteZahlungsarten) || (!is_numeric($zahlBetrag) && $zahlBetrag != "")){
								echo strip_tags("Eine oder mehrere übergebene Zahlungsarten (".$zahlungsArt.") im System nicht angelegt, oder Betrag Zahlung ungültig.\nVorgang abgebrochen.")."\n";
								exit (1);
							}
							
							if($zahlBetrag != 0) $checkZahlungExist=true;
							
						}
									# wenn count zahlung 0 ist, gibt es das zahlungs Tag aber darin keine Zahlungsformen tags
						if( (!isset($zahlBetrag) && count($xmlData['zahlung']) == 0) || (isset($zahlBetrag) && $checkZahlungExist==false ) )	{					
							$zahlungCalc=true;
						}
						else $zahlungCalc=false;
					}
					
					if(defined("XML_CATEGORIE_DISPLAYNAME") && strlen(XML_CATEGORIE_DISPLAYNAME) > 2) $xmlCat=XML_CATEGORIE_DISPLAYNAME;
					else $xmlCat = "Fremdsystem-XML";
					
									#	writeLog(basename( __FILE__)." ". __LINE__ , "XML Cat Name: ".$xmlCat);
				
					
					$getXmlCategory=mysql_fetch_assoc(mysql_query("SELECT ID FROM categories WHERE NAME = '".$xmlCat."' "));
					if($getXmlCategory == false){
						$insQl=mysql_query("INSERT INTO categories SET NAME = '".$xmlCat."', PARENTID = 0, IMAGE = '', COLOR = '#ffffff', text_color = '#000000',
														anzeige_reihenfolge = 199, ist_beilage = 0, artikel_art = 0, supplyprint = 0 ");
						if(!$insQl){
							echo strip_tags("Datenbankfehler beim anlegen der Warengruppe.\nVorgang abgebrochen.")."\n";
								exit (1);
						}
						else $xmlCatId=mysql_insert_id();
						
					
					}
					
					else $xmlCatId=$getXmlCategory['ID'];
					
					
				
				$taxArray=array();
				$prodArray=array();
				
				if(isset($xmlData['product'][0])){
					$tmpOp="";
						# wenn es mehrere tags mit dem gleichen namen in dem fall mehrer produkte die übergeben wurden gibt wird daraus ein array gebildet
					$gesamt_summe=0;
					for($i=0; $i < sizeof($xmlData['product']); $i++){
						
						$prodName = preg_replace('/\s/', '', $xmlData['product'][$i]['artikel']);
						if($prodName == '' || $prodName == false){
							echo strip_tags("Eine oder mehrere Produkt Bezeichnungen fehlen.\nVorgang abgebrochen.")."\n";
							$auditData.="Produkt Bezeichnung leer. Vorgang abgebrochen.";
							exit (1);
						}
						
						if (!in_array($xmlData['product'][$i]['taxrate'], $angelegteTaxrates)) {
							echo strip_tags("Ein oder mehrere übergebene Steuersätze (".$xmlData['product'][$i]['taxrate'].") fehlen.\nVorgang abgebrochen.")."\n";
							$auditData.="Taxrate nicht angelegt. Vorgang abgebrochen.";
							exit (1);
						}
						
						if(!is_numeric($xmlData['product'][$i]['einzelpreis'])){
							echo strip_tags("Eine oder mehrere Preisangaben (".$xmlData['product'][$i]['einzelpreis'].") ungültig.\nVorgang abgebrochen.")."\n";
							$auditData.="Preisangaben ungültig. Vorgang abgebrochen.";
							exit (1);
						}
						if(!is_numeric($xmlData['product'][$i]['stueckzahl'])){
							if(is_array($xmlData['product'][$i]['stueckzahl']))$xmlData['product'][$i]['stueckzahl']=implode($xmlData['product'][$i]['stueckzahl']);
							echo strip_tags("Eine oder mehrere Stückzahl Angaben (".$xmlData['product'][$i]['stueckzahl'].") ungültig.\nVorgang abgebrochen.")."\n";
							$auditData.="Stückzahl ungültig. Vorgang abgebrochen.";
							exit (1);
						}
						
						
						$summe=$xmlData['product'][$i]['einzelpreis']*(1+$xmlData['product'][$i]['taxrate']);
						$summe=$summe*$xmlData['product'][$i]['stueckzahl'];
						$gesamt_summe=$gesamt_summe+$summe;
						# tax Array befüllen
						$netSum=$xmlData['product'][$i]['einzelpreis']*$xmlData['product'][$i]['stueckzahl'];
						$taxVal=$netSum*$xmlData['product'][$i]['taxrate'];

						if(array_key_exists($xmlData['product'][$i]['taxrate'], $taxArray )){
							$kKey=$xmlData['product'][$i]['taxrate'];
							$taxArray[$kKey]+=$netSum;						# wenn dieser Steuersatz schon vorkam (in der Schleife), wird der wert summiert
						}
						else{
							$taxArray[$xmlData['product'][$i]['taxrate']] = $netSum;
						}
						$prodArray[$i]['produktName']=$xmlData['product'][$i]['artikel'];
						$prodArray[$i]['produktPrice']=$xmlData['product'][$i]['einzelpreis'];
						$prodArray[$i]['taxRate']=$xmlData['product'][$i]['taxrate'];
						$prodArray[$i]['stueckzahl']=$xmlData['product'][$i]['stueckzahl'];
						
					}

				}
				
				else if(isset($xmlData['product']['artikel'])){
					$summe=$xmlData['product']['einzelpreis']*(1+$xmlData['product']['taxrate']);
						$summe=$summe * $xmlData['product']['stueckzahl'];
						$gesamt_summe = $summe;
						# tax array befüllen
						$netSum=$xmlData['product']['einzelpreis']*$xmlData['product']['stueckzahl'];
						$taxVal=$netSum*$xmlData['product']['taxrate'];
						$taxArray[$xmlData['product']['taxrate']] = $netSum;			// im tax table steht der netto betrag als gesamt_betrag ???
						
						if($xmlData['product']['artikel'] == '' || $xmlData['product']['artikel'] == false){
							echo strip_tags("Produkt Bezeichnung leer.\nVorgang abgebrochen.")."\n";
							$auditData.="Produkt Bezeichnung leer. Vorgang abgebrochen.";
							exit (1);
						
						}
						if (!in_array($xmlData['product']['taxrate'], $angelegteTaxrates)) {
							echo strip_tags("Übergebener Steuersatze (".$xmlData['product']['taxrate'].") nicht angelegt.\nVorgang abgebrochen.")."\n";
							$auditData.="Taxrate nicht angelegt. Vorgang abgebrochen.";
							exit (1);
						}
						if(!is_numeric($xmlData['product']['einzelpreis'])){
							echo strip_tags("Übergebene Preisangabe (".$xmlData['product']['einzelpreis'].") ungültig.\nVorgang abgebrochen.")."\n";
							exit (1);
						}
						if(!is_numeric($xmlData['product']['stueckzahl'])){
							echo strip_tags("Übergebene Stückzahl (".$xmlData['product']['stueckzahl'].") ungültig.\nVorgang abgebrochen.")."\n";
							$auditData.="Stueckzahl ungültig. Vorgang abgebrochen.";
							exit (1);
						}
						
						$prodArray[0]['produktName']=$xmlData['product']['artikel'];
						$prodArray[0]['produktPrice']=$xmlData['product']['einzelpreis'];
						$prodArray[0]['taxRate']=$xmlData['product']['taxrate'];
						$prodArray[0]['stueckzahl']=$xmlData['product']['stueckzahl'];
						
						
						
				}
				
				else {
					echo strip_tags("XML Daten Fehlerhaft oder unvollständig. Buchung abgebrochen.")."\n";
					echo strip_tags("Vorgang unvollständig oder gar nicht erfolgt.")."\n";
					exit (1);
				}
				
				
				$user=$verkauefer_id;
				
				if(defined('UHRZEIT_AUSBLENDEN') && strtolower(UHRZEIT_AUSBLENDEN) == 'ja'){
					$dTime='CURDATE()';
				}
				else $dTime='NOW()';
				
				$storeQrData = false;
				if(isset($xmlData['qrdatenspeichern']) && strtolower($xmlData['qrdatenspeichern']) == 'ja'){					
						$storeQrData = 'store';
				}
				
				//mysql_query("SET TRANSACTION ISOLATION LEVEL READ COMMITTED");
				//mysql_query("START TRANSACTION");
				starte_transaktion();
				$zahlSqlError=false;
				
				if(isset($xmlData['bonnummer']) && (int)$xmlData['bonnummer'] > 0 && isset($xmlData['bondatum']) 
						&& checkdate(date('m', strtotime($xmlData['bondatum'])),date('d', strtotime($xmlData['bondatum'])),
						date('Y', strtotime($xmlData['bondatum'])))==true   ){
				
					$passedBonNo=$xmlData['bonnummer'];
					$passedBonDate=$xmlData['bondatum'];
					
					$insQl=mysql_query("INSERT INTO abgeschlossener_bon SET bon_id = ".$passedBonNo.", gesamt_summe=".$gesamt_summe.", verkaufer_id=".$user.", 
							kassa_abschluss_id=".$kassa_abschluss_id.",  bon_erstellt_datum = '".$passedBonDate."' ");
					
					$auditData.="passed BonNr: ".$passedBonNo." ";
				}
				else if(isset($xmlData['bonnummer']) && ((int)$xmlData['bonnummer'] <= 0 || !is_numeric($xmlData['bonnummer']))){
					echo strip_tags("Bon Nummer Error. Die Übergebene Bon Nummer konnte nicht verarbeitet werden. ")."\n";
					echo strip_tags("Vorgang abgebrochen.")."\n";
					mysql_query("ROLLBACK");
					mysql_query("ALTER TABLE abgeschlossener_bon AUTO_INCREMENT = 1");
					$auditData.="passed BonNr Error: ".$xmlData['bonnummer']." ";
					return false;
				}
				else{
					$insQl=mysql_query("INSERT INTO abgeschlossener_bon SET gesamt_summe=".$gesamt_summe.", verkaufer_id=".$user.", 
							kassa_abschluss_id=".$kassa_abschluss_id.",  bon_erstellt_datum = ".$dTime." ");
				}
				if(!$insQl){
						$zahlSqlError=true;
				}
				else
				{
					$inserted_bon_id=mysql_insert_id();
					$auditData.="autoincrement Id: ".$inserted_bon_id." ";				
					# Steuer table schreiben, jeder vorkommende Steursatz hat die summe diese Steuersatzes im Array, key = taxrate, value ist die zumme dieses Steuersatzes			
					foreach ($taxArray as $rRate => $vVal) {
							$taxId=mysql_fetch_assoc(mysql_query("SELECT ID FROM taxes WHERE RATE = '".$rRate."' "));
							$taxIdArray[$rRate]=$taxId['ID'];
						$insTax=mysql_query("INSERT INTO abgeschlossener_bon_steuern SET bon_id=".$inserted_bon_id.", tax_rate=".$rRate.", 
								gesamt_betrag=".$vVal." ");
						if(!$insQl){
							$zahlSqlError=true;
						}
					}
					
					# Produkte table schreiben
					$insertError=false;
					for($z=0; $z < sizeof($prodArray); $z++){
						$prodName=$prodArray[$z]['produktName'];
						$prodPrice=$prodArray[$z]['produktPrice'];
						$stueckzahl=$prodArray[$z]['stueckzahl'];
						$taxrate=$prodArray[$z]['taxRate'];
						$taxid=$taxIdArray[$taxrate];
						// noch nicht getestet
						list($einzel_brutto, $gesamt_brutto, $steuer_einzel, $steuer_gesamt)=berechne_bruttopreis($prodPrice, $taxrate, $stueckzahl);
						$insProd=mysql_query("INSERT INTO abgeschlossener_bon_produkte SET bon_id = ".$inserted_bon_id.", NAME = '".$prodName."',
												PRINTNAME = '".$prodName."', PRICESELL = ".$prodPrice.",
												PRICESELL_brutto='".$einzel_brutto."',
												PRICESELL_brutto_gesamt='".$gesamt_brutto."',
												tax='".$steuer_einzel."',
												tax_gesamt='".$steuer_gesamt."',
												stueck = ".$stueckzahl.", CATEGORY = ".$xmlCatId.", 
												tax_rate = '".$taxrate."', TAXCAT = '".$taxid."' 	 ");
						
						if(!$insProd) $zahlSqlError=true;
					}
					
					$auditData.="Anz Prodrukte: ".count($prodArray)." ";
					
					
					# Zahlungen table schreiben
					
					if($zahlungCalc == true)$xmlData['zahlung']['Bar']=$gesamt_summe;
						# wenn keine Zahlung übergeben wird bzw die ZahlungsTags leer sind wird der Summenbetrag auf bar gesetzt.
					$auditData.="Zahlung: ";
					foreach ($xmlData['zahlung'] as $zahlart => $zahlVal) {
						if(is_numeric($zahlVal)) $zahlartValue=number_format($zahlVal, 4, ".", "");
						else continue;
						
						$insZahl=mysql_query("INSERT INTO abgeschlossener_bon_zahlung SET bon_id = ".$inserted_bon_id.", Name = '".$zahlart."', 
															zahlbetrag = ".$zahlartValue.", zahlbetrag_tatsaechlich = ".$zahlartValue." ");				
						if(!$insZahl){
							$zahlSqlError=true;
						}
						$auditData.=$zahlart." ";
						
					}
					

					$dep_table_write_result=dep_table_schreiben($inserted_bon_id);

					if($zahlSqlError==true || (defined('SIGNATUR_ERROR_BON_ROLLBACK') && strtolower(SIGNATUR_ERROR_BON_ROLLBACK) == 'ja' && $dep_table_write_result[0] == false)){
						mysql_query("ROLLBACK");
						mysql_query("ALTER TABLE abgeschlossener_bon AUTO_INCREMENT = 1");
						$fehlerContent="";
						if($dep_table_write_result[0] == false){
							$fehler="Signatur Fehler";
							$fehlerContent="\n".$dep_table_write_result[1]."\n";
						}
						else if($zahlSqlError)$fehler="Datenbank Fehler";
						echo "Zahlung nicht erfolgt.\nEs ist ein ".$fehler." aufgetretten!".$fehlerContent;
						$auditData.=$fehlerContent." ";
						exit(1);
			
					}
					
					else {
						mysql_query("COMMIT");
					}
					mysql_query("set autocommit=1");
					
					if(isset($xmlData['bediener']) && $xmlData['bediener'] == true && $xmlData['bediener'] != ""){
						$bedienerName=$xmlData['bediener'];
					}
					else $bedienerName=false;
					
					if(isset($xmlData['drucker']) && $xmlData['drucker'] == true && strlen($xmlData['drucker']) > 2){
						$targetPrinter=$xmlData['drucker'];
					}
					else if(isset($xmlData['DRUCKER']) && $xmlData['DRUCKER'] == true && strlen($xmlData['DRUCKER']) > 2){
						$targetPrinter=$xmlData['DRUCKER'];
					}
					else $targetPrinter=false;
											
					$auditData.="Printer: ".$targetPrinter." ";
					bon_ausdrucken_pdf($inserted_bon_id, AUSDRUCK_PDF_GESAMTE_HOEHE, 'xmlSchnittstelle', $bedienerName, $targetPrinter, $storeQrData);
				
				}
			$insQl=mysql_query("INSERT INTO auditing SET benutzer = '".$user."', konfigtitel = 'XML-Call', funktion = 'bonieren', ausgangswert = '".$auditData."',
								datumzeit = NOW() ");	
		}

	}
	else 
	{
		echo strip_tags("Falsche oder fehlende Parameter")."\n";
		$insQl=mysql_query("INSERT INTO auditing SET konfigtitel = 'XML-Call',  ausgangswert = 'Falsche oder fehlende Parameter',
								datumzeit = NOW() ");
		print_r($_POST);
	}
	
















?>