<?php
	require_once("../config/connect.php");
	require_once("../global_functions.php");
		
	function array_to_csv($array)
	{
		echo implode(";", $array['header']).PHP_EOL;
		foreach ($array['body'] as $line)
		{
						
			$csv = implode(";", $line);
			echo $csv.PHP_EOL;
			
		}
	}
	
	
	
	
	function print_bonsumme($bon_nr)
	{
		//echo "alter Bon aus";
		$sql2="SELECT abgeschlossener_bon.bon_id as bon_id, gesamt_summe, abgeschlossener_bon_zahlung.Name as zahlart  
				from abgeschlossener_bon 
				LEFT JOIN abgeschlossener_bon_zahlung ON abgeschlossener_bon.bon_id=abgeschlossener_bon_zahlung.bon_id
				WHERE abgeschlossener_bon.bon_id=$bon_nr";
		$Q2=mysql_query($sql2);
		if (!$Q2) die (mysql_error());
		
		$row2=mysql_fetch_assoc($Q2);
		/*echo $row2['bon_id'];
		echo $row2['gesamt_summe'];
		echo $row2['zahlart'];
			*/
		return array($row2['bon_id'], $row2['gesamt_summe'], $row2['zahlart']);	
	}
	
	// Gibt alle Bon Zeilen aus
	// Wenn $header == false dann schreibe keinen header raus
    function alle_buchungen($header=true) 
	{
        global $con;
		
		$result = array();
		
        $where = "";
		//echo $where;

		$sumBrutt=0;
        $sumQty=0;

			$sql="SELECT produkt_id, ab.bon_id AS bon_nr, ab.bon_erstellt_datum AS datum, 
                                         abp.PRINTNAME AS produkt_print_name, ab.kassa_abschluss_id,  ab.gastro_tisch_id as tisch,
										 stueck, PRICESELL AS netto, taxes.RATE AS tax_rate, PRICESELL*(1+tax_rate) AS brutto, 
										 PRICESELL*(1+tax_rate)*stueck AS gesamtpreis, benutzer.name AS verkaufer, tax_rate,
										 GROUp_CONCAT(abgeschlossener_bon_zahlung.Name) AS zahlart 
                                         FROM abgeschlossener_bon_produkte abp
                                         LEFT JOIN abgeschlossener_bon ab 
												ON abp.bon_id=ab.bon_id
                                         LEFT JOIN taxes ON taxes.ID=taxcat 
                                         LEFT JOIN benutzer ON  verkaufer_id = benutzer.id 
                                         LEFT JOIN abgeschlossener_bon_zahlung ON abp.bon_id = abgeschlossener_bon_zahlung.bon_id
										$where 
										GROUP by abp.ID
										";
			$query = mysql_query($sql);
			if ($query) {
				$result['info']=array();
				array_push($result['info'], $where);
				$result['header'] = array ();
				if ($header) $result['header'] = array ("Bon Nr", "Datum", "Abschluss ID", "Produktname","Steuersatz", "Stückzahl", "Netto", "Steuer", "Brutto", "Gesamt", "Benutzer", "Tisch ID");
				$result['body']=array();
				$bon_nr_alt=false;
				while ($row = mysql_fetch_assoc($query)) {
					if ($bon_nr_alt!==false && $bon_nr_alt !== $row['bon_nr'])
					{
						list($bon_nr, $gesamt_summe, $zahlart)=print_bonsumme($bon_nr_alt);
						array_push($result['body'], array(
									'bon_nr'=>$bon_nr_alt,
									'datum'=>"",
									'kassa_abschluss_id'=>"",
									'produkt_print_name'=>"Summe",
									'ust_satz'=>"",
									'stueck'=>"",
									'netto'=>"", 
									'steuer'=>"", 
									'brutto'=>"",
									'gesamtpreis'=> number_format($gesamt_summe, 2, ",", "."),
									'verkaufer'=>"",
									'tisch'=>$zahlart
									));
						
					}

					// if kassenabschluss
					
					$steuer=$row['brutto']-$row['netto'];
					array_push($result['body'], array(
									'bon_nr'=>$row['bon_nr'],
									'datum'=>$row['datum'],
									'kassa_abschluss_id'=>$row['kassa_abschluss_id'],
									'produkt_print_name'=>$row['produkt_print_name'],
									'ust_satz'=>number_format($row['tax_rate'], 2, ",", "."),
									'stueck'=>number_format($row['stueck'], 1, ",", "."),
									'netto'=>number_format($row['netto'], 2, ",", "."), 
									'steuer'=>number_format($steuer, 2, ",", "."),
									'brutto'=>number_format($row['brutto'], 2, ",", "."),
									'gesamtpreis'=>number_format($row['gesamtpreis'], 2, ",", "."),
									'verkaufer'=>$row['verkaufer'],
									'tisch'=>$row['tisch']
									));
					$sumQty+=$row['stueck'];
					$sumBrutt+=$row['gesamtpreis'];
					
					
					$bon_nr_alt=$row['bon_nr'];
				}
			} 
			else {
				echo "Fehler :".mysql_error();
				echo "Befehl :".$sql;
			}

		list($bon_nr, $gesamt_summe, $zahlart)=print_bonsumme($bon_nr_alt);
						array_push($result['body'], array(
									'bon_nr'=>$bon_nr,
									'datum'=>"",
									'kassa_abschluss_id'=>"",
									'produkt_print_name'=>"Summe",
									'ust_satz'=>"",
									'stueck'=>"",
									'netto'=>"", 
									'steuer'=>"", 
									'brutto'=>"",
									'gesamtpreis'=> number_format($gesamt_summe, 2, ",", "."),
									'verkaufer'=>"",
									'tisch'=>$zahlart
									));
									
        $sumQty=number_format($sumQty, 1, ",", ".");
        $sumBrutt=number_format($sumBrutt, 2, ",", ".");
        
		$result['summe']=array();
        $result['summe'] = array("", "Summe", $sumQty, "", "", $sumBrutt);

        mysql_select_db(SQL_DB, $con);
        return $result;
    }
	
	// Preis �nderungen heraussuchen
	// Wenn $header == false dann schreibe keinen header raus
    function preisaenderungen_anzeigen($header=true) 
	{
        global $con;
		
		$result = array();


		$sumBrutt=0;
        $sumQty=0;

			$sql="SELECT produkt_id, ab.bon_id AS bon_nr, ab.bon_erstellt_datum AS datum, 
                                         abp.PRINTNAME AS produkt_print_name, ab.kassa_abschluss_id,  ab.gastro_tisch_id as tisch,
										 stueck, PRICESELL AS netto, taxes.RATE AS tax_rate, PRICESELL*(1+tax_rate) AS brutto, 
										 PRICESELL*(1+tax_rate)*stueck AS gesamtpreis, benutzer.name AS verkaufer, 
										 GROUp_CONCAT(DISTINCT abgeschlossener_bon_zahlung.Name) AS zahlart 
                                         FROM abgeschlossener_bon_produkte abp
                                         LEFT JOIN abgeschlossener_bon ab 
												ON abp.bon_id=ab.bon_id
                                         LEFT JOIN taxes ON taxes.ID=taxcat 
                                         LEFT JOIN benutzer ON  verkaufer_id = benutzer.id 
                                         LEFT JOIN abgeschlossener_bon_zahlung ON abp.bon_id = abgeschlossener_bon_zahlung.bon_id
										GROUP by produkt_id, PRICESELL
                                        ORDER by produkt_id, datum";
			//$sql;

			$query = mysql_query($sql);
			if ($query) {
				$result['info']=array();
				$result['header'] = array ();
				if ($header) $result['header'] = array ("Produkt ID", "Datum", "Produktname", "Netto alt", "Netto neu", "Brutto");
				$result['body']=array();
				
				$aktuelle_produkt_id="";
				$alter_preis=0;
				while ($row = mysql_fetch_assoc($query)) {
					if ($aktuelle_produkt_id===$row['produkt_id'])
					{
						// das ist die nicht die erste Zeile - also Preis�nderung
						array_push($result['body'], array(
									'produkt_id'=>$row['produkt_id'],
									'datum'=>$row['datum'],
									'produkt_print_name'=>$row['produkt_print_name'],
									'netto_alt'=>$alter_preis,
									'netto'=>number_format($row['netto'], 2, ",", "."), 
									'brutto'=>number_format($row['brutto'], 2, ",", ".")
									));
					}
					$aktuelle_produkt_id=$row['produkt_id'];
					$alter_preis=number_format($row['netto'], 2, ",", ".");
					
					$sumQty+=$row['stueck'];
					$sumBrutt+=$row['gesamtpreis'];
				}
			} 
			else {
				echo "Fehler :".mysql_error();
				echo "Befehl :".$sql;
			}

        $sumQty=number_format($sumQty, 1, ",", ".");
        $sumBrutt=number_format($sumBrutt, 2, ",", ".");
        
		$result['summe']=array();
        $result['summe'] = array("", "Summe", $sumQty, "", "", $sumBrutt);

        mysql_select_db(SQL_DB, $con);
        return $result;
    }
	
	function print_kassaabschluss($id)
	{
		
		
		// Zahlungsart
		echo "$id;Zahlungsart Bericht;;;;".PHP_EOL;
		$output=report_zahlungsart(false, false, $id);
		foreach ($output['body'] as $line)
		{
			$einnahmen_wirksam=$line[3];
			$kassastand_wirksam=$line[2];
			$betrag=number_format($line[1], 2, ",", ".");
			$zahlungsart=$line[0];
			$csv_line=implode(";", array($id, $zahlungsart, "", "", "", $betrag));
			echo $csv_line . PHP_EOL;
		}
			
		/*
		// Produkte
		echo "$id;Produkte Bericht;;;;".PHP_EOL;
		$output=report_produkte(false, false, $id);
		foreach ($output['body'] as $line)
		{
			$brutto=$line[4];
			$netto=$line[2];
			$stueck=$line[1];
			$produkt=$line[0];
			$steuer=$line[3];
			$csv_line=implode(";", array($id, $produkt, $stueck, $netto, $steuer, $brutto));
			echo $csv_line . PHP_EOL;
		}
		*/
		// Kategorien
		echo "$id;Kategorien Bericht;;;;".PHP_EOL;
		$output=report_categorie(false, false, $id);
		foreach ($output['body'] as $line)
		{
			$kategorie=$line[0];
			$stueck=number_format($line[1], 2, ",", ".");
			$netto=number_format($line[2], 2, ",", ".");
			$steuer=number_format($line[3], 2, ",", ".");
			$brutto=number_format($line[4], 2, ",", ".");
			$csv_line=implode(";", array($id, $kategorie, $stueck, $netto, $steuer, $brutto));
			echo $csv_line . PHP_EOL;
		}
		
		// Steuern
		echo "$id;Steuern Bericht;;;;".PHP_EOL;
		$output=report_steuer(false, false, $id);
		foreach ($output['body'] as $line)
		{
			$netto=number_format($line[2], 2, ",", ".");
			$steuer=number_format($line[1], 2, ",", ".");
			$brutto=number_format($line[3], 2, ",", ".");
			$steuer_name=$line[0];
			$zahlart="";
			$csv_line=implode(";", array($id, $steuer_name, "", $netto, $steuer, $brutto));
			echo $csv_line . PHP_EOL;
		}
	
		// Benutzer
		echo "$id;Benutzer Bericht;;;;".PHP_EOL;
		$output=report_benutzer(false, false, $id);
		foreach ($output['body'] as $line)
		{
			$steuer_name=$line[0];
			$stueck=number_format($line[1], 2, ",", ".");
			$netto=number_format($line[2], 2, ",", ".");
			$steuer=number_format($line[3], 2, ",", ".");
			$brutto=number_format($line[4], 2, ",", ".");

			$csv_line=implode(";", array($id, $steuer_name, $stueck, $netto, $steuer, $brutto));
			echo $csv_line . PHP_EOL;
		}
		
	}
	
	function download_alle_buchungen()
	{
		header('Content-Disposition: attachment; filename="alle_buchungen.csv";');
		$result=alle_buchungen();
		array_to_csv($result);
	}
	
	function download_preisaenderungen()
	{
		header('Content-Disposition: attachment; filename="preisaenderungen_buchungen.csv";');
		$result=preisaenderungen_anzeigen();
		array_to_csv($result);
	}

	function download_alle_abschluesse()
	{
		header('Content-Disposition: attachment; filename="kassenabschluesse.csv";');
		$sqlQ2="SELECT kassa_abschluesse.id as id, datum_start, datum_ende, eroeffner.name as eroeffner, schliesser.name as schliesser
					FROM kassa_abschluesse
					LEFT JOIN benutzer AS eroeffner ON eroeffner.id=verkaufer_id
					LEFT JOIN benutzer AS schliesser ON schliesser.id=verkaufer_id_abschluss";
		//echo $sqlQ2;
		$Q2=mysql_query($sqlQ2);

		if(!$Q2){
			$dbError = true;
			$dbErrorMsg=mysql_error();
		}

		echo "Abschluss ID; Name;Stueck;Netto;Steuer;Brutto".PHP_EOL;
		while ($row=mysql_fetch_assoc($Q2))
		{
			echo $row['id'].";Eroeffnung; ".$row['datum_start'].";Eroeffnet von: ".$row['eroeffner'].PHP_EOL;
			print_kassaabschluss($row['id']);
			echo $row['id'].";Abschluss; ".$row['datum_ende'].";Geschlossen von: ".$row['schliesser'].PHP_EOL;

		}
	}
	
	function get_dep($result)
	{
		$sqlQ2="SELECT *
					FROM dep 
					order by create_ts;";
		//echo $sqlQ2;
		$Q2=mysql_query($sqlQ2);

		if(!$Q2){
			$dbError = true;
			$dbErrorMsg=mysql_error();
		}

		//echo "Abschluss ID; Name;Stueck;Netto;Steuer;Brutto".PHP_EOL;
		array_push($result,array('beleg_nr' => 'beleg_nr',
										'betr_satz_besonder' => 'betr_satz_besonder',
										'betr_satz_erm_1' => 'betr_satz_erm_1',
										'betr_satz_erm_2' => 'betr_satz_erm_2',
										'betr_satz_norm' => 'betr_satz_norm',
										'betr_satz_null' => 'betr_satz_null',
										'create_ts' => 'create_ts',
										'datum_zeit' => 'datum_zeit',
										'dep_id' => 'dep_id',
										'kassen_id' => 'kassen_id',
										'qr_string' => 'qr_string',
										'signatur_vorigerbeleg' => 'signatur_vorigerbeleg',
										'signjws' => 'signjws',
										'umsatz_zaehler' => 'umsatz_zaehler',
										'umsatz_zaehler_aes' => 'umsatz_zaehler_aes',
										'update_ts' => 'update_ts,zertif_nr'));
											
		while ($row=mysql_fetch_assoc($Q2))
		{
			array_push($result, array(
						'beleg_nr'=>$row['beleg_nr'],
						'betr_satz_besonder'=>$row['betr_satz_besonder'],
						'betr_satz_erm_1'=>$row['betr_satz_erm_1'],
						'betr_satz_erm_2'=>$row['betr_satz_erm_2'],
						'betr_satz_norm'=>$row['betr_satz_norm'],
						'betr_satz_null'=>$row['betr_satz_null'],
						'create_ts'=>$row['create_ts'],
						'datum_zeit'=>$row['datum_zeit'],
						'dep_id'=>$row['dep_id'],
						'kassen_id'=>$row['kassen_id'],
						'qr_string'=>$row['qr_string'],
						'signatur_vorigerbeleg'=>$row['signatur_vorigerbeleg'],
						'signjws'=>$row['signjws'],
						'umsatz_zaehler'=>$row['umsatz_zaehler'],
						'umsatz_zaehler_aes'=>$row['umsatz_zaehler_aes'],
						'update_ts'=>$row['update_ts'],
						'zertif_nr'=>$row['zertif_nr'],
									));

		}
		
		
		return $result;
	}
	
	
	
	if (isset($_REQUEST['funktion']))
	{
		switch($_REQUEST['funktion'])
		{
			case 'download_preisaenderungen':
				download_preisaenderungen();
			break;
			case 'download_alle_abschluesse':
				download_alle_abschluesse();
			break;
			case 'download_alle_buchungen':
				download_alle_buchungen();
				break;
			case 'download_alle':
				$savePath = "dep131Export.csv";
				download_audit_und_dep($savePath);
			break;
		}
		
	}
	
	
	//
	//download_alle_abschluesse();

	
?>
<html>
<head>
</head>
<body>
<form action="dep_131.php" method="post">
			<input type="submit" name="funktion" value="download_preisaenderungen" />
			<input type="submit" name="funktion" value="download_alle_abschluesse" />
			<input type="submit" name="funktion" value="download_alle_buchungen" />
			<input type="submit" name="funktion" value="download_alle" />
			</form>
			
		</body>
	</html>
	<?php
	?>