<?php


//hole pfad
require_once("../paths.php");

// include server parameters
require(DOCROOT_CATALOG . 'load_this/load_bigware_15.php');
// include the list of project database tables
require(FOLDER_ABSOLUT_CATALOG.FOLDER_RELATIV_INCLUDES . 'load_this_bigware_18.php');
// include the database functions
require(FOLDER_ABSOLUT_CATALOG.FOLDER_RELATIV_FUNCTIONS . 'function_bigware_4.php');
// make a connection to the database... now
go_db_connect() or ('Kann Datenbankverbindung nicht herstellen! �berpr�fen Sie den DOCROOT_PATH im jtlwawi_Connector/paths.php Script Zeile 15. Der Pfad muss entweder relativ oder absolut auf das Rootverzeichnis Ihres Shops zeigen.');
  
function eS_execute_query($query)
{	
	return go_db_query($query);
}

$Con = 0;
//checke connection zur db
if ($_POST["DBhost"])
	$Con = pruefeConnection();

zeigeKopf();
if (schritt1EingabenVollstaendig())
	installiere();
else
	installSchritt1();

zeigeFuss();

function zeigeKopf()
{
	echo('
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<meta http-equiv="language" content="deutsch, de">
		<meta name="author" content="JTL-Software, www.jtl-software.de">
		<title>JTL-Wawi Connector f�r osCommerce Installation</title>
		<link rel="stylesheet" type="text/css" href="../admin/jtlwawiConnectorAdmin.css">
	</head>
	<body>
	<center>
	<table cellspacing="0" cellpadding="0" width="770">
		<tr>
			<td><img src="../gfx/jtlwawi_Connector_head_OSC.jpg"></td>
		</tr>
		<tr>
			<td valign="top">
				<table cellspacing="0" cellpadding="0" width="100%">
					<tr>

	');
}

function zeigeFuss()
{
	echo('
					</tr>
				</table>
			</td>
		</tr>
		<tr>
			<td bgcolor="#542A11" height="48" align="center"><span class="small" style="color:#ffffff">&copy; 2004-2006 JTL-Software</span></td>
		</tr>
	</table>
	<br>
	<a href="http://www.jtl-software.de/jtlwawi.php"><img src="../gfx/powered_by_jtlwawi.png"></a>
	</center>
	</body>
</html>
	');
}

function parse_go_db_dump($url) {
	$file_content = file($url);
	$errors="";
	//print_r($file_content);
	$query = "";
	foreach($file_content as $i => $sql_line) {
		$tsl = trim($sql_line);
		if (($sql_line != "") && (substr($tsl, 0, 2) != "--") && (substr($tsl, 0, 1) != "#")) {
			$query .= $sql_line;
			if(preg_match("/;\s*$/", $sql_line)) {
				$result = go_db_query($query);
				if (!$result) $errors.="<br>".go_db_error()." Nr: ".go_db_errno()." in Zeile ".$i."<br>".$query."<br>";
					$query = "";
			}
		}
	}
	return $errors;
}

function installSchritt1()
{
	//konfig
	$cur_query = eS_execute_query("select set_it_up_value from set_it_up where set_it_up_key=\"CURRENT_TEMPLATE\"");
	$cur_template = go_db_fetch_object($cur_query);
	
	//defaultwerte setzen
	if (!$einstellungen->shopURL)
		$einstellungen->shopURL = HTTP_SERVER;
	if (!$einstellungen->tax_priority)
		$einstellungen->tax_priority = 1;
	if (!$einstellungen->versandMwst)
		$einstellungen->versandMwst = 16;
	if (!$einstellungen->languages_id)
	{
		$cur_query = eS_execute_query("select set_it_up_value from set_it_up where set_it_up_key=\"DEFAULT_LANGUAGE\"");
		$def_lang = go_db_fetch_object($cur_query);
		if ($def_lang->set_it_up_value)
		{
			$cur_query = eS_execute_query("select languages_id from languages where code=\"".$def_lang->set_it_up_value."\"");
			$langID = go_db_fetch_object($cur_query);			
			$einstellungen->languages_id = $langID->languages_id;
		}
		else 
		{
			//erstbeste Lang
			$cur_query = eS_execute_query("select languages_id from languages");
			$langID = go_db_fetch_object($cur_query);			
			$einstellungen->languages_id = $langID->languages_id;
		}
	}
	
	$hinweis="";
	if ($_POST["installiereSchritt1"]==1)
		$hinweis="Bitte alle Felder vollst�ndig ausf�llen!";
	srand();
	$syncuser = generatePW(8);
	sleep(1);
	$syncpass = generatePW(8);
	echo('
						<td bgcolor="#ffffff" style="border-color:#222222; border-width:1px; border-style:solid; border-top-width:0px; border-bottom-width:0px;" valign="top" align="center"><br>
							<table cellspacing="0" cellpadding="0" width="96%">
								<tr><td class="content_header" align="center"><h3>JTL-Wawi Connector Installation</h3></td></tr>
								<tr><td class="content" ><br>
										Dieses Modul erlaubt es, Ihren Bigware Shop mit der kostenlosen Warenwirtschaft <a href="http://www.jtl-software.de/jtlwawi.php">JTL-Wawi</a> zu betreiben. Dieses Modul ist kostenfrei, kann frei weitergegeben werden, unterliegt jedoch den Urheberrechten von <a href="http://www.jtl-software.de">JTL-Software</a>.<br><br>
										Den Funktionsumfang dieses Modul finden Sie unter <a href="http://www.jtl-software.de/jtlwawi_connector.php">http://www.jtl-software.de/jtlwawi_connector.php</a>.<br><br>
										Die Installation und Inbetriebnahme von JTL-Wawi Connector geschieht auf eigenes Risiko. Haftungsanspr�che f�r evtl. entstandene Sch�den werden nicht �bernommen! <b>Sichern Sie sich daher vorher sowohl Ihre Shopdatenbank als auch die JTL-Wawi Datenbank.</b><br><br>

										<center>
										F�r den reibungslosen Im-/ und Export von Daten zwischen <a href="http://www.jtl-software.de">JTL-Wawi</a> und Ihrem Shop, m�ssen einige Einstellungen als Standard gesetzt sein.<br><br>
										<table cellspacing="0" cellpadding="0" width="580">
											<tr>
												<td class="unter_content_header">&nbsp;<b>Einstellungen</b></td>
											</tr>
											<tr>
												<td class="content" align="center">
													Hilfe zu den einzelnen Einstellungm�glichkeiten finden Sie unter <a href="http://www.jtl-software.de/jtlwawi_connector.php" target="_blank">JTL-Wawi Connector Konfigurationshilfe</a>.<br>
													<form action="index.php" method="post" name="konfig">
													<input type="hidden" name="install" value="1">
													<table cellspacing="0" cellpadding="10" width="100%">
														<tr>
															<td><b>Shop URL</b></td><td><input type="text" name="shopurl" size="50" class="konfig" value="'.$einstellungen->shopURL.'"></td>
														</tr>
														<tr>
															<td><b>Standardw�hrung</b></td><td><select name="waehrung">
	');
	$cur_query = eS_execute_query("select * from currencies");
	while ($currency = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$currency->currencies_id.'" ');if ($currency->currencies_id==$einstellungen->currencies_id) echo('selected'); echo('>'.$currency->title.'</option>');
	}
	echo('</select></td>
														</tr>
														<tr>
															<td><b>Standardsprache</b></td><td><select name="sprache">
	');
	$cur_query = eS_execute_query("select * from languages");
	while ($lang = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$lang->languages_id.'" ');if ($lang->languages_id==$einstellungen->languages_id) echo('selected'); echo('>'.$lang->name.'</option>');
	}
	echo('
															</select>														
															</td>
														</tr>
														<tr>
															<td>Umsatzsteuer</td><td>&nbsp;</td>
														</tr>
														<tr>
															<td><b>Standard Steuerzone</b></td><td><select name="steuerzone">
	');
	$cur_query = eS_execute_query("select * from geo_zones");
	while ($zone = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$zone->geo_zone_id.'" ');if ($zone->geo_zone_id==$einstellungen->tax_zone_id) echo('selected'); echo('>'.$zone->geo_zone_name.'</option>');
	}
	echo('
															</select>														
															</td>
														</tr>
														<tr>
															<td><b>Standard Steuerklasse*</b></td><td><select name="steuerklasse">
	');
	$cur_query = eS_execute_query("select * from tax_class");
	while ($klasse = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$klasse->tax_class_id.'" ');if ($klasse->tax_class_id==$einstellungen->tax_class_id) echo('selected'); echo('>'.$klasse->tax_class_title.'</option>');
	}
	echo('
															</select>														
															</td>
														</tr>
														<tr>
															<td><b>Standard Steuersatzpriorit�t</b></td><td><input type="text" name="prioritaet" size="50" class="konfig" style="width:30px;" value="'.$einstellungen->tax_priority.'"></td>
														</tr>
														<tr>
															<td><b>Steuersatz f�r Versandkosten</b></td><td><input type="text" name="versandMwst" size="50" class="konfig" style="width:30px;" value="'.$einstellungen->versandMwst.'"> %</td>
														</tr>
														<tr>
															<td>Bestellstatus�nderungen</td><td>&nbsp;</td>
														</tr>
														<tr>
															<td><b>Sobald Bestellung erfolgreich in JTL-Wawi �bernommen wird, Status setzen auf:</b></td><td><select name="StatusAbgeholt"><option value="0">Status nicht �ndern</option>
	');
	$cur_query = eS_execute_query("select * from orders_status where language_id=".$einstellungen->languages_id." order by orders_status_id");
	while ($status = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$status->orders_status_id.'" ');if ($status->orders_status_id==$einstellungen->StatusAbgeholt) echo('selected'); echo('>'.$status->orders_status_name.'</option>');
	}
	echo('
															</select>														
															</td>
														</tr>
														<tr>
															<td><b>Sobald Bestellung in JTL-Wawi versandt wird, Status setzen auf</b></td><td><select name="StatusVersendet"><option value="0">Status nicht �ndern</option>
	');
	$cur_query = eS_execute_query("select * from orders_status where language_id=".$einstellungen->languages_id." order by orders_status_id");
	while ($status = go_db_fetch_object($cur_query))
	{
		echo('<option value="'.$status->orders_status_id.'" ');if ($status->orders_status_id==$einstellungen->StatusVersendet) echo('selected'); echo('>'.$status->orders_status_name.'</option>');
	}
	echo('
															</select>														
															</td>
														</tr>
														<tr>
															<td valign="top"><b>Bestellungen <=> JTL-Wawi</b></td><td>
															Folgende Bestellungen und dazugeh�rige Kundendaten werden hiermit als "bereits zu JTL-Wawi versandt" markiert und bei einem Webshopabgleich nicht nach JTL-Wawi geholt. M�chten Sie auch alle Bestellungen und zugeh�rige Kundendaten in JTL-Wawi importieren, so kreuzen Sie nichts an:<br><br>
		');
	$cur_query = eS_execute_query("select * from orders_status where language_id=".$einstellungen->languages_id." order by orders_status_id");
	while ($status = go_db_fetch_object($cur_query))
	{
		echo('<input type="checkbox" name="bestellungen_bestellt[]" value="'.$status->orders_status_id.'">'.$status->orders_status_name);
	}
	echo('
															</td>
														</tr>													
													</table><br>
												</td>
											</tr>
										</table><br>
										<table cellspacing="0" cellpadding="0" width="580">
											<tr>
												<td class="unter_content_header">&nbsp;<b>Synchronsations - Benutzerdaten</b></td>
											</tr>
											<tr>
												<td class="content">													
													F�r die Synchronisation zwischen JTL-Wawi und diesem wird ein Synchronisationsbenutzer ben�tigt. Bitte <b>notieren Sie sich</b> unbedingt <b>diese Angaben</b> und setzen sie einen starken kryptischen Benutzernamen und Passwort - oder �bernehmen Sie die zuf�llig generierten Vorgaben. Diese Angaben werden einmalig in den JTL-Wawi Einstellungen eingetragen.
													<br><br><br>
													<center>
													<table cellspacing="0" cellpadding="10" width="70%" style="border-width:1px;border-color:#222222;border-style:solid;">
													<tr>
														<td><b>Sync-Benutzername</b></td><td><input type="text" name="syncuser" size="20" class="login" value="'.$syncuser.'"></td>
													</tr>
													<tr>
														<td><b>Sync-Passwort</b></td><td><input type="text" name="syncpass" size="20" class="login" value="'.$syncpass.'"></td>
													</tr>
													</table>
													<br><br>
													'.$hinweis.'
													<input type="submit" value="Installation starten">
													</form>
													</center>
												</td>
											</tr>
										</table>
								</td></tr>
							</table><br>
						</td>
	');
}

function schritt1EingabenVollstaendig()
{
	if (strlen($_POST["syncuser"])>0 && strlen($_POST["syncpass"])>0)
		return 1;
	return 0;
}

function installiere()
{
	$hinweis = parse_go_db_dump("jtlwawi_connector_DB.sql");
	//inserte syncuser
	if (!go_db_query("insert into eazysales_sync values (\"".$_POST['syncuser']."\",\"".$_POST['syncpass']."\")")) $hinweis.="<br>".go_db_error()." Nr: ".go_db_errno();

	//Bestellungen gesendet markeiren
	$qry_teil="";
	if (is_array($_POST['bestellungen_bestellt']))
	{
		foreach ($_POST['bestellungen_bestellt'] as $i => $status)
		{
			if ($i!=0)
				$qry_teil.=" or orders_status=".$status;
			else
				$qry_teil.=" orders_status=".$status;
		}
	}
	if (strlen($qry_teil)>1)
	{
		$best_query = eS_execute_query("select orders_id from orders where $qry_teil order by orders_id");
		while ($orderkey = go_db_fetch_row($best_query))
		{
			if ($orderkey[0]>0)
			{
				//schaue, ob nicht schon markiert
				$einzel_query = eS_execute_query("select orders_id from eazysales_sentorders where orders_id=".$orderkey[0]);
				$oid = go_db_fetch_row($einzel_query);
				if (!$oid[0])
					eS_execute_query("insert into eazysales_sentorders (orders_id) values (".$orderkey[0].")");
			}
		}
	}
		
	//inserte einstellungen
	$mappingEndkunde="";
	$mappingHaendlerkunde="";
	if (is_array($_POST['endkunde']))
		$mappingEndkunde = implode(";",$_POST['endkunde']);
	if (is_array($_POST['haendlerkunde']))
		$mappingHaendlerkunde = implode(";",$_POST['haendlerkunde']);
	
	$shopurl = $_POST['shopurl']; if (!$shopurl) $shopurl="";
	$waehrung = $_POST['waehrung']; if (!$waehrung) $waehrung=0;
	$sprache = $_POST['sprache']; if (!$sprache) $sprache=0;
	$liefertermin = $_POST['liefertermin']; if (!$liefertermin) $liefertermin=0;
	$steuerzone = $_POST['steuerzone']; if (!$steuerzone) $steuerzone=0;
	$steuerklasse = $_POST['steuerklasse']; if (!$steuerklasse) $steuerklasse=0;
	$prioritaet = $_POST['prioritaet']; if (!$prioritaet) $prioritaet=0;
	$versandMwst = floatval($_POST['versandMwst']); if (!$versandMwst) $versandMwst=0;
	$cat_listing = $_POST['cat_listing']; if (!$cat_listing) $cat_listing="";
	$cat_template = $_POST['cat_template']; if (!$cat_template) $cat_template="";
	$cat_sorting = $_POST['cat_sorting']; if (!$cat_sorting) $cat_sorting="";
	$cat_sorting2 = $_POST['cat_sorting2']; if (!$cat_sorting2) $cat_sorting2="";
	$item_template = $_POST['item_template']; if (!$item_template) $item_template="";
	$option_template = $_POST['option_template']; if (!$option_template) $option_template="";
	$statusAbgeholt = $_POST['StatusAbgeholt']; if (!$statusAbgeholt) $statusAbgeholt=0;
	$statusVersandt = $_POST['StatusVersendet']; if (!$statusVersandt) $statusVersandt=0;
	

	eS_execute_query("delete from eazysales_einstellungen");
	eS_execute_query("insert into eazysales_einstellungen (StatusAbgeholt, StatusVersendet, currencies_id, languages_id, mappingEndkunde, mappingHaendlerkunde, shopURL, tax_class_id, tax_zone_id, tax_priority, shipping_status_id, versandMwst,cat_listing_template,cat_category_template,cat_sorting,cat_sorting2,prod_item_template,prod_options_template) values ($statusAbgeholt, $statusVersandt, $waehrung,$sprache,\"$mappingEndkunde\",\"$mappingHaendlerkunde\",\"$shopurl\",$steuerklasse,$steuerzone,$prioritaet,$liefertermin, ".floatval($versandMwst).",\"$cat_listing\",\"$cat_template\",\"$cat_sorting\",\"$cat_sorting2\",\"$item_template\",\"$option_template\")");
	//ende einstellungen

	if (strlen($hinweis)>0)
	{
		echo('
							<td bgcolor="#ffffff" style="border-color:#222222; border-width:1px; border-style:solid; border-top-width:0px; border-bottom-width:0px;" valign="top" align="center"><br>
								<table cellspacing="0" cellpadding="0" width="96%">
									<tr><td class="content_header" align="center"><h3>JTL-Wawi Connector Datenbankeinrichtung fehlgeschlagen</h3></td></tr>
									<tr><td class="content" align="center"><br>
											<table cellspacing="0" cellpadding="0" width="580">
												<tr>
													<td class="unter_content_header">&nbsp;<b>Bei der Datenbankeinrichtung sind folgende Fehler aufgetreten</b></td>
												</tr>
												<tr>
													<td class="content">
	'.$hinweis.'<br><br><br>L�sungen sollten Sie hier finden: <a href="http://www.jtl-software.de/jtlwawi_connector.php">JTL-Wawi Connector</a>
													</td>
												</tr>
											</table>
									</td></tr>
								</table><br>
							</td>
		');
	}
	else
	{
		//hole webserver
		$url= "http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
		echo('
							<td bgcolor="#ffffff" style="border-color:#222222; border-width:1px; border-style:solid; border-top-width:0px; border-bottom-width:0px;" valign="top" align="center"><br>
								<table cellspacing="0" cellpadding="0" width="96%">
									<tr><td class="content_header" align="center"><h3>JTL-Wawi Connector Installation abgeschlossen</h3></td></tr>
									<tr><td class="content" align="center"><br>
											<table cellspacing="0" cellpadding="0" width="580">
												<tr>
													<td class="unter_content_header">&nbsp;<b>Die Datenbank f�r JTL-Wawi Connector wurde aufgesetzt</b></td>
												</tr>
												<tr>
													<td class="content">
														Die Installation ist serverseitig soweit abgeschlossen.<br><br>
														Sie m�ssen nun JTL-Wawi im Men� Einstellungen -> Shop-Einstellungen konfigurieren.<br><br>
														Folgende Einstellungen m�ssen Sie in JTL-Wawi eintragen:<br><br>
														<table width="95%">
														<tr><td><b>API-KEY</b>: </td><td>JTL-Wawi Connector</td></tr>
														<tr><td><b>Web-Server</b>: </td><td>'.substr($url,0,strlen($url)-18).'</td></tr>
														<tr><td><b>Web-Benutzer</b>: </td><td>'.$_POST['syncuser'].'</td></tr>
														<tr><td><b>Passwort</b>: </td><td>'.$_POST['syncpass'].'</td></tr>
														</table><br><br>
														Setzen Sie einen Haken bei "Bilder per HTTP versenden".<br>
														Bei den FTP-Einstellungen m�ssen Sie nichts eintragen.<br>
														Wir w�nschen Ihnen viel Erfolg mit Ihrem Shop!
													</td>
												</tr>
											</table>
									</td></tr>
								</table><br>
							</td>
		');
	}
}

function generatePW($length=8)
{
	$dummy= array_merge(range('0', '9'), range('a', 'z'), range('A', 'Z'));
	mt_srand((double)microtime()*1000000);
	for ($i = 1; $i <= (count($dummy)*2); $i++)
	{
		$swap= mt_rand(0,count($dummy)-1);
		$tmp= $dummy[$swap];
		$dummy[$swap]= $dummy[0];
		$dummy[0]= $tmp;
	}
	return substr(implode('',$dummy),0,$length);
}

function getTemplateArray($cur_template, $module)
{
	$files=array();
	if ($dir= opendir(FOLDER_ABSOLUT_CATALOG.'templates/'.$cur_template->set_it_up_value.'/module/'.$module.'/'))
	{
		while  (($file = readdir($dir)) !==false) 
		{
			if (is_file( FOLDER_ABSOLUT_CATALOG.'templates/'.$cur_template->set_it_up_value.'/module/'.$module.'/'.$file) and ($file !="index.html"))
			{
				$files[]=array('id' => $file,'text' => $file);
			}
		}
		closedir($dir);
	}	
	return $files;
}
?>