<?php 
	require_once("config/connect.php");

	function runGDPdU_export($reportTarget=false){
	
		$tableCol="abgeschlossener_bon.bon_erstellt_datum";
		$sqlDateWhere=getReportDateWhere($tableCol, 'GDPdU_export');
				
		if(is_array($sqlDateWhere[0])){
			$startDateTime=$sqlDateWhere[0][0];
			$endDateTime=$sqlDateWhere[0][1];
			$whereInfo=$sqlDateWhere[1];
			
			if($startDateTime == false){
				$getFirstBonId=mysql_fetch_array(mysql_query("SELECT bon_erstellt_datum FROM abgeschlossener_bon ORDER BY bon_id ASC LIMIT 1"));
				$tmpDate=strtotime($getFirstBonId['bon_erstellt_datum']);
				$startDateTime = date('Y-m-d', $tmpDate )." 00:00:00";
			}
			if($endDateTime == false){
				$getLastBonId=mysql_fetch_array(mysql_query("SELECT bon_erstellt_datum FROM abgeschlossener_bon ORDER BY bon_id DESC LIMIT 1"));
				if(!$getLastBonId['bon_erstellt_datum']) $tmpDateL=strtotime(date('Y-m-d'));
				else $tmpDateL=strtotime($getLastBonId['bon_erstellt_datum']);					
				$endDateTime = date('Y-m-d', $tmpDateL )." 23:59:59";
			}
			
			$GDPdU_output_bon="BON_ID; BON_TYP; KASS_DAT; BU_DAT; BON_NR; KASSE_NR; MITARBEITER; B_ZEIT; UMS_BRUTTO; UMS_BR_0; UST_7; UMS_BR_7; UST_19; UMS_BR_19; UMS_KASSE; ZAHLART; BONTEXT\r\n";
			
			$GDPdUQl=mysql_query("SELECT abgeschlossener_bon.bon_id AS bonId, abgeschlossener_bon.bon_id AS bonId, 'BON_TYP', 
							DATE_FORMAT(bon_erstellt_datum,'%Y%m%d') AS bon_erstellt_datum, 'nicht gefuehrt', 'nicht Definiert',
							abgeschlossener_bon.bon_id AS bonId, '".KASSA_ID."' AS KassaId,
							benutzer.name AS verkaufer, DATE_FORMAT(bon_erstellt_datum,'%H:%i') AS bon_erstellt_zeit, abgeschlossener_bon.gesamt_summe AS bonSum,
							SUM(IF(tax_rate = 0.0, abgeschlossener_bon_steuern.gesamt_betrag * (1 + tax_rate), 0)) AS nullSteuerBetrBrut,
							SUM(IF(tax_rate = 0.07, abgeschlossener_bon_steuern.gesamt_betrag * (1 + tax_rate), 0)) AS reduziertSteuerBetrBrut,
							SUM(IF(tax_rate = 0.07, (abgeschlossener_bon_steuern.gesamt_betrag * (1 + tax_rate)) - abgeschlossener_bon_steuern.gesamt_betrag, 0)) AS reduziertSteuer,
							SUM(IF(tax_rate = 0.19, abgeschlossener_bon_steuern.gesamt_betrag * (1 + tax_rate), 0)) AS normalSteuerBetrBrut,
							SUM(IF(tax_rate = 0.19, (abgeschlossener_bon_steuern.gesamt_betrag * (1 + tax_rate)) - abgeschlossener_bon_steuern.gesamt_betrag, 0)) AS normalSteuer,
							storno_person_id AS stornoPers, storno_datum AS stornoDat, storno_bemerkung AS stornoBem,
							(SELECT zahlbetrag FROM abgeschlossener_bon_zahlung WHERE NAME = 'Bar' AND bon_id = bonId ) AS umsKasse,
							GROUP_CONCAT(DISTINCT abgeschlossener_bon_zahlung.Name SEPARATOR ', ') AS zahlart,
							'Bon Txt nicht definiert' AS bonTxt, 'x' AS einausZahlType
					
				FROM abgeschlossener_bon
					LEFT JOIN benutzer ON benutzer.id = abgeschlossener_bon.verkaufer_id
					LEFT JOIN abgeschlossener_bon_steuern ON abgeschlossener_bon.bon_id = abgeschlossener_bon_steuern.bon_id
					LEFT JOIN abgeschlossener_bon_zahlung ON abgeschlossener_bon.bon_id = abgeschlossener_bon_zahlung.bon_id

					WHERE bon_erstellt_datum > '".$startDateTime."' AND bon_erstellt_datum < '".$endDateTime."'
									
			GROUP BY bonId	
					
		UNION
		SELECT ein_aus_zahlungen.id AS bonId, ein_aus_zahlungen.id AS bonId, 'BON_TYP', DATE_FORMAT(zahlung_erfolgt_datum,'%Y%m%d') AS bon_erstellt_datum, 
							'nicht gefuehrt', 'nicht Definiert', ein_aus_zahlungen.id AS bonId, kassa_id AS KassaId, benutzer.name AS verkaufer, 
							DATE_FORMAT(zahlung_erfolgt_datum,'%H:%i') AS bon_erstellt_zeit, gesamt_betrag AS bonSum,
							gesamt_betrag AS nullSteuerBetrBrut, '0' AS reduziertSteuerBetrBrut, '0' AS reduziertSteuer,
							 '0' AS normalSteuerBetrBrut, '0' AS normalSteuer, '0' AS stornoPers, '' AS stornoDat, 'ein_aus_zahlungen' AS stornoBem,
							  gesamt_betrag AS umsKasse, 'Ein/Aus Zahlung Bar' AS zahlart, 'Bon Txt nicht definiert' AS bonTxt,
							  typ AS einausZahlType
					FROM ein_aus_zahlungen
					LEFT JOIN benutzer ON benutzer.id = ein_aus_zahlungen.verkaufer_id
			WHERE zahlung_erfolgt_datum > '".$startDateTime."' AND zahlung_erfolgt_datum < '".$endDateTime."'
		
		
		UNION
		SELECT kassa_abschluesse.id AS bonId, kassa_abschluesse.id AS bonId, 'kassa eroeffnen', DATE_FORMAT(datum_start,'%Y%m%d') AS bon_erstellt_datum,
						'nicht gefuehrt', 'nicht Definiert', kassa_abschluesse.id AS bonId, kassen_id AS KassaId, benutzer.name AS verkaufer,
						DATE_FORMAT(datum_start,'%H:%i') AS bon_erstellt_zeit, wechselgeld AS bonSum, 
						wechselgeld AS nullSteuerBetrBrut, '0' AS reduziertSteuerBetrBrut, '0' AS reduziertSteuer, 
						 '0' AS normalSteuerBetrBrut, '0' AS normalSteuer, '0' AS stornoPers, '' AS stornoDat, 'kassaOpenWechselgeld' AS stornoBem,
						 wechselgeld AS umsKasse, 'Wechselgeld Einzahlung' AS zahlart, 'Bon Txt nicht definiert' AS bonTxt,
						 'wechselgelt' AS einausZahlType
					FROM kassa_abschluesse
					LEFT JOIN benutzer ON benutzer.id = kassa_abschluesse.verkaufer_id
					
			WHERE datum_start > '".$startDateTime."' AND datum_start < '".$endDateTime."'
			AND kassa_abschluesse.wechselgeld <> 0
			ORDER BY bon_erstellt_datum, bon_erstellt_zeit 
		");
					
			#$GDPdU_output_bon.="<p>".mysql_num_rows($GDPdUQl)."</p>";
					
			while($GDPdURow=mysql_fetch_array($GDPdUQl)){
					$bonType=false;
					$bonTxt=false;
					if($GDPdURow['stornoPers'] > 0){
						if (preg_match('/^\*\*Storno\szu\sBon\s\d+/', $GDPdURow['stornoBem'])){
							$bonType='Storno';
							$bonTxt=preg_replace('/^\*\*/', '', $GDPdURow['stornoBem']);
						}
						else $bonType='Normal Verkauf storniert';
					}
					else if ($GDPdURow['stornoPers'] == 0 && $GDPdURow['bonId'] > 0 && 
								$GDPdURow['stornoBem'] != 'ein_aus_zahlungen' && $GDPdURow['stornoBem'] != 'kassaOpenWechselgeld')$bonType='Normal Verkauf';
					else if($GDPdURow['stornoBem'] == 'ein_aus_zahlungen'){
						if($GDPdURow['einausZahlType'] == 'ein')$bonType = 'Bar Einzahlung';
						else if($GDPdURow['einausZahlType'] == 'aus')$bonType = 'Bar Auszahlung';
						else $bonType = 'Ein/Aus Zahlung'." - ".$GDPdURow['einausZahlType'];
					}
					else if($GDPdURow['stornoBem'] == 'kassaOpenWechselgeld'){
						$bonType = 'Kassa öffnen Wechselgeld';
					}
					else $bonType = 'undefined';
					$GDPdU_output_bon.=$GDPdURow['bonId'].";".$bonType.";".$GDPdURow['bon_erstellt_datum'].";".$GDPdURow['bon_erstellt_datum'].";".
						$GDPdURow['bonId'].";".$GDPdURow['KassaId'].";".$GDPdURow['verkaufer'].";".$GDPdURow['bon_erstellt_zeit'].";".
						number_format($GDPdURow['bonSum'], 2, ".", "").";".number_format($GDPdURow['nullSteuerBetrBrut'], 2, ".", "").";".
						number_format($GDPdURow['reduziertSteuer'], 2, ".", "").";".number_format($GDPdURow['reduziertSteuerBetrBrut'], 2, ".", "").";".
						number_format($GDPdURow['normalSteuer'], 2, ".", "").";".number_format($GDPdURow['normalSteuerBetrBrut'], 2, ".", "").";".
						number_format($GDPdURow['umsKasse'], 2, ".", "").";".$GDPdURow['zahlart'].";".$bonTxt.";";
					
					$GDPdU_output_bon.="\r\n";			#	\r\n

			}
			
			if(isset($reportTarget) && $reportTarget == 'downloadReport'){
							
					# Wenn es das dir aus welchen grund auch immer nicht gibt wird es angelegt und das
					# gdpdu-01-09-2004.dtd file hineinkopiert, diese liegt im Ordner docs/GDPdU/ -> Abfrage ohne datum könnte ja aktueller werden
				if(!is_dir('docs/reports/GDPdU_export')){
					if (!mkdir("docs/reports/GDPdU_export")){
						writeSitposLog(basename( __FILE__)." ". __LINE__ , "Error beim anlegen von : docs/reports/GDPdU_export");
						echo "<input type='hidden' value=' display success '/>
								<p>Fehler beim Anlegen vom Export Folder<br />Export abgebrochen </p>";
						exit(1);
					}

				}
				$exportDate=date('Ymd_His');
				$exportFolder="Datentraegerueberlassung".$exportDate."/";

				if(!mkdir("docs/reports/GDPdU_export/".$exportFolder)){
					echo "<input type='hidden' value=' display success '/>
								<p>Fehler beim Anlegen vom Export Ordner<br />Export abgebrochen.</p>";
							exit(1);
				}
			
				if(!is_dir("docs/reports/GDPdU_export/".$exportFolder) || glob('docs/GDPdU/gdpdu-*.dtd') != true){
					if(!is_dir("docs/reports/GDPdU_export/".$exportFolder)) $msgx="Fehler beim Anlegen vom Export Folder";
					else if(glob('docs/GDPdU/gdpdu-*.dtd') != true) $msgx="GDPdU File im Ordner docs/GDPdU/ nicht gefunden.";
					else $msgx="Fehler beim Erstellen vom Export Ordner oder Kopieren der gdpdu-*.dtd Datei";
					echo "<input type='hidden' value=' display success '/>
								<p>".$msgx."<br />Export abgebrochen.</p>";
							exit(1);
				}
				
				foreach(glob('docs/GDPdU/gdpdu-*.dtd') as $fileX) {
						$checkFileExist=true;
						if (!copy($fileX, "docs/reports/GDPdU_export/".$exportFolder.basename($fileX))) {
							writeSitposLog(basename( __FILE__)." ". __LINE__ , "Error beim kopieren vom: ".$fileX);
							echo "<input type='hidden' value=' display success '/>
								<p>Fehler beim Kopieren vom GDPdU *.dtd File. <br />Export abgebrochen.</p>";
							exit(1);
						}
						else writeSitposLog(basename( __FILE__)." ". __LINE__ , $fileX." nach docs/reports/GDPdU_export/".$exportFolder." kopiert");
				}
	
				$writeBonCsv=file_put_contents("docs/reports/GDPdU_export/".$exportFolder."sitpos_bons.csv", $GDPdU_output_bon);
			}
			
			$GDPdUQl_Prod=mysql_query("SELECT abgeschlossener_bon_produkte.produkt_id AS prodDbbId, abgeschlossener_bon_produkte.bon_id AS bonId, 
									printname, stueck, 'Stück' AS einheit, PRICESELL AS nettoBetr, PRICESELL * (1 + tax_rate) AS unitPrice, 
									(PRICESELL * (1 + tax_rate)) * stueck AS bruttoBetr, tax_rate, tax_rate * 100 AS steuersatz, 
									storno_person_id AS stornoPers, storno_datum AS stornoDat, storno_bemerkung AS stornoBem
								FROM abgeschlossener_bon_produkte
								LEFT JOIN abgeschlossener_bon ON abgeschlossener_bon_produkte.bon_id =abgeschlossener_bon.bon_id
								WHERE bon_erstellt_datum > '".$startDateTime."' AND bon_erstellt_datum < '".$endDateTime."' ");
			$GDPdU_output_prod="BON_ID; ART_NR; POSTEXT; MENGE; EINHEIT; STK_BR; GES_BR; ST_PROZ; P_STORN\r\n";
			while($GDPdURowProd=mysql_fetch_array($GDPdUQl_Prod)){
				$produktStorniert='';
				if($GDPdURowProd['stornoPers'] > 0){
						if (preg_match('/^\*\*Storno\szu\sBon\s(\d+)/', $GDPdURowProd['stornoBem'], $mMatches)){
							$produktStorniert='Storno zu '.$mMatches[1];
						}
						else $produktStorniert='Normal Verkauf storniert';
					}
				$rabattiert='';
				if(preg_match('/(\d+)(%\sRabatt)/', $GDPdURowProd['printname'], $rResult)){
						#	Rabatte werden noch nicht ausgegeben, wird wahrscheinlich erforderlich sein aber auf Audicon ergebnis warten !
						# 	die Rechnug (Rabatte) stimmt NICHT !!!!!!!
					$rabattSatz=0;
					$rabattSatz=$rResult[1];
					if($rabattSatz > 0){

						$origPr=((($GDPdURowProd['nettoBetr']/(100-$rResult[1]))*100)*$GDPdURowProd['stueck'])*(1 + $GDPdURowProd['tax_rate']);
						$rabattBetrag=$origPr-$GDPdURowProd['bruttoBetr'];

						$rabattiert="orig BruttoGesamtPreis: <b>".number_format($origPr, 2, ".", "")."</b>, Bon BruttoGesPreis: ".
								number_format((($GDPdURowProd['nettoBetr'])*(1 + $GDPdURowProd['tax_rate']))*$GDPdURowProd['stueck'], 2, ".", "")." 
								netto Einzel: ".$GDPdURowProd['nettoBetr'];
					}
				}
				$GDPdU_output_prod.=$GDPdURowProd['bonId'].";".$GDPdURowProd['prodDbbId'].";".$GDPdURowProd['printname'].";".
							number_format($GDPdURowProd['stueck'], 2, ".", "").";".$GDPdURowProd['einheit'].";".
							number_format($GDPdURowProd['unitPrice'], 2, ".", "").";".number_format($GDPdURowProd['bruttoBetr'], 2, ".", "").";".
							number_format($GDPdURowProd['steuersatz'], 2, ".", "").";".$produktStorniert;
				
				$GDPdU_output_prod.="\r\n";
			}
			
						
				# Schreiben vom beschreibungs XML
			$writeIndexXml=false;	
				
			$xmlData=buildIndexXml(date("Ymd", strtotime($startDateTime)), date("Ymd", strtotime($endDateTime)) );
			if(isset($reportTarget) && $reportTarget == 'downloadReport'){
				$writeProdCsv=file_put_contents("docs/reports/GDPdU_export/".$exportFolder."sitpos_products.csv", $GDPdU_output_prod);
				$writeIndexXml=file_put_contents("docs/reports/GDPdU_export/".$exportFolder."index.xml", $xmlData);				
				#writeLog(basename( __FILE__)." ". __LINE__ , "write xxx variablen: ".$writeBonCsv." \n ".$writeProdCsv);
			
			}	
			
			if(isset($reportTarget) && $reportTarget == 'screen'){
				$writeBonCsv=false;
				$writeProdCsv=false;
				if(preg_match('/kein datum gesetzt/i', $whereInfo)){
					$whereInfo= $whereInfo.", von: ".$startDateTime." bis: ".$endDateTime." verwendet.";
				}
				echo "<input type='hidden' value=' display success '/><p>".$whereInfo."</p>
				<span style='font-size:.8em'>".preg_replace('/\\n/', '<br />', $GDPdU_output_bon)."</span><p>".$writeBonCsv." / ".$writeProdCsv."</p>
				<span style='font-size:.8em'>".preg_replace('/\\n/', '<br />', $GDPdU_output_prod)."</span><p>".$writeIndexXml."</p>";
			}
		}
		
		else {
			echo "<input type='hidden' value=' display success '/><p>Kein verwertbares Datum</p><p>".$whereInfo."</p>";
		}
		
		if(isset($reportTarget) && $reportTarget == 'downloadReport'){
			#writeLog(basename( __FILE__)." ". __LINE__ , "Report Target angekommen: ".$reportTarget);
			#writeLog(basename( __FILE__)." ". __LINE__ , "Report Target: ".$reportTarget."\n".$dDir."\n".$fFile);
			
			$dDir="docs/reports/GDPdU_export/".$exportFolder;
			$fFile="docs/reports/GDPdU_export/datentraegerueberlassung_".$exportDate.".zip";
			$zip = createZipFromDir($dDir, $fFile);
			
			return array($reportTarget." GDPdU", $fFile);
		}
		
		
		
	
	}
	
	
	function buildIndexXml($rangeStart, $rangeEnd){
			# Diese Daten müssen wahrscheinlich extra dafür angelegt werden, irgendwo im Konfig Table od so
			$mText = array("", "Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
			if(defined('GDPdU_EXPORT_FIRMA') && GDPdU_EXPORT_FIRMA != "")$faName=GDPdU_EXPORT_FIRMA;
			else $faName="nicht angegeben";
			if(defined('GDPdU_EXPORT_STANDORT') && GDPdU_EXPORT_FIRMA != "")$faStandort=GDPdU_EXPORT_STANDORT;
			else $faStandort="nicht angegeben";
			if(defined('GDPdU_EXPORT_COMMENT') && GDPdU_EXPORT_FIRMA != "")$faComment=GDPdU_EXPORT_COMMENT;
			else $faComment="nicht angegeben";

			$repDate=date('d. ').$mText[date('n')].date(' Y');
		
		$fContent='<?xml version="1.0" encoding="UTF-8"?>
					<!DOCTYPE DataSet SYSTEM "gdpdu-01-09-2004.dtd">
			<DataSet>
				<Version>1.0</Version>
				<DataSupplier>
					<Name>'.$faName.'</Name>
					<Location>'.$faStandort.'</Location>
					<Comment>Datentraegerüberlassung nach GDPdU vom '.$repDate.', '.$faComment.'</Comment>
				</DataSupplier>
				<Media>
					<Name>Report Disk</Name>
					<Table>
						<URL>sitpos_bons.csv</URL>
						<Name>Bon Daten</Name>
						<Description>Bon Daten zu '.KASSA_ID.'</Description>
						<Validity>
							<Range>
								<From>'.$rangeStart.'</From>
								<To>'.$rangeEnd.'</To>
							</Range>
							<Format>YYYYMMDD</Format>
						</Validity>
						<UTF8 />
						<DecimalSymbol>.</DecimalSymbol>
						<DigitGroupingSymbol>,</DigitGroupingSymbol>
						<Range>
							<From>2</From>
						</Range>
						<VariableLength>
							<VariablePrimaryKey>
								<Name>BON_ID</Name>
								<AlphaNumeric/>
							</VariablePrimaryKey>
							<VariableColumn>
								<Name>BON_TYP</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>KASS_DAT</Name>
								<Date>
									<Format>YYYYMMDD</Format>
								</Date>
							</VariableColumn>
							<VariableColumn>
								<Name>BU_DAT</Name>
								<Date>
									<Format>YYYYMMDD</Format>
								</Date>
							</VariableColumn>
							<VariableColumn>
								<Name>BON_NR</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>KASSE_NR</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>MITARBEITER</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>B_ZEIT</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>UMS_BRUTTO</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UMS_BR_0</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UST_7</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UMS_BR_7</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UST_19</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UMS_BR_19</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>UMS_KASSE</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>ZAHLART</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>BONTEXT</Name>
								<AlphaNumeric/>
							</VariableColumn>
						</VariableLength>
					</Table>
					<Table>
						<URL>sitpos_products.csv</URL>
						<Name>Produkt Daten</Name>
						<Validity>
							<Range>
								<From>'.$rangeStart.'</From>
								<To>'.$rangeEnd.'</To>
							</Range>
							<Format>YYYYMMDD</Format>
						</Validity>
	
						<UTF8 />
						<DecimalSymbol>.</DecimalSymbol>
						<DigitGroupingSymbol>,</DigitGroupingSymbol>
						<Range>
							<From>2</From>
						</Range>
						<VariableLength>
							<VariableColumn>
								<Name>BON_ID</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>ART_NR</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>POSTEXT</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>MENGE</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>EINHEIT</Name>
								<AlphaNumeric/>
							</VariableColumn>
							<VariableColumn>
								<Name>STK_BR</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>GES_BR</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>ST_PROZ</Name>
								<Numeric>
									<Accuracy>2</Accuracy>
								</Numeric>
							</VariableColumn>
							<VariableColumn>
								<Name>P_STORN</Name>
								<AlphaNumeric/>
							</VariableColumn>
						</VariableLength>
					</Table>
				</Media>
			</DataSet>';
	
	
		return $fContent;
	
	}
	
	function createZipFromDir($dir, $zip_file) {
		$zip = new ZipArchive;
		if (true !== $zip->open($zip_file, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE)) {
			return false;
		}
		zipDir($dir, $zip);
		return $zip;
	}

	function zipDir($dir, $zip, $relative_path = DIRECTORY_SEPARATOR) {
		$dir = rtrim($dir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
		if ($handle = opendir($dir)) {
			while (false !== ($file = readdir($handle))) {
				if ($file === '.' || $file === '..') {
					continue;
				}
				if (is_file($dir . $file)) {
					$zip->addFile($dir . $file, $file);
				} elseif (is_dir($dir . $file)) {
					zipDir($dir . $file, $zip, $relative_path . $file);
				}
			}
		}
		closedir($handle);
	}


		#						B_STORN	UMS_KASSE
		
	#BON_ID; BON_TYP; KASS_DAT; BU_DAT; BON_NR; KASSE_NR; MITARBEITER; B_ZEIT; UMS_BRUTTO; UMS_BR_0; UST_7; UMS_BR_7; UST_19; UMS_BR_19; 
	#	B_STORN; UMS_KASSE; ZAHLART; BONTEXT
	
	#BON_ID; ART_NR; POSTEXT; MENGE; EINHEIT; STK_BR; 	GES_BR; ST_PROZ; P_STORN
























































?>