<?php 

	//V4.09 2023-06-20	RFR: neue Version 4.09 upgrade - BMD Felder für Zahlungsart
	//V4.09 2023-06-20	RFR: ANZAHL_BACKUPS eingefügt
	
	// nur zum Testen des Upgrade immer die alte Version setzen!
	//$insVersion=mysql_query("UPDATE konfiguration_sitpos SET wert = 'Version 2.02' WHERE name = 'SITPOS_VERSION' ");
	
	
	ini_set('max_execution_time', 0);
	
	function check_directories()
	{
		if (!file_exists('uploads/')) mkdir('uploads', 0777, true);
		if (!file_exists('upgrade/')) mkdir('upgrade', 0777, true);
		if (!file_exists('synchronize/uploads')) mkdir('synchronize/uploads', 0777, true);
		if (!file_exists('docs/')) mkdir('docs', 0777, true);
		if (!file_exists('docs/auto_backup')) mkdir('docs/auto_backup', 0777, true);
		if (!file_exists('docs/dep_backup')) mkdir('docs/dep_backup', 0777, true);
		if (!file_exists('docs/reports')) mkdir('docs/reports', 0777, true);
	}
	
	//Funktion fügt ein Feld zum Table hinzu
	function feld_zu_table_hinzufuegen($table, $feldname, $type, $after="", $index=false)
	{
		$error_message="";
		$errors=0;
		if ($after!=="") $after=" AFTER ".$after;
		$query="SHOW COLUMNS FROM $table LIKE '".$feldname."'";
		$addField=mysql_query($query);
		if (mysql_num_rows($addField)==0)
		{
			$query="ALTER TABLE $table ADD $feldname $type $after";
			$addField=mysql_query($query);
			if (!$addField) 
			{ 
				$error_message = "Fehler beim anlegen des Feldes $feldname. ".mysql_error()."<br>"; 
				$errors=1;
			}
			else $error_message = "Table: $table - Feld: $feldname wurde angelegt<br>";
		}
		else $error_message = "$feldname existiert bereits in $table <br>";
		$query="ALTER TABLE $table ADD INDEX ($feldname)";
		if ($index) mysql_query($query);
		return array($errors, $error_message);
	}
	
	function upgrade_to_411()
	{
		$error_message=insert_into_konfiguration('PRODNR_ANFANG', "2", "Anfang und Länge der Produktnummer", false, "Anfang und Länge der Produktnummer");
		$error_message=insert_into_konfiguration('PRODNR_LAENGE', "4", "Anfang und Länge der Produktnummer", false, "Anfang und Länge der Produktnummer");

	}

	function upgrade_to_410()
	{
		$error_message=insert_into_konfiguration('ANZAHL_BACKUPS', "0", "Wie viele Backups sollen im Autobackup Ordner behaltne werden. 0 .. unendlich", false, "Wie viele Backups sollen gehalten werden");
		$error_message=insert_into_konfiguration('EAN_GEWICHT_PREIS_CHECK_REGEX', "^2[1-9][0-9]{11}$", "Welche Regex soll angewendet werden um festzustellen ob es ein Spezial EAN ist. z.b wenn es Produkt EAN mit Start 22 gibt ... ^2[1,3-9][0-9]{11}$ Default Wert: ^2[1-9][0-9]{11}$", false, "Regex um Spezial EAN festzustellen");

	}
	
	function upgrade_to_409()
	{
		$error_message=insert_into_konfiguration('ANZAHL_BACKUPS', "0", "Wie viele Backups sollen im Autobackup Ordner behaltne werden. 0 .. unendlich", false, "Wie viele Backups sollen gehalten werden");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD `gesamtrabatt_prozent` decimal(10,4) DEFAULT 0 AFTER beilagen_plus;");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD `einzelrabatt_prozent` decimal(10,4) DEFAULT 0 AFTER beilagen_plus;");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD `ist_gesamtrabatt` tinyint(1) DEFAULT FALSE AFTER gesamtrabatt_prozent;");
		mysql_query("ALTER TABLE zahlungsart ADD `bmd_konto_ka` int(25) AFTER returgeld_anzeige;");
		mysql_query("ALTER TABLE zahlungsart ADD `bmd_kost_ka` int(25) AFTER bmd_konto_ka;");
	}
	
	function upgrade_to_408()
	{
		
		
		// SET BIGINT Shopify
		mysql_query("set foreign_key_checks = 0;");
		mysql_query("ALTER TABLE `products` DROP FOREIGN KEY `FK_categories`;");
		mysql_query("ALTER TABLE `categories` CHANGE `ID` `ID` BIGINT(20) NOT NULL AUTO_INCREMENT;");
		mysql_query("ALTER TABLE `products` CHANGE `CATEGORY` `CATEGORY` BIGINT(20) NOT NULL;");
		mysql_query("ALTER TABLE products ADD CONSTRAINT FK_categories FOREIGN KEY (CATEGORY) REFERENCES categories(ID);");
		mysql_query("ALTER TABLE `products` CHANGE `ID` `ID` BIGINT(20) NOT NULL AUTO_INCREMENT;");
		mysql_query("ALTER TABLE `abgeschlossener_bon_produkte` CHANGE `produkt_id` `produkt_id` BIGINT(20) NOT NULL ;");
		mysql_query("ALTER TABLE `abgeschlossener_bon_produkte` CHANGE `CATEGORY` `CATEGORY` BIGINT(20) NOT NULL ;");
		mysql_query("ALTER TABLE `abgeschlossener_bon_produkte_frei` CHANGE `produkt_id` `produkt_id` BIGINT(20) NOT NULL ;");
		mysql_query("ALTER TABLE `abgeschlossener_bon_produkte_frei` CHANGE `CATEGORY` `CATEGORY` BIGINT(20) NOT NULL ;");
		mysql_query("ALTER TABLE `offener_bon` CHANGE `produkt_id` `produkt_id` BIGINT(20) NOT NULL ;");
		mysql_query("set foreign_key_checks = 1;");

		$error_message=insert_into_konfiguration('SHOPIFY_FILIALE', "", "Name von der Filiale für den Import der Kategorien und Produkte.", false, "Filiale Shopify");
		$error_message=insert_into_konfiguration('SHOPIFY_SYNC_ORDERS_STATUS', "pending", "Sync Order nach Shopify Standard Status Bestellung (authorized, pending, paid, partially_paid, refunded, voided, partially_refunded, any, unpaid)", false, "Standard Bestellungen Status");
		$error_message=insert_into_konfiguration('SHOPIFY_SYNC_PRODUKTBESTAND', "pending", "Produktbestand (inventory_behaviour, decrement_ignoring_policy, decrement_obeying_policy)", false, "Produktbestand");
		
		 

	}
	function upgrade_to_407()
	{
		//$error_message=insert_into_konfiguration('KUECHE_ABHOLSCHEIN_AUF_KUECHENBELEG_DRUCKEN', "nein", "Soll die Abholscheinnummer auf dem Küchendrucker gedruckt werden?", false, "Küchenbon Abholschein auf Küchedrucker drucken");
		//$error_message=insert_into_konfiguration('KUECHE_ABHOLSCHEIN_SCHRIFT_GROESSE_KUECHENBELEG', "18", "Die Schriftgröße der Abholscheinnummer auf dem Küchendrucker", false, "Schriftgröße Abholscheinnummer auf Küchedrucker");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_1_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_2_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_3_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_4_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_5_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_6_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_7_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_8_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_9_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_KOPFZEILE_IBAN_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_FUSSZEILE_1_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_FUSSZEILE_2_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_FUSSZEILE_3_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_FUSSZEILE_4_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		$error_message=insert_into_konfiguration('AUSRUCK_FUSSZEILE_5_FORMAT', "", "B: fett, I: kursiv, U: unterstrichen", false, "");
		
	}
	function upgrade_to_406()
	{
		$error_message=insert_into_konfiguration('WEBSHOP_CATEGORIES_IGNOR', "1;2;3", "Kategorien die ins WooCommerce importiert werden. Wenn keine Kategorien IDs eingegeben werden alle exportiert.", false, "Kategorien ID import");
		$error_message=insert_into_konfiguration('WEBSHOP_ORDER_STATUS_MONITOR', "kitchen", "Status der am Monitor angezeigt wird ( gefiltert ).", false, "Order Status WooCommerce Anzeige Monitor");
		$error_message=insert_into_konfiguration('WEBSHOP_TYPE', "Deaktivieren", "Welches Webshop wird verwendet.", false, "Webshop");
		$error_message=insert_into_konfiguration('WEBSHOP_ERROR_MAIL', "alexander.langer@serviceit.at", "E-Mail Fehlerberichte", false, "Webshop Admin E-Mail Adresse");
		$error_message=insert_into_konfiguration('WEBSHOP_CONSUMER_KEY', "", "WooCommerce Consumer Key.", false, "WooCommerce Consumer Key");
		$error_message=insert_into_konfiguration('WEBSHOP_CONSUMER_SECRET', "", "WooCommerce Consumer Secret.", false, "WooCommerce Consumer Secret");
		$error_message=insert_into_konfiguration('WEBSHOP_URL', "", "Url zu WordPress REST API.", false, "WordPress REST API");
		$error_message=insert_into_konfiguration('WEBSHOP_SYNC_ORDERS_STATUS', "pending", "Sync Order nach WooCommerce Standard Status Bestellung (pending, processing, on-hold, completed, cancelled, refunded, failed, trash)", false, "Standard Status Bestellungen");
		$error_message=insert_into_konfiguration('WEBSHOP_ORDER_SPLITTER_PLUGIN', "nein", "Order Splitter for WooCommerce verwenden, Plugin. ", false, "Order Splitter for WooCommerce");
		
		/*
		$error_message=insert_into_konfiguration('WEBSHOP_SYNC_PRODUKTE_WOOCOMMERCE_SIT', "nein", "Automatische Syncronisierung von WooCommerce zu sITpos.", false, "Syncronisierungsintervall Produkte");
		$error_message=insert_into_konfiguration('WEBSHOP_REST_API_URL', "", "Link für Wordpress REST API V2.", false, "Wordpress REST API");
		$error_message=insert_into_konfiguration('WEBSHOP_USERNAME', "", "Loginname für REST API V2.", false, "Loginname REST API");
		$error_message=insert_into_konfiguration('WEBSHOP_PASSWORT', "", "Passwort für Wordpress REST API V2.", false, "Passwort REST API");
		*/
		
		$error_message=insert_into_konfiguration('ENABLERKEY_KASSENABSCHLUSS_ANZEIGEN', '1', 'ja/nein. Kassenabschlüsse anzeigen.', false, 'Kassenabschlüsse anzeigen');
		
		mysql_query("ALTER TABLE offener_bon ADD `woo_order_id` varchar(75);");
		mysql_query("ALTER TABLE offener_bon ADD woo_order_item_id` varchar(75);");
		mysql_query("ALTER TABLE abgeschlossener_bon ADD `woo_order_id` varchar(75);");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD `verkaeufer_id` int(11);");
		mysql_query("ALTER TABLE products ADD `fremd_id` varchar(75);");
		
		mysql_query("CREATE TABLE `webshop_variations` (
		  `id` int NOT NULL,
		  `woocommerce_id` varchar(75) NOT NULL,
		  `variation_id` int NOT NULL,
		  `variation_name` varchar(255) NOT NULL,
		  `create_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
		  `update_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
		) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
		mysql_query("ALTER TABLE `webshop_variations` ADD PRIMARY KEY (`id`)");
		mysql_query("ALTER TABLE `webshop_variations` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;");
		
		mysql_query("ALTER TABLE `webshop_variations` ADD sync_success_filialsystem boolean DEFAULT false;");
		
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_TABELLE_SUCCESS', "abgeschlossener_bon;abgeschlossener_bon_steuern;abgeschlossener_bon_frei;abgeschlossener_bon_produkte;abgeschlossener_bon_produkte_frei;abgeschlossener_bon_zahlung;dep;kunden;products;sync_info;storno_grund;lieferschein;lieferschein_referenz;kassa_abschluesse;kassabuch_abschluesse;ein_aus_zahlungen;categories;auditing;", "Filialsystem, Abfrage ob schon synchronisiert wurde. (sync_success_filialsystem)", false, "Tabellenabfrage SYNC");
		
		// alle tabellen
		$SQL1 = mysql_query("SHOW TABLES");
		
		while($tb = mysql_fetch_array($SQL1)) {
			
			mysql_query("ALTER TABLE $tb[0] MODIFY sync_success_filialsystem boolean DEFAULT false;");
		}
	}

	function upgrade_to_405()
	{
		mysql_query("ALTER TABLE zahlungsart ADD lade_oeffnen tinyint(1) DEFAULT 0 AFTER `zahlartFooter`");
		mysql_query("ALTER TABLE zahlungsart ADD returgeld_anzeige tinyint(1) DEFAULT 0 AFTER `lade_oeffnen`");
	}
	function upgrade_to_404()
	{
		$error_message=insert_into_konfiguration('AUTOMATIC_LOGOUT', 'nein', 'ja/nein Automatisches Logout aktivieren.', false, 'Automatisches Logout aktivieren');
		$error_message=insert_into_konfiguration('AUTOMATIC_LOGOUT_SEC', '1800', 'Nach wieviel Minuten soll sich der User automatisch ausloggen.', false, 'Automatisches Logout in sec.');
		$error_message=insert_into_konfiguration('ENABLERKEY_INSTALL_NEW_VERSION', '2', 'Wer darf ein Upgrade ausführen.', false, 'Admin Neue sITpos Version installieren');
		mysql_query("ALTER TABLE gutscheine ADD kassa_id varchar(128)");
	}

	function upgrade_to_403()
	{
		$beschrKP = "Eingabe der Anzahl, der maximal geladenen Kunden in der Tabelle.";
		$error_message=insert_into_konfiguration('KUNDENANZEIGE_TABELLE_MAX', '10000', $beschrKP, false, 'Anzeige max. Kunden in der Tabelle');

		// alle tabellen
		$SQL1 = mysql_query("SHOW TABLES");
		
		while($tb = mysql_fetch_array($SQL1)) {
			mysql_query("ALTER TABLE $tb[0] ADD sync_success_filialsystem boolean not null;");
		}

		
	}

	function upgrade_to_402(){
		mysql_query("ALTER TABLE gutschein_buchungen CHANGE id id VARCHAR(30) NOT NULL");
		mysql_query("ALTER TABLE gutschein_buchungen ADD kassa_id varchar(128)");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_GUTSCHEINE_ZENTRALSYSTEM', "nein", "Sollen die Gutscheine vom Zentralsystem verwaltet werden.", false, "Gutscheine im Zentralsystem verwalten");
	}
	
	function upgrade_to_401(){
		
		$error_message=insert_into_konfiguration('PRINTER_ANSTEUERUNG', "foxit", "Wählen Sie die entsprechende Printer/Drucker Steuerung.", false, "Printer Steuerung");
		
		mysql_query("ALTER TABLE license_encrypted ADD gueltig VARCHAR(10)");
		mysql_query("ALTER TABLE license_encrypted ADD lastverify date");
		mysql_query("ALTER TABLE license_encrypted ADD erstellt datetime");
		
		mysql_query("ALTER TABLE kunden ADD COLUMN `zone` INT(3) AFTER Plz");

		mysql_query("UPDATE konfiguration SET wert = CONCAT(wert, ';ZO'), Beschreibung =CONCAT(Beschreibung, ', ZO = Zone, zB Zustellzone'), Beschreibung = REPLACE(Beschreibung, 'PZ;OT', 'PZ;OT;ZO') WHERE name = 'KUNDENANZEIGE_VERKAUFSMASKE'");
		
		$infoTxtBeschrHF="Beispiel: bold 30px/60px Arial, Verdana, Helvetica, sans-serif !important Setzen der Schrift/Font Einstellungen für einen Kundenmonitor Header und Fotter, 30px ist die Schriftgröße und 60px die Zeilenhöhe. Bitte !important beachten. Falls erforderlich kann mit dem Zweiten px Wert die vertikale Zentrierung vorgenommen werden.";
		$error_message=insert_into_konfiguration('KUNDENMONITOR_FONT_HEADER_FOOTER', "bold 30px/60px Arial, Verdana, Helvetica, sans-serif !important;", $infoTxtBeschrHF, false, "Kunden Monitor Header und Footer Font", false, "");
		
		$error_message=insert_into_konfiguration('KLEINUNTERNEHMER_UST', "nein", "Ist die Kleinunternehmer USt/MwSt Regelung gesetzt wird keine USt/MwSt (Zeile) auf den Rechnungs Bon ausgedruckt wenn alle Artikel am Bon mit USt/MwSt Satz Null sind.", false, "Kleinunternehmer USt/MwSt Regelung");
		
			/*$error_message=insert_into_konfiguration("BON_ZUSATZ_FIX_TXT_BUTTON", "ja", "ja/nein. Ist die Option freigegeben, im Zusatz Text auf Bon Fenster Buttons zum Einfügen von vordefinierten Texten BUttons angezeigt, sofern Texte definiert wurden.", false, "Vordefinierte Bon Zusatztexte Buttons");	*/

		mysql_query("CREATE TABLE IF NOT EXISTS `bon_add_fixtxt`( `id` int(11) primary key AUTO_INCREMENT, `name`  varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
				`content` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 
				`create_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
				`plus_minuten` int(11) NOT NULL,
				`update_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci");
	}
	
	function upgrade_to_308(){
		mysql_query("ALTER TABLE products ADD `PRICESELL_2` decimal(20,8) AFTER PRICESELL");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_KAUF_X_ZAHL_Y_X` decimal(20,8) AFTER PRICESELL_2");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_KAUF_X_ZAHL_Y_Y` decimal(20,8) AFTER PRICESELL_2_KAUF_X_ZAHL_Y_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_X_PROZENT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_2_KAUF_X_ZAHL_Y_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_X_PROZENT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_2_X_PROZENT_AB_Y_STUECK_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_X_FIXRABATT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_2_X_PROZENT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_2_X_FIXRABATT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_2_X_FIXRABATT_AB_Y_STUECK_X");
		$error_message=insert_into_konfiguration('PRICESELL_2_Name', "Preis 2", "Name für Preis 2", false, "Name für Preis 2");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3` decimal(20,8) AFTER PRICESELL_2_X_FIXRABATT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_KAUF_X_ZAHL_Y_X` decimal(20,8) AFTER PRICESELL_3");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_KAUF_X_ZAHL_Y_Y` decimal(20,8) AFTER PRICESELL_3_KAUF_X_ZAHL_Y_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_X_PROZENT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_3_KAUF_X_ZAHL_Y_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_X_PROZENT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_3_X_PROZENT_AB_Y_STUECK_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_X_FIXRABATT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_3_X_PROZENT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_3_X_FIXRABATT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_3_X_FIXRABATT_AB_Y_STUECK_X");
		$error_message=insert_into_konfiguration('PRICESELL_3_Name', "Preis 3", "Name für Preis 3", false, "Name für Preis 3");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4` decimal(20,8) AFTER PRICESELL_3_X_FIXRABATT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_KAUF_X_ZAHL_Y_X` decimal(20,8) AFTER PRICESELL_4");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_KAUF_X_ZAHL_Y_Y` decimal(20,8) AFTER PRICESELL_4_KAUF_X_ZAHL_Y_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_X_PROZENT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_4_KAUF_X_ZAHL_Y_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_X_PROZENT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_4_X_PROZENT_AB_Y_STUECK_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_X_FIXRABATT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_4_X_PROZENT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_4_X_FIXRABATT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_4_X_FIXRABATT_AB_Y_STUECK_X");
		$error_message=insert_into_konfiguration('PRICESELL_4_Name', "Preis 4", "Name für Preis 4", false, "Name für Preis 4");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5` decimal(20,8) AFTER PRICESELL_4_X_FIXRABATT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_KAUF_X_ZAHL_Y_X` decimal(20,8) AFTER PRICESELL_5");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_KAUF_X_ZAHL_Y_Y` decimal(20,8) AFTER PRICESELL_5_KAUF_X_ZAHL_Y_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_X_PROZENT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_5_KAUF_X_ZAHL_Y_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_X_PROZENT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_5_X_PROZENT_AB_Y_STUECK_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_X_FIXRABATT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_5_X_PROZENT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_5_X_FIXRABATT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_5_X_FIXRABATT_AB_Y_STUECK_X");
		$error_message=insert_into_konfiguration('PRICESELL_5_Name', "Preis 5", "Name für Preis 5", false, "Name für Preis 5");
		mysql_query("ALTER TABLE products ADD `PRICESELL_KAUF_X_ZAHL_Y_X` decimal(20,8) AFTER PRICESELL");
		mysql_query("ALTER TABLE products ADD `PRICESELL_KAUF_X_ZAHL_Y_Y` decimal(20,8) AFTER PRICESELL_KAUF_X_ZAHL_Y_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_X_PROZENT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_KAUF_X_ZAHL_Y_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_X_PROZENT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_X_PROZENT_AB_Y_STUECK_X");
		mysql_query("ALTER TABLE products ADD `PRICESELL_X_FIXRABATT_AB_Y_STUECK_X` decimal(20,8) AFTER PRICESELL_X_PROZENT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `PRICESELL_X_FIXRABATT_AB_Y_STUECK_Y` decimal(20,8) AFTER PRICESELL_X_FIXRABATT_AB_Y_STUECK_X");
		
		mysql_query("ALTER TABLE products ADD `KAUFEBESCHRAENKUNG_X_PRODUKTE_IN_Y_TAGEN_X` decimal(20,8) AFTER PRICESELL_5_X_FIXRABATT_AB_Y_STUECK_Y");
		mysql_query("ALTER TABLE products ADD `KAUFEBESCHRAENKUNG_X_PRODUKTE_IN_Y_TAGEN_Y` decimal(20,8) AFTER KAUFEBESCHRAENKUNG_X_PRODUKTE_IN_Y_TAGEN_X");
		
		// Kunden erweiterung für SOMA
		mysql_query("ALTER TABLE kunden ADD `geschlecht` varchar(20) AFTER anrede");
		mysql_query("ALTER TABLE kunden ADD `geburtsdatum` date AFTER land");
		mysql_query("ALTER TABLE kunden ADD `staatsbuergerschaft` varchar(30) AFTER geburtsdatum");
		mysql_query("ALTER TABLE kunden ADD `foto` mediumblob AFTER anmerkung");
		mysql_query("ALTER TABLE kunden ADD `foto_mimetype` varchar(30) AFTER foto");
		
		mysql_query("ALTER TABLE kunden ADD `einkommensart_id` int(11) AFTER foto_mimetype");
		mysql_query("ALTER TABLE kunden ADD `haushalt_erwachsene` int(5) AFTER einkommensart_id");
		mysql_query("ALTER TABLE kunden ADD `haushalt_kinder` int(5) AFTER haushalt_erwachsene");
		mysql_query("ALTER TABLE kunden ADD `einkommen_haushaltseinkommen` decimal(20,2) AFTER haushalt_kinder");
		mysql_query("ALTER TABLE kunden ADD `einkommen_einkommensgrenze` decimal(20,2) AFTER einkommen_haushaltseinkommen");
		mysql_query("ALTER TABLE kunden ADD `einkaufskarte_gesperrt` tinyint(1) DEFAULT 0 AFTER einkommen_einkommensgrenze");
		mysql_query("ALTER TABLE kunden ADD `einkaufskarte_ausstellungsdatum` date AFTER einkaufskarte_gesperrt");
		mysql_query("ALTER TABLE kunden ADD `einkaufskarte_ablaufdatum` date AFTER einkaufskarte_ausstellungsdatum");
		mysql_query("ALTER TABLE kunden ADD `einkaufslimit` decimal(20,2) AFTER einkaufskarte_ablaufdatum");
		mysql_query("ALTER TABLE kunden ADD `einkaufslimit_zeitspanne` varchar(20) DEFAULT 'kalenderwoche' AFTER einkaufslimit ");
		
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_foto` mediumblob AFTER einkaufslimit_zeitspanne");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_foto_mimetype` varchar(30) AFTER zweitberechtigter_foto");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_anrede` varchar(20) AFTER zweitberechtigter_foto_mimetype");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_titel` varchar(20) AFTER zweitberechtigter_anrede");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_vorname` varchar(70) AFTER zweitberechtigter_titel");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_nachname` varchar(70) AFTER zweitberechtigter_vorname");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_geschlecht` varchar(20) AFTER zweitberechtigter_nachname");
		mysql_query("ALTER TABLE kunden ADD `zweitberechtigter_geburtsdatum` date AFTER zweitberechtigter_geschlecht");
		
		mysql_query("CREATE TABLE `kunden_attribute` (
			  `kunden_id` int(11) NOT NULL,
			  `einkaufslimit_bisher_eingekauft` decimal(20,2) DEFAULT 0,
			  `create_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
			  `update_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
			) ENGINE=InnoDB DEFAULT CHARSET=utf8");
		mysql_query("ALTER TABLE `kunden_attribute`
				ADD PRIMARY KEY (`kunden_id`)");
		mysql_query("ALTER TABLE `kunden_attribute`
				MODIFY `kunden_id` int(11) NOT NULL AUTO_INCREMENT");
		
		mysql_query("CREATE TABLE `kunden_produkte_verkaufslimit` (
			  `produkt_verkaufslimit_id` int(11) NOT NULL,
			  `kunden_id` int(11) NOT NULL,
			  `produkt_id` int(11),
			  `verkaufte_stueck`  decimal(20,2),
			  `create_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
			  `update_ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
			) ENGINE=InnoDB DEFAULT CHARSET=utf8");
		mysql_query("ALTER TABLE `kunden_produkte_verkaufslimit`
				ADD PRIMARY KEY (`produkt_verkaufslimit_id`)");
		mysql_query("ALTER TABLE `kunden_produkte_verkaufslimit`
				MODIFY `produkt_verkaufslimit_id` int(11) NOT NULL AUTO_INCREMENT");
		
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_KUNDENLIMITS', "nein", "Sollen die Einkaufslimits der Kunden von der Zentrale synchronisiert werden?  (z.b. EUR 40,- je Kalenderwoche)", false, "Synchronisation der Kunden Einkaufslimits von Zentrale");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_PRODUKTLIMITS', "nein", "Sollen die Verkaufslimits der Produkte von der Zentrale synchronisiert werden?  (z.b. 2 Stk. Waschmittel in 30 Tagen)", false, "Synchronisation der Produkt Limits von Zentrale");
		
		$error_message=insert_into_konfiguration('SONDERPREIS_KATEGORIE', "Standard", "Wählen Sie die Preiskategorie für diese Kasse.", false,"Preiskategorie dieser Kasse");
		$error_message=insert_into_konfiguration('SONDERPREIS_ENABLED', "nein", "Preisgruppen Funktionen für  zB Sondermarkt, Sozialmarkt mit Preisgruppen je Filiale, Preisaktionen, spezielle Rabatte usw, aktivieren", false,"Preisgruppen Funktionen freigeben.");
		mysql_query("ALTER TABLE offener_bon ADD discountChild int(11) AFTER article_art_id");
		$error_message=insert_into_konfiguration('BEZAHLEN_IF_KUNDE_AUFGERUFEN', "nein", "Bezahlen nur möglich wenn Kunde angelegt und aufgerufen wurde. Bezahlbuttons ausgeblendet", false, "Bezahlen nur mit aufger. Kunden");
		$error_message=insert_into_konfiguration('KUNDENAUSWAHL_INFO_DIALOG', "nein", "Ist diese Option gesetzt, wird bei Auswahl eines Kunden im Kundensuchfenster, der Kunden Info Bereich aufgerufen.", false, "Kunden Auswahl Info Aufruf");
		
		$error_message=insert_into_konfiguration('FUNKTION_BUTTON_EINZELFIXRABATT_1_ANZEIGEN', "nein", "ja/nein. Funktionsbutton 1-Einzelrabatt mit Fixwert einblenden. Steuerungscontainer.", false, "Funktionsbutton, 1-Einzel-Fix-Rabatt");
		$error_message=insert_into_konfiguration('FUNKTION_BUTTON_EINZELFIXRABATT_2_ANZEIGEN', "nein", "ja/nein. Funktionsbutton 2-Einzelrabatt mit Fixwert einblenden. Steuerungscontainer.", false, "Funktionsbutton, 2-Einzel-Fix-Rabatt");
		$error_message=insert_into_konfiguration('FUNKTION_BUTTON_EINZELFIXRABATT_1_VALUE', "11", "Wert (nur Zahlen, ohne %) welcher als Einzelfix Rabatt für die Funktionstatse (1) bestimmt wird. ", false, "Wert für 1- Einzel-Fix-Rabatt", false, "");
		$error_message=insert_into_konfiguration('FUNKTION_BUTTON_EINZELFIXRABATT_2_VALUE', "12", "Wert (nur Zahlen, ohne %) welcher als Einzelfix Rabatt für die Funktionstatse (2) bestimmt wird. ", false, "Wert für 2- Einzel-Fix-Rabatt", false, "");
		
			$infoTxtBeschr="Wird mit Kaufbeschränkungen gearbeitet, kann hier die Beschränkung Stückzahl pro Zeitraum außer Betrieb genommen bzw. abgedreht werden. Ja/Hacken -> Beschränkung abgedreht.";
		$error_message=insert_into_konfiguration('KAUFBESCHRAENKUNG_QTYONTIME_DISABLED', "nein", $infoTxtBeschr, false, "Kaufbeschränkung Stückzahl abgedreht.", false, "");
			#    array('ENABLERKEY_BONJORNAL', 'Bonjornal freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Bonjornal für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben')
			$infoTxtBeschr2="Level setzen. Benutzerlevel abhängiges Stornieren  von abgeschlossenen Bon im Bonjornal. Gesetzter Benutzerlevel und höher. ";
		$error_message=insert_into_konfiguration('ENABLERKEY_ABGESCHL_BON_DELETE', "1", $infoTxtBeschr2, false, "Im Bonjornal Bon stornieren", false, "");
		
		mysql_query("ALTER TABLE `products` ADD `kassenabschluss_anzeigen` TINYINT(1) NOT NULL DEFAULT '1' AFTER `SICHTBAR`");
		mysql_query("ALTER TABLE `products` ADD `ist_favorit` TINYINT(1) NOT NULL DEFAULT '0' AFTER `kassenabschluss_anzeigen`");
		mysql_query("ALTER TABLE `abgeschlossener_bon_produkte` ADD `kassenabschluss_anzeigen` TINYINT(1) NOT NULL DEFAULT '1' AFTER `SICHTBAR`");
		
		$infoTxtBeschr3="Beispiel: bold 30px/190% Arial, Verdana, Helvetica, sans-serif !important; Setzen der Schrift/Font Einstellungen für einen Kundenmonitor, 33px ist die Schriftgrößer und 42px die Zeilenhöhe. BItte !important beachten. Wird die Schriftgröße verändert kann mit dem Zweiten Wert 190% die Schrift Vertikal zentriert, positioniert werden.";
		$error_message=insert_into_konfiguration('KUNDENMONITOR_FONT_BASIC', "bold 30px/190% Arial, Verdana, Helvetica, sans-serif !important;", $infoTxtBeschr3, false, "Kunden Monitor Font", false, "");
		
		$error_message=insert_into_konfiguration("FIXPRICE_BUTTON_1", "x.5", "Eingabe, nur Zahl für den Wert des Fixpreis Button. Punkt als Komma verwenden.", false, "Fixpreis Button Wert-1", false, "");
		$error_message=insert_into_konfiguration("FIXPRICE_BUTTON_2", "x1", "Eingabe, nur Zahl für den Wert des Fixpreis Button. Punkt als Komma verwenden.", false, "Fixpreis Button Wert-2", false, "");
		$error_message=insert_into_konfiguration("FIXPRICE_BUTTON_3", "x1.5", "Eingabe, nur Zahl für den Wert des Fixpreis Button. Punkt als Komma verwenden.", false, "Fixpreis Button Wert-3", false, "");
		$error_message=insert_into_konfiguration("FIXPRICE_BUTTON_4", "x1.99", "Eingabe, nur Zahl für den Wert des Fixpreis Button. Punkt als Komma verwenden.", false, "Fixpreis Button Wert-4", false, "");
		$error_message=insert_into_konfiguration("FIXPRICE_BUTTON_5", "x2.1", "Eingabe, nur Zahl für den Wert des Fixpreis Button. Punkt als Komma verwenden.", false, "Fixpreis Button Wert-5", false, "");
		
		###################     03.02.2021
		$error_message=insert_into_konfiguration('ENABLERKEY_NEG_BONSUMME', "1", "Option, Benutzerlevel setzen. Damit wird der erforderliche Benutzerlevel für, negative Bon Summe abschließen, freigegeben", false, "Negative Bon Summe freigeben");
		$error_message=insert_into_konfiguration('RESTGELD_BERECHNUNG_ZWINGEND', "nein", "ja/nein. Bon abschließen, bezahlen Button erfordert die Eingabe von Betrag gegeben. Weniger als Rechnungsbetrag oder 0, Bon abschließen verhindert.", false, "Eingabe zur Retourgeldberechnung zwingend");
	
	}
	
	function upgrade_to_307(){
		$beschrKP="Edi, Electronic Data Interchange Files können im Ordner c:/sitpos/import/   abgelegt werden, von diesem Ordner wir das File geladen und der entspechend definierte Inhalt in den offenen_Bon geschrieben. Im Ordner Import ist zusätzlich ein Ordner archive erforderlich in welchem die importierten Datein mit dem UNH Wert im Namen abgelegt werden.";
		$beschrKP_2="Beispiel: FA;VN;NN;PZ;OT. Eingabeformat, zwei entsprechende Zeichen die durch Strichpunkt getrennt werden geben in der eingegebenen Reihenfolge die Kundendaten in der Verkaufsmaske und im Kundensuchfenster (selektierter Kunde) aus. FA = Firma, VN = Vorname, NN = Nachname, PZ = Postleitzahl, OT = Ort";
		
		$error_message=insert_into_konfiguration('EDI_INTO_OFFENERBON_BUTTON', "nein", $beschrKP, false, "Funktionsbutton, Edi Daten Import");
		$error_message=insert_into_konfiguration('KUNDENANZEIGE_VERKAUFSMASKE', 'FA;VN;NN;PZ;OT', $beschrKP_2, false, 'Kundenanzeige, Vk-Maske und Kundensuche');

		mysql_query("ALTER TABLE products ADD CONSTRAINT FK_tax FOREIGN KEY (TAXCAT) REFERENCES taxes(ID)");
		mysql_query("ALTER TABLE products ADD CONSTRAINT FK_categories FOREIGN KEY (CATEGORY) REFERENCES categories(ID)");
	}
	
	
	
	function upgrade_to_306(){			
				#insert_into_konfiguration($name, $wert, $beschreibung="", $sitpos_config=true, $konfigtitel="")
				# August 2020 
		$beschrKP="Unterdrückt Kunden Andruck auf Rechnungsbon, unabhänig ob Rechnung einem Kunden zugeordnent ist oder nicht. Gilt nicht für A4 Rechnungen. Bon Print, Bon Repringt, Expres u normal Zahlung.";
		$error_message=insert_into_konfiguration('CUSTOMER_PRINT_DISABLED', "nein", $beschrKP, false, "Kunden Andruck auf Rechnungsbon unterdrücken.");
		
		$error_message=insert_into_konfiguration('CUSTOMER_PRINT_PHONE_DISABLED', "nein", "Wird der Kunde auf dem Rechnungsbon angedruckt, kann hier die Telefonnummer unterdrückt werden", false, "Kunden Telefon Nr. auf Rechnungsbon unterdrücken.");
		
		$error_message=insert_into_konfiguration('SPEISEART_VERKAUFSMASKE_CONTAINER_BREITE', "0%", "Sind die Speiseart Buttons auf der Verkaufsmaske freigegeben, kann hier der Platz, Breite für den Container gesetzt werden. Achtung, der Produkt Container muss diesen Platz zulassen. Einheit ist %", false, "Speiseart Container Verkausmaske Breite");
		
		$error_message=insert_into_konfiguration('SPEISEART_VERKAUFSMASKE_CONTAINER_HOEHE', "0%", "Sind die Speiseart Buttons auf der Verkaufsmaske freigegeben, kann hier der Platz, Höhe für den Container gesetzt werden. Achtung, der Produkt Container muss diesen Platz zulassen. Einheit ist %", false, "Speiseart Container Verkausmaske Höhe", false, "");
		
		$error_message=insert_into_konfiguration('SPEISEART_BUTTON_VK_MASKE', "nein", "Freigabe von Speiseart Button auf erster Verkaufsmasken Ebene. Dafür muss im Produkt Container Platz, rechts, freigegeben werden.", false, "Speiseart Button auf erster Ebene der Verkaufs Maske");
		
		$error_message=insert_into_konfiguration('AUSDRUCK_KASSENABSCHLUSS_A4', "nein", "Kassenabschluss auf A4 Drucker ausgeben", false, "Kassenabschluss A4 Ausgabe");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_SYNC', "1", "Option setzen. Damit wird der Menüpunkt Synchronisieren, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Synchronisieren freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_CATEGORY', "1", "Option setzen. Damit wird der Menüpunkt Warengruppen, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Warengruppen freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_PRODUCTS', "1", "Option setzen. Damit wird der Menüpunkt Produkte, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Produkte freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_INVENT', "1", "Option setzen. Damit wird der Menüpunkt Inventur, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Inventur freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_STORE', "1", "Option setzen. Damit wird der Menüpunkt Lagerstand, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Lagerstand freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_PURCHASE', "1", "Option setzen. Damit wird der Menüpunkt Einkauf, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Einkauf freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_OFFER', "1", "Option setzen. Damit wird der Menüpunkt Angebot, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Angebot freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_ORDER', "1", "Option setzen. Damit wird der Menüpunkt Auftrag, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Auftrag freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_SHIPNOTE', "1", "Option setzen. Damit wird der Menüpunkt Lieferschein, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Lieferschein freigeben");
		
		$error_message=insert_into_konfiguration('ENABLERKEY_FILIAL_INVOICE', "1", "Option setzen. Damit wird der Menüpunkt Rechnung, im Filialsystem für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben", false, "Rechnung freigeben");
				
	}
	
	function upgrade_to_305()
	{
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD filialsystem_sync_done tinyint(1) DEFAULT '0' after beilagen_plus");
		// derzeit funktioniert sITPos oder WeClapp !!!
		$error_message=insert_into_konfiguration('FILIALSYSTEM_ERP_PROGRAMM', "sITPos", "Welches ERP Programm soll verwendet werden (sITpos/WeClapp)", false, "Welches ERP Programm soll verwendet werden (sITpos/WeClapp)");
		mysql_query("ALTER TABLE combiartikel ADD darf_geloescht_werden int(1) DEFAULT '1' after variableAufteilung");
		$error_message=insert_into_konfiguration('TELEFON_STRASSE_ANZEIGEN', "ja", "Soll bei bekannten Kunden auch die Strasse angezeigt werden", false, "Soll bei bekannten Kunden auch die Strasse angezeigt werden");
		$error_message=insert_into_konfiguration('TELEFON_PLZ_ORT_ANZEIGEN', "ja", "Soll bei bekannten Kunden auch die Plz und der Ort angezeigt werden", false, "Soll bei bekannten Kunden auch die Plz und der Ort angezeigt werden");
		$error_message=insert_into_konfiguration('TELEFON_NR_BEI_BEKANNTEN_KUNDEN_AUCH_ANZEIGEN', "ja", "Soll bei bekannten Kunden auch die Anruf Nummer angezeigt werden", false, "Soll bei bekannten Kunden auch die Anruf Nummer angezeigt werden");
	}		
	
	function upgrade_to_304()
	{
		require_once(__DIR__."/../api/telefon/telefon_globale_funktionen.php");
		
		mysql_query("CREATE TABLE `telefon_anrufprotokoll` (
			`ID` int(11) primary key AUTO_INCREMENT,
			`telefon_nummer` varchar(255),
			`kunden_id` int(11),
			`ist_abgeschlossen` tinyint( 1 ) NOT NULL DEFAULT '0',
			`tisch_id` int(11),
			`create_ts` timestamp not null default current_timestamp,
			`update_ts` timestamp not null default current_timestamp on update current_timestamp);");
		mysql_query("ALTER TABLE telefon_anrufprotokoll ADD CONSTRAINT FK_telefon_anrufprotokoll_tische FOREIGN KEY (tisch_id) REFERENCES tische(id) ON DELETE CASCADE");
		mysql_query("ALTER TABLE kunden ADD mobil varchar(75) after telefon2");
		mysql_query("ALTER TABLE tische ADD ist_temporaer tinyint(1) after report_sonder");
		// referenz sollte nur gemacht werden, wenn Gastro aktiviert ist.
		if (defined('GASTRO_VERSION') && strtolower(BASIS_LIZENZ_VORHANDEN) == 'ja') 
			mysql_query("ALTER TABLE offener_bon ADD CONSTRAINT FK_tische FOREIGN KEY (bon_id) REFERENCES tische(id)");
		mysql_query("ALTER TABLE kunden ADD `geloescht` int(1) DEFAULT '0' after geburtstag");
		mysql_query("ALTER TABLE kunden ADD `anmerkung` text after geburtstag");
		mysql_query("TRUNCATE bon_add_text");
		
		konvertiere_alle_telefonnummern();
		
		$error_message=insert_into_konfiguration('TELEFON_ANRUFE_ANZEIGEN', "nein", "Eingehende Telefonanrufe in Software anzeigen", false, "Soll das Modul für eingehende Anrufe aktiviert werden");
		$error_message=insert_into_konfiguration('TELEFON_RAUM_UM_TISCHE_ANZULEGEN', "1", "In welchem Raum sollen temporäre Tische angelegt werden", false, "In welchem Raum sollen temporäre Tische aufgemacht werden");
		$error_message=insert_into_konfiguration('TELEFON_ANZAHL_ANRUFE_ANZEIGEN', "8", "Anzahl der Telefonanrufe die angezeigt werden sollen", false, "Anzahl der Telefonanrufe die angezeigt werden sollen");
		$error_message=insert_into_konfiguration('TELEFON_KUNDE_MUSS_ANGEGEBEN_WERDEN', "ja", "Muss ein Kunde für eine unbekannte Nummer angegeben werden?", false, "Muss ein Kunde für eine unbekannte Nummer angegeben werden?");
		$error_message=insert_into_konfiguration('TEMPORAERE_TISCHE_NACH_KASSIEREN_LOESCHEN', "ja", "Temporäre Tische nach dem Kassieren löschen", false, "Temporäre Tische nach dem Kassieren löschen");
		$error_message=insert_into_konfiguration('TEMPORAERE_TISCHE_BREITE', "100", "Breite von temporären Tischen", false, "Breite von temporören Tischen");
		$error_message=insert_into_konfiguration('TEMPORAERE_TISCHE_HOEHE', "50", "Höhe von temporären Tischen", false, "Höhe von temporören Tischen");
		
		$error_message=insert_into_konfiguration('BON_SEPERATORLINES_DICKE', "0.2", "Dicke der Trennstriche am Bon", false, "Dicke der Trennstriche am Bon default 0.2");
		$error_message=insert_into_konfiguration('KUECHENBON_KUNDE_DRUCKEN', "nein", "Kunden Adresse am Küchenbon drucken", false, "Kunden Adresse am Küchenbon drucken");
		$error_message=insert_into_konfiguration('BON_KUNDENNUMMER_DRUCKEN', "nein", "Kundennummer am Bon drucken", false, "Kundennummer am Bon drucken");
		$error_message=insert_into_konfiguration('BON_KUNDEN_ANMERKUNG_DRUCKEN', "nein", "Kunden Anmerkung am Bon drucken", false, "Kunden Anmerkung am Bon drucken");
		
		// Jetzt noch synchronisieren wenn Filialsystem!!!
	}
	
	function upgrade_to_303()
	{
		
	}
	
	function upgrade_to_302()
	{
		mysql_query("ALTER TABLE benutzer ADD arbeitszeit_schreiben int(1) not null default '0'");
		mysql_query("CREATE TABLE `arbeitszeit_schreiben` (
			`ID` int(11) primary key AUTO_INCREMENT,
			`benutzer_id` int(11) not null,
			`datum` date not null,
			`absenz_name` varchar(255) not null,
			`az_beginn` time not null,
			`az_ende` time not null,
			`az_beginn2` time not null,
			`az_ende2` time not null,
			`create_ts` timestamp not null default current_timestamp,
			`update_ts` timestamp not null default current_timestamp on update current_timestamp);");
		mysql_query("CREATE TABLE `arbeitszeit_absenz` (
			`absenz_name` varchar(255) primary key,
			`create_ts` timestamp not null default current_timestamp,
			`update_ts` timestamp not null default current_timestamp on update current_timestamp);");
		mysql_query(" INSERT INTO `arbeitszeit_absenz` (absenz_name)
								VALUES 
								('Urlaub'), ('kein Dienst'), ('Zeitausgleich')
					");
		$error_message=insert_into_konfiguration('KASSENABSCHLUSS_NUR_WENN_ARBEITSZEIT_GESCHRIEBEN', "nein", "Kassenabshluss nur erlauben wenn die Arbeitszeiten geschrieben wurden", false, "Kassenabschluss nur erlauben wenn Arbeitszeiten geschrieben wurden");
		$error_message=insert_into_konfiguration('ENABLERKEY_ARBEITSZEITEN_SCHREIBEN', "1", "Arbeitszeiten schreiben freigeben", false, "Arbeitszeiten schreiben freigeben");

		require_once("synchronize/sync_table_structure.php");
	}
	
	// Funktion macht das upgrade auf Version 2.03
	function upgrade_to_V203()
	{
		$counterrors=0;
		$erMsg="";
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("abgeschlossener_bon", "ec_terminal_id", "varchar(100)", "zusatztext");
		$counterrors+=$errors; $erMsg.=$error_message;
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("abgeschlossener_bon", "fremd_id", "int(11)", "bon_id", true);
		$counterrors+=$errors; $erMsg.=$error_message;
		$error_message=insert_into_konfiguration('KUNDENSUCHE_FELDER_IN_ANZEIGE', "Firma;nachname;vorname", "Suchreihenfolge im Kunden hinzufügen Fenster zum offenen Bon oder zum Gutschein", false, "Kundensuche Felder");
		$erMsg.=$error_message;
		
		require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}
	
	// Unter Version 1.73 wurde bei einem Fehler der Signatureinheit in den DEP "Sicherheitseinrichtung_ausgefallen" reingeschrieben
	// Richtig wäre aber "Sicherheitseinrichtung ausgefallen" ohne UNDERSCORE!
	// Ändert den Table DEP und korrigiert den Fehler
	function signaturfehler_beheben()
	{
		echo "<pre>";
		//echo "Sicherheitseinrichtung ausgefallen :".base64_encode("Sicherheitseinrichtung ausgefallen")."\n";
		//echo "Sicherheitseinrichtung_ausgefallen :".base64_encode("Sicherheitseinrichtung_ausgefallen");
		//echo "\n\n\n";
		
		$Q1=mysql_query("SELECT * from dep");
		while ($row=mysql_fetch_array($Q1))
		{
			$beleg_nr=$row['beleg_nr'];
			$qr_string=$row['qr_string'];
			$signjws=$row['signjws'];
			
			$qrX=explode("_", $qr_string);
			$lastIndex=count($qrX)-1;
			
			$sigData=base64_decode($qrX[$lastIndex]);
			if(strtolower($sigData) == 'sicherheitseinrichtung_ausgefallen' ){
				//echo "Bon : $beleg_nr FEHLER : ".$sigData . " QR: $qr_string \n";
				$qr_string=str_replace ("U2ljaGVyaGVpdHNlaW5yaWNodHVuZ19hdXNnZWZhbGxlbg==", "U2ljaGVyaGVpdHNlaW5yaWNodHVuZyBhdXNnZWZhbGxlbg==", $qr_string);
				//echo "Bon : $beleg_nr FEHLER : ".$sigData . " QR: $qr_string \n";
				
				$signjwsX=explode(".", $signjws);
				//echo "Bon : $beleg_nr FEHLER : ".$sigData . " SignJWS: $signjws \n";
				$signjws=str_replace ("U2ljaGVyaGVpdHNlaW5yaWNodHVuZ19hdXNnZWZhbGxlbg", "U2ljaGVyaGVpdHNlaW5yaWNodHVuZyBhdXNnZWZhbGxlbg", $signjws);
				//echo "Bon : $beleg_nr FEHLER : ".$sigData . " SignJWS: $signjws \n";
				echo "Beleg $beleg_nr : Korrigiere Fehler Signatureinheit Ausgefallen! \n";
				$sql="UPDATE dep set qr_string='".$qr_string."', signjws='".$signjws."' WHERE beleg_nr='".$beleg_nr."'";
				//echo $sql;
				mysql_query($sql);
			}	
			if(strtolower($sigData) == 'sicherheitseinrichtung ausgefallen' ){
				//echo "OK     : ".$sigData . " \n";
				//echo "OK  : $beleg_nr     OK : ".$sigData . " QR: $qr_string \n";
				//echo "OK  : $beleg_nr     OK : ".$sigData . " SignJWS: $signjws \n";
				echo "Beleg $beleg_nr : Signatureinheit Ausgefallen wurde richtig behandelt! \n";
				//$pdf->Cell($bonWidth, $lineHeight, $sigData, 0, 1, "C");			
			}
			
			//echo "Bearbeite Bon: ". $beleg_nr ." QR-String: ".$qr_string. "\n";
		}
		echo "</pre>";
	}
	
	function upgrade_to_V204()
	{
		$counterrors=0;
		$erMsg="Upgrade erfolgreich";
		//signaturfehler_beheben();
		$error_message=insert_into_konfiguration('GASTRO_KUNDE_AUF_TISCH_ANZEIGEN', "nein", "Kunde wird auf der Tischübersicht angezeigt", false, "Kunde auf Tischübersicht anzeigen");
		$error_message=insert_into_konfiguration('NULLBELEG_AUTOMATISCH_ERSTELLEN', "nein", "Wenn es vom Vormonat keinen Nullbeleg gibt diesen automatisch erstellen.", false, "Monats Nullbeleg automatisch erstellen");
		
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V205()
	{
		$counterrors=0;
		$erMsg="Upgrade erfolgreich";
		//signaturfehler_beheben();
		$error_message=insert_into_konfiguration('UHRZEIT_ANZEIGEN', "nein", "Die Uhrzeit wird im Menü angezeigt", false, "Uhrzeit anzeigen");
		$error_message=insert_into_konfiguration('KASSENLADE_VORHER_OEFFNEN', "nein", "Kassenlade wird vor dem abschliessen des Bons geöffnet", false, "Kassenlade automtisch öffnen");		
				
		return array($counterrors, $erMsg);
	}
	function upgrade_to_V206()
	{
		$counterrors=0;
		$erMsg="Upgrade erfolgreich";
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("drucker", "bildschirm_kueche", "varchar(100)", "ip_adressen");
		$error_message=insert_into_konfiguration('KUECHE_ABHOLSCHEIN_AUF_RECHUNUNG_DRUCKEN', "nein", "Soll die Abholscheinnummer auf die Rechnung gedruckt werden?", false, "Küchenbon Abholschein auf Rechnung drucken");
		$error_message=insert_into_konfiguration('KUECHE_ABHOLSCHEIN_SCHRIFT_GROESSE', "18", "Die Schriftgröße der Abholscheinnummer auf der Rechnung", false, "Schriftgröße Abholscheinnummer auf Rechnung und Küchendruck");
		$error_message=insert_into_konfiguration('KUECHE_ABHOLSCHEIN_MAX_NUMMER', "300", "Die höchste Nummer die der Abholschein hab bevor wieder bei 1 begonnen wird", false, "maximale Abholschein Nummer");
		$error_message=insert_into_konfiguration('KUECHE_BILDSCHIRM_VORHER_DRUCKEN', "ja", "Soll der Küchenbon vor der Anzeige am Küchenbildschirm gedruckt werden?", false, "Küchenbon drucken vor Anzeige am Küchenbildschirm");
		$error_message=insert_into_konfiguration('KUECHE_BILDSCHIRM_NACHHER_DRUCKEN', "nein", "Soll der Küchenbon NACH der Anzeige am Küchenbildschirm gedruckt werden?", false, "Küchenbon drucken nach Anzeige am Küchenbildschirm");		
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("offener_bon", "abholschein_nr", "int(11)", "childPrint");
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("abgeschlossener_bon", "abholschein_nr", "int(11)");
		mysql_query("CREATE TABLE kuechenbildschirm_anzeige LIKE offener_bon");
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("kuechenbildschirm_anzeige", "bildschirm_kueche", "varchar(100)", "abholschein_nr");
		list ($errors, $error_message) = feld_zu_table_hinzufuegen("kuechenbildschirm_anzeige", "zeile_selektiert", "tinyint");
		mysql_query("ALTER TABLE kuechenbildschirm_anzeige MODIFY COLUMN zeile_selektiert TINYINT DEFAULT 1");
		mysql_query("CREATE TABLE fortlaufende_nummern (id int(11) PRIMARY KEY, abholschein_nr int(11) )");
		mysql_query("INSERT INTO fortlaufende_nummern SET id=1, abholschein_nr=1");
		mysql_query("CREATE TRIGGER offener_bon_abholschein_nr
					BEFORE INSERT ON offener_bon
					FOR EACH ROW
					BEGIN
						SET @x = (SELECT DISTINCT abholschein_nr from offener_bon where   bon_id=NEW.bon_id);
						IF (ISNULL(@x)) THEN
						   SET @naechste_nr = (SELECT abholschein_nr from fortlaufende_nummern where id=1);
						   SET NEW.abholschein_nr=@naechste_nr;
						   UPDATE fortlaufende_nummern SET abholschein_nr=abholschein_nr+1 WHERE id=1;
						ELSE
							SET NEW.abholschein_nr=@x;
						END IF;
					END");
		return array($counterrors, $erMsg);
	}

	function upgrade_to_V210() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";
		$error_message=insert_into_konfiguration('FILIALSYSTEM_IST_FILIALSYSTEM', "nein", "ja/nein. Systemeinstellung Filialsystem", false, "Funktion, Layout Filialsystem");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_KASSA_NAME', "", "Name der Kassa im Zentralsystem", false, "Kassenname");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_URL_ZENTRALSYSTEM', "", 'URL zur Synchronisation mit dem Zentralsystem', false, "URL des Zentralsystems");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_UEBERNEHMEN_ZENTRALSYSTEM', "nein", "Sollen Warengruppen und Produkte vom Zentralsystem übernommen werden?", false, "Warengruppen und Produkte von Zentralsystem übernehmen");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_BON', "ja", "Sollen alle Tabellen nach dem Abschluss eines Bons mit der Zentrale synchronisiert werden?", false, "Synchronisation aller Tabellen nach abgeschlossenem Bon");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_TOKEN', "", "Token für die Synchronisation mit dem Zentralsystem", false, "Token des Zentralsystems");
		
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_KASSA_OEFFNEN', "nein", "Sollen alle Tabellen nach dem Öffnen der Kassa mit der Zentrale synchronisiert werden?", false, "Synchronisation aller Tabellen nach Öffnen der Kassa");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_KASSA_ABSCHLUSS', "ja", "Sollen alle Tabellen nach dem Abschluss der Kassa mit der Zentrale synchronisiert werden?", false, "Synchronisation aller Tabellen nach Kassaabschluss");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_PRODUKTE_BON', "ja", "Sollen die Produkte und Warengruppen nach dem Abschluss eines Bons aus der Zentrale synchronisiert werden?", false, "Synchronisation der Prod. und Warengr. nach abgeschlossenem Bon");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_PRODUKTE_KASSA_OEFFNEN', "ja", "Sollen die Produkte und Warengruppen nach dem Öffnen der Kasse aus der Zentrale synchronisiert werden?", false, "Synchronisation der Produkte und Warengr. nach Öffnen der Kassa");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_PRODUKTE_KASSA_ABSCHLUSS', "nein", "Sollen die Produkte und Warengruppen nach dem Abschluss der Kassa aus der Zentrale synchronisiert werden?", false, "Synchronisation der Produkte und Warengr. nach Kassenabschluss");
		//$error_message=insert_into_konfiguration('FILIALSYSTEM_LETZTE_SYNCHRONISATION', "24", "Sollen Warengruppen und Produkte vom Zentralsystem übernommen werden?", false, "Warengruppen und Produkte von Zentralsystem übernehmen");
		mysql_query("ALTER TABLE categories ADD geloescht int(1) not null default '0'");
		mysql_query("ALTER TABLE products ADD geloescht int(1) not null default '0'");

		//jedem Table einen update und create timestamp hinzufügen
		$tables = array("abgeschlossener_bon", "abgeschlossener_bon_frei", "abgeschlossener_bon_produkte", "abgeschlossener_bon_produkte_frei", "abgeschlossener_bon_steuern",
			"abgeschlossener_bon_zahlung", "abschluss_belege", "artikel_art", "auditing", "benutzer", "benutzer_aktiv", "bon_add_text", "categories", "combiartikel",
			"dep", "drucker", "ein_aus_zahlungen", "fortlaufende_nummern", "gutscheine", "gutschein_buchungen", "happyhourprofil", "images", "kassa_abschluesse", "kassenbuch_abschluesse",
			"konfiguration", "konfiguration_sitpos", "kuechenbildschirm_anzeige", "kunden", "license_encrypted", "license_violation", "lieferschein", "lieferschein_referenz",
			"offener_bon", "pdf_a4_rechnung", "products", "product_add_txt", "raum", "storno_grund", "taxes", "tische", "warenkoerbe", "zahlungsart", "zahlungsterminal");

		foreach($tables as $tb) {
			mysql_query("ALTER TABLE $tb ADD create_ts timestamp not null default current_timestamp");
			mysql_query("ALTER TABLE $tb ADD update_ts timestamp not null default current_timestamp on update current_timestamp");
		}

		mysql_query("CREATE TABLE `sync_info` (
			`ID` int(11) primary key AUTO_INCREMENT,
			`type` varchar(255) not null,
			`wert` varchar(2040) not null,
			`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP);");

		mysql_query("CREATE TRIGGER insert_kassa 
						BEFORE INSERT ON kassa
						FOR EACH ROW
						BEGIN
							CREATE DATABASE IF NOT EXISTS NEW.name;	
						END");

		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V211() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";
		$error_message=insert_into_konfiguration('FUNKTION_BUTTON_EC_KARTE_REPRINT', "ja", "Funktionsbutton EC Karte Belegdruck wiederholen", false, "Funktionsbutton, EC Karte Belegdruck wiederholen");

		mysql_query("CREATE TABLE `ec_karte_reprint_bon` (
			`ID` int(11) primary key AUTO_INCREMENT,
			`kundenbeleg` text not null,
			`verkaueferbeleg` text not null,
			`user` varchar(240) not null,
			`create_ts` timestamp not null default current_timestamp,
			`update_ts` timestamp not null default current_timestamp on update current_timestamp);");
			
		return array($counterrors, $erMsg);
	}

	function upgrade_to_V212() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		mysql_query("INSERT INTO `pdf_a4_rechnung` (`id`, `name`, `a4_template`) VALUES (2, 'lieferschein_template_a4', '');");
			
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V213() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";
		

		$error_message=insert_into_konfiguration('KASSENABSCHLUSS_NACHKOMMASTELLEN_ANZEIGEN', "2", "Nachkommastellen am Kassenabschluss", false, "Wie viele Nachkommastellen sollen am Kassenabschluß aufscheinen. Gilt nur für Bildschirm");
		$error_message=insert_into_konfiguration('EC_KARTE_ZAHLUNGSABBRUCH_ERLAUBEN', "ja", "EC Karte Zahlungsabbruch erlauben", false, "Darf während einer EC Kartenzahlung die Zahlung abgebrochen werden");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD PRICESELL_brutto decimal(14,8) DEFAULT 0 AFTER PRICESELL");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD PRICESELL_brutto_gesamt decimal(14,8) DEFAULT 0 AFTER PRICESELL_brutto");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD tax decimal(14,8) DEFAULT 0 AFTER PRICESELL_brutto_gesamt");
		mysql_query("ALTER TABLE abgeschlossener_bon_produkte ADD tax_gesamt decimal(14,8) DEFAULT 0 AFTER tax");
		mysql_query("UPDATE abgeschlossener_bon_produkte SET tax=PRICESELL*tax_rate, 
						tax_gesamt=PRICESELL*tax_rate*stueck, PRICESELL_brutto=PRICESELL+PRICESELL*tax_rate, 
						PRICESELL_brutto_gesamt=(PRICESELL+PRICESELL*tax_rate)*stueck");
						
		// und hier sollten wir noch ein Sync machen!
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V214() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		$error_message=insert_into_konfiguration('KUNDENSUCHE_LOYALITY_AKTIVIEREN', "nein", "Soll bei der Kunden Suche die Loyality Funktion aktiviert werden", false, "Kundensuche Loyality Funktion aktivieren");
		$error_message=insert_into_konfiguration('KASSABUCH_DETAIL_TAGESLOSUNG', "tageslosung", "Soll im Kassabuch die Tageslosung stehen oder die Produktgruppen oder die Steuersätze", false, "Kassabuch Tageslosung Anzeige Art");
		mysql_query("ALTER TABLE kunden ADD loyality_card varchar(255) AFTER kundennummer");
								
		// und hier sollten wir noch ein Structure Sync machen!
		require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V215() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";
		mysql_query("UPDATE konfiguration SET wert = 'ja' WHERE name = 'PRODUCT_DELETE_WRITE_AUDIT'");
		$error_message=insert_into_konfiguration('KLEINERE_STUECK_ANZAHL_ALS_KUECHENDRUCK_ERLAUBEN', "ja", "Darf eine geringere Stückzahl als eingegeben werden, als schon in der Küche ausgedruckt wurde", false, "geringere Stückzahl als bereits in der Küche gedruckt wurde erlauben");
		$error_message=insert_into_konfiguration('BON_ZUSATZ_TEXT_RECHNUNG', "ja", "Soll der Zusatztext auf der Rechnung gedruckt werden?", false, "Zusatztext auf Rechnung drucken");
		$error_message=insert_into_konfiguration('BON_ZUSATZ_TEXT_KUECHENDRUCK', "nein", "Soll der Zusatztext auch auf den Küchenbon gedruckt werden?", false, "Zusatztext auch auf Küchenbon drucken");
		$error_message=insert_into_konfiguration('BON_ZUSATZ_TEXT_KUECHENDRUCK_TEXT_LOESCHEN', "nein", "Soll der Zusatztext nach dem Küchenbon druck gelöscht werden?", false, "Zusatztext nach Küchendruck löschen");
		mysql_query("ALTER TABLE pdf_a4_rechnung MODIFY COLUMN a4_template longtext");
		mysql_query("DROP TRIGGER offener_bon_abholschein_nr");
		mysql_query("CREATE TRIGGER offener_bon_abholschein_nr
					BEFORE INSERT ON offener_bon
					FOR EACH ROW
					BEGIN
						SET @x = (SELECT DISTINCT abholschein_nr from offener_bon where   bon_id=NEW.bon_id LIMIT 1);
						IF (ISNULL(@x)) THEN
						   SET @naechste_nr = (SELECT abholschein_nr from fortlaufende_nummern where id=1);
						   SET NEW.abholschein_nr=@naechste_nr;
						   UPDATE fortlaufende_nummern SET abholschein_nr=abholschein_nr+1 WHERE id=1;
						ELSE
							SET NEW.abholschein_nr=@x;
						END IF;
					END");
		// und hier sollten wir noch ein Structure Sync machen!
		//require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V216() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		mysql_query("ALTER TABLE products ADD printname_kueche VARCHAR(255) AFTER PRINTNAME");
		$error_message=insert_into_konfiguration('AUSDRUCK_BEREITSTELLUNGSBON_PRINTNAME_KUECHE', "nein", "Soll am Küchendruck ein anderer Produktname stehen als auf dem Kassenbon?", false, "Eigenen Namen für Küchendruck verwenden");
		$error_message=insert_into_konfiguration('AUSDRUCK_BEREITSTELLUNGSBON_PRINTNAME_KUECHE_ENCODING', "windows-1252", "Encoding für den anderen Produktname am Küchenbon?", false, "Eigenen Namen für Küchendruck welche Encoding");
		
		require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}

	function upgrade_to_V217() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		$error_message=insert_into_konfiguration('BILDSCHIRM_MENUE_HOEHE', "10", "Die Höhe der Menü Zeile in Prozent", false, "Höhe für die Menü Zeile");
		$error_message=insert_into_konfiguration('GASTRO_SUMME_AUF_TISCH_ANZEIGEN', "ja", "Soll die bisher bonierte Summe auf der Tischübersicht angezeigt werden", false, "offene Summe auf Tischübersicht anzeigen");
		
		require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V218() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		require_once("synchronize/sync_table_structure.php");
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V219() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";

		$error_message=insert_into_konfiguration('BEILAGEN_PREIS_MINUS_ZULASSEN', "nein", "Beilagen ändern, Preis unter Initial zulassen", false, "Beilagen rechnen Minus zulassen");
		mysql_query("ALTER TABLE categories DROP INDEX CATEGORIES_NAME_INX");
		mysql_query("CREATE INDEX CATEGORIES_NAME_INX ON categories(NAME)");
		$error_message=insert_into_konfiguration('FILIALSYSTEM_SYNCHRONISATION_KUNDEN_BON', "ja", "Sollen die Kunden von der Zentrale synchronisiert werden?", false, "Synchronisation der Kunden von Zentrale");
		return array($counterrors, $erMsg);
	}
	
	function upgrade_to_V220() {
		$counterrors=0;
		$erMsg="Ugrade erfolgreich";
		
		
		return array($counterrors, $erMsg);
	}
	
	$message="";
	$resultMsg="";
	$resultMessage="";
	$kpOp="";

	$resultForm="";
	$targetVersion=false;
	$resultContent=false;
	
	

	
		
	$sITposDbVersion=mysql_fetch_array(mysql_query("SELECT wert FROM konfiguration_sitpos WHERE name = 'SITPOS_VERSION'"));
	if($sITposDbVersion[0] == true)$DbVersion=$sITposDbVersion[0];
	if(isset($_POST['resultCont']) && $_POST['resultCont'] != ''){
		$resultMessage=$_POST['resultCont'];
		$resultContent=true;
	}
	
	if(isset($_POST['upgradeStep']) && isset($_POST['targetVersion'])){
		$step=$_POST['upgradeStep'];
		$targetV=$_POST['targetVersion'];
		$finalMsg="";
		
		if($targetV == '1.0'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$message= "Auf Version 1.0 hochgerüstet";
		}
		if($targetV == '1.01'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$message= "Auf Version 1.01 hochgerüstet";
		}
		
		else if($targetV == '1.1'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$message= "Auf Version 1.1 hochgerüstet";
		}
																		
		else if($targetV == '1.1.1'){
			
			$konf=array(array('FUNKTION_BUTTON_LADEOEFFNEN', 'ja', 'Funktions Button im Screen Verkauf rechts oben mit "ja" freischsalten bez ausgeblendet lassen.'),
						array('FUNKTION_BUTTON_BON_REPRINT', 'ja', 'Funktions Button im Screen Verkauf rechts oben mit "ja" freischsalten bez ausgeblendet lassen.'),
						array('FUNKTION_BUTTON_CUSTOMER_TOBILL', 'ja', 'Funktions Button im Screen Verkauf rechts oben mit "ja" freischsalten bez ausgeblendet lassen.'),
						array('FUNKTION_BUTTON_FURTHER_USE', 'nein', 'Funktions Button im Screen Verkauf rechts oben mit "ja" freischsalten bez ausgeblendet lassen.'),
						array('EINZELPREIS_IM_BON_BRUTTO', 'ja', 'Wenn ja, wird der Einzelpreis im Bon Brutto angezeigt, kein Wert oder nein, od was auch immer, Anzeige in Netto.')
			
			);
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$message.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}	
		}
		
		else if($targetV == '1.1.2'){
				$konf=array(array('KUNDEN_ZUORDNEN_BEZAHLMODAL', 'ja', 'Wenn auf ja gesetzt erscheint das Kundensuchfeld zu Rechnung Kunden zuordnen im Bezahl Popup.'),
							array('FUNKTION_BUTTON_DELETE_BON', 'ja', 'Mit ja wird der funktionsbutton, Löschen des gesamten Bons angezeigt.')
							
			
							);
				$deleteArray=array(array('konfiguration', 'FUNKTION_BUTTON_FURTHER_USE'));
			
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$message.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			if($deleteArray){
				for($j=0; $j< sizeof($deleteArray); $j++){
					$delQl=mysql_query("DELETE FROM '".$deleteArray[$j][0]."' WHERE name = '".$deleteArray[$j][1]."'");
				
				}
			
			}	
		}
		
		else if($targetV == '1.1.2.1'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
		
		}
		
		else if($targetV == '1.1.3'){
		
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$kpOp="";
			
			$eError="";
			$xx=mysql_fetch_assoc(mysql_query("SHOW FIELDS FROM offener_bon where Field ='PRICEBUY' "));
			if (strpos($xx['Type'], '14,8') === false) {
					$z1=mysql_query("ALTER TABLE offener_bon MODIFY PRICEBUY DECIMAL(14,8) NOT NULL");
					if(!$z1) { $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z2=mysql_query("ALTER TABLE offener_bon MODIFY PRICESELL DECIMAL(14,8) NOT NULL");
					if(!$z2){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z3=mysql_query("ALTER TABLE abgeschlossener_bon MODIFY gesamt_summe DECIMAL(14,8) NOT NULL");
					if(!$z3){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z4=mysql_query("ALTER TABLE abgeschlossener_bon MODIFY retourgeld DECIMAL(14,8) NOT NULL");
					if(!$z4){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z5=mysql_query("ALTER TABLE abgeschlossener_bon_produkte MODIFY PRICEBUY DECIMAL(14,8) NOT NULL");
					if(!$z5){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z5=mysql_query("ALTER TABLE abgeschlossener_bon_produkte MODIFY PRICESELL DECIMAL(14,8) NOT NULL");
					if(!$z5){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }				
					$z6=mysql_query("ALTER TABLE abgeschlossener_bon_steuern MODIFY gesamt_betrag DECIMAL(14,8) NOT NULL");
					if(!$z6){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z7=mysql_query("ALTER TABLE products MODIFY PRICEBUY DECIMAL(14,8) NOT NULL");
					if(!$z7){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					$z8=mysql_query("ALTER TABLE products MODIFY PRICESELL DECIMAL(14,8) NOT NULL");
					if(!$z8){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
					
					$z9=mysql_query("ALTER TABLE products MODIFY PRINTNAME varchar(255) NULL");
					if(!$z9){ $eError="Alter Table set Decimal Error. ".mysql_error(); $countError++; }
			}
			if($eError != ""){ $resultMsg.=$eError;	 }
			# ----------------------------

			$checkColumn='bon_erstellt_datum';		
			$dateColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM abgeschlossener_bon LIKE '$checkColumn'"))) ? true : false;
			
			if($dateColExists == false){
				
				$addTable=mysql_query("ALTER TABLE abgeschlossener_bon ADD $checkColumn DATETIME NOT NULL AFTER timestamp");
				if(!$addTable) $kpOp.= "Erstellen von Datenbankspalte fehlgeschlagen. ".mysql_error();
				else $resultMsg.="<p> Spalte ".$checkColumn." im Table abgeschlossener_bon hinzugefügt.</p>";
				
				
				$copyQl=mysql_query("UPDATE abgeschlossener_bon SET bon_erstellt_datum = timestamp ");
				if(!$copyQl){
						$resultMsg.="<p>Timestamp Kopieren fehlgeschlagen. ".mysql_error()."</p>";
				}
				else $resultMsg.="Datum erstellt Datensätze kopiert.</p>";
				

			}
			
					##################################
			$checkColumn='zahlung_erfolgt_datum';	
			$dateCol_Exists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ein_aus_zahlungen LIKE '$checkColumn'"))) ? true : false;
			
			if($dateCol_Exists == false){
				$addTable=mysql_query("ALTER TABLE ein_aus_zahlungen ADD $checkColumn DATETIME NOT NULL AFTER gesamt_betrag");
					if(!$addTable) $kpOp.= "Erstellen von Datenbankspalte fehlgeschlagen. ".mysql_error();
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ein_aus_zahlungen hinzugefügt.</p>";
					
					$jx=0;
					$kpQl=mysql_query("SELECT id, timestamp FROM ein_aus_zahlungen");
					while ($kpRow=mysql_fetch_array($kpQl)){	
						$xId=$kpRow['id'];
						$xTime=$kpRow['timestamp'];
						$z=mysql_query("UPDATE ein_aus_zahlungen SET $checkColumn = '$xTime' WHERE id =$xId ");
						
						if(!$z){ $resultMsg.="Error -- ".mysql_error(); $jz--;  $countError++; }
						$jx++;
					
					}
					
			}
					
			$konf=array(array('FUNKTION_BONIEREN_AUTOMATISCH_EDITIEREN', '', 'Bei "ja" als Wert, wird nach dem bonieren automatisch das Editierfenster geöffnet. !!!!!!  Für diese Funktion 
										muss FUNKTION_BONIEREN_AUTOMATISCH_SELEKTIEREN auf "ja" gesetzt sein !!!!!'),
					array('FUNKTION_BONIEREN_AUTOMATISCH_SELEKTIEREN', '', 'Mit ja wird der letzte Artikel der in den Bon eingefügt wird, automatisch selektiert.'),
					array('FUNKTION_BUTTON_EINZELRABATT_ANZEIGEN', 'ja', 'Mit ja Funktionsbutton \"Einzelrabatt, %\", Rabatt auf einzelnen Artikel, im Container Steuerung angezeigt.'),
					array('FUNKTION_BUTTON_GESAMTRABATT_ANZEIGEN', 'ja', 'Mit ja Funktionsbutton \"Gesamtrabatt, %%\", Rabatt auf gesamten Bon, im Container Steuerung angezeigt.'),					
					array('AUSRUCK_EXTRA_FUSSZEILEN', 'Das ist nur ein Beispiel Text. € 2.- Rest vom Beispieltext.', 'Nicht ändern, wird vom Administrations GUI gesteuert.'),
					array('AUSRUCK_EXTRA_FUSSZEILEN_FREIGEBEN', 'nein', 'Mit "ja" wird der Extra Fusszeilen Text für Rabatte/Gutschriften auf zukünftige Einkäufe freigegeben.'),
					array('AUSRUCK_EXTRA_FUSSZEILEN_WERT', 3, 'Wert in % der vom Rechnungs Brutto Betrag als Rabatt/Gutschrifte errechnet und im Extra Fusszeilen Text ausgegeben wird'),
					array('AUSRUCK_KOPFZEILE_IBAN', '', 'Ist hier ein Wert eingetragen wird dies Zeile bei Zahlungsart Bank auf dem Bon mit ausgedruckt.')
			
							);
				$deleteArray=array(array('konfiguration', 'FUNKTION_BUTTON_FURTHER_USE'));
			
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$message.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}		
		}			
		
		# upgrade auf 1.1.3 ENDE 	
	
		else if($targetV == '1.1.4'){
		
				$konf=array(array('RECHNUNGSSUMME_AUF_BON_FETT', 'ja', 'Bei "ja" wird die Rechnungssumme auf dem Bon Fett gedruckt')
				
				);
			
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$message.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
		
		
		}
		
		else if($targetV == '1.1.5'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;

		}
		
		
		
		else if($targetV == '1.2.0'){
			$creatTableTische=mysql_query(" CREATE TABLE IF NOT EXISTS `tische` (
								`id` int( 8 ) NOT NULL AUTO_INCREMENT ,
								`raum` int( 4 ) NOT NULL ,
								`tischName` varchar( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
								`breite` int( 6 ) NOT NULL ,
								`hoehe` int( 6 ) NOT NULL ,
								`posTop` int( 6 ) NOT NULL ,
								`posLeft` int( 6 ) NOT NULL ,
								`res` varchar( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
								PRIMARY KEY ( `id` )
								) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
			");
			if(!$creatTableTische) $resultMsg.= "Datenbank Error, Fehler bei create table ".mysql_error();
			
			else $resultMsg.= "Datenbank Table tische angelegt bzw. übersprungen, wenn exist.<br />";
			
			$creatTableRaum=mysql_query(" CREATE TABLE IF NOT EXISTS `raum` (
								`id` int( 4 ) NOT NULL AUTO_INCREMENT ,
								`name` varchar( 100 ) COLLATE utf8_unicode_ci NOT NULL ,
								`reihenfolge` int( 11 ) NOT NULL ,
								PRIMARY KEY ( `id` )
								) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
			
			");
			
			if(!$creatTableRaum) $resultMsg.= "Datenbank Error, Fehler bei create table ".mysql_error();
			
			else $resultMsg.= "Datenbank Table raum angelegt bzw. übersprungen, wenn exist.<br />";

			$checkRaum=mysql_num_rows(mysql_query("SELECT * FROM raum"));
			
			if($checkRaum == 0){
				$insertTableRaum=mysql_query(" INSERT INTO `raum` 
									VALUES ('1', 'Raum 1', '5')");
				
					if(!$insertTableRaum) $resultMsg.= "Datenbank Error, Fehler beim erstellen der Räummmmmmmmmmme ".mysql_error();
					else $resultMsg.= "Datenbank Table raum befüllt befüllt<br />";
			}
			else $resultMsg.= "Datenbank Table raum befüllen übersprungen.<br />";
			
			$checkTische=mysql_num_rows(mysql_query("SELECT * FROM tische"));
			
			if($checkTische == 0){

					$insertTableTische=mysql_query(" INSERT INTO `tische` 
								VALUES 
								(1, 1, 'T1', 80, 29, 10, 10, '0'),
								(2, 1, 'T2', 80, 29, 10, 100, '0'),
								(3, 1, 'T3', 80, 29, 10, 190, '0'),
								(4, 1, 'T4', 80, 29, 10, 280, '0'),
								(5, 1, 'T5', 80, 29, 10, 370, '0'),
								(6, 1, 'T6', 80, 29, 10, 460, '0'),
								(7, 1, 'T7', 80, 29, 10, 550, '0'),
								(8, 1, 'T8', 80, 29, 10, 640, '0'),
								(9, 1, 'T9', 80, 29, 10, 730, '0'),
								(10, 1, 'T10', 80, 29, 10, 820, '0'),
								(11, 1, 'T11', 80, 29, 49, 10, '0'),
								(12, 1, 'T12', 80, 29, 49, 100, '0'),
								(13, 1, 'T13', 80, 29, 49, 190, '0'),
								(14, 1, 'T14', 80, 29, 49, 280, '0'),
								(15, 1, 'T15', 80, 29, 49, 370, '0'),
								(16, 1, 'T16', 80, 29, 49, 460, '0'),
								(17, 1, 'T17', 80, 29, 49, 550, '0'),
								(18, 1, 'T18', 80, 29, 49, 640, '0'),
								(19, 1, 'T19', 80, 29, 49, 730, '0'),
								(20, 1, 'T20', 80, 29, 49, 820, '0'),
								(21, 1, 'T21', 80, 29, 88, 10, '0'),
								(22, 1, 'T22', 80, 29, 88, 100, '0'),
								(23, 1, 'T23', 80, 29, 88, 190, '0'),
								(24, 1, 'T24', 80, 29, 88, 280, '0'),
								(25, 1, 'T25', 80, 29, 88, 370, '0'),
								(26, 1, 'T26', 80, 29, 88, 460, '0'),
								(27, 1, 'T27', 80, 29, 88, 550, '0'),
								(28, 1, 'T28', 80, 29, 88, 640, '0'),
								(29, 1, 'T29', 80, 29, 88, 730, '0'),
								(30, 1, 'T30', 80, 29, 88, 820, '0'),
								(31, 1, 'T31', 80, 29, 127, 10, '0'),
								(32, 1, 'T32', 80, 29, 127, 100, '0'),
								(33, 1, 'T33', 80, 29, 127, 190, '0'),
								(34, 1, 'T34', 80, 29, 127, 280, '0'),
								(35, 1, 'T35', 80, 29, 127, 370, '0'),
								(36, 1, 'T36', 80, 29, 127, 460, '0'),
								(37, 1, 'T37', 80, 29, 127, 550, '0'),
								(38, 1, 'T38', 80, 29, 127, 640, '0'),
								(39, 1, 'T39', 80, 29, 127, 730, '0'),
								(40, 1, 'T40', 80, 29, 127, 820, '0'),
								(41, 1, 'T41', 80, 29, 166, 10, '0'),
								(42, 1, 'T42', 80, 29, 166, 100, '0'),
								(43, 1, 'T43', 80, 29, 166, 190, '0'),
								(44, 1, 'T44', 80, 29, 166, 280, '0'),
								(45, 1, 'T45', 80, 29, 166, 370, '0'),
								(46, 1, 'T46', 80, 29, 166, 460, '0'),
								(47, 1, 'T47', 80, 29, 166, 550, '0'),
								(48, 1, 'T48', 80, 29, 166, 640, '0'),
								(49, 1, 'T49', 80, 29, 166, 730, '0'),
								(50, 1, 'T50', 80, 29, 166, 820, '0'),
								(51, 1, 'T51', 80, 29, 205, 10, '0'),
								(52, 1, 'T52', 80, 29, 205, 100, '0'),
								(53, 1, 'T53', 80, 29, 205, 190, '0'),
								(54, 1, 'T54', 80, 29, 205, 280, '0'),
								(55, 1, 'T55', 80, 29, 205, 370, '0'),
								(56, 1, 'T56', 80, 29, 205, 460, '0'),
								(57, 1, 'T57', 80, 29, 205, 550, '0'),
								(58, 1, 'T58', 80, 29, 205, 640, '0'),
								(59, 1, 'T59', 80, 29, 205, 730, '0'),
								(60, 1, 'T60', 80, 29, 205, 820, '0'),
								(61, 1, 'T61', 80, 29, 244, 10, '0'),
								(62, 1, 'T62', 80, 29, 244, 100, '0'),
								(63, 1, 'T63', 80, 29, 244, 190, '0'),
								(64, 1, 'T64', 80, 29, 244, 280, '0'),
								(65, 1, 'T65', 80, 29, 244, 370, '0'),
								(66, 1, 'T66', 80, 29, 244, 460, '0'),
								(67, 1, 'T67', 80, 29, 244, 550, '0'),
								(68, 1, 'T68', 80, 29, 244, 640, '0'),
								(69, 1, 'T69', 80, 29, 244, 730, '0'),
								(70, 1, 'T70', 80, 29, 244, 820, '0'),
								(71, 1, 'T71', 80, 29, 283, 10, '0'),
								(72, 1, 'T72', 80, 29, 283, 100, '0'),
								(73, 1, 'T73', 80, 29, 283, 190, '0'),
								(74, 1, 'T74', 80, 29, 283, 280, '0'),
								(75, 1, 'T75', 80, 29, 283, 370, '0'),
								(76, 1, 'T76', 80, 29, 283, 460, '0'),
								(77, 1, 'T77', 80, 29, 283, 550, '0'),
								(78, 1, 'T78', 80, 29, 283, 640, '0'),
								(79, 1, 'T79', 80, 29, 283, 730, '0'),
								(80, 1, 'T80', 80, 29, 283, 820, '0'),
								(81, 1, 'T81', 80, 29, 322, 10, '0'),
								(82, 1, 'T82', 80, 29, 322, 100, '0'),
								(83, 1, 'T83', 80, 29, 322, 190, '0'),
								(84, 1, 'T84', 80, 29, 322, 280, '0'),
								(85, 1, 'T85', 80, 29, 322, 370, '0'),
								(86, 1, 'T86', 80, 29, 322, 460, '0'),
								(87, 1, 'T87', 80, 29, 322, 550, '0'),
								(88, 1, 'T88', 80, 29, 322, 640, '0'),
								(89, 1, 'T89', 80, 29, 322, 730, '0'),
								(90, 1, 'T90', 80, 29, 322, 820, '0'),
								(91, 1, 'T91', 80, 29, 361, 10, '0'),
								(92, 1, 'T92', 80, 29, 361, 100, '0'),
								(93, 1, 'T93', 80, 29, 361, 190, '0'),
								(94, 1, 'T94', 80, 29, 361, 280, '0'),
								(95, 1, 'T95', 80, 29, 361, 370, '0'),
								(96, 1, 'T96', 80, 29, 361, 460, '0'),
								(97, 1, 'T97', 80, 29, 361, 550, '0'),
								(98, 1, 'T98', 80, 29, 361, 640, '0'),
								(99, 1, 'T99', 80, 29, 361, 730, '0'),
								(100, 1, 'T100', 80, 29, 361, 820, '0')");
				if(!$insertTableTische) $resultMsg.= "Datenbank Error, Fehler beim einfügen der Tische ".mysql_error();
				else $resultMsg.= "Datenbank Table tische befüllt.<br />";
			}
			else $resultMsg.= "Datenbank Table tische befüllen übersprungen.<br />";
			
			$creatTableAbgeschlFrei=mysql_query("CREATE TABLE IF NOT EXISTS `abgeschlossener_bon_frei` (
								`bon_id` int( 11 ) NOT NULL AUTO_INCREMENT ,
								`kassa_abschluss_id` int( 11 ) NOT NULL ,
								`kunden_id` int( 11 ) NOT NULL ,
								`verkaufer_id` int( 11 ) NOT NULL ,
								`gesamt_summe` decimal( 14, 8 ) NOT NULL ,
								`retourgeld` decimal( 14, 8 ) NOT NULL ,
								`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
								`bon_erstellt_datum` datetime NOT NULL ,
								`gastro_tisch_id` varchar( 100 ) DEFAULT NULL ,
								`storno` tinyint( 1 ) NOT NULL DEFAULT '0',
								`storno_person_id` int( 11 ) NOT NULL ,
								`storno_datum` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
								`storno_grund` varchar( 200 ) NOT NULL ,
								`storno_bemerkung` text NOT NULL ,
								PRIMARY KEY ( `bon_id` )
								) ENGINE = InnoDB DEFAULT CHARSET = utf8;
			");
			
			if(!$creatTableAbgeschlFrei) $resultMsg.= "Datenbank Error, Fehler bei create table ".mysql_error();
			
			else $resultMsg.= "Datenbank Table abschlossener_bon_frei angelegt bzw. übersprungen, wenn exist.<br />";
			
			$creatTableAbgeschlProdFrei=mysql_query("CREATE TABLE IF NOT EXISTS `abgeschlossener_bon_produkte_frei` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,
								`bon_id` int( 11 ) NOT NULL ,
								`produkt_id` int( 11 ) NOT NULL ,
								`REFERENCE` varchar( 255 ) NOT NULL ,
								`CODE` varchar( 255 ) NOT NULL ,
								`NAME` varchar( 255 ) NOT NULL ,
								`PRICEBUY` decimal( 14, 8 ) NOT NULL ,
								`PRICESELL` decimal( 14, 8 ) NOT NULL ,
								`CATEGORY` int( 11 ) NOT NULL ,
								`TAXCAT` int( 11 ) NOT NULL ,
								`IMAGE` mediumblob,
								`DISPLAY` varchar( 255 ) DEFAULT NULL ,
								`VARPRICE` tinyint( 1 ) NOT NULL DEFAULT '0',
								`PRINTNAME` varchar( 50 ) DEFAULT NULL ,
								`NEGATIVEPRICE` tinyint( 1 ) NOT NULL DEFAULT '0',
								`PRODUKTORDER` int( 11 ) DEFAULT NULL ,
								`SICHTBAR` tinyint( 4 ) NOT NULL DEFAULT '1',
								`stueck` decimal( 10, 4 ) NOT NULL ,
								`tax_rate` decimal( 10, 4 ) NOT NULL ,
								PRIMARY KEY ( `ID` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
				");
				if(!$creatTableAbgeschlProdFrei) $resultMsg.= "Datenbank Error, fehler bei create table. ".mysql_error();
				else $resultMsg.= "Datenbank Table abschlossener_bon_produkte_frei angelegt bzw. übersprungen, wenn exist.<br />";
			
			
			$checkColumn='gastro_tisch_id';	
			$checkTable='abgeschlossener_bon';
			$options=' VARCHAR(100) AFTER bon_erstellt_datum';
			$column_Exists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."'"))) ? true : false;
			
			if($column_Exists == false){
				$addTable=mysql_query("ALTER TABLE ".$checkTable." ADD $checkColumn ".$options." ");
				if(!$addTable) $resultMsgp.= "Erstellen von Datenbankspalte fehlgeschlagen. ".mysql_error();
				else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$checkTable." hinzugefügt.</p>";
			}
			
			#AUSDRUCK_GESAMTE_BREITE
			$konf=array(array('GASTRO_VERSION', 'nein', 'Bei "ja" werden verschiedene Dastellungen auf Bon Splitten, auf Tisch bonieren, Tische verschieben, ... angepasst'),
						array('GASTRO_TISCHNAME_AUF_BON_DRUCKEN', 'ja', 'Wenn auf "ja" gesetzt wird der Tischname auf den Bon ausgedruckt. Gilt nur für die Gastro Version.'),
						array('VERKAEUFER_AUF_BON_DRUCKEN', 'ja', 'Wenn auf "ja" gesetzt wird der Verkäufer auf den Bon ausgedruckt.'),
						array('ZAHLUNGSART_FREI', 'nein', 'Wenn auf "ja" gesetzt ist die Zahlungsart Frei enabled. Button dafür im Zahlungs Modal eingeblendet.'),
						array('ZAHLUNGSART_FREI_BON_AUSDRUCKEN', 'ja', 'Wenn auf "ja" wird bei Zahlungsart Frei ein Bon ausgedruckt.'),
						array('ARTIKEL_OFFENERBON_ADDIEREN', 'ja', 'Wenn auf "ja" wird eine hinzugefügert Artikel im offenen Bon zu einem mit gleicher Produkt Id, Printname und Preis durch Erhöhung der Stückzahl hinzugerechnet. Bei nicht "ja" wird eine neue Artikel Zeile eingefügt.'),
						array('AUSDRUCK_PDF_GESAMTE_HOEHE', '200', 'Default bzw Grundeinstellungs- Wert, dieser Wert wird übersteuert wenn der Ausdruck länger ausfällt')
				
				);
			
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;
						
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
		}

		
		
		else if($targetV == '1.2.1'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;					#Drucker_ID	Funktion	Win_Drucker Name	ist_rechnungsdrucker
			
			$creatTablePrinter=mysql_query("CREATE TABLE IF NOT EXISTS `drucker` ( 
											`drucker_id` int( 5 ) NOT NULL AUTO_INCREMENT ,
											`funktion` varchar( 32 ) DEFAULT NULL ,
											`win_drucker_name` varchar( 64 ) DEFAULT NULL ,
											`ist_rechnungsdrucker` varchar( 16 ) DEFAULT NULL ,
											PRIMARY KEY ( `drucker_id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;
										");
			$printer=array(array('Rechnungsdrucker', true , 'Seiko RP-D10', '')
	
					);
			
			for($i=0; $i< sizeof($printer); $i++){
				$z=mysql_fetch_array(mysql_query("SELECT * FROM drucker WHERE funktion = '".$printer[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO drucker SET funktion = '".$printer[$i][0]."', win_drucker_name = '".$printer[$i][2]."', ist_rechnungsdrucker = '".$printer[$i][1]."' ");
						
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
			}
			
			$checkColumn='articlePrinted';
			$targetTable='offener_bon';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD $checkColumn decimal(10,4) NOT NULL AFTER sichtbar");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen. ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			
			}
			
			$modOpenBon=mysql_query("ALTER TABLE offener_bon MODIFY printname VARCHAR(255) ");
					if(!$modOpenBon){
						$resultMsg.= "Mofifizieren von Datenbankspalte printname, fehlgeschlagen. ".mysql_error();
						$countError++;
					}	
					#	supplyprint
			
			$checkColumn='supplyprint';
			$targetTable='products';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD ".$checkColumn." TINYINT( 2 ) NULL");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen. ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			}
			$checkColumn='supplyprint';
			$targetTable='categories';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD ".$checkColumn." TINYINT( 2 ) NULL");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen. ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			}
			
			$checkColumn='supplyprint';
			$targetTable='offener_bon';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD ".$checkColumn." TINYINT( 2 ) NULL AFTER sichtbar ");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen. ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			}
			
			$konf=array(array('AUSDRUCK_BEREITSTELLUNGSBON_PDF', 'ja', 'mit "ja" freigeben von Bereitstellungsbon, nach der Bestellungsaufnahme wird in der Küche bzw Schank ein bon mit den jeweiligen Bestellungen ausgedruckt.'),
						array('AUSDRUCK_RECHNUNGSBON_PDF', 'ja', 'mit "ja" freigeben von Rechnungsbon.'),
						array('AUSDRUCK_PDF_GESAMTE_HOEHE', '200', 'Der Bon wird nach Textende geschnitten, also nicht so lange wie hier gesetzt. Sollte die länge nciht reichen, wird dieser Wert vom Programm übersteuert.'),
						array('SCHRIFT_AUSDRUCK_PDF', 'Arial 8pt', 'Schriftgröße bei PDF ausdruck muss pt sein, PDF Schriften, Arial, Times, Courier '),
						array('GASTRO_TISCHNAME_AUF_BON_DRUCKEN', 'ja', 'Wenn auf "ja" gesetzt wird der Tischname auf den Bon ausgedruckt. Gilt nur für die Gastro Version.')
						
				);
				
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						//echo "INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
		
		}
		
		# upgrade auf 1.2.1 ENDE 

		# upgrade auf 1.2.2 BEGINN
		
		else if($targetV == '1.2.2'){
			$countIns=0;
			$countScip=0;
			$countError=0; 
			$check=0;	
			
			$konf=array(array('AUSDRUCK_BEREITSTELLUNGSBON_BEZAHLEN_PDF', 'ja', 'mit "ja" wird der Bereitstellungsdruck (Küche, Schank, ... auch beim Bezahlen ausgelöst. '),
						array('AUSDRUCK_AUSWERTUNG_PROTUKTE_BONDRUCKER', 'ja', 'Auswertung Produkte wird auf Bondrucker gedruckt.'),
						array('AUSWERTUNG_PRODUKTNAME_CODIERUNG_ENDE', 'nein', 'Mit ja wird der Report im Menü Auswertung aufrufbar. Der Report sortiert nach dem Letzten Teil im Produktnamen.Letzter Teil ist nach dem letzten Leerzeichen (Space) im Produktnamen.'),
						array('BELEG_BENENNUNG', 'Bon:', 'Bezeichnung die am Belge, vor der Belegnummer ausgedruckt wird. zb Rechnung: 1234'),
						array('AUSDRUCK_VERKAUFER_AUF_BON_TEXT', 'Es bediente Sie:', 'Wird er Verkäufer/Benutzer Name auf den Bon ausgedruckt, steht dieser Text davor.')
						
				);
				
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
		}
		
		
		# upgrade auf 1.2.2 ENDE 
		
		# upgrade auf 1.3.0 BEGINN
		else if($targetV == '1.3.0'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			
			
			$checkColumn='display_float';
			$targetTable='raum';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD ".$checkColumn." varchar( 12 ) DEFAULT 'nein' ");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			}
			
			$checkColumn='autologincode';
			$targetTable='benutzer';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD ".$checkColumn." varchar( 32 ) NULL AFTER passwort ");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			}
			
			$checkColumn='handy';
			$column_2='tablet';
			$targetTable='konfiguration';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$column_2." varchar(100) COLLATE utf8_general_ci NOT NULL ,
																	ADD COLUMN ".$checkColumn." varchar(100) COLLATE utf8_general_ci NOT NULL  AFTER 1280x800");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." und ".$column_2." im Table ".$targetTable." hinzugefügt.</p>";				
			}
			
			$konf=array(array('MENU_GASTRORAUM_HOEHE', '45px', 'Höhe des Raum Auswahl Menü auf der Seite Tische.  ')
			
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."',  handy = '".$konf[$i][1]."',  tablet = '".$konf[$i][1]."',
										 1024x600 = '".$konf[$i][1]."',  1024x768 = '".$konf[$i][1]."', 1280x800 = '".$konf[$i][1]."', Beschreibung = '".$konf[$i][2]."' ");
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
			
			$checkColumn='drucker_margin_pdf';
			$column_2='drucker_margin_html';
			$targetTable='drucker';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				$defVal="25,15,0";
				$addTable=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$column_2." varchar(16) COLLATE utf8_general_ci DEFAULT '$defVal',
													ADD COLUMN ".$checkColumn." varchar(16) COLLATE utf8_general_ci DEFAULT '$defVal'  AFTER ist_rechnungsdrucker");
					if(!$addTable){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." und ".$column_2." im Table ".$targetTable." hinzugefügt.</p>";
			}
			
			
			
			
			
			$udKonf=array(array('BILDSCHIRM_GESAMTE_BREITE', '720px'),			
								array('BILDSCHIRM_GESAMTE_HOEHE', '1120px'),
								array('SCHRIFT_DEFAULT', '16px/100% Arial, Helvetica, sans-serif'),
								array('SCHRIFT_MENUE', '16px/100% Arial, Helvetica, sans-serif'),
								array('SCHRIFT_KATEGORIE_PRODUKT', '16px/100% Arial, Helvetica, sans-serif'),
								array('BON_CONTAINER_BREITE', '74%'),
								array('BON_CONTAINER_HOEHE', '20%'),
								array('KATEGORIE_CONTAINER_BREITE', '25%'),
								array('KATEGORIE_CONTAINER_HOEHE', '99%'),
								array('KATEGORIE_BREITE', '90%'),
								array('KATEGORIE_HOEHE', '70px'),
								array('PRODUKT_CONTAINER_BREITE', '74%'),
								array('PRODUKT_CONTAINER_HOEHE', '43%'),
								array('PRODUKT_BREITE', '160px'),
								array('PRODUKT_HOEHE', '100px'),
								array('STEUERUNG_CONTAINER_BREITE', '8%'),
								array('STEUERUNG_CONTAINER_HOEHE', '33%'),
								array('STEUERUNG_BREITE', '90%'),
								array('STEUERUNG_HOEHE', '35px'),
								array('ZIFFERN_BREITE', '32%'),
								array('ZIFFERN_HOEHE', '17%'),
								array('ZIFFERN_CONTAINER_BREITE', '59%'),		
								array('ZIFFERN_CONTAINER_HOEHE', '30%'),			
								array('FUNKTION_BUTTON_LADEOEFFNEN', 'nein'),
								array('FUNKTION_BUTTON_ZIFFERNFELD_ANZEIGEN', 'ja')
								
			);
			
			for($i=0; $i < sizeof($udKonf); $i++){
				$checkVal=mysql_fetch_assoc(mysql_query("SELECT handy FROM konfiguration WHERE name = '".$udKonf[$i][0]."' "));
				if($checkVal['handy'] == ''){
					$udQl=mysql_query("UPDATE konfiguration SET handy = '".$udKonf[$i][1]."', tablet = '".$udKonf[$i][1]."' WHERE name = '".$udKonf[$i][0]."' ");
					if(!$udQl){
						$resultMsg.= "Update von table konfiguration, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else{
						$resultMsg.="Handy und Tablet Wert in table konfiguration, Name ".$udKonf[$i][0]." eingefügt.<br /> ";
						$countUd++;
					}
				}
				else $countScip++;
			}
			
			if(mysql_fetch_array(mysql_query("SELECT name FROM konfiguration WHERE name = 'FUNKTION_BUTTON_FURTHER_USE'")) == true){
				$repQl=mysql_query("UPDATE konfiguration SET name = REPLACE(name, 'FUNKTION_BUTTON_FURTHER_USE', 'FUNKTION_BUTTON_ZIFFERNFELD_ANZEIGEN'), handy = 'ja', tablet = 'ja'
									WHERE name LIKE 'FUNKTION_BUTTON_FURTHER_USE'");
					if(!$repQl){
									$resultMsg.="Datenbank replace Error, Zeile ". __Line__ .". ".mysql_error()."<br />";
									$countError++;
								}
					else{ $resultMsg.="FUNKTION_BUTTON_ZIFFERNFELD_ANZEIGEN angelegt (replace) <br />";
							$countUd++;
					}
			}
		
		}
		
		# upgrade auf 1.3.0 ENDE 
		
		# upgrade auf 1.3.1 BEGINN
		else if($targetV == '1.3.1'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;

			
		}
		# upgrade auf 1.3.1 ENDE 
		
		
		# upgrade auf 1.3.5 BEGINN
			else if($targetV == '1.3.5'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;							
			
			$creatTableAuditing=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`auditing` ( `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
											`benutzer` varchar( 32 ) NOT NULL , `funktion` varchar( 64 ) NOT NULL ,
											`konfigtitel` VARCHAR( 64 ) NOT NULL , 
											`spalte` varchar( 32 ) NOT NULL , `ausgangswert` varchar( 32 ) NOT NULL ,
											`geaentertaufwert` varchar( 32 ) NOT NULL , `datumzeit` datetime NOT NULL ,
											`mailsend` INT( 1 ) NOT NULL,
											PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
			
			if(!$creatTableAuditing){
				$resultMsg.="Datenbank Create Table Error, Zeile ". __Line__ ." ".mysql_error()."<br />";
				$countError++;
			}
			else $resultMsg.="Datenbank Table auditing eingefügt bzw. übersprungen wenn vorhanden.<br />";
			
			$creatTableDep=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`dep` (`dep_id` int( 11 ) NOT NULL AUTO_INCREMENT ,
											`kassen_id` varchar( 32 ) CHARACTER SET utf8 NOT NULL , `beleg_nr` int( 11 ) NOT NULL ,
											`datum_zeit` datetime NOT NULL , `betr_satz_norm` varchar( 12 ) CHARACTER SET utf8 NOT NULL ,
											`betr_satz_erm_1` varchar( 12 ) CHARACTER SET utf8 NOT NULL , `betr_satz_erm_2` varchar( 12 ) CHARACTER SET utf8 NOT NULL ,
											`betr_satz_null` varchar( 12 ) CHARACTER SET utf8 NOT NULL , `betr_satz_besonder` varchar( 12 ) CHARACTER SET utf8 NOT NULL ,
											`umsatz_zaehler` decimal( 15, 0 ) NOT NULL , `zertif_nr` varchar( 32 ) CHARACTER SET utf8 NOT NULL ,
											`signatur_vorigerbeleg` varchar( 32 ) CHARACTER SET utf8 NOT NULL ,
											PRIMARY KEY ( `dep_id` )
											) ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
			
			if(!$creatTableDep){
				$resultMsg.="Datenbank Create Table Error, Zeile ". __Line__ ." ".mysql_error()."<br />";
				$countError++;
			}
			else{
		
				
			}
			
			$targetTable='konfiguration';
			$checkColumn='konfigtitel';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;
			
			if($colExists == false){			 
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." varchar(64) COLLATE utf8_general_ci DEFAULT '' AFTER wert ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			
						# wenn column konfigtitel hinzugefügt wird, wird Beschreibung mit neunen texten überschrieben 
				$lLines = explode("\n", file_get_contents('include/configTitle.txt'));
			
				$updCount=0;
				for($i=0; $i < sizeof($lLines); $i++){
					$xData=explode(";", $lLines[$i]);
					$upsQl=mysql_query("UPDATE konfiguration SET konfigtitel = ".$xData[1].", Beschreibung = ".$xData[2]." WHERE name = ".$xData[0]." ");
					if(!$upsQl)$resultMsg.=" Konfiguration Titel update Error. ".$updCount." /  ".mysql_error()."<br />";
					else $updCount++;
				}
				
				if($updCount > 0) $resultMsg.=$updCount.", Titel in Table konfiguration eingefügt und Beschreibungen upgedated.<br />";
						
			
			}
			
			
			$konf=array(array('EMAIL_SMTP_SERVER', 'mail.gmx.net', 'eMail, Mailserver Name', 'Mailserver SMTP Einstellung für Server Name. '),
						array('EMAIL_SMTP_ABSENDER', 'mailadresse@mail.at', 'eMail Absender', 'Absender der vom System versendeten Mails.'),
						array('EMAIL_SMTP_ABSENDER_ANZEIGE', 'sitPos Kassa Mail', 'eMail Absender Anzeige', 'Absender Anzeige der vom System versendeten Mails.'),
						array('EMAIL_SMTP_ABSENDER_PASSWORT', '12345xx', 'eMail, Mailserver Passwort', 'Mailserver SMTP Passwort.'),
						array('EMAIL_SMTP_PORT', '25', 'eMail, Mailserver Port', 'Mailserver SMTP Einstellung für Port. '),
						array('EMAIL_SMTP_VERSCHLUESSELUNG', 'STARTTLS', 'eMail, Mailserver Verschlüsselung', 'SLT/SSL/... Mailserver SMTP Einstellung Verschlüsselungslevel. '),
						array('EMAIL_SMTP_AUTH', 'true', 'eMail, Mailserver Authentifizierung', 'true/false Mailserver SMTP Einstellung für Authentifizierung.'),
						array('EMAIL_EMPFAENGER', 'mail@mail.at', 'eMail Empfänger', 'Empfänger der vom System versendeten Mails. Bei mehreren Empfänger diese mit Strichpunkt (Semicolon) trennen.'),
						array('EMAIL_SUBJECT', 'sITpos Kassa Mail', 'eMail Subject', 'Subject der vom System versendeten Mails.'),
						array('FUNKTION_BUTTON_BEZAHLEN_EXPRESS', 'ja', 'Funktionsbutton, Express bezahlen (ohne Bezahl Popup)', 'ja/nein. Funktionsbutton € einblenden, Bezahlvorgang ohne erscheinen des Bezahl Modal/Popup. Funktionsbutton Container, rechts oben.'),
						array('LOGIN_NUMMERNFELD_ERWEITERT', 'nein', 'Login Ziffernblock erweitert (Buchstaben Funktionalität)', 'ja/nein. Buchstaben Funktonalität bei Passwort Login. Zusätzliche Einstellung für Zeitfenster in welchem der jeweilige Buchstabe od Zahl genommen wird. Wir alte Hdy SMS schreiben.'),
						array('LOGIN_NUMMERNFELD_ERWEITERT_TRIMER', '900', 'Ziffernblock Zeitfenster für Buchstaben Funktionalität', 'Einheit Zahl. 900 realer Wert, 1000 = 1 Sekunde.'),
						array('EMAIL_VERSENDEN_KASSENABSCHLUSS', 'nein', 'eMail bei Kassenabschluss', 'ja/nein. Mail automatisch bei Kassenabschluss versenden.'),
						array('EMAIL_VERSENDEN_KONFIGURATION_AENDERUNG', 'nein', 'eMail bei Konfigurationsänderung', 'ja/nein. Mail automatisch bei Änderung der Konfiguration versenden.'),
						array('AUSWERTUNG_DEP', 'ja', 'Data Export Protokoll Auswertungen Menü', 'ja/nein. Bei ja wird der Report/Export im Auswertungen Menü auswählbar.'),
						array('AUTOMATISCH_BACKUP_KASSENABSCHLUSS', 'nein', 'Datensicherung bei Kassenabschluss', 'ja/nein. Bei Kassenabschluss wird automatisch eine Datensicherung (Backup) durchgeführt.'),
						array('AUTOMATISCH_BACKUP_PFAD', 'docs%5Cauto_backup%5C', 'Datensicherungs Pfad', 'Eingabe des Zielordners in dem die Datensicherung gespeichert wird. System Einstellung: docs%5Cauto_backup%5Cbackup%5C'),
						array('SCHRIFT_AUSDRUCK_BESTELLUNG_PDF', 'Arial 9pt', 'Schrift Ausdruck Bestelldruck Pdf', 'Arial 8pt, Bestell Ausdruck, Küche, Schank, ... Bei PDF Ausdruck. Diese Einstellung verlangt pt als Größendefinition. Kein px, % ...'),
						array('SCHRIFT_AUSDRUCK_KASSENABSCHL_PDF', 'Arial 9pt', 'Schrift Ausdruck Kassenabschluss Pdf', 'Arial 8pt, Kassenabschluss Ausdruck. Bei PDF Ausdruck. Diese Einstellung verlangt pt als Größendefinition. Kein px, % ...')
			);
			
			for($j=0; $j< sizeof($konf); $j++){
				$x=mysql_fetch_array(mysql_query("SELECT wert FROM konfiguration WHERE name = '".$konf[$j][0]."' "));
					if($x[0] == true){
						$delQl=mysql_query("DELETE FROM konfiguration WHERE name = '".$konf[$j][0]."' ");
				}
			}
			
			for($i=0; $i< sizeof($konf); $i++){		
					$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', wert = '".$konf[$i][1]."', konfigtitel = '".$konf[$i][2]."', Beschreibung = '".$konf[$i][3]."' ");
						if(!$ins){
							$resultMsg.="Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."<br />";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
				
			}
			
			/*  replace "x" (not selectet/active) to "nein" in all konfiguration  */
			
			$updArray=array("wert", "1024x600", "1024x768", "1280x800", "handy", "tablet"  );
			
			for($i=0; $i < sizeof($updArray); $i++){
				$reqlQl=mysql_query("UPDATE konfiguration SET ".$updArray[$i]." = REPLACE(".$updArray[$i].", 'x', 'nein') where ".$updArray[$i]." = 'x' ");			
			}
			
			$checkVal=mysql_fetch_array(mysql_query("SELECT handy FROM `konfiguration` WHERE `name`='FUNKTION_BUTTON_ZIFFERNFELD_ANZEIGEN'"));
			
			if($checkVal[0] == ''){
			
				$updatZiff=mysql_query("UPDATE `konfiguration` SET `wert` = 'nein', `1024x600` = 'nein', `1024x768` = 'nein', `1280x800` = 'nein', `handy` = 'nein',
										`tablet` = 'nein' WHERE `name`='FUNKTION_BUTTON_ZIFFERNFELD_ANZEIGEN'");
				if(!$updatZiff){
					$resultMsg.=" Konfiguration Funktion Ziffernblock anzeigen update Error. ".mysql_error()."<br />";
					$countError++;
				}
				else {
					$resultMsg.=" Konfiguration Funktion Ziffernblock anzeigen update. Werte in jeweilige Screen Resolution eingefügt.<br />";
				}
			}

		}
		# upgrade auf 1.3.5 ENDE 
		
		
		# upgrade auf 1.3.7 BEGINN
		else if($targetV == '1.3.7'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'lieferschein_referenz'"))==1) $resultMsg.="";
			else{
			
				$creatTableLieferscheinRef=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`lieferschein_referenz` ( `id` int( 11 ) NOT NULL AUTO_INCREMENT ,
								`lieferschein_id` int( 11 ) NOT NULL , `auftrags_nr` int( 11 ) NOT NULL , `lieferschein_erstellt_datum` datetime NOT NULL ,
								`auftrags_liefer_datum` datetime NOT NULL , `kunden_id` int( 9 ) NOT NULL , `geloescht` int( 3 ) NOT NULL ,
								PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
				if(!$creatTableLieferscheinRef){
					$countError++;
					$resultMsg.="<p>Datenbank, erstellen Lieferschein Referenz Table Error. ".mysql_error()."</p>";
				
				}
				else $resultMsg.="<p>Datenbank Table Lieferschein Referenz erstellt.</p>";
				
				$creatTableLieferschein=mysql_query("CREATE  TABLE IF NOT EXISTS `sitpos`.`lieferschein` (  `ID` int( 11  )  NOT  NULL  AUTO_INCREMENT ,
								`lieferschein_id` int( 11  )  NOT  NULL ,  `produkt_id` int( 11  )  NOT  NULL ,  `REFERENCE` varchar( 255  )  NOT  NULL ,
								`CODE` varchar( 255  )  NOT  NULL ,  `NAME` varchar( 255  )  NOT  NULL , `PRICEBUY` decimal( 14, 8  )  NOT  NULL ,
								`PRICESELL` decimal( 14, 8  )  NOT  NULL , `CATEGORY` int( 11  )  NOT  NULL ,  `TAXCAT` int( 11  )  NOT  NULL ,
								`IMAGE` mediumblob, `DISPLAY` varchar( 255  )  DEFAULT NULL , `VARPRICE` tinyint( 1  )  NOT  NULL DEFAULT  '0',
								`printname` varchar( 255  )  DEFAULT NULL , `NEGATIVEPRICE` tinyint( 1  )  NOT  NULL DEFAULT  '0',  `PRODUKTORDER` int( 11  )  DEFAULT NULL ,
								`SICHTBAR` tinyint( 1  )  NOT  NULL DEFAULT  '1',  `lieferschein_erstellt_datum` DATETIME,  `articlePrinted` decimal( 10, 4  )  NOT  NULL ,
								`auftrag_lieferung_datum` DATETIME, `stueck` decimal( 10, 4  )  NOT  NULL ,  `tax_rate` decimal( 10, 4  )  NOT  NULL , `kunden_id` int( 11  )  NOT  NULL ,
								PRIMARY  KEY (  `ID`  )  ) ENGINE  = InnoDB  DEFAULT CHARSET  = utf8 ");
				
				if(!$creatTableLieferschein){
					$countError++;
					$resultMsg.="<p>Datenbank, erstellen Lieferschein Table Error. ".mysql_error()."</p>";
				
				}
				else $resultMsg.="<p>Datenbank Table Lieferschein erstellt.</p>";
			}
		
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'warenkoerbe'"))==1) $resultMsg.="";
			else{
				$creatTableWarenk=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`warenkoerbe` (
								`id` int( 8 ) NOT NULL AUTO_INCREMENT , `raum` int( 4 ) NOT NULL , `warenkorbName` varchar( 64 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
								`displayName` varchar( 8 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
								`breite` int( 6 ) NOT NULL , `hoehe` int( 6 ) NOT NULL , `reihenfolge` int( 6 ) NOT NULL ,
								PRIMARY KEY ( `id` )
								) ENGINE = InnoDB DEFAULT CHARSET = utf8
								");
				
				if(!$creatTableWarenk){
					$countError++;
					$resultMsg.="<p>Datenbank, erstellen warenkorb Table Error. ".mysql_error()."</p>";
				
				}
				else{
					$resultMsg.="<p>Datenbank Table warenkorb erstellt.</p>";
					
					$lLines = explode("\n", file_get_contents('include/warenkorbdaten.txt'));
					
					$updCount=0;
						for($i=0; $i < sizeof($lLines); $i++){
							$xData=explode("\t", $lLines[$i]);
							$upsQl=mysql_query("INSERT INTO warenkoerbe SET warenkorbName = '".$xData[0]."', displayName = '".$xData[3]."', breite = '".$xData[1]."',
										hoehe = '".$xData[2]."', reihenfolge = '".$xData[4]."' ");
							if(!$upsQl){
								$resultMsg.=" Warenkörbe Insert Data Error. ".$updCount." /  ".mysql_error()."<br />".$xData[0]." / ".$xData[1]." / ".$xData[2];
								$countError++;
							}
							else $updCount++;
						}
					
				}
			
			}
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'images'"))==1) $resultMsg.="";
			else{
				$creatTableImages=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`images` ( `id` int( 9 ) NOT NULL AUTO_INCREMENT , 
							`name` varchar( 128 ) NOT NULL , `image` mediumblob NOT NULL , `imgx` smallint( 6 ) NOT NULL , 
							`imgy` smallint( 6 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
							
				if(!$creatTableImages){
					$countError++;
					$resultMsg.="<p>Datenbank, erstellen images Table Error. ".mysql_error()."</p>";
				
				}
				else $resultMsg.="<p>Datenbank Table images erstellt.</p>";
			
			}
			
			$targetTable='drucker';
			$checkColumn='ist_lieferscheindrucker';
			$addColumn_B=', ADD COLUMN zoom_factor DECIMAL(4,3) NOT NULL DEFAULT 1 AFTER drucker_margin_html';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '$checkColumn' " ))) ? true : false;

			if($colExists == false){
				if(isset($addColumn_B) && $addColumn_B != "" ) $addSecCol= $addColumn_B;
				else $addSecCol="";				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." varchar(16) COLLATE utf8_general_ci DEFAULT 'nein' AFTER ist_rechnungsdrucker ".$addColumn_B." ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
			
				$updDr=mysql_query("UPDATE drucker SET ".$checkColumn." = 'ja' WHERE ist_rechnungsdrucker = 'ja' ");
				if(!$updDr){
					$resultMsg.="<p>Update Table drucker fehlgeschlagen. ";
					$countError++;
				}
				
			
			}
			
			$konf=array(array('FUNKTION_BUTTON_LIEFERSCHEIN', 'Funktionsbutton Liefer- Auftragsschein.', 'nein', 'ja/nein. Bei ja wird der Funktionsbutton, Lieferschein bzw. Auftragsschein im rechten oberen Funktionsbutton Container angezeigt.'),
				array('AUFTRAG_LIEFER_TERMIN_DRUCKEN', 'Funktion Auftrag Termin drucken freischalten', 'nein', 'ja/nein. Funktion hängt mit Lieferschein bzw. Auftragsschein zusammen. Bei ja geht vor Erstellung eines Lieferscheins/Auftragsscheins ein Eingabefenster für zb. Abholdatum welches auf dem Ausdruck in die Fusszeile gedruckt wird, auf.'),
				array('AUFTRAG_REFERENZBON_DRUCKEN', 'Funktion Auftrag Referenz Bons drucken', 'nein', 'ja/nein. Funktion hängt mit Lieferschein bzw. Auftragsschein zusammen. Bei ja werden Bons, jeweils ein Stück für jeden Artikel gedruckt. Anwendung zb. Wäscherei.'),
				array('LIEFERSCHEIN_BENENNUNG', 'Liefer bzw. Auftragsschein Bezeichnung', 'Lieferschein: ', 'Text. Funktion hängt mit Lieferschein bzw. Auftragsschein zusammen. Bezeichnung welche auf dem Ausdruck vor der laufenden Nummer gedruckt wird. z.B Lieferschein Nr:'),
				array('AUSDRUCK_EXTRA_FUSSZEILE_AUFTRAG_TEXT', 'Text Auftragsschein Fusszeilen Text', '', 'Text welcher bei entsprechenden Einstellungen auf dem Auftrags bzw. Lieferschein in der fusszeile mit ausgedruckt wird. Zum Ausdruck des Datums setzen sie eine Platzhalter. Platzhalter-Datum.'),
				array('CONFIG_FUNCTION_RESET_AUFTR_NR', 'Auftrags Nummer zurücksetzen', '', 'Click. Mit dieser Funktion wird die laufend vergebene Auftrags Nummer auf 0 zurückgesetzt. Die Funktion hängt mit Lieferschein zusammmen, die Lieferschein Nummer ist davon nicht betroffen.'),
				array('WARENKOERBE_ABLEGEN', 'Funktion Warenkörbe ablegen', 'nein', 'ja/nein. Diese Funktion kann nicht mit der Gastro Version gemeinsam genützt werden. Durch freigeben der Funktion können offene Warenkörbe abgelegt und im Falle von mehrfachen Kassen dann eventuell von einer anderen Kassa weiter verarbeitet werden.'),
				array('LIEFERSCHEINDRUCK_BEI_RECHNUNG', 'Lieferschein drucken bei Rechunug', 'nein', 'ja/nein. Diese Funktion druckt einen Lieferschein wenn eine Rechnung erstellt wird.'),
				array('FUNKTION_BUTTON_RECHNUNGS_VORDRUCK', 'Funktions Rechnungs Vordruck', 'nein', 'ja/nein. Blendet den Funktions Button Rechung Vordrucken im Rechts oberen Funktionsbutton Fenster ein.'),
				array('UHRZEIT_BONAUSDRUCK_UNTERDRUECKEN', 'Uhrzeit auf Bon Ausdruck unterdrücken', 'nein', 'ja/nein. Bei ja wird die Uhrzeit auf Rechung/Bon, Lieferschein, Ein- Auszahlung, Bonjornal Ausdruck nicht ausgedruckt.'),
				array('FUNKTION_GASTRO_MOVETO_TISCHE', 'Nach bezahlen zurück zu Tische (Gastro)', 'ja', 'ja/nein. Funktion gilt nur für Gastro Version. Nach bezahlen wird automatisch das Display Tische geladen.'),
				array('ENABLERKEY_EINAUSZAHLUNG', 'Ein- Auszahlung freigeben', '1', 'ja/nein. Damit wird der Menüpunkt für Ein- Auszahlung für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_BONJORNAL', 'Bonjornal freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Bonjornal für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_LIEFERSCHEINE', 'Lieferscheine freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Lieferscheine für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_KASSENABSCHLUSS', 'Kassenabschluss freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Kassenabschluss für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_KASSENBERICHT', 'Kassenbericht freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Kassenbericht für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_DATENSICHERUNG', 'Datensicherung freigeben', '1', 'ja/nein. Damit wird der Menüpunkt, Datensicherung für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_WARENGRUPPEN', 'Admin Warengruppen freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Warengruppen für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_PRODUKTE', 'Admin Produkte freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Produkte für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_UMST_SAETZE', 'Admin Umsatzsteuersätze freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Umsatzsteuersätze für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_ZAHLUNGSARTEN', 'Admin Zahlungsarten freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Zahlungsarten für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_STORNOGRUENDE', 'Admin Stornogründe freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Stornogründe für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_BENUTZER', 'Admin Benutzer freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Benutzer für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_KUNDEN', 'Admin Kunden freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Kunden für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_AUSWERTUNGEN', 'Admin Auswertungen freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Auswertungen für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_KONFIGURATION', 'Admin Konfiguration freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Konfiguration für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_DATEN_IMPORT', 'Admin Daten Import freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Daten Import für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('ENABLERKEY_ADMIN_DATEN_RESTORE', 'Admin Daten Restore freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Daten Restore für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('AUSDRUCK_LOGO_RECHNUNGSBON_PDF', 'Logo auf Rechnungsbon drucken', 'nein', 'ja/nein. Damit wird ein Logo Bzw. Bild am Beginn vom Rechnungsbon gedruckt. Dazu muss das Bild hochgeladen (in die Datenbank gespeichert sein.'),
				array('MOBILER_DRUCKER', 'Benutzer verwendet mobilen Drucker', 'nein', 'ja/nein. Dem Benutzer kann bei der Ameldung einen mobilen Drucker definieren auf welchen der Rechungsbon und Bon Vordruck gedruckt wird, wenn der Ausdruck vom mobilen Gerät (Handy, Tablet) aufgerufen wird.', 'handy'=>"nein", 'tablet'=>"nein",)
				);
				
				
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$upKonf=mysql_query("UPDATE konfiguration SET Beschreibung = 'Zur Berechnung des Rabattes braucht das System, EUR gefolgt von einem Leerzeichen gefolgt von einer Zahl und einem weiteren Leerzeichen, im Textfeld. Diese Zeichenfolge muss einmal im Textfeld vorkommen.' WHERE name = 'AUSRUCK_EXTRA_FUSSZEILEN'   ");
			
			if(!$upKonf){
				$resultMsg.="<p>Datenbank Update Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
				$countError++;
			}
			
			else {
				$countUd++;
			}
			
			$checkBenutzer=mysql_fetch_array(mysql_query("SELECT DISTINCT(id) FROM benutzer WHERE ist_admin >= 2"));
			if($checkBenutzer == false){
				$updUser=mysql_query("UPDATE benutzer SET ist_admin = CASE WHEN ist_admin = 0 THEN 1 WHEN ist_admin = 1 THEN 3 END");
				if(!$updUser){
					$resultMsg.="<p>Datenbank benutzer Update Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
					$countError++;
				}
				else $countUd++;
			}
			
			else {$resultMsg.="<p>Benutzer Rechte update übersprungen. </p>";			}
			
			
			
		}
		# upgrade auf 1.3.7 ENDE 
		
		# upgrade auf 1.3.8 BEGINN
		else if($targetV == '1.3.8'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
		
		
		}
		# upgrade auf 1.3.8 ENDE 
		
		# upgrade auf 1.4.0 BEGINN
		else if($targetV == '1.4.0'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$targetTable='products';
			$checkColumn='ist_beilage';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			
			if($colExists == false){			 
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." int(3) DEFAULT 0 AFTER CATEGORY ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
				
				$targetTable_2='categories';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable_2." ADD COLUMN ".$checkColumn." int(3) DEFAULT 0 AFTER anzeige_reihenfolge ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable_2.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable_2." hinzugefügt.</p>";
					
				$targetTable_3='offener_bon';
				$addColumn="ADD COLUMN beilagen_aenderung_minus varchar(255) COLLATE utf8_general_ci DEFAULT ''  NOT NULL AFTER tax_rate,
								ADD COLUMN beilagen_aenderung_plus varchar(255) COLLATE utf8_general_ci DEFAULT '' NOT NULL AFTER beilagen_aenderung_minus";
				$checkColumn="beilagen_aenderung_minus u. beilagen_aenderung_plus";
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable_3." ".$addColumn." ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable_3.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable_3." hinzugefügt.</p>";
			}
			
			
			
			$konf=array(
						array('FUNKTION_KASSENABSCHL_PRODUKTLISTE', 'Kassenabschluss Produkt Liste', 'nein', 'ja/nein. Bei ja wird beim Ausdruck Kassenabschluss eine Liste aller im Kassenabschluss enthaltenen Produkte erstellt. Der Produkte Ausdruck ist unabhängig von Warengruppen auflisten'),
						array('FUNKTION_KASSENABSCHL_CATEGORYLISTE', 'Kassenabschluss Warengruppe Liste', 'ja', 'ja/nein. Bei ja wird beim Ausdruck Kassenabschluss eine Liste aller im Kassenabschluss enthaltenen Warengruppen erstellt. Der Warengruppen Ausdruck ist unabhängig von Produkte auflisten.'),
						
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			

			$updLsBut=mysql_query("UPDATE konfiguration SET konfigtitel = 'Funktionsbutton Liefer- Auftragsschein.', 
					Beschreibung = 'ja/nein. Bei ja wird der Funktionsbutton, Lieferschein bzw. Auftragsschein im rechten oberen Funktionsbutton Container angezeigt.'
					Where name = 'FUNKTION_BUTTON_LIEFERSCHEIN' ");
			if(!$updLsBut){
							$resultMsg.="<p>Datenbank Update Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
			}
			else $countUd++;
			
			$updLsBut=mysql_query("UPDATE konfiguration SET 
					Beschreibung = 'STARTTLS/SSL/TLS... Mailserver SMTP Einstellung Verschlüsselungslevel. '
					Where name = 'EMAIL_SMTP_VERSCHLUESSELUNG' ");
			if(!$updLsBut){
							$resultMsg.="<p>Datenbank Update Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
			}
			else $countUd++;
			

		
		
		}
		# upgrade auf 1.4.0 ENDE 
		
		# upgrade auf 1.4.1 BEGINN
		else if($targetV == '1.4.1'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$targetTable='drucker';
			$checkColumn='ist_a4';

			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;

			if($colExists == false){			
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." varchar(16) COLLATE utf8_general_ci DEFAULT 'nein' AFTER ist_lieferscheindrucker ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
					
			}
			
			$targetTable='offener_bon';
			$checkColumn='article_art_id';

			$col2Exists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			if($col2Exists == false){			
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." int(3) NOT NULL DEFAULT 0 AFTER tax_rate ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
					
					$creatTableArtikelArt=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`artikel_art` ( `id` int( 3 ) NOT NULL AUTO_INCREMENT ,
											`bezeichnung` varchar( 32 ) NOT NULL , `anzeigen` varchar( 8 ) NOT NULL ,
											`reihung` int( 5 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
																	
						if(!$creatTableArtikelArt){
							$countError++;
							$resultMsg.="<p>Datenbank, erstellen artikel_art Table Error. ".mysql_error()."</p>";
						
						}
						else $resultMsg.="<p>Datenbank Table artikel_art erstellt.</p>";
						
						$artArtArray=array(array('Vorspeise', 'ja', '5'), array('Hauptspeise', 'ja', '9'), array('Nachspeise', 'ja', '11') );
						
						for($i=0; $i < sizeof($artArtArray); $i++){
							$insQl=mysql_query("INSERT INTO artikel_art SET bezeichnung = '".$artArtArray[$i][0]."', anzeigen = '".$artArtArray[$i][1]."',
														reihung = '".$artArtArray[$i][2]."' ");
						
						}
					
			
			}
			
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'pdf_a4_rechnung'"))==1) $resultMsg.="";
			else{
					$filename="upgrade\pdf_a4_rechnung_template.sql";
				
					$checkLocation=getenv("HOMEPATH");
					if(preg_match("/users\\\kp_/i", $checkLocation)){
						$command="e:\\Programme\\xampp\\mysql\\bin\\mysql --user=".SQL_USER." --password=".SQL_PW." ".SQL_DB." < ".$filename." ";		
					}
					else {
						$command="c:\\xampp\\mysql\\bin\\mysql --user=".SQL_USER." --password=".SQL_PW." ".SQL_DB." < ".$filename." ";
					}
					
					$output=array();
					
					exec($command, $output, $error_code);
					
					$resultMsg.="<p>Laden von A4 Rechungstemplate -> ".implode(" ", $output).".</p>";
					
					
			}
			
			$konf=array(
						array('SCHRIFT_REPORTS_BILDSCHIRM', 'Bildschirm Schrift Reports', '14px/100% Arial, Helvetica, sans-serif', '12px/100% Arial, Helvetica, sans-serif. Schrifteinstellungen für die Bildschirm Darstellung der Auswertungen/Reports.'),
						array('SCHRIFT_CACHBOOK_BILDSCHIRM', 'Bildschirm Schrift Kassabuch', '12px/100% Arial, Helvetica, sans-serif', '12px/100% Arial, Helvetica, sans-serif. Schrifteinstellungen für die Bildschirm Darstellung dvom Kassabuch.'),
						array('SCHRIFT_AUSDRUCK_REPORTS_PDF', 'Schrift Ausdruck Reports Pdf', 'Arial 12pt', 'Arial 12pt. Schrifteinstellungen für Pdf Ausdruck Reports.'),
						array('AUSDRUCK_RECHNUNG_A4', 'Rechnung Ausdruck A4', 'nein', 'Rechung wird in A4 Format gedruckt. Zusätzliche Einmstellungen: Position Adresse Verkäufer, Ausdruck Logo und Logo Position und Footer Höhe.'),
						array('AUSDRUCK_A4_ADRESS_POSITION', 'Position der Verkäufer Adresse A4', 'R, 80, R', 'Die Verkäufer Adresse kann mit dem ersten Wert L,C,R Rechts, Mitte od Links positioniert werden. Der mittlere Wert enspricht der Blockbreite und kann bei Positonierung unter dem Logo und Ausrichtung Mitte relevant sein. Dabei den Wert auf die gleiche Breite wie die Logo Breite setzen. Der dritte Wert enspricht der Schrift Ausrichtung.'),
						array('AUSDRUCK_A4_LOGO_POSITION', 'Position Logo auf A4 Ausdruck', 'R, 80', 'Die Positionierung kann mit dem ersten Wert L,C,R Rechts, Mitte od Links positioniert werden. Der zweite Wert enspricht der Bildbreite, die Höhe wird aus dem Bild errechnet.'),
						array('AUSDRUCK_A4_FOOTER_HOEHE', 'Ausdruck A4 Höhe Footer', '25', 'Höhe des bei mehrseitigen Ausdruck auf jeder Seite ausgedruckten Fußzeile/Footer.'),
						array('AUSDRUCK_A4_FOOTER_TXT', 'Ausdruck A4 Footer Text', '', 'Bei A4 Rechnung wird dieser Text in der Fußzeile jeder Seite ausgedruckt. Wird der eingegebene Text mit \; getrennt wird ein mehrzeiliger Ausdruck erzeugt.'),
						array('ENABLERKEY_ADMIN_ARTIKEL_ARTEN', 'Admin Speisen-Gänge freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Anlegen, verwalten von Speisen-Gänge für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
						array('ENABLERKEY_BENUTZER_ABRECHNUNG', 'Benutzer Abrechnung freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Benutzer Abrechnung für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben. Benutzer Abrechnung löst einen Ausdruck der Umsätze des angemeldeten Benutzers im offenen Kassenabschluss aus. Ausdruck, wie Kassenabschluss des Benutzers, dabei erfolgt aber kein Kassenabschluss oder ähnliches.'),
						array('DISABLE_BON_MINUS_ANZAHL', 'Bonieren Minus Stückzahl nicht erlauben', 'nein', 'ja/nein. Erlaubt keine minus Stückzahl beim bonieren.'),
						array('AUSDRUCK_ABHOLSCHEIN_GASTRO', 'Abholscheine für Gastro Version', 'nein', 'ja/nein. Bei Ja wird bei Bezahlen ein Abholschein aller bezahlten Artikel, zusammengefasst auf Artikel Name, ja Name gedruckt.'),
						array('SCHRIFT_AUSDRUCK_PDF_A4', 'Schrift Ausdruck A4', 'Arial 12pt', 'Arial 12pt. Schrift und Schriftgröße für den A4 Rechungs Ausdruck. Verfügbare Schriften, Arial, Times, Courier'),
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			$targetTable='products';
			$targetTable2='categories';
			$checkColumn='artikel_art';

			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;

			if($colExists == false){			
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." varchar(32) COLLATE utf8_general_ci DEFAULT '0' AFTER ist_beilage ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
				$addCol2=mysql_query("ALTER TABLE ".$targetTable2." ADD COLUMN ".$checkColumn." varchar(32) COLLATE utf8_general_ci DEFAULT '0' AFTER ist_beilage ");
					if(!$addCol2){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable2.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable2." hinzugefügt.</p>";
					
			}
			
		}# upgrade auf 1.4.1 ENDE 
		
		# upgrade auf 1.4.2 BEGINN
		else if($targetV == '1.4.2'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
		
		}# upgrade auf 1.4.2 ENDE 
		
		
		# upgrade auf 1.4.5 BEGINN
		else if($targetV == '1.4.5'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$targetTable='drucker';
			$checkColumn='druckbreite';

			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;

			if($colExists == false){
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." int(9) NOT NULL DEFAULT 0 AFTER drucker_margin_html ");
					
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
				
				$targetTable='zahlungsart';
				$checkColumn='zahlartFooter';
						
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci 
										DEFAULT '' ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn." in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte ".$checkColumn." im Table ".$targetTable." hinzugefügt.</p>";
					
				$targetTable='offener_bon';
				$checkColumn1='has_childs';
				$checkColumn2='has_parent';
				$checkColumn3='parent_id';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn1." int(3) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn2." int(11) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn3." int(9) NOT NULL DEFAULT 0 AFTER kunden_id ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalten ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", 
								in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte  ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", im Table ".$targetTable." hinzugefügt.</p>";
				
				$targetTable='abgeschlossener_bon_produkte';
				$checkColumn1='has_childs';
				$checkColumn2='parent_id';
				$checkColumn3='isparent_id';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn1." int(3) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn2." int(11) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn3." int(9) NOT NULL DEFAULT 0 AFTER tax_rate  ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalten ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", 
								in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte  ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", im Table ".$targetTable." hinzugefügt.</p>";
				
				$targetTable='abgeschlossener_bon_produkte_frei';
				$checkColumn1='has_childs';
				$checkColumn2='parent_id';
				$checkColumn3='isparent_id';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn1." int(3) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn2." int(11) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn3." int(9) NOT NULL DEFAULT 0 AFTER tax_rate  ");
					if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalten ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", 
								in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte  ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", im Table ".$targetTable." hinzugefügt.</p>";
					
					
				$addTableCombi=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`combiartikel` (`id` int( 16 ) NOT NULL AUTO_INCREMENT ,
					`productid` int( 11 ) NOT NULL , `childvon` int( 9 ) NOT NULL , PRIMARY KEY ( `id` )
					)  ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
					if(!$addTableCombi){
						$resultMsg.= "Erstellen von Datenbanktable combiartikel, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Datenbank Table combiartikel hinzugefügt.</p>";

					
			}
			
			$targetTable='lieferschein';
			$checkColumn1='has_childs';
			$lsColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn1."' " ))) ? true : false;
			
			if($lsColExists == false){				
				$checkColumn2='parent_id';
				$checkColumn3='has_parent';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn1." int(3) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn2." int(11) NOT NULL DEFAULT 0,
									ADD COLUMN ".$checkColumn3." int(9) NOT NULL DEFAULT 0 AFTER tax_rate  ");
				
				if(!$addCol){
						$resultMsg.= "Erstellen von Datenbankspalten ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", 
								in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
					}
					else $resultMsg.="<p> Spalte  ".$checkColumn1.", ".$checkColumn2.", ".$checkColumn3.", im Table ".$targetTable." hinzugefügt.</p>";
			
			
			}
			
			$targetTable='products';
			$checkColumn='rabattierbar';
			$cColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			
			if($cColExists == false){
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." int(3) NOT NULL DEFAULT 0 AFTER NEGATIVEPRICE");
				
				if(!$addCol){
					$resultMsg.= "Erstellen von Datenbankspalten ".$checkColumn.", in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn.", im Table ".$targetTable." hinzugefügt.</p>";			
			}

			$konf=array(array('KUNDEN_UNTERSCHRIFT_FOOTER', 'Fußzeile Kundenunterschrift', 'nein', 'ja/nein. Ist diese Funktion freigeben wird im Bon Fußzeilenbereich ein Platz für eine Kundenunterschrift freigehalten und mit Text zb. Kundenunterschrift: gedruckt. Der Text zb die Anzahl der Zeilen wird im Menüpunkt Zahlungsarten in der letzten Spalte eingegeben.'),
						array('UHRZEIT_AUSBLENDEN', 'Uhrzeit Ausblenden', 'nein', 'ja/nein. Ist diese Funktion auf ja gesetzt wird die Uhrzeit im Gesamten System nicht aufgezeichnet bzw. verwendet. Die Funktion darf nur bis 2016 verwendet werden.  '),
						array('ENABLERKEY_ADMIN_COMBIARTIKEL', 'Admin Combiartikel freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Combiartikel Anlegen, für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben.  '),
						array('KASSENABSCHLUSS_STORNOS_AUSWEISEN', 'Kassenabschluss Stornos Ausweisen', 'ja', 'ja/nein. Im Kassenabschluiss werden Stornos gedruckt. Ist die Option Kassenabschluss Produkt Liste ebenfalls gesetzt, werden zwei Gruppen, einmal nach Benutzer und einmal nach Artikel/Produkte, ausgegeben. Wird nur diese Option, ohne die Produktoption werden die Stornos gruppiert nach Benutzer gedruckt.'),
						array('XML_CATEGORIE_DISPLAYNAME', 'Anzeigename für XML Warengruppe', 'Warengruppe Fremdsystem', 'ja/nein. Werden Buchungen über ein Fremdsystem boniert, werden diese einer dafür angelegten Warengruppe zugeordnet. Der hier eingegebene Name erscheint in den jeweiligen Ausgaben.'),
			
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
		
		}
		# upgrade auf 1.4.5 ENDE 
		
		
		# upgrade auf 1.46 BEGINN
		else if($targetV == '1.46'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
						
			
			$targetTable='combiartikel';
			$checkColumn='print';
			$checkColumn_2='variableAufteilung';
			$cColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			
			if($cColExists == false){
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." int(3) NOT NULL DEFAULT 0 AFTER childvon,
										ADD COLUMN ".$checkColumn_2."  DECIMAL( 12,8 ) NOT NULL DEFAULT 0 ");
				
				if(!$addCol){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn.", in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn.", im Table ".$targetTable." hinzugefügt.</p>";
				
				$targetTable1='offener_bon';
				$checkColumn1='childPrint';
				$addCol1=mysql_query("ALTER TABLE ".$targetTable1." ADD COLUMN ".$checkColumn1." int(3) NOT NULL DEFAULT 0 AFTER has_parent");
				if(!$addCol1){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn1.", in Table ".$targetTable1.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn1.", im Table ".$targetTable1." hinzugefügt.</p>";
				
				$targetTable2='abgeschlossener_bon_produkte';
				$checkColumn2='childPrint';
				$addCol2=mysql_query("ALTER TABLE ".$targetTable2." ADD COLUMN ".$checkColumn2." int(3) NOT NULL DEFAULT 0 AFTER parent_id");
				if(!$addCol2){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn2.", in Table ".$targetTable2.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn2.", im Table ".$targetTable2." hinzugefügt.</p>";
				
				$targetTable3='abgeschlossener_bon_produkte_frei';
				$checkColumn3='childPrint';
				$addCol3=mysql_query("ALTER TABLE ".$targetTable3." ADD COLUMN ".$checkColumn3." int(3) NOT NULL DEFAULT 0 AFTER parent_id");
				if(!$addCol3){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn3.", in Table ".$targetTable3.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn3.", im Table ".$targetTable3." hinzugefügt.</p>";
				
				$targetTable4='lieferschein';
				$checkColumn4='childPrint';
				$addCol4=mysql_query("ALTER TABLE ".$targetTable4." ADD COLUMN ".$checkColumn4." int(3) NOT NULL DEFAULT 0 AFTER parent_id");
				if(!$addCol4){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn4.", in Table ".$targetTable4.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn4.", im Table ".$targetTable4." hinzugefügt.</p>";		
					

				$targetTable5='products';
				$checkColumn5='combiVariableAufteilung';
				$addCol5=mysql_query("ALTER TABLE ".$targetTable5." ADD COLUMN ".$checkColumn5." DECIMAL( 12.8 ) NOT NULL DEFAULT 0 ");
				if(!$addCol5){
					$resultMsg.= "Erstellen von Datenbankspalte ".$checkColumn5.", in Table ".$targetTable5.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn5.", im Table ".$targetTable5." hinzugefügt.</p>";		
			}
			
			$updPreiseingabe=mysql_query("UPDATE konfiguration SET wert = 'ja' WHERE name = 'PREISEINGABE' ");
			if(!$updPreiseingabe){
				$resultMsg.= "<p>Update von Datensatz Preiseingabe, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else {
				$countUd++;
			}
			

			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'benutzer_aktiv' "))!=1){
				$createT=mysql_query("CREATE TABLE `sitpos`.`benutzer_aktiv` (`id` int( 11 ) NOT NULL AUTO_INCREMENT , `user_id` int( 9 ) NOT NULL ,
											`user_ip` varchar( 32 ) CHARACTER SET utf8 NOT NULL , `login_time` datetime NOT NULL , `logoff_time` datetime NOT NULL ,
											 `last_active` datetime NOT NULL , `session_id` varchar( 64 ) CHARACTER SET utf8 NOT NULL , 
											 PRIMARY KEY ( `id` ) )  ENGINE = InnoDB DEFAULT CHARSET = utf8 ");
											
				if(!$createT){
					$resultMsg.= "<p>Anlegen von Table benutzer_aktiv, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
					$countError++;
				}
				
				else $resultMsg.= "<p>Table benutzer_aktiv angelegt.</p>";
				
				$createT2=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`license_encrypted` ( `license` varchar( 255 ) NOT NULL ,
										`erstellt` datetime NOT NULL , PRIMARY KEY ( `license` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8;");
				if(!$createT2){
					$resultMsg.= "<p>Anlegen von Table license_encrypted, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
					$countError++;
				}

				else $resultMsg.= "<p>Table license_encrypted angelegt.</p>";
				
				
				$targetTable='abgeschlossener_bon';
				$checkColumn='aktiv_user';
				
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." INT( 3 ) NOT NULL DEFAULT 0 ");
				
				if(!$addCol){
					$resultMsg.= "<p> Erstellen von Datenbankspalte ".$checkColumn.", in Table ".$targetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn.", im Table ".$targetTable." hinzugefügt.</p>";	
				
		
			}
			
			$xTargetTable='categories';
			$cCheckColumn='anzeigen';
			$xColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$xTargetTable." LIKE '".$cCheckColumn."' " ))) ? true : false;
			if($xColExists == false){
				$addColX=mysql_query("ALTER TABLE ".$xTargetTable." ADD COLUMN ".$cCheckColumn." tinyint(1) NOT NULL DEFAULT 1 AFTER anzeige_reihenfolge ");
				
				if(!$addColX){
					$resultMsg.= "Erstellen von Datenbankspalte ".$cCheckColumn.", in Table ".$xTargetTable.", fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$cCheckColumn.", im Table ".$xTargetTable." hinzugefügt.</p>";
			
			}
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'license_violation' "))!=1){
			
				$creatTableLicVio=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`license_violation` ( `id` int( 16 ) NOT NULL AUTO_INCREMENT ,
											`type` varchar( 32 ) CHARACTER SET utf8 NOT NULL , `dtime` datetime NOT NULL ,
											`detail` varchar( 64 ) CHARACTER SET utf8 NOT NULL ,
											PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8");
				if(!$creatTableLicVio){
						$resultMsg.= "Erstellen von Table license_violation, fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
						$countError++;
				}
				else $resultMsg.="<p> Table  license_violation angelegt.</p>";
			}
			
			$konf=array(array('BEILAGEN_KACHEL_HOEHE', 'Button Kachel Beilagen', '35', 'Einheit px. Button/Kachel Höhe bzw. Breite Beilagen.'),
								array('BEILAGEN_KACHEL_BREITE', 'Button Kachel Beilagen', '75', 'Einheit px. Button/Kachel Höhe bzw. Breite Beilagen.'),
								array('AUSDRUCK_A4_DOWNLOAD', 'Ausdruck A4 in Browser Fenster', 'nein', 'ja/nein, wird diese Option gesetzt, wird der A$ Ausdruck im Browser Fenster geöffnet.'), 
								array('ENABLERKEY_BENUTZER_FINANZEXPORT', 'Finanz Kontroll Export freigeben', '0', 'ja/nein. Damit wird der Menüpunkt, Benutzer Abrechnung für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben. Dieser Menüpunkt ermöglicht dem jeweiligen Benutzer einen Datenexport für eine eventuell Finanzamts Kontrolle.'),
								array('AUSDRUCK_RECHNUNGSBON_UNTERDRUECKEN', 'Rechnung Bon Ausdruck unterdrücken', 'nein', 'ja/nein. Ausdruck vom Rechnungs Bon erfolgt nicht automatisch. Bon Nachdrucken bleibt aktiv.')
			
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
		}
		
		# upgrade auf 1.46 ENDE 
		
		
		# upgrade auf 1.47 BEGINN 
		
		else if($targetV == '1.47'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			#Kundennummer; Adressnummer;Index;Titel;Name1;Name2;Sachbearbeiter;Strasse 1;Strasse 2;Plz;Ort;Land;Anrede;Telefon1;Telefon2;Telefax;GebTag;GebMon;GebJahr
			#id; name, adresse, plz, ort, land
			
			$targetTable='kunden';
			
			$checkColumn='kundennummer';
			$checkColumn2='adressnummer';
			$checkColumn2a='anrede';
			$checkColumn3='titel';
			$checkColumn4='vorname';
			$checkColumn5='nachname';
			$checkColumn6='sachbearbeiter';
			$checkColumn7='strasse1';
			$checkColumn8='strasse2';
			$checkColumn9='telefon1';
			$checkColumn10='telefon2';
			$checkColumn10a='email';
			$checkColumn11='fax';
			$checkColumn12='geburtstag';
			
			$cColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
	
			if($cColExists == false){
				$changCol=mysql_query("ALTER TABLE `kunden` CHANGE `name` ".$checkColumn5." VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER Firma,
									CHANGE `adresse` `strasse1` VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn5.",
								ADD  COLUMN ".$checkColumn." VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER id,
								ADD  COLUMN ".$checkColumn2."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER  ".$checkColumn.",
								ADD  COLUMN ".$checkColumn2a."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER Firma,
								ADD  COLUMN ".$checkColumn3."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn2a.",
								ADD  COLUMN ".$checkColumn4."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn3.",
								ADD  COLUMN ".$checkColumn6."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn5.",
								ADD  COLUMN ".$checkColumn8."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn7.",
								ADD  COLUMN ".$checkColumn9."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER Land,
								ADD  COLUMN ".$checkColumn10."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn9.",
								ADD  COLUMN ".$checkColumn10a."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn10.",
								ADD  COLUMN ".$checkColumn11."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn10a.",
								ADD  COLUMN ".$checkColumn12."  VARCHAR( 75 ) CHARACTER SET utf8 COLLATE utf8_general_ci  NOT NULL DEFAULT '' AFTER ".$checkColumn11." ");
																
				if(!$changCol){
					$resultMsg.= "Erweitern von Datenbantable ".$targetTable." fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error();
					$countError++;
				}
				else $resultMsg.="<p>Datenbank Table ".$targetTable.", Spalten geändert und hinzugefügt.</p>";
			
			}			
					
		}
		# upgrade auf 1.47 ENDE 
		

		# upgrade auf 1.50 BEGINN 
		
		else if($targetV == '1.50'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;

			$konf=array(array('ENABLERKEY_BENUTZER_MONATSBELEG', 'Monatsbeleg erstellen freigeben', '2', 'ja/nein. Damit wird der Menüpunkt für Ein- Auszahlung für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben.'),
						array('ENABLERKEY_SIGNATURDATEN_AUSDRUCK', 'Signaturdaten ausdrucken freigeben', '3', 'ja/nein. Damit wird auf der Funktionsseite Monatsbeleg erstellen die Funktion zum ausdrucken der Signaturdaten freigegeben. ACHTUNG es wird auch der Verschlüsselungscode mit welchem die Umsätze auf den Bons \(QR Code\) verschlüsselt werden ausgedruckt.'),
						array('DISPLAY_DEP_SIGN_ERROR', '', 'ja', 'ja/nein. Wird im Konfigurations Gui nicht angezeigt. Default als Anzeigen ja gesetzt, kann beim Dialog schließen auf Nein gesetzt werden und wird beim Kassenöffnen wieder auf ja gesetzt.'),
						array('REFERENCE_BON_HOEHE', 'Auftrag Referenz Bon Bonhöhe (mm)', '10', 'Eingabe Zahl in mm. Bon Höhe des Referenz Bons ohne Margin oben u. unten (Pruzereizettel). Getestete Werte:9 od. 10 mm, Ref-Offset 2, Margin Oben 1, Margin Unten 2, Font size 22; 18 od 19 mm, Ref-Offset 1, Margin Oben 5, Margin Unten 5, Font size 26; 20 mm, Ref-Offset 1, Margin Oben 16, Margin Unten 0, Font size 26.'),
						array('REFERENCE_BON_SCHRIFT_GROESSE', 'Auftrag Referenz Bon Schriftgröße (pt)', '22', 'Eingabe Zahl in pt. Damit wird die Schrift größe in pt Point, für den Referenzbon (Putzereizettel) gesetzt. Dies enspricht der Größer der Referenz Nr. auf dem Bon, die restliche Schriftgröße auf diesem Bon ist halb so groß.'),
						array('REFERENCE_BON_MARGIN_TOP', 'Auftrag Referenz Bon Margin oben (mm)', '1', 'Eingabe Zahl in mm. Einstellen vom oberen Abstand, Schnitt zu Druckbeginn. Siehe Auftrag Referenz Bon Bonhöhe. '),
						array('REFERENCE_BON_MARGIN_BOTTOM', 'Auftrag Referenz Bon Margin unten (mm)', '2', 'Eingabe Zahl in mm. Einstellen vom unteren Abstand Druckbild Ende zum Schnitt. Siehe Auftrag Referenz Bon Bonhöhe.'),
						array('AUFTRAGSSCHEIN_BENENNUNG', 'Auftragsschein Benennung', 'Auftragsschein: ', 'Text. Funktion Druckt einen Auftragsschein wenn Auftragschein bei Rechung freigeschaltet ist. Bezeichnung welche auf dem Ausdruck vor der laufenden Nummer gedruckt wird. z.B Auftragsschein Nr:'),
						array('REFERENCE_BON_QTY_OFFSET', 'Refernezbon Offset (Anz)', '2', 'Zahl. Um Refenzbons in ca. 1cm Höhe drucken zu können (unterhlab der vom Drucker möglichen minimum Höhe) werden die Schnitte und Druckinhalten zueinader verschoben. Diese Zahl bestimmt die Anzahl der Verschiebung.'),
						array('KUNDENANZEIGE_COM_PORT', 'Kundenanzeige Com Port', 'COM6:', 'Eingabe Text  z.B. COM6: vom verwendeten Com Port.')
			
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
			$creatTableFinalBons=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`abschluss_belege` ( `id` int( 5 ) NOT NULL AUTO_INCREMENT , 
														`beleg_kennung` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
														`bon_id` int( 11 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci; ");
											
			if(!$creatTableFinalBons) $resultMsg.= "<p>Datenbank Error, Fehler bei create table abschluss_belege. </p>".mysql_error();		

					
			$targetTable='dep';
			$checkColumn='umsatz_zaehler_aes';
			$checkColumn2='qr_string';
			$checkColumn3='signjws';
			$cColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			
			if($cColExists == false){
				$addCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." VARCHAR( 255 ) CHARACTER SET utf8 
									COLLATE utf8_general_ci NOT NULL AFTER `betr_satz_besonder`,
									ADD COLUMN ".$checkColumn2." TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
									ADD COLUMN ".$checkColumn3." TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
									
				if(!$addCol){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$checkColumn." oder ".$checkColum2.", in Table ".$targetTable.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumn." und ".$checkColumn2." , im Table ".$targetTable." hinzugefügt.</p>";
				
				$alterT=mysql_query("ALTER TABLE `konfiguration_sitpos` CHANGE `wert` `wert` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
				
				if(!$alterT){
					$resultMsg.="<p>Ändern der Spaltenlänge Wert im Table konfiguration_sitpos fehlgeschlagen. ".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.="<p>Spaltenlänge Wert im Table konfiguration_sitpos auf 255 geändert. </p>";
					$countUd++;
				}				
			
			}
			
			
			$targetTableLs='lieferschein_referenz';
			$checkColumnLs='disable_refbon_print';
			$cColExistsLs = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTableLs." LIKE '".$checkColumnLs."' " ))) ? true : false;
			
			if($cColExistsLs == false){
				$addColLs=mysql_query("ALTER TABLE ".$targetTableLs." ADD COLUMN ".$checkColumnLs." INT( 3 ) NOT NULL DEFAULT '0' ");
				
				if(!$addColLs){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$checkColumnLs.", in Table ".$targetTableLs.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumnLs.", im Table ".$targetTableLs." hinzugefügt.</p>";
				
				$targetTableLs2="lieferschein";
				$checkColumnLs2="ref_id";
				$addColLs2=mysql_query("ALTER TABLE ".$targetTableLs2." ADD COLUMN ".$checkColumnLs2." INT( 11 ) NOT NULL DEFAULT 0 AFTER ID ");
				
				if(!$addColLs2){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$checkColumnLs2.", in Table ".$targetTableLs2.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else {
				
					$resultMsg.="<p> Spalte  ".$checkColumnLs2.", im Table ".$targetTableLs2." hinzugefügt.</p>";
					$getRef=mysql_query("SELECT id, lieferschein_id FROM lieferschein_referenz");
					$errorC=0; 
					while($refRow=mysql_fetch_array($getRef)){
						$upd=mysql_query("UPDATE lieferschein SET ref_id = ".$refRow['id']." WHERE lieferschein_id = ".$refRow['lieferschein_id']." ");
						if(!$upd) $errorC++;
					}
				}
				
				if($errorC > 0) $resultMsg.= "<p>Beim übertragen der Lieferschein id\'s sind ".$errorC." Fehler aufgetretten.</p>";
				
				$targetTablePr='products';
				$targetTableCat='categories';
				$addColumnPr='anz_refbons';
				$addColumnCat='anz_refbons';
				$addColPr=mysql_query("ALTER TABLE ".$targetTablePr." ADD COLUMN ".$addColumnPr." VARCHAR( 5 ) NOT NULL DEFAULT '' ");
				if(!$addColPr){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$addColumnPr.", in Table ".$targetTablePr.", 
						fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$addColumnPr.", im Table ".$targetTablePr." hinzugefügt.</p>";
				
				$addColCat=mysql_query("ALTER TABLE ".$targetTableCat." ADD COLUMN ".$addColumnCat." VARCHAR( 5 ) NOT NULL DEFAULT '' ");
				if(!$addColCat){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$addColumnCat.", in Table ".$targetTableCat.", 
						fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$addColumnCat.", im Table ".$targetTableCat." hinzugefügt.</p>";
			
			}
			
			$alterKonfigTxt=mysql_query("UPDATE konfiguration SET konfigtitel = REPLACE (konfigtitel, 'Lieferschein', 'Auftragsschein'), 
									Beschreibung = 'ja/nein. Diese Funktion druckt einen Auftragsschein bei Rechnung erstellen (Abgeschlossener Bon).'
									WHERE name = 'LIEFERSCHEINDRUCK_BEI_RECHNUNG'");
			if(!$alterKonfigTxt){
				$resultMsg.="<p>Textändern in Konfiguration LIEFERSCHEINDRUCK_BEI_RECHNUNG fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Textändern in Konfiguration LIEFERSCHEINDRUCK_BEI_RECHNUNG ausgeführt.</p>";
			
			$alterKonfigTxt2=mysql_query("UPDATE konfiguration SET konfigtitel = 'Lieferschein Benennung', wert = 'Lieferschein: '
									WHERE name = 'LIEFERSCHEIN_BENENNUNG'");
			if(!$alterKonfigTxt2){
				$resultMsg.="<p>Textändern in Konfiguration LIEFERSCHEIN_BENENNUNG fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Textändern in Konfiguration LIEFERSCHEIN_BENENNUNG ausgeführt.</p>";
					
			$alterKonfigTxt3=mysql_query("UPDATE konfiguration SET konfigtitel = 'Funktionsbutton Lieferschein', Beschreibung = 'ja/nein. Bei ja wird der Funktionsbutton, Lieferschein im rechten oberen Funktionsbutton Container angezeigt.'
									WHERE name = 'FUNKTION_BUTTON_LIEFERSCHEIN'");
			if(!$alterKonfigTxt3){
				$resultMsg.="<p>Textändern in Konfiguration FUNKTION_BUTTON_LIEFERSCHEIN fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Textändern in Konfiguration FUNKTION_BUTTON_LIEFERSCHEIN ausgeführt.</p>";
			
			$alterKonfigTxt4=mysql_query("UPDATE konfiguration SET Beschreibung =  REPLACE (Beschreibung, 'setzen sie eine ', 'setzen sie den ')
									WHERE name = 'AUSDRUCK_EXTRA_FUSSZEILE_AUFTRAG_TEXT'");
			if(!$alterKonfigTxt4){
				$resultMsg.="<p>Textändern in Konfiguration Auftragsschein Beschr. Txt fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Textändern in Konfiguration Auftragsschein Beschr. Txt ausgeführt.</p>";

			$alterKonfigTxt5=mysql_query("ALTER TABLE `auditing` CHANGE `geaentertaufwert` `geaentertaufwert` VARCHAR( 300 ) 
										CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
			if(!$alterKonfigTxt5){
				$resultMsg.="<p>Änderung auditing, geändertauf auf Varchar 300 fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Änderung auditing, geändertauf auf Varchar 300 ausgeführt.</p>";
			
			$alterKonfigTxt6=mysql_query("ALTER TABLE `auditing` CHANGE `ausgangswert` `ausgangswert` VARCHAR( 300 ) 
										CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL");
			if(!$alterKonfigTxt6){
				$resultMsg.="<p>Änderung auditing, ausgangswert auf Varchar 300 fehlgeschlagen. Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Änderung auditing, ausgangswert auf Varchar 300 ausgeführt.</p>";
			
			
			$targetTableNb='abgeschlossener_bon';
			$checkColumnNb='dep_nullbeleg';
			$targetTableAbschlB='abschluss_belege';
			$checkColumnAbschlB='abschluss_monat';
			$cColExistsNb = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTableNb." LIKE '".$checkColumnNb."' " ))) ? true : false;
			
			if($cColExistsNb == false){
				$addColNb=mysql_query("ALTER TABLE ".$targetTableNb." ADD COLUMN ".$checkColumnNb." INT( 3 ) NOT NULL DEFAULT '0' ");
				
				if(!$addColNb){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$checkColumnNb.", in Table ".$targetTableNb.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else $resultMsg.="<p> Spalte  ".$checkColumnNb.", im Table ".$targetTableNb." hinzugefügt.</p>";
				
				$addColAbschlB=mysql_query("ALTER TABLE ".$targetTableAbschlB." ADD COLUMN ".$checkColumnAbschlB." DATE NOT NULL ");
				
				if(!$addColAbschlB){
					$resultMsg.= "<p>Erstellen von Datenbankspalte ".$checkColumnAbschlB.", in Table ".$targetTableAbschlB.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;				
				}
				else $resultMsg.="<p> Spalte  ".$checkColumnAbschlB.", im Table ".$targetTableAbschlB." hinzugefügt.</p>";
				
			}
			
			$alterT=mysql_query("ALTER TABLE `abschluss_belege` CHANGE `beleg_kennung` `beleg_kennung` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
			if(!$alterT){
				$resultMsg.= "<p>Ändern von Table Abschluss Belege fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
				$countError++;
			}
			
			$delDateF=mysql_query("DELETE FROM konfiguration WHERE name = 'UHRZEIT_BONAUSDRUCK_UNTERDRUECKEN' ");
			
				
			if(strtolower(KUNDENANZEIGE_VERWENDEN) == 'ja'	){
				$curDisplayType=KUNDENANZEIGE_TYP;
				$updDispl=mysql_query("UPDATE konfiguration SET wert = 'aus', 1024x600 = 'aus', 1024x768 = 'aus', 1280x800 = 'aus',
												handy = 'aus', tablet = 'aus' WHERE name = 'KUNDENANZEIGE_TYP'");
				
				$updDispl2=mysql_query("UPDATE konfiguration SET ".DEFAULT_AUFLOESUNG." = '".$curDisplayType."' WHERE name = 'KUNDENANZEIGE_TYP'");
				
				if(!$updDispl || !$updDispl2){
					$resultMsg.= "<p>Datenbank update Fehler beim setzen der Kundenanzeige entsprechend dem ursprünglichen Wert.". __Line__ .". ".mysql_error()."</p>";
						$countError++;	
				}
				else{
					$resultMsg.= "<p>Kundenanzeige für ".DEFAULT_AUFLOESUNG." auf ".$curDisplayType.", restliche Auflösungen auf 'aus', gesetzt.</p>";
					$countUd++;
				}
			}
			else {
				$updDispl=mysql_query("UPDATE konfiguration SET wert = 'aus', 1024x600 = 'aus', 1024x768 = 'aus', 1280x800 = 'aus',
												handy = 'aus', tablet = 'aus' WHERE name = 'KUNDENANZEIGE_TYP'");
				if(!$updDispl){
					$resultMsg.= "<p>Datenbank update Fehler beim setzen der Kundenanzeige auf 'aus'.". __Line__ .". ".mysql_error()."</p>";
						$countError++;	
				}
				else{
					$resultMsg.= "<p>Kundenanzeige für alle Auflösungen auf 'aus', gesetzt.</p>";
					$countUd++;
				}
			}
			
						
						
		}
		
		# upgrade auf 1.50 ENDE 
		
		# upgrade auf 1.51 BEGINN 
		else if($targetV == '1.51'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
		}
		# upgrade auf 1.51 ENDE
		
		# upgrade auf 1.60 BEGINN 
		
		else if($targetV == '1.60'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			$konf=array(array('GUTSCHEIN_KARTE_FUNKTION', 'Gutschein Karte Funktion', 'nein', 'ja/nein. Aktiviert die Gutschein Karte Funktion und zeigt den Gutschein Funktions Button an. Voraussetzung dafür ist das Lizenzmodul Gutschein Karte.'),
				array('GUTSCHEIN_NR_FOCUS', 'Gutschein Nr. Feld Fokus', 'nein', 'ja/nein. Ist das Gutschein Modul aktiviert und diese Option freigegeben, wird der Fokus im Bezahleingabemodal auf Gutschein Nr. gesetzt, übersteuert eventuell Standart Zahlungsarten.'),
				array('GUTSCHEIN_STANDARD_STEUERSATZ', 'Gutschein Standard Steuersatz', '0.0000', 'Option Auswählen. Wird beim anlegen eines Gutscheines kein anderer Wert ausgewählt, beziehungsweise wird der Gutschein im Bonieren Fenster angelegt, wird dieser Wert als Gutschein Steuersatz gewählt.'),			
				array('ENABLERKEY_ADMIN_GUTSCHEINE', 'Admin Gutscheine', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Gutschein verwalten für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
				array('GUTSCHEIN_PRINT_NONE_PREFIX', 'Vorgegebene Gutscheine anlegen drucken', 'ja', 'ja/nein. Gutschein angelegt/aufgeladen bei dem die Gutschein Nummer nicht vom Kassensystem vergeben wird (vorgegebene Gutscheinkarten). Ist die Option gesetzt wird dieser gedruckt.'),
				array('GUTSCHEIN_PRINT_PAYMENT_CONFIRM', 'Gutschein Zahlungsbestätigung drucken', 'ja', 'ja/nein. Zahlungsbestätigung drucken wenn Gutschein angelegt oder aufgeladen wird.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$updDispl=mysql_query("INSERT INTO konfiguration SET name = 'KUNDENANZEIGE_COM_PORT', wert = 'COM6:', konfigtitel = 'Kundenanzeige Com Port', 
						Beschreibung = 'Eingabe Text  z.B. COM6: vom verwendeten Com Port.'");
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'gutscheine' "))!=1){
				
				$creatT=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`gutscheine` (
								`gs_id` int( 11 ) NOT NULL AUTO_INCREMENT, `gutschein_nr` varchar( 64 ) NOT NULL , `gutschein_erstellt` datetime NOT NULL, 
								`gutschein_aufgeladen` datetime NOT NULL, `betrag` decimal( 14, 8 ) NOT NULL, `tax` decimal (10,4) NOT NULL, 
								`kunden_id` int( 11 ) NOT NULL , `gesperrt` int( 3 ) NOT NULL ,
								PRIMARY KEY ( `gs_id` )) ENGINE = InnoDB CHARSET = utf8 COLLATE = utf8_unicode_ci ");
				if(!$creatT){
					$resultMsg.= "<p>Datenbank create Tabel Gutscheine Fehler.". __Line__ .". ".mysql_error()."</p>";
					$countError++;
				}
				else {
					$resultMsg.= "<p>Datenbank Tabel Gutscheine erstellt.</p>";
				}
				
				$creatT2=mysql_query("CREATE TABLE `sitpos`.`gutschein_buchungen` (`id` int( 11 ) NOT NULL AUTO_INCREMENT,`gs_id` int( 11 ) NOT NULL,
										`bon_id` int( 11 ) NOT NULL,`kassa_abschluss_id` int( 11 ) NOT NULL, `verkaufer_id` int( 5 ) NOT NULL,
										`rechnung_betrag` decimal( 14, 8 ) NOT NULL, `betrag_geladen` decimal( 14, 8 ) NOT NULL, 
										`datum_buchung` datetime NOT NULL, `verkaufsart` varchar(64) NULL DEFAULT '', `time_stamp` TIMESTAMP NOT NULL, 
										PRIMARY KEY ( `id` ) ) ENGINE = InnoDB CHARSET = utf8 COLLATE = utf8_unicode_ci ");
				if(!$creatT2){
					$resultMsg.= "<p>Datenbank create Tabel Gutscheine geladen Fehler.". __Line__ .". ".mysql_error()."</p>";
					$countError++;
				}
				else {
					$resultMsg.= "<p>Datenbank Tabel Gutscheine geladen erstellt.</p>";
				}
			
			}

			$modOpenBon=mysql_query("ALTER TABLE abgeschlossener_bon_produkte MODIFY printname VARCHAR(255) ");
			if(!$modOpenBon){
				$resultMsg.= "<p>Mofifizieren von Datenbankspalte printname, fehlgeschlagen. ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.= "<p>Datenbankspalte printname Länge auf 255 gesetzt. </p>";
		
		}
		
		# upgrade auf 1.60 ENDE 	
		
		# upgrade auf 1.61 BEGINN 
		
		else if($targetV == '1.61'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('PRODUKT_TXT_BUTTON', 'Produkt vordefinierte Text Buttons', 'ja', 'ja/nein. Ist die Option freigegeben, werden im Editieren Fenster Buttons zum Einfügen von vordefinierten Texten in den Produktnamen angezeigt, sofern Texte definiert wurden.'),
					array('REPORT_GESAMTREV_BONDRUCKER', 'Auswertung gesamt Umsatz auf Bondrucker ausgeben', 'ja', 'ja/nein. Ist die Option freigegeben, wird der Report gesamt umsatz auf dem Bondrucker (Rechungsdrucker) ausgegeben.'),
					array('ENABLERKEY_ADMIN_HAPPYHOUR', 'Zeitabhängige Preisprofile freigeben', '1', 'ja/nein. Damit wird der Menüpunkt für Zeitabhängige Preisprofile für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
					array('FUNKTION_BUTTON_BEZAHLEN_EXPRESS_ZAHLART', 'Funktionsbutton, Express bezahlen nach Zahlart', 'nein', 'ja/nein. Funktionsbutton €z einblenden, Bezahlvorgang ohne erscheinen des Bezahl Modal/Popup. Hier ist zusätzlich die Zahlart zu wählen. Funktionsbutton Container, rechts oben.'),
					array('BUTTON_ZUTISCHE_OHNE_DRUCKEN', 'Button, zu Tische ohne Drucken', 'nein', 'ja/nein. Für Gastro Version. Ist diese Option freigegeben erscheint ein zweiter Button zu Tische welcher den Bereitstellungsdruck (Küche/Schank Druck) unterdrückt.', 'handy'=>"ja", 'tablet'=>"ja"),
					array('PRODUCT_DELETE_WRITE_AUDIT', 'Produkt (offner Bon) löschen in Audit schreiben', 'ja', 'ja/nein. Wird ein Produkt im offenen Bon gelöscht wird es in die Datenbank, Audit Tabel geschrieben.'),					
					array('BACKUP_EMAIL_VERSENDEN_KASSENABSCHLUSS', 'Backup nach Kassenabschluss versenden (eMail)', 'nein', 'ja/nein. Ist diese Option gesetzt wird nach Kassenabschluss automatisch ein Backup per eMail versendet. Setzt Autobackup (Datensicherung bei Kassenabschluss) und die entsprechenden eMail Einstellungen voraus.'),
					array('RECHNUNGSSUMME_AUF_BON_SIZE', 'Schriftgröße:', '12', 'keine'),
					array('EDITMODAL_FOCUS', 'Fokus auf, bein öffnen vom Editieren Fenster', 'Produktname', 'Auswahl auf welches Eingabefeld der Fokus beim öffnen des Editierfensters geht.')
			
			);		
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$getKonf=mysql_fetch_array(mysql_query("SELECT konfigtitel FROM konfiguration WHERE name = 'RECHNUNGSSUMME_AUF_BON_FETT' "));
			if($getKonf[0] != 'Fett:'){
				$updA=mysql_query("UPDATE konfiguration SET konfigtitel = 'Fett:', Beschreibung = 'Rechnungssumme auf Bon Ausdruck auf Fett bzw Normal und Schriftgröße setzen.'  WHERE name = 'RECHNUNGSSUMME_AUF_BON_FETT' ");
			}
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'product_add_txt' "))!=1){
				$creatTableAddTxt=mysql_query("CREATE TABLE IF NOT EXISTS `product_add_txt` (
									`id` int( 5 ) NOT NULL AUTO_INCREMENT , `name` varchar( 32 ) NOT NULL ,
									`content` varchar( 255 ) NOT NULL , PRIMARY KEY ( `id` )
									) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci;
				");
				if(!$creatTableAddTxt){
					$resultMsg.= "<p>Datenbank Error, Fehler bei create table Zusatztexte".mysql_error()."</p>";
					$countError++;
				}
				
				else $resultMsg.= "<p>Datenbank Table Zusatztexte angelegt bzw. übersprungen, wenn exist.</p>";
			}
			
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'happyhourprofil' "))!=1){
				$creatTablePreisprof=mysql_query("CREATE TABLE IF NOT EXISTS `sitpos`.`happyhourprofil` (`id` int( 5 ) NOT NULL AUTO_INCREMENT,
									`tag` int( 2 ) NOT NULL , `tagset` int( 2 ) NOT NULL, `von` time NOT NULL DEFAULT '00:00',
									`bis` time NOT NULL DEFAULT '00:00', PRIMARY KEY ( `id` ),
									UNIQUE KEY `tag` ( `tag` ))ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci;");
				if(!$creatTablePreisprof){
					$resultMsg.= "<p>Datenbank Error, Fehler bei create table happyhour profil".mysql_error()."</p>";
					$countError++;
				}
				
				else{
					$resultMsg.= "<p>Datenbank Table happyhour profil angelegt bzw. übersprungen, wenn exist.</p>";
				
					$insTag1=mysql_query("INSERT INTO happyhourprofil SET tag = 0, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag2=mysql_query("INSERT INTO happyhourprofil SET tag = 1, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag3=mysql_query("INSERT INTO happyhourprofil SET tag = 2, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag4=mysql_query("INSERT INTO happyhourprofil SET tag = 3, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag5=mysql_query("INSERT INTO happyhourprofil SET tag = 4, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag6=mysql_query("INSERT INTO happyhourprofil SET tag = 5, tagset = 0, von = '10:00', bis = '16:00'");
					$insTag7=mysql_query("INSERT INTO happyhourprofil SET tag = 6, tagset = 0, von = '10:00', bis = '16:00'");
					
					if(!$insTag1 || !$insTag2  || !$insTag3 || !$insTag4 || !$insTag5 || !$insTag6 || !$insTag7)
						$resultMsg.= "<p>Fehler beim einfügen der Zeit Preis Profil Daten".mysql_error()."<br />Fehler für das upgrade ignoriert.</p>";
					else $resultMsg.= "<p>Zeit Preis Profil Daten eingefügt.</p>";
					
				}
				
				$checkColumn='zeitpreis_netto';
				$checkColumn2='zeitpreis_brutto';
				$checkTable='categories';
				$checkTable2='products';
				
				$dateColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
				if($dateColExists==false){
					$addCol2=mysql_query("ALTER TABLE ".$checkTable." ADD ".$checkColumn2." DECIMAL( 14, 8) DEFAULT 0 ");
					
					if(!$addCol2){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." od ".$checkColumn2." in
							Table ".$checkTable."".mysql_error()."</p>";
						$countError++;
					}
					else $resultMsg.= "<p>Spalten ".$checkColumn." / ".$checkColumn2." in Table ".$checkTable." eingefügt.</p>";
				}
				$dateColExists2 = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable2." LIKE '".$checkColumn." '"))) ? true : false;
				if($dateColExists2==false){
					$addCol3=mysql_query("ALTER TABLE ".$checkTable2." ADD ".$checkColumn." DECIMAL( 14, 8) DEFAULT 0 ");
					$addCol4=mysql_query("ALTER TABLE ".$checkTable2." ADD ".$checkColumn2." DECIMAL( 14, 8) DEFAULT 0 ");
					
					if(!$addCol3 || !$addCol4){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." od ".$checkColumn2." in
							Table ".$checkTable2."".mysql_error()."</p>";
						$countError++;
					}
					else $resultMsg.= "<p>Spalten ".$checkColumn." / ".$checkColumn2." in Table ".$checkTable2." eingefügt.</p>";
				}
				
			}
			
			$checkTableZ='zahlungsart';
			$checkColumnZ='express_zahlart';
			$zahlColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableZ." LIKE '".$checkColumnZ."' "))) ? true : false;
			
			if($zahlColExists==false){
					$addCol5=mysql_query("ALTER TABLE ".$checkTableZ." ADD ".$checkColumnZ." TINYINT(1) DEFAULT 0 AFTER standard");
			
				if(!$addCol5){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnZ." in 
							Table ".$checkTableZ."".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.= "<p>Spalte ".$checkColumnZ." in Table ".$checkTableZ." eingefügt.</p>";
				}
			
			}
			$checkTableGs='gutscheine';
			$checkColumnGs='comment';
			$gsColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableGs." LIKE '".$checkColumnGs."' "))) ? true : false;
			if($gsColExists==false){
				$addCol6=mysql_query("ALTER TABLE ".$checkTableGs." ADD ".$checkColumnGs." varchar(255) 
						CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''");
				if(!$addCol6){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnGs." in 
							Table ".$checkTableGs."".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.= "<p>Spalte ".$checkColumnGs." in Table ".$checkTableGs." eingefügt.</p>";
				}
			}
						
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
			
		
		}
		
		# upgrade auf 1.61 ENDE 
		
		# upgrade auf 1.62 BEGINN 
		else if($targetV == '1.62'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('SEND_AUTOBACKUP_RUNTIMELIMIT', 'Laufzeit Limit für Autobackup Mail (min)', '5', 'Zahl in Minuten. Ist Mail senden für Autobackup zb nach Kassenabschluss gesetzt kann die default Laufzeit von 60 Sekunden zu gering sein. Für das versenden wird dieser Wert temporär verwendet. Eingabe in Minuten. '),
				array('BELEG_EINZELPREIS_KOMMASTELLEN', 'Einzelpreis Kommastellen auf Bon Ausdruck', '2', 'Zahl 1-8. Hier kann die Anzahl der Kommastellen die am Bon für den Einzelpreis ausgegeben werden gesetzt werden. '),
				array('BARCODE_PREISEINGABE_GER_FORMAT', 'Preiseingabe mit Scanner, deutsches Zahlenformat', 'nein', 'ja/nein. Erkennen von Zahlenformat mit Tausenderpunkt und Komma. Wird dieses Format erkannt, wird die Zahl in einen Preis mit Kommapunkt umformatiert.')
			
			);		
			
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTableTx='ein_aus_zahlungen';
			$checkColumnTx='taxrate';
			$tableZa='zahlungsart';
			$columnZa='kassabuch_wirksam';
			$txColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableTx." LIKE '".$checkColumnTx."' "))) ? true : false;
			
			if($txColExists==false){
				$addCol1=mysql_query("ALTER TABLE ".$checkTableTx." ADD ".$checkColumnTx." decimal(10,4) DEFAULT 0 AFTER `zahlung_erfolgt_datum`");
				if(!$addCol1){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnTx." in 
							Table ".$checkTableTx."".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.= "<p>Spalte ".$checkColumnTx." in Table ".$checkTableTx." eingefügt.</p>";
				}
				$addCol2=mysql_query("ALTER TABLE ".$tableZa." ADD ".$columnZa." tinyint(1) DEFAULT 0 AFTER `einnahmen_wirksam`");
				if(!$addCol2){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$columnZa." in 
							Table ".$tableZa." ".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.= "<p>Spalte ".$columnZa." in Table ".$tableZa." eingefügt.</p>";
				}
			}
			
			$checkTable='drucker';
			$checkColumn='ip_adressen';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			
			if($colExists==false){
				$addCol3=mysql_query("ALTER TABLE ".$checkTable." ADD ".$checkColumn." varchar(255) 
						CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT ''");
				if(!$addCol3){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}
			
			}
				
				
				
				##############  ganz zum schluss
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		
		}
		
		# upgrade auf 1.62 ENDE 
		# upgrade auf 1.63 BEGINN 
		else if($targetV == '1.63'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
		mysql_query("START TRANSACTION");
			$konf=array(array('MEHRFACH_EAN_QUERY', 'Mehrfach Ean/Barcode Abfrage', 'nein', 'ja/nein. Ist diese Option gesezt können für ein Produkt mehrere Ean- Barcodes hinterlegt sein. Die Codes müssen mit Komma gefolgt von einem Leerzeichen (, ) getrennt in die Datenbank eingetragen werden.'),
					array('KASSENID_AUF_BON', 'Kassen ID auf Bon ausdrucken', 'nein', 'ja/nein. Ist diese Option gesetzt, wird die Kassenid auf dem Bon ausgedruckt.'),
					array('CE_BUTTON_TEXT', 'CE Button Text', 'CE', 'Text. Diese Eingabe erscheint im der Bonieren Maske als Text im CE (löschen) Button'),
					array('BEZAHLEN_BUTTON_TEXT', 'Bezahlen Button Text', '=', 'Text. Diese Eingabe erscheint im der Bonieren Maske als Text im Bezahlen (ursprünglich bzw. Grundeinstellung =) Button')
			);
			for($i=0; $i< sizeof($konf); $i++){
			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			#auftragsschein_nr
			
			$checkTable='abgeschlossener_bon';
			$checkColumn='auftragsschein_nr';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			
			if($colExists==false){
				$addCol3=mysql_query("ALTER TABLE ".$checkTable." ADD COLUMN ".$checkColumn." INT(11) NOT NULL DEFAULT 0");
				if(!$addCol3){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}
			
			}
				
			
			
			
			# zuück zu tische ohne Drucken Button Funktion auf nein setzen.

				$setKonfig=mysql_query("UPDATE konfiguration SET wert = 'nein' WHERE name = 'BUTTON_ZUTISCHE_OHNE_DRUCKEN' ");
				if(!$setKonfig){
					$resultMsg.="<p>Datenbank Error, aendern von Konfiguration, zu Tische ohne Drucken Zeile ". __Line__ ." ".mysql_error()."</p>";
					$countError++;
				}
				else{
					$resultMsg.="<p>Konfig Eintrag: Button, Zurück zu Tische ohne Drucken auf nein gesetzt.</p>";
					$countUd++;
				}
			
			
			##############  ganz zum schluss
		if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		
		}
		
		# upgrade auf 1.63 ENDE 
		# upgrade auf 1.64 BEGINN 
		else if($targetV == '1.64'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			$konf=array(array('GASTRO_NURAUF_EIGENEN_TISCH', 'Gastro Benutzer nur auf eröffneten Tisch bonieren', 'nein', 'ja/nein. Ist diese Option gesezt kann der Benutzer, ausgenommen Super user, Level 3, nur auf freie und von ihm eröffnete Tische bonieren.'),
						array('KASSENABSCHLUSS_NUR_BEI_OFFENER_BON_LEER', 'Kassenabschluss bei offenen Bon nicht möglich', 'nein', 'ja/nein. Ist diese Option gesezt lässt das System keinen Kassenabschluss zu wenn offen Bons bzw. Tische existieren.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTable='offener_bon';
			$checkColumn='benutzer_id';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			
			if($colExists==false){
				$addCol3=mysql_query("ALTER TABLE ".$checkTable." ADD COLUMN ".$checkColumn." INT(11) AFTER beilagen_aenderung_plus ");
				if(!$addCol3){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}
				
				$resizeKonfig=mysql_query("ALTER TABLE konfiguration MODIFY wert VARCHAR(500);");
				
				if(!$resizeKonfig){
					$resultMsg.= "<p>Datenbank Error, Fehler beim setzen der varchar Länge  Col wert, Table konfiguration ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte wert in Table konfiguration auf Länge 500 geändert.</p>";			}
			
			}
			
			
			
			
			
				##############  ganz zum schluss
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 1.64 ENDE 
		# upgrade auf 1.65 BEGINN 
		else if($targetV == '1.65'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			$konf=array(array('AUFTRAG_REFERENZBON_NR_LINKS', 'Auftrags Referenzbon Nr. links drucken', 'nein', 'ja/nein. Ist diese Option gesetzt wird die Auftrags Referenzbon Nr auf dem Referenzbon links un das Datum rechts gedruckt.'),
						array('SIGNATUR_ERROR_BON_ROLLBACK', 'Zahlung abbrechen (Rollback) bei Signatur Fehler', 'nein', 'ja/nein. Ist diese Option gesetzt wird im Falle eines Signatur Fehlers, zB. Signaturkarte abgesteckt, die Funktion Zahlung abschließen abgebrochen. Die Datenbank macht einen Rollback, keiner der Abgeschlossenen Bon Tables wird geschrieben.'),
						array('AUFTRAGSSCHEIN_NR_AUF_RECHNUNG', 'Auftragsschein Nr auf Rechnung drucken', 'nein', 'ja/nein. Ist diese Option gesetzt wird bei Rechnungen die aus einem Auftragsschein/Lieferschein erstellt wurden oder wenn Auftragsschein bei Rechnung gesetzt ist, die Auftragsschein Nr. auf der Rechnung/Bon ausgedruckt.')
						
			);
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$modLs=mysql_query("ALTER TABLE lieferschein_referenz MODIFY kunden_id int(9) null, MODIFY geloescht int(3) null, 
						MODIFY disable_refbon_print int(3) null");
			if(!$modLs){
				$resultMsg.="<p>Datenbank, Table Lieferschein Referenz modify Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>DB Table Lieferschein referenze modifiziert.</p>";
			
			$updAutobackup=mysql_query("UPDATE konfiguration SET beschreibung = 'Eingabe des Zielordners in dem die Datensicherung gespeichert wird. System Einstellung: docs%5Cauto_backup%5C   Beispiel für Stick od. Externes Laufwerk, E:%5Cbackup%5C' WHERE name = 'AUTOMATISCH_BACKUP_PFAD' ");
			
			if(!$updAutobackup){
				$resultMsg.="<p>Datenbank, Update Table konfiguration Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
				$countError++;
			}
			else $resultMsg.="<p>Datenbank, Update Table konfiguration, Beschreibung Autobackup Pfad.</p>";
			
			$checkTable='offener_bon';
			$checkColumn='aus_ls_nr';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			
			if($colExists==false){
				$addCol=mysql_query("ALTER TABLE ".$checkTable." ADD COLUMN ".$checkColumn." INT(11) NULL AFTER tax_rate ");
				if(!$addCol){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}

			}
			
				##############  ganz zum schluss
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
			
		}
		
		# upgrade auf 1.65 ENDE 
		# upgrade auf 1.66 BEGINN 
		else if($targetV == '1.66'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			$konf=array(array('LIEFERSCH_SAMMELRECHNUNG_GRUPPENHEADER', 'Sammelrechnung aus Lieferschein, Gruppen Header Text', 'Aus Ls:', 'Text. Wird aus offenen Lieferscheinen eine Sammelrechnung nach Kunden ausgeführt, wird auf der Rechnung für jeden Liefer- Auftragsschein eine Kopfzeile eingefügt. Der hier eingegebene Text erscheint am Beginn dieser Kopfzeile.'),
						array('KASSA_OFFNEN_FIXBETRAG_OPTION', 'Fixbetrag bei Kassa öffnen (Wechselgeld-Fenster)', 'ja', 'ja/nein. Ist diese Option gesetzt wird bei Kassa eröffnen ein Fixbetrag der im nächsten Abschnitt zu setzen ist, in Wechselgeld Fenster gestellt. Dieser Betrag kann vor eröffnen der Kassa noch editiert werden. Ist diese Option auf nein gesetzt, wird der Betrag vom letzten Kassenabschluss in das Wechselgeld Fenster gestellt. '),
						array('KASSA_OFFNEN_FIXBETRAG_BETRAG', 'Betrag als Fixbetrag bei Kassa öffnen', '0', 'Zahl. Ist die Option Fixbetrag bei Kassa öffnen, gesetzt wird der Betrag aus diesem Feld als Fixbetrag in Wechselgeld Fesnter gestellt. Betrag Kann 0 sein, Betrag kann vor eröffnen der Kassa editiert werden. '),
						array('QR_CODE_GROESSE', 'QR Code (Signatur) Größe', '40mm', 'Zahl in mm. Eingabe Zahl in mm für die Größe vom Signatur Code.'),
						array('ENABLERKEY_BENUTZER_KASSENBUCH', 'Benutzer Kassenbuch freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Benutzer Kassenbuch für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben.'),
						array('INIT_SIG_UNIT_DEFAULT', 'Signatur Einheit vor Zahlung Initialisieren', 'nein', 'ja/nein. Ist diese Option gesetzt wird vor dem Signieren, vor dem Zahlungsabschluss die Signatureinheit Initialisiert. Verringert die Geschwindigkeit beim Zahlungsabschluss, kann für Geräte die oft in Standby Modus gesetzt werden sinnvoll sein.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTable='lieferschein_referenz';
			$checkColumn='verrechnet_bon_nr';
			$insertAfter='AFTER kunden_id';
			$checkTable2='abgeschlossener_bon_produkte';
			$checkColumn2='lsSource';
			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			
			if($colExists==false){
				$addCol=mysql_query("ALTER TABLE ".$checkTable." ADD COLUMN ".$checkColumn." INT(11) DEFAULT 0 ".$insertAfter." ");
				if(!$addCol){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}
				$addCol2=mysql_query("ALTER TABLE ".$checkTable2." ADD COLUMN ".$checkColumn2." INT(11) DEFAULT 0 ");
				if(!$addCol2){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn2." in 
							Table ".$checkTable2." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn2." in Table ".$checkTable2." eingefügt.</p>";			}

			}
			
			$checkTable3='ein_aus_zahlungen';
			$checkColumn3='enthalt_steuer_betrag';
			$insertAfter3='AFTER gesamt_betrag';
			$checkColumn4='taxrate';
			$colExists3 = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable3." LIKE '".$checkColumn3."' "))) ? true : false;
			
			if($colExists3==false){
				$addCol3=mysql_query("ALTER TABLE ".$checkTable3." ADD COLUMN ".$checkColumn3." DECIMAL(10,4) DEFAULT 0 ".$insertAfter3." ");
				
				if(!$addCol3){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn3." in 
							Table ".$checkTable3." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn3." in Table ".$checkTable3." eingefügt.</p>";			}
				
			}
			$colExists4 = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable3." LIKE '".$checkColumn4."' "))) ? true : false;
			if($colExists4==true){
				#  hier wird eine spalte ENTFERNT !!!!!!!!!   AUSNAHME   !!!!!
				$dropCol4=mysql_query("ALTER TABLE ".$checkTable3." DROP COLUMN ".$checkColumn4."  ");
				if(!$dropCol4){
					$resultMsg.= "<p>Datenbank Error, Fehler bei entfernen von Spalte ".$checkColumn4." in 
							Table ".$checkTable3." ".mysql_error()."</p>";
					$countError++;
				}
			}


				##############--------------------------#########################################
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			

		}
		
		# upgrade auf 1.66 ENDE 
		# upgrade auf 1.67 BEGINN 
		else if($targetV == '1.67'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('BON_ZUSATZ_TEXT_BUTTON', 'Funktionsbutton, Bon Zusatztext', 'nein', 'ja/nein. Option blendet den Button zum erstellen von Bon Zusatztexte ein bzw. aus. Diese Funktion bezieht sich auf gesamt Bon Zusatztext, im Gegensatzt zu Artikel Zusatztexte.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			$checkTable='gutschein_buchungen';
			$checkColumn='zahlungsart_id';
			$insertAfter='AFTER betrag_geladen';

			$colExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable." LIKE '".$checkColumn."' "))) ? true : false;
			if($colExists==false){
				$addCol=mysql_query("ALTER TABLE ".$checkTable." ADD COLUMN ".$checkColumn." INT(3) DEFAULT 0 ".$insertAfter." ");
				if(!$addCol){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn." in 
							Table ".$checkTable." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn." in Table ".$checkTable." eingefügt.</p>";			}
			}
			

			$tableZa='zahlungsart';
			$columnZa='kassabuch_wirksam';
			$txColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$tableZa." LIKE '".$columnZa."' "))) ? true : false;
			if($txColExists==false){
				$addColZa=mysql_query("ALTER TABLE ".$tableZa." ADD ".$columnZa." tinyint(1) DEFAULT 0 AFTER `einnahmen_wirksam`");
					if(!$addColZa){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$columnZa." in 
								Table ".$tableZa." ".mysql_error()."</p>";
						$countError++;
					}
					else{
						$resultMsg.= "<p>Spalte ".$columnZa." in Table ".$tableZa." eingefügt.</p>";
					}
			}
			
			$checkTable2='zahlungsart';
			$checkColumn2='gs_zahlung';
			$insertAfter='AFTER kassabuch_wirksam';
			
			$colExists2 = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTable2." LIKE '".$checkColumn2."' "))) ? true : false;
			if($colExists2==false){
				$addCol2=mysql_query("ALTER TABLE ".$checkTable2." ADD COLUMN ".$checkColumn2." tinyint(1) DEFAULT 0 ".$insertAfter." ");
				if(!$addCol2){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumn2." in 
							Table ".$checkTable2." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumn2." in Table ".$checkTable2." eingefügt.</p>";			}
			}
			
			$checkTableZa='abgeschlossener_bon_zahlung';
			$checkColumnZa='zahlart_id';
			$insertAfter='AFTER Name';
			$colExistsZa = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableZa." LIKE '".$checkColumnZa."' "))) ? true : false;
			if($colExistsZa==false){
				$addColZaBon=mysql_query("ALTER TABLE ".$checkTableZa." ADD COLUMN ".$checkColumnZa." INT(9) NOT NULL DEFAULT '0' ".$insertAfter." ");
				if(!$addColZaBon){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnZa." in 
							Table ".$checkTableZa." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumnZa." in Table ".$checkTableZa." eingefügt.</p>";			}
			
			}
			
			$checkTableZax='zahlungsart';
			$checkColumnZax='id';
			$insertAfter='FIRST';
			$colExistsZax = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableZax." LIKE '".$checkColumnZax."' "))) ? true : false;
			if($colExistsZax==false){
					$addColZax=mysql_query("ALTER TABLE ".$checkTableZax." ADD COLUMN ".$checkColumnZax." INT(3) NOT NULL DEFAULT '0' ".$insertAfter." ");
					if(!$addColZax){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnZax." in 
							Table ".$checkTableZax." ".mysql_error()."</p>";
						$countError++;
					}
					else {	$resultMsg.= "<p>Spalte ".$checkColumnZax." in Table ".$checkTableZax." eingefügt.</p>";			}
			
			}
			
			$checkTableTx='abgeschlossener_bon';
			$checkTableTx2='abgeschlossener_bon_frei';
			$checkColumnTx='zusatztext';
			$colExistsTx = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableTx." LIKE '".$checkColumnTx."' "))) ? true : false;
			if($colExistsTx==false){
					
					$addColTx=mysql_query("ALTER TABLE ".$checkTableTx." ADD ".$checkColumnTx." VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
					if(!$addColTx ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalten ".$checkColumnTx." in Table ".$checkTableTx." ".mysql_error()."</p>";
						$countError++;
					}
					else {	$resultMsg.= "<p>Spalte ".$checkColumnTx." in Table ".$checkTableTx."  eingefügt.</p>";			}
					
					$addColTx2=mysql_query("ALTER TABLE ".$checkTableTx2." ADD ".$checkColumnTx." VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ");
					
					if(!$addColTx2 ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalten ".$checkColumnTx." in Table ".$checkTableTx2." ".mysql_error()."</p>";
						$countError++;
					}
					else {	$resultMsg.= "<p>Spalte ".$checkColumnTx." in Table ".$checkTableTx2."  eingefügt.</p>";			}
			
			}
					
			$creatTableTxt=mysql_query("CREATE TABLE IF NOT EXISTS `bon_add_text` (
								`id` int(7) NOT NULL AUTO_INCREMENT,
								`offenerbon_id` int( 7 ) NOT NULL,
								`bon_text` VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
								PRIMARY KEY ( `id` )
								) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci;
			");
			
			if(!$creatTableTxt){
				$resultMsg.= "<p>Datenbank Error, Fehler bei erstellen von Table Bon Zusatztext ".mysql_error()."</p>";
					$countError++;
			}
			else {	$resultMsg.= "<p>Table Bon Zusatztext erstellt.</p>";			}
			
			
			
				##############--------------------------#########################################
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
			
	
			
		}
		
		
		# upgrade auf 1.67 ENDE 
		# upgrade auf 1.68 BEGINN 
		else if($targetV == '1.68'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$checkTableGs='gutschein_buchungen';
			$checkColumnGs='zahlungsart_name';
			$insertAfter='AFTER zahlungsart_id';
			$colExistsGs = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableGs." LIKE '".$checkColumnGs."' "))) ? true : false;
			if($colExistsGs==false){
				$addColGs=mysql_query("ALTER TABLE ".$checkTableGs." ADD ".$checkColumnGs." VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ".$insertAfter." ");
				if(!$addColGs ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColumnGs." in Table ".$checkTableGs." ".mysql_error()."</p>";
						$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColumnGs." in Table ".$checkTableGs."  eingefügt.</p>";			}
			}
				
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 1.68 ENDE 
		
		# upgrade auf 1.69 BEGINN 
		else if($targetV == '1.69'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('BEILAGEN_PREIS_BERECHNEN', 'Beilagen tauschen Preis berücksichtigen', 'nein', 'ja/nein. Beilagen Preis der in der Warengruppe bzw. im Produkt eingetragen ist wird beim Beilagen tauschen der Preis beim ausgewählten Produkt berechnet. Produktpreis wird nicht unterschritten. '),
						array('ANZAHL_BON_PRINTS', 'Anzahl der Bon Ausdrucke bei Zahlung', '1', 'Zahl. Anzahl wie viele Rechnungs Bons bei Zahlungsabschluss ausgedruckt werden.'),
						array('AUSDRUCK_BEREITSTELLUNGSBON_PREIS', 'Küche/Schank/... Bon mit Preis', 'nein', 'ja/nein. Ist diese Option gesetzt werden die Küchen, Schank .. ausdrucke mit Preis versehen.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTableUser='benutzer';
			$checkColUser='direkt_wechsel';
								
			$colExistsUser = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableUser." LIKE '".$checkColUser."' "))) ? true : false;
			if($colExistsUser==false){
										#	ALTER TABLE `benutzer` ADD `direkt_wechsel` INT( 1 ) NOT NULL DEFAULT '0'
				$addColUser=mysql_query("ALTER TABLE ".$checkTableUser." ADD ".$checkColUser." INT(1) NOT NULL DEFAULT '0'");
				if(!$addColUser ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColUser." in Table ".$checkTableUser." ".mysql_error()."</p>";
						$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColUser." in Table ".$checkTableUser."  eingefügt.</p>";			}
			}
			
			$checkTableOfB='offener_bon';
			$checkColOfB_A='beilagen_sum_netto';
			$checkColOfB_B='beilagen_sum_brutto';
			$checkColOfB_C='beilagen_prod_orig_preis';

			$colExistsOb = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableOfB." LIKE '".$checkColOfB_A."' "))) ? true : false;
			if($colExistsOb==false){	
				$addColOpenB=mysql_query("ALTER TABLE ".$checkTableOfB." 
										ADD ".$checkColOfB_C." DECIMAL( 14, 4 ) NOT NULL DEFAULT '0' AFTER `beilagen_aenderung_plus`,
										ADD ".$checkColOfB_A." DECIMAL( 10, 4 ) NOT NULL DEFAULT '0' AFTER `beilagen_prod_orig_preis`,
										ADD ".$checkColOfB_B." DECIMAL( 10, 4 ) NOT NULL DEFAULT '0' AFTER `beilagen_sum_netto` ");
				if(!$addColOpenB ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalten ".$checkColOfB_C.", ".$checkColOfB_A." , ".$checkColOfB_B." in Table ".$checkTableOfB." ".mysql_error()."</p>";
						$countError++;
				}
				else {	$resultMsg.= "<p>Spalten ".$checkColOfB_C.", ".$checkColOfB_A.", ".$checkColOfB_B." in Table ".$checkTableOfB."  eingefügt.</p>";			}
			
			}
	
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 1.69 ENDE 
		

		# upgrade auf 1.70 BEGINN 
		else if($targetV == '1.70'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('LIEFERSCHEIN_DRUCK_NACH_IP', 'Lieferschein Drucker nach IP', 'nein', 'ja/nein. Wurde in Drucker verwalten eine IP gesetzt wird der Lieferschein Drucker nach dieser IP ausgewählt. Übersteuert Ist Lieferschein Drucker'),
				array('AUFTRAGSSCHEIN_NR_AUF_RECH_FONTSIZE', 'Schriftgröße für Liefer- Auftragsschein auf Rechnung/Bon', '', 'Schriftgröße in Pt. Wurde Liefer- Bzw. Auftragsschein auf Rechnung/Bon drucken gesetzt, kann hier die Größe eingegeben werden. Ist das Feld leer wird die Ausdruckgröße gewählt'),
				array('AUFTRAGSSCHEIN_NR_AUF_RECH_FETT', 'Schrift für Liefer- Auftragsschein auf Rechnung/Bon Fett', 'nein', 'ja/nein. Wurde Liefer- Bzw. Auftragsschein auf Rechnung/Bon drucken gesetzt, kann hier die Schrift  auf Fett eingestellt werden.'),
				array('PRODUCT_EDIT_ADD_ONLY', 'Artikelname ändern nicht erlauben', 'nein', 'ja/nein. Ist diese Option gesetzt wird beim Editieren vom Artikelnamen das löschen bzw umändern des Namens bzw Printnamens verhindert. Wird der original Name/Printname verändert, schreibt das System den original Artikel Namen/Printnamen vor den editieren Text.'),
				array('ENABLERKEY_BENUTZER_VERSCHIEBEN', 'Benutzer Tische übgergeben freigeben', '1', 'Benutzer Level. Damit wird der Menüpunkt für das Tische an anderen Benutzer übergeben für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben.'),
				array('OTHER_USER_TABLE_TAKE', 'Gastro Tisch von anderen übernehmen', 'nein', 'ja/nein. Funktion ermöglicht das übernehmen von Tische die anderen Benutzer gehören. Relevant Gastro Version und wenn Benutzer nur auf eröffneten Tisch bonieren, gesetzt ist')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTableR='raum';
			$checkTableT='tische';
			$checkColRep='report_sonder';
			
			$colExistsRep = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableT." LIKE '".$checkColRep."' "))) ? true : false;
			if($colExistsRep==false){
						#ALTER TABLE `raum` ADD `report_sonder` INT( 1 ) NOT NULL DEFAULT '0'
					$addColRepR=mysql_query("ALTER TABLE `raum` ADD `report_sonder` INT( 1 ) DEFAULT '0'");
					if(!$addColRepR){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte report_sonder in Table Raum ".mysql_error()."</p>";
						$countError++;
					}
					$addColRepT=mysql_query("ALTER TABLE `tische` ADD `report_sonder` INT( 1 ) DEFAULT '0'");
					
					if(!$addColRepT ){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte report_sonder in Table Tische ".mysql_error()."</p>";
						$countError++;
					}
					
					else {	$resultMsg.= "<p>Spalte ".$checkColRep." in Table ".$checkTableR." und ".$checkTableT."  eingefügt.</p>";			}
					
					$colExistsX = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableT." LIKE 'res' "))) ? true : false;
					if($colExistsX !== false){
						$dropR=mysql_query("ALTER TABLE ".$checkTableT." DROP `res`");
					}
			
			
			}
			
			$changeKd=mysql_query("ALTER TABLE `kunden` CHANGE `sachbearbeiter` `sachbearbeiter` VARCHAR(350) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ''");
			if(!$changeKd ){
					$resultMsg.= "<p>Datenbank Error, Fehler beim ändern von Table Kunde ".mysql_error()."</p>";
					$countError++;
			}
			else {	$resultMsg.= "<p>Spalte sachbearbeiter in Table Kunde auf Max Länge 350 geändert.</p>";			}
		

			
		if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 1.70 ENDE 

		# upgrade auf 1.71 BEGINN 
		else if($targetV == '1.71'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
				# Message container höhe berechnen
			$bonContH=mysql_fetch_array(mysql_query("SELECT wert, 1024x600, 1024x768, 1280x800, handy, tablet FROM konfiguration WHERE name = 'BON_CONTAINER_HOEHE' "));
			$prodContH=mysql_fetch_array(mysql_query("SELECT wert, 1024x600, 1024x768, 1280x800, handy, tablet FROM konfiguration WHERE name = 'PRODUKT_CONTAINER_HOEHE' "));
				#für auflösung wert berechnen
			$tmpValWert=false;
			$tmpValWert=$bonContH['wert']+$prodContH['wert'];
			$udValWert=false;
			if($tmpValWert > 94){				
				$diffValWert = $tmpValWert-94;
				$udValWert=$prodContH['wert']-$diffValWert;
				$udValWert= $udValWert."%";
				$updQl=mysql_query("UPDATE konfiguration SET wert = '".$udValWert."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContHwert = 5 . '%';
			}
			else if($tmpValWert <= 95 && $tmpValWert > 85){
				$msgContHwert = 99- $tmpValWert;
				$msgContHwert=$msgContHwert.'%';
			}
			else $msgContHwert = 5 . '%';
				#für auflösung 1024x600 berechnen
			$tmpVal_A=false;
			$tmpVal_A=$bonContH['1024x600']+$prodContH['1024x600'];
			$udVal_A=false;
			if($tmpVal_A > 94){				
				$diffVal_A = $tmpVal_A-94;
				$udVal_A=$prodContH['1024x600']-$diffVal_A;
				$udVal_A= $udVal_A."%";
				$updQl=mysql_query("UPDATE konfiguration SET 1024x600 = '".$udVal_A."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContH_A = 5 . '%';
			}
			else if($tmpVal_A <= 95 && $tmpVal_A > 85){
				$msgContH_A = 99- $tmpVal_A;
				$msgContH_A=$msgContH_A.'%';
			}
			else if($bonContH['1024x600'] == false || $prodContH['1024x600'] == false)$msgContH_B = '';
			else $msgContH_A = 5 . '%';
			
				#für auflösung 1024x768 berechnen
			$tmpVal_B=false;
			$tmpVal_B=$bonContH['1024x768']+$prodContH['1024x768'];
			$udVal_B=false;
			if($tmpVal_B > 94){				
				$diffVal_B = $tmpVal_B-94;
				$udVal_B=$prodContH['1024x768']-$diffVal_B;
				$udVal_B= $udVal_B."%";
				$updQl=mysql_query("UPDATE konfiguration SET 1024x768 = '".$udVal_B."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContH_B = 5 . '%';
			}
			else if($tmpVal_B <= 95 && $tmpVal_B > 85){
				$msgContH_B = 99- $tmpVal_B;
				$msgContH_B=$msgContH_B.'%';
			}
			else if($bonContH['1024x768'] == false || $prodContH['1024x768'] == false)$msgContH_B = '';
			else $msgContH_B = 5 . '%';
			
				#für auflösung 1280x800 berechnen
			$tmpVal_E=false;
			$tmpVal_E=$bonContH['1280x800']+$prodContH['1280x800'];
			$udVal_E=false;
			if($tmpVal_E > 94){				
				$diffVal_E = $tmpVal_E-94;
				$udVal_E=$prodContH['1280x800']-$diffVal_E;
				$udVal_E= $udVal_E."%";
				$updQl=mysql_query("UPDATE konfiguration SET 1280x800 = '".$udVal_E."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContH_E = 5 . '%';
			}
			else if($tmpVal_E <= 95 && $tmpVal_E > 85){
				$msgContH_E = 99- $tmpVal_E;
				$msgContH_E=$msgContH_E.'%';
			}
			else if($bonContH['1280x800'] == false || $prodContH['1280x800'] == false)$msgContH_E = '';
			else $msgContH_E = 5 . '%';
			
				#für auflösung handy berechnen
			$tmpVal_C=false;
			$tmpVal_C=$bonContH['handy']+$prodContH['handy'];
			$udVal_C=false;
			if($tmpVal_C > 94){				
				$diffVal_C = $tmpVal_C-94;
				$udVal_C=$prodContH['handy']-$diffVal_C;
				$udVal_C= $udVal_C."%";
				$updQl=mysql_query("UPDATE konfiguration SET handy = '".$udVal_C."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContH_C = 5 . '%';
			}
			else if($tmpVal_C <= 95 && $tmpVal_C > 85){
				$msgContH_C = 99- $tmpVal_C;
				$msgContH_C=$msgContH_C.'%';
			}
			else if($bonContH['handy'] == false || $prodContH['handy'] == false)$msgContH_C = '';
			else $msgContH_C = 5 . '%';			
				
				#für auflösung tablet berechnen
			$tmpVal_D=false;
			$tmpVal_D=$bonContH['tablet']+$prodContH['tablet'];
			$udVal_D=false;
			if($tmpVal_D > 94){				
				$diffVal_D = $tmpVal_D-94;
				$udVal_D=$prodContH['tablet']-$diffVal_D;
				$udVal_D= $udVal_D."%";
				$updQl=mysql_query("UPDATE konfiguration SET tablet = '".$udVal_D."' WHERE name = 'PRODUKT_CONTAINER_HOEHE'");
				$msgContH_D = 5 . '%';
			}
			else if($tmpVal_D <= 95 && $tmpVal_D > 85){
				$msgContH_D = 99- $tmpVal_D;
				$msgContH_D=$msgContH_D.'%';
			}
			else if($bonContH['tablet'] == false || $prodContH['tablet'] == false)$msgContH_E = '';
			else $msgContH_D = 5 . '%';
			

			
			$konf=array(array('MESSAGE_CONTAINER_HOEHE', 'Message Container Höhe', $msgContHwert, 'Einheit %. Höhe des Info Container unterhalb vom Produkt Container, Verkaufsmaske.', '1024x600' => $msgContH_A, '1024x768' => $msgContH_B, '1280x800' => $msgContH_E, 'handy' => $msgContH_C, 'tablet' =>  $msgContH_C),
				array('MESSAGE_CONTAINER_BREITE', 'Message Container Breite', PRODUKT_CONTAINER_BREITE, 'Einheit %. Breite des Info Container unterhalb vom Produkt Container, Verkaufsmaske.'),
				array('ENABLERKEY_OFFENENBON_LOESCHEN', 'Gesamten offenen Bon Löschen', '1', 'Benutzerlevel. Damit wird der Steuerungsbutton, offenen Bon löschen für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						if(isset($konf[$i]['1024x600']) && $konf[$i]['1024x600'] != "") $insAdd_C= ", 1024x600 = '".$konf[$i]['1024x600']."' ";
						else $insAdd_C= "";
						if(isset($konf[$i]['1024x768']) && $konf[$i]['1024x768'] != "") $insAdd_D= ", 1024x768 = '".$konf[$i]['1024x768']."' ";
						else $insAdd_D= "";
						if(isset($konf[$i]['1280x800']) && $konf[$i]['1280x800'] != "") $insAdd_E= ", 1280x800 = '".$konf[$i]['1280x800']."' ";
						else $insAdd_E= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B.$insAdd_C.$insAdd_D.$insAdd_E." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		
		}
		# upgrade auf 1.70 ENDE 
		
		# upgrade auf 2.00 BEGINN 
		else if($targetV == '2.00'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");		
			
			$konf=array(array('EDIT_BUT_DISPLAY', 'Steuerungsbutton Produkt editieren anzeigen', 'ja', 'ja/nein. Ist diese Option nicht auf ja gesetzt, wird der Stuerungsbutton Editieren ausgeblendet.'),
				array('KASSENLADE_TYPE', 'Kassenlade Type', '', 'Epson Compatibel/Nettun/Aus. Einstellen der Kassenlade Type entsprechend der verwendeten Kassenlade.'),
				array('EINZELRABATT_ORIG_PREIS_PRINT', 'Original Preis bei Einzelrabatt auf Bon drucken', 'nein', 'ja/nein. Ist diese Option gesetzt wird der Originalpreis, Ausgangspreis auf den Bon mit ausgedruckt. '),
				array('ENABLERKEY_BONZEILE_LOESCHEN', 'Bonzeile im offenen Bon löschen', '1', 'Benutzer Level. Damit wird das löschen von Artikelzeilen im offenen Bon auf diesen Benutzerlevel und höher eingeschränkt.'),
				array('BONZEILE_LOESCHEN_ON_PRINTED', 'Bonzeile im offenen Bon löschen ausdruckabhängig', 'nein', 'ja/nein. Nur für Gastro Version. Ist diese Option gesetzt kann der Benutzer Bonzeilen löschen auch wenn der Berechtigungs Level nicht ausreicht, wenn dieser Artikel noch nicht gedruckt (Küche, Schank, ... Druck) wurde. Wurde der Artikel schon gedruckt kommt der Benutzer Level zum Tragen, somit kann dann event der Admin löschen und der normal Benutzer nicht.'),
				array('DISABLE_BON_SEPERATORLINES', 'Rechnungsbon Ausdruck Trennlinien nicht drucken', 'nein', 'ja/nein. Ist diese Option gesetzt werden am Rechnungsbon keine Trennlinien gedruckt.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
							
				
			$checkTableGs='gutschein_buchungen';
			$checkColGs='gs_ausstellen_tax';
			$colExistsGS = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableGs." LIKE '".$checkColGs."' "))) ? true : false;
			if($colExistsGS==false){
				$addColGs=mysql_query("ALTER TABLE ".$checkTableGs." ADD ".$checkColGs." decimal(14,8) DEFAULT '0' AFTER `verkaufsart` ");
				
				if(!$addColGs){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColGs." in Table ".$checkTableGs." ".mysql_error()."</p>";
					$countError++;
				}
				else {	$resultMsg.= "<p>Spalte ".$checkColGs." in Table".$checkTableGs." eingefügt.</p>";			}
			
			}
						
			$checkTableCat='categories';
			$checkColX='auftragsschein_print';
			$checkTableProd='products';
			$afterX='anz_refbons';
			$colExistsRep = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableCat." LIKE '".$checkColX."' "))) ? true : false;
			if($colExistsRep==false){
				$addColCat=mysql_query("ALTER TABLE ".$checkTableCat." ADD ".$checkColX." VARCHAR(5) CHARACTER SET utf8 COLLATE utf8_general_ci 
						NOT NULL DEFAULT 'ja' AFTER ".$afterX." ");
				if(!$addColCat){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColX." in Table ".$checkTableCat." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColX." in Table ".$checkTableCat." eingefügt.</p>";
				$addColCat=mysql_query("ALTER TABLE ".$checkTableProd." ADD ".$checkColX." VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci 
						NOT NULL DEFAULT 'category' AFTER ".$afterX." ");
				if(!$addColCat){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColX." in Table ".$checkTableProd." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColX." in Table ".$checkTableProd." eingefügt.</p>";
			}
			
			$checkTableColor='products';
			$checkColBgColor='bg_color';
			$checkColTxtColor='txt_color';
			$colExistsColor = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableColor." LIKE '".$checkColBgColor."' "))) ? true : false;
			if($colExistsColor==false){
				$addColColor=mysql_query("ALTER TABLE ".$checkTableColor." ADD ".$checkColBgColor." VARCHAR(16) 
								CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' AFTER PRODUKTORDER, 
								ADD ".$checkColTxtColor." VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci 
								NOT NULL DEFAULT '' AFTER bg_color");
				if(!$addColColor){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalten ".$checkColBgColor."/".$checkColTxtColor." in 
						Table ".$checkTableColor." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalten ".$checkColBgColor."/".$checkColTxtColor." in Table ".$checkTableColor." eingefügt.</p>";
			}
				
			$checkTableColorT='tische';
			$checkColBgColorT='bg_color';
			$checkColTxtColorT='txt_color';
			$checkBgImg='bgImg';
			$colExistsColorT = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableColorT." LIKE '".$checkColBgColorT."' "))) ? true : false;			
			if($colExistsColorT==false){
				$addColColorT=mysql_query("ALTER TABLE ".$checkTableColorT." ADD ".$checkColBgColorT." VARCHAR(16) 
								CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' AFTER posLeft, 
								ADD ".$checkColTxtColorT." VARCHAR(16) CHARACTER SET utf8 COLLATE utf8_general_ci 
								NOT NULL DEFAULT '' AFTER bg_color,
								ADD ".$checkBgImg." INT (1) DEFAULT 1 AFTER ".$checkColTxtColorT." 	");
				if(!$addColColorT){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalten ".$checkColBgColorT."/".$checkColTxtColorT." in 
						Table ".$checkTableColorT." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalten ".$checkColBgColorT."/".$checkColTxtColorT." in Table ".$checkTableColorT." eingefügt.</p>";
			}
			
			$checkTableUser='benutzer';
			$checkColCurTable='aktuellerRaum';
			$colExistsUserT = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTableUser." LIKE '".$checkColCurTable."' "))) ? true : false;
			
			if($colExistsUserT==false){
				$addColUserT=mysql_query("ALTER TABLE ".$checkTableUser." ADD ".$checkColCurTable." INT(6) DEFAULT '0' ");			
				if(!$addColUserT){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColCurTable." in 
						Table ".$checkTableUser." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColCurTable." in Table ".$checkTableUser." eingefügt.</p>";
			
			}
			
			
					
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'kassenbuch_abschluesse' "))!=1){
				$cashbookTable=mysql_query("CREATE TABLE kassenbuch_abschluesse (id int(11) NOT NULL AUTO_INCREMENT,
								kassenabschl_startId int(11) NOT NULL, kassenabschl_endeId int(11) NOT NULL, uebertrag_saldo decimal(16, 8) NOT NULL, 
								abschluss_saldo decimal(16, 8) NOT NULL,erstellt_datum datetime NOT NULL, erstellt_von int(6) NOT NULL,
								bemerkung VARCHAR(128) NOT NULL,
								PRIMARY KEY (id)) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_general_ci; ");
					
					if(!$cashbookTable){
						$resultMsg.= "<p>Datenbank Error, Fehler bei anlegen vom Table kassenbuch_abschluesse ".mysql_error()."</p>";
						$countError++;
					}
					else {	$resultMsg.= "<p>Table kassenbuch_abschluesse angelegt.</p>";			}
				
			}
			
			$updK=mysql_query("UPDATE konfiguration SET wert = 'ja' WHERE name = 'KASSENID_AUF_BON'");
			if(!$updK){
				$resultMsg.= "<p>Datenbank Error, Setzen von Wert Kassen Id auf Bon fehlgeschlagen ".mysql_error()."</p>";
				$countError++;
			}
			else { $resultMsg.= "<p>Konfigurations Wert Kassen Id auf Bon auf ja gesetzt.</p>";}
			
			$updK=mysql_query("UPDATE konfiguration SET wert = 'ja' WHERE name = 'PRODUCT_DELETE_WRITE_AUDIT'");
			if(!$updK){
				$resultMsg.= "<p>Datenbank Error, Setzen von Wert Produkt löschen Audit schreiben fehlgeschlagen ".mysql_error()."</p>";
				$countError++;
			}
			else { $resultMsg.= "<p>Konfigurations Wert Produkt löschen Audit schreiben auf ja gesetzt.</p>";}
			
			
			
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}

			
		}	
		
		# upgrade auf 2.00 ENDE 
		
		# upgrade auf 2.01 BEGINN 
		else if($targetV == '2.01'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('DISABLE_BON_SEPERATORLINES', 'Rechnungsbon Ausdruck Trennlinien nicht drucken', 'nein', 'ja/nein. Ist diese Option gesetzt werden am Rechnungsbon, Kassenabschluss u. Kassenbericht keine Trennlinien gedruckt.'),
						array('LAENDERKENNUNG_DE', 'Ländermodus Einstellen', 'A', 'Systemeinstellung, Grundeinstellung für Ländermodus.'),
						array('FUNKTION_BUTTON_CHANGE_PAY', 'Funktionsbutton, Zahlung nachträglich ändern', 'nein', 'ja/nein. Funktions Button, für Zahlart nachträglich ändern, in der Verkaufsmaske rechts oben, mit ja freischalten bez ausgeblendet lassen.'),
						array('ENABLERKEY_CHANGE_PAY', 'Funktionsbutton, Zahlung nachträglich ändern', '1', 'Damit wird der Funktionsbutton, für Zahlung nachträglich ändern, für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben, wenn in der Bedienfeld Konfiguration die Option gesetzt ist.'),
						array('LOGOUT_NACH_BEZAHLEN', 'Nach Bezahlvorgang abmelden', 'nein', 'ja/nein. Ist diese Option gesezt wird der Benutzer nach dem Bezahlvorgang automatisch abgemeldet. Dafür darf Retourgeld Popup nicht aktiviert sein !!!'),
						array('GDPdU_EXPORT_FIRMA', 'Firmen Namen', '', 'Text. Diese Firmenbezeichnung wird für den GDPdU Export benötigt. Eintrag in das Index XML vom GDPdU Export'),
						array('GDPdU_EXPORT_STANDORT', 'Firmen Standort', '', 'Text. Der Standort wird für den GDPdU Export benötigt. Eintrag in das Index XML vom GDPdU Export.'),
						array('GDPdU_EXPORT_COMMENT', 'Kommentar', '', 'Text. Der Kommentar wird für den GDPdU Export benötigt. Eintrag in das Index XML vom GDPdU Export.')
			);
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			$checkTUser='benutzer';
			$checkColTable='ausblenden';
			$colExistsUserAusbl = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkTUser." LIKE '".$checkColTable."' "))) ? true : false;
			
			if($colExistsUserAusbl==false){
				$addColUserT=mysql_query("ALTER TABLE ".$checkTUser." ADD ".$checkColTable." INT(1) DEFAULT '0' ");			
				if(!$addColUserT){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColTable." in 
						Table ".$checkTUser." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColTable." in Table ".$checkTUser." eingefügt.</p>";
			
			}
			
			$readIx=mysql_query("SHOW INDEX FROM abgeschlossener_bon;");
			$erMsg="";
			$checkIx=false;
			if(!$readIx){ 	$erMsg.="DB Error ".mysql_error(); 	}
			else {
				while($rowIx=mysql_fetch_array($readIx)){
					if($rowIx['Key_name'] == 'bon_id')$checkIx=true;
				}
			}

			if($checkIx === false){
				$ixDep=mysql_query("ALTER TABLE sitpos.dep ADD INDEX ( beleg_nr )");
				if(!$ixDep)$erMsg.=" ".mysql_error()."<br />";
				$ixBon=mysql_query("ALTER TABLE sitpos.abgeschlossener_bon ADD INDEX ( bon_id )");
				if(!$ixBon)$erMsg.=" ".mysql_error()."<br />";
				$ixBonProd=mysql_query("ALTER TABLE sitpos.abgeschlossener_bon_produkte ADD INDEX ( bon_id )");
				if(!$ixBonProd)$erMsg.=" ".mysql_error()."<br />";
				$ixBonTax=mysql_query("ALTER TABLE sitpos.abgeschlossener_bon_steuern ADD INDEX ( bon_id )");
				if(!$ixBonTax)$erMsg.=" ".mysql_error()."<br />";
				$ixBonZa=mysql_query("ALTER TABLE sitpos.abgeschlossener_bon_zahlung ADD INDEX ( bon_id )");
				if(!$ixBonZa)$erMsg.=" ".mysql_error()."<br />";
			}
					
			
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 2.01 ENDE 
		
		# upgrade auf 2.02 BEGINN 
		else if($targetV == '2.02'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			
			mysql_query("START TRANSACTION");
			
			$konf=array(array('ENABLERKEY_ADMIN_ZAHLUNGSTERMINAL', 'Admin Zahlungsterminal freigeben', '2', 'ja/nein. Damit wird der Menüpunkt, Admin Zahlungsterminal für diesen Benutzerlevel und höher sichtbar und der Zugang zu diesen Funktionen freigegeben'),
			array('EC_AUSDRUCK_FONTSIZE', 'Schriftgröße EC Ausdruck', '7', '7, Kundenbeleg aus EC Zahlung auf Rechungsbon.  Eingabe nur Zahl, wenn Kommazahl, Punkt als Komma ! Einheit in pt. Für diesen Beriech ist Courier als Schrift Font fix gesetzt.'));
			
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){
						if(isset($konf[$i]['handy']) && $konf[$i]['handy'] != "") $insAdd_A= ", handy = '".$konf[$i]['handy']."' ";
						else $insAdd_A= "";
						if(isset($konf[$i]['tablet']) && $konf[$i]['tablet'] != "") $insAdd_B= ", tablet = '".$konf[$i]['tablet']."' ";
						else $insAdd_B= "";
						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ".$insAdd_A.$insAdd_B." ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			
			
			$checkZahl='zahlungsart';
			$checkColTable='karten_terminal';
			$colExistsTerm = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkZahl." LIKE '".$checkColTable."' "))) ? true : false;
			
			if($colExistsTerm==false){
				$addColZ=mysql_query("ALTER TABLE ".$checkZahl." ADD ".$checkColTable." TINYINT(1) DEFAULT '0' NULL AFTER kassabuch_wirksam");
				
				if(!$addColZ){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColTable." in 
						Table ".$checkZahl." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColTable." in Table ".$checkZahl." eingefügt.</p>";
	
				
			}
		
		
			if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 'zahlungsterminal' "))!=1){
				$zTermin=mysql_query("CREATE TABLE zahlungsterminal(
					dbid int(3) NOT NULL AUTO_INCREMENT, terminal_name varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT '',
					terminal_type varchar(16) CHARACTER SET utf8 NOT NULL DEFAULT '',
					terminal_id varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '', ip_adresse varchar(256) CHARACTER SET utf8 NOT NULL DEFAULT '',
					terminal_config TEXT CHARACTER SET utf8 NOT NULL DEFAULT '',
					ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
					PRIMARY KEY ( `dbid` )) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci");
				
				if(!$zTermin){
						$resultMsg.= "<p>Datenbank Error, Fehler bei anlegen vom Table zahlungsterminal ".mysql_error()."</p>";
						$countError++;
				}
				else {	$resultMsg.= "<p>Table zahlungsterminal angelegt.</p>";			}
			}
			
			$checkZahlB='abgeschlossener_bon';
			$checkColTableB='ce_zahlung_data';
			$checkColTableC='ce_zahlung_beleg';
			$checkColTableD='ce_kunden_beleg';
			$colExistsTermB = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkZahlB." LIKE '".$checkColTableB."' "))) ? true : false;
		
			if($colExistsTermB==false){
				$addColZahl=mysql_query("ALTER TABLE ".$checkZahlB." ADD ".$checkColTableC." TEXT DEFAULT '' NOT NULL AFTER zusatztext,
													 ADD ".$checkColTableD." TEXT DEFAULT '' NOT NULL AFTER zusatztext,
													 ADD ".$checkColTableB." TEXT DEFAULT '' NOT NULL AFTER zusatztext");
				
				if(!$addColZahl){
					$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColTableB." oder ".$checkColTableC." oder ".$checkColTableD." in 
						Table ".$checkZahlB." ".mysql_error()."</p>";
					$countError++;
				}
				else $resultMsg.= "<p>Spalte ".$checkColTableB.", ".$checkColTableD." und ".$checkColTableC." in Table ".$checkZahlB." eingefügt.</p>";
				
				
			}
			$checkZahlE='kassa_abschluesse';
			$checkColBalance='ce_balance';

			$colExistsTermBal = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$checkZahlE." LIKE '".$checkColBalance."' "))) ? true : false;
			
			if($colExistsTermBal==false){
					$addBal=mysql_query("ALTER TABLE ".$checkZahlE." ADD ".$checkColBalance." TEXT DEFAULT '' NOT NULL AFTER wechselgeld");
					
					if(!$addBal){
						$resultMsg.= "<p>Datenbank Error, Fehler bei einfügen von Spalte ".$checkColBalance." in Table ".$checkZahlE." ".mysql_error()."</p>";
						$countError++;						
					}
					else $resultMsg.= "<p>Spalte ".$checkColBalance." in Table ".$checkZahlE." eingefügt.</p>";
				
				
			}
	

			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
		}
		
		# upgrade auf 2.02 ENDE 
		
		else if($targetV == '2.03'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V203();
		}
		else if($targetV == '2.04'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V204();
		}
		else if($targetV == '2.05'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V205();
		}
		else if($targetV == '2.06'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V206();
		}
		else if($targetV == '2.10'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V210();
		}
		else if($targetV == '2.11'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V211();
		}
		else if($targetV == '2.12'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V212();
		}
		else if($targetV == '2.13'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V213();
		}
		else if($targetV == '2.14'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V214();
		}
		else if($targetV == '2.15'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V215();
		}
		else if($targetV == '2.16'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V216();
		}
		else if($targetV == '2.17'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V217();
		}
		else if($targetV == '2.18'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V218();
		}
		else if($targetV == '2.19'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			list ($countError, $erMsg) = upgrade_to_V219();
		}
		
		else if($targetV == '2.20'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';
			
			$targetTable='products';
			$targetTable2='categories';
			$targetTable3='offener_bon';
			$targetTable4='abgeschlossener_bon_produkte';
			$checkColumn='beilage_basispreis_aendern';
			$checkColumn3='beilagen_basispreis_key';
			$afterCol='ist_beilage';
			$afterCol3='beilagen_sum_brutto';
			$checkColumn4='beilagen_minus';
			$checkColumn5='beilagen_plus';
									
			mysql_query("START TRANSACTION");
						
			$cColExists = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable." LIKE '".$checkColumn."' " ))) ? true : false;
			$cColExistsCat = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable2." LIKE '".$checkColumn."' " ))) ? true : false;
			$cColExistsKey = (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable3." LIKE '".$checkColumn3."' " ))) ? true : false;
			$abgschlColExists1= (mysql_num_rows(mysql_query("SHOW COLUMNS FROM ".$targetTable4." LIKE '".$checkColumn4."' " ))) ? true : false;
						
			if($cColExists == false){
				#$changCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." INT(3) DEFAULT NULL ");
				$changCol=mysql_query("ALTER TABLE ".$targetTable." ADD COLUMN ".$checkColumn." INT(3) DEFAULT NULL AFTER ".$afterCol." ");
				
				if(!$changCol){
					$resultMsg.= "<p>Update von Datenbankspalte ".$checkColumn.", in Table ".$targetTable.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$checkColumn.", im Table ".$targetTable." hinzugefügt.</p>";
					$countUd++;
				}
				
				$modCol=mysql_query("ALTER TABLE ".$targetTable." MODIFY COLUMN ".$afterCol." INT(3) DEFAULT NULL   ");
				if(!$modCol){
					$resultMsg.= "<p>Modifizieren von Datenbankspalte ".$afterCol.", in Table ".$targetTable2.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$afterCol.", im Table ".$targetTable2." modifiziert (NULL).</p>";
					$countUd++;
				}
				
				
			}
			
			if($cColExistsCat == false){
				$changCol2=mysql_query("ALTER TABLE ".$targetTable2." ADD COLUMN ".$checkColumn." INT(3) DEFAULT NULL AFTER ".$afterCol." ");
				
				if(!$changCol2){
					$resultMsg.= "<p>Update von Datenbankspalte ".$checkColumn.", in Table ".$targetTable2.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$checkColumn.", im Table ".$targetTable2." hinzugefügt.</p>";
					$countUd++;
				}
					#   den defaultvalue von ist_beilage auf 'NULL' setzen
				
				$modCol2=mysql_query("ALTER TABLE ".$targetTable2." MODIFY COLUMN ".$afterCol." INT(3) DEFAULT NULL   ");
				if(!$modCol2){
					$resultMsg.= "<p>Modifizieren von Datenbankspalte ".$afterCol.", in Table ".$targetTable2.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$afterCol.", im Table ".$targetTable2." modifiziert (NULL).</p>";
					$countUd++;
				}
			}
			
			if($cColExistsKey == false){
				$changCol3=mysql_query("ALTER TABLE ".$targetTable3." ADD COLUMN ".$checkColumn3." INT(3) DEFAULT 0 AFTER ".$afterCol3." ");
				
				if(!$changCol3){
					$resultMsg.= "<p>Update von Datenbankspalte ".$checkColumn3.", in Table ".$targetTable3.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$checkColumn3.", im Table ".$targetTable3." hinzugefügt.</p>";
					$countUd++;
				}
				
				
			}
			if($abgschlColExists1 == false){
					$changCol4=mysql_query("ALTER TABLE ".$targetTable4." ADD COLUMN ".$checkColumn5." varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER lsSource, 
													ADD COLUMN  ".$checkColumn4." varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER lsSource	");
				if(!$changCol4){
					$resultMsg.= "<p>Update von Datenbankspalte  ".$checkColumn4."/".$checkColumn5.", in Table ".$targetTable4.", 
						fehlgeschlagen, Zeile ". __Line__ .". ".mysql_error()."</p>";
						$countError++;
				}
				else{
					$resultMsg.="<p> Spalte  ".$checkColumn4."/".$checkColumn5.", im Table ".$targetTable4." hinzugefügt.</p>";
					$countUd++;
				}
				
			}
			
			$konf=array(array('BEILAGENTEXT_AUF_RECHNUNG_DRUCKEN', 'Beilagen Änderung auf Rechnung drucken', 'ja', 'ja/nein. Damit werden Beilagenänderungen (minus/plus) auf dem Bon ausgedruckt.'));
			for($i=0; $i< sizeof($konf); $i++){			
				$z=mysql_fetch_array(mysql_query("SELECT * FROM konfiguration WHERE name = '".$konf[$i][0]."' "));
					if($z == false){

						$ins=mysql_query("INSERT INTO konfiguration SET name = '".$konf[$i][0]."', konfigtitel = '".$konf[$i][1]."', wert = '".$konf[$i][2]."', 
									Beschreibung = '".$konf[$i][3]."' ");		
						if(!$ins){
							$resultMsg.="<p>Datenbank Insert Error, Zeile ". __Line__ ." ".mysql_error()."</p>";
							$countError++;
						}
						else $countIns++;
					}
					else {
						$countScip++;
						continue;
					}
			}
			
			mysql_query("ALTER TABLE storno_grund ADD PRIMARY KEY( grund )");
			
			mysql_query("ALTER TABLE pdf_a4_rechnung ADD create_ts timestamp not null default current_timestamp");
			mysql_query("ALTER TABLE pdf_a4_rechnung ADD update_ts timestamp not null default current_timestamp on update current_timestamp");
		
			mysql_query("ALTER TABLE sync_info ADD create_ts timestamp not null default current_timestamp");
			mysql_query("ALTER TABLE sync_info ADD update_ts timestamp not null default current_timestamp on update current_timestamp");
			
			if($countError == 0) mysql_query("COMMIT");
			else{
				mysql_query("ROLLBACK");
				$resultMsg.= "<p>Datenbank Rollback erfolgt, alle aufgelisteten Datenbank Operationen zurückgesetzt.</p>";
			}
			
			require_once("synchronize/sync_table_structure.php");
		}
		
		# upgrade auf 2.20 ENDE 
		
		else if($targetV == '3.00'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';
			
			$error_message=insert_into_konfiguration('EAN_GEFUNDEN_BEEP', "ja", "Soll die Kasse einen Ton spielen wenn der EAN Code gefunden wurde", false, "Ton spielen wenn EAN Code gefunden wurde");
			$error_message=insert_into_konfiguration('EAN_NICHT_GEFUNDEN_BEEP', "ja", "Soll die Kasse einen Ton spielen wenn der EAN Code nicht gefunden wurde", false, "Ton spielen wenn EAN Code nicht gefunden wurde");
		}
		else if($targetV == '3.01'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';
			
			check_directories();
			$error_message=insert_into_konfiguration('BEILAGEN_MINUS_NUR_BEI_BASISPREISAENDERUNG', "nein", "Soll die Beilage nur minus rechnen, wenn es eine Basispreisänderung ist?", false, "Minus rechnen nur bei Basispreisänderung");
			$error_message=insert_into_konfiguration('FILIALSYSTEM_ANZEIGEN_INVENTUR', "ja", "Soll das Menü für die Inventur angzeigt werden?", false, "Inventur Menü anzeigen");
			$error_message=insert_into_konfiguration('FILIALSYSTEM_WARENGRUPPEN_ANLEGEN_ANZEIGEN', "ja", "Soll das Menü für die Warengruppen aus dem Filialsystem angzeigt werden?", false, "Warengruppen Menü aus Filialsystem anzeigen");
			$error_message=insert_into_konfiguration('FILIALSYSTEM_PRODUKTE_ANLEGEN_ANZEIGEN', "ja", "Soll das Menü für die Produkte aus dem Filialsystem angzeigt werden?", false, "Produkte Menü aus Filialsystem anzeigen");
		}	
		else if($targetV == '3.02'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_302();
		}
		else if($targetV == '3.03'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_303();
		}
		else if($targetV == '3.04'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_304();
		}
		else if($targetV == '3.05'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_305();
		}
		else if($targetV == '3.06'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_306();
		}
		else if($targetV == '3.07'){
			$countIns=0;
			$countUd=0;
			$countScip=0;
			$countError=0; 
			$check=0;
			$resultMsg='';

			upgrade_to_307();
		}
		else if($targetV == '3.08'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';
			
			upgrade_to_308();
			
		}
		else if($targetV == '4.01'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_401();
		}
		else if($targetV == '4.02'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_402();
		}
		else if($targetV == '4.03'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_403();
		}
		else if($targetV == '4.04'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_404();
		}
		else if($targetV == '4.05'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_405();
		}
		else if($targetV == '4.06'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_406();
		}
		else if($targetV == '4.07'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_407();
		}
		else if($targetV == '4.08'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_408();
		}
		else if($targetV == '4.09'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_409();
		}
		else if($targetV == '4.10'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_410();
		}
		else if($targetV == '4.11'){
			$countIns=0; $countUd=0; $countScip=0; $countError=0;  $check=0; $resultMsg='';			
			upgrade_to_411();
		}
		
		#######################################################################################################
		if($countError == 0 ) { 
				if(isset($erMsg) && strlen($erMsg) > 0) $erMsg="<br />".$erMsg;
				else $erMsg="";
				$insVersion=mysql_query("UPDATE konfiguration_sitpos SET wert = 'Version ".$targetV."' WHERE name = 'SITPOS_VERSION' "); 
				if(!$insVersion) $finalMsg="Update konnte nicht vollständig durchgeführt werden. ".mysql_error()."";
				else $finalMsg="Auf Version ".$targetV." erfolgreich hochgerüstet";	
				
				if($countIns == 1) $pluralIns="Datensatz"; else if($countIns > 1 || $countIns == 0) $pluralIns="Datensätze";
				if($countUd == 1) $pluralUd="Datensatz"; else if($countUd > 1 || $countUd == 0) $pluralUd="Datensätze";
				if($countScip== 1) $pluralScip="Datensatz"; else if($countScip > 1 || $countScip == 0) $pluralScip="Datensätze";
				if($countError== 1) $pluralError="Error"; else if($countError > 1 || $countError == 0) $pluralError="Errors";
				$folloingUGmessage="";
				$resultMsg.="<p>".$countIns." ".$pluralIns." eingefügt, <br />".$countUd." ".$pluralUd." upgedatet, <br />".$countScip." ".$pluralScip." überspungen, <br />".$countError." ".$pluralError." 
								aufgetreten.</p><p>".$finalMsg."</p>".$erMsg;
			
			$sITposDbVersion=mysql_fetch_array(mysql_query("SELECT wert FROM konfiguration_sitpos WHERE name = 'SITPOS_VERSION'"));
			if($sITposDbVersion[0] == true)$DbVersion=$sITposDbVersion[0];
		
		}
		
		else { 
				if($countError== 1) $pluralError="Error"; else $pluralError="Errors";
				$resultMsg.="Upgrade nicht vollständig erfolgt. Es ist/sind ".$countError." ".$pluralError." aufgetreten.";
				
		}
		
		$resultForm= "<form id='resultForm' action='index.php' method='post' >
					<input type='hidden' name='resultCont' value=\"".$resultMsg."\" />
			
				</form>
			
				<script>
					document.getElementById('resultForm').submit();
				</script>";
		
		
	}
	
	
	
	$formContent="";
		if($DbVersion == 'Version 0.9') {
			$targetVersion='1.0';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='0.9-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.0') {
			$targetVersion='1.01';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.0-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.01') {
			$targetVersion='1.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.01-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 1.1') {
			$targetVersion='1.1.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";			
		}		
		else if($DbVersion == 'Version 1.1.1') {
			$targetVersion='1.1.2';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.1-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.1.2') {
			$targetVersion='1.1.2.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.2-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}		
		else if($DbVersion == 'Version 1.1.2.1') {
			$targetVersion='1.1.3';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.2.1-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.1.3') {
			$targetVersion='1.1.4';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.3-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}		
		else if($DbVersion == 'Version 1.1.4') {
			$targetVersion='1.1.5';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.4-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.1.5') {
			$targetVersion='1.2.0';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='1.1.5-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.2.0' || $DbVersion == 'Version 1.2') {
			$targetVersion='1.2.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.2.1') {
			$targetVersion='1.2.2';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."'	>Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.2.2') {
			$targetVersion='1.3.0';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.3.0') {
			$targetVersion='1.3.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.3.1') {
			$targetVersion='1.3.5';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.3.5') {
			$targetVersion='1.3.7';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.3.7') {
			$targetVersion='1.3.8';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.3.8') {
			$targetVersion='1.4.0';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.4.0') {
			$targetVersion='1.4.1';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.4.1') {
			$targetVersion='1.4.2';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.4.2') {
			$targetVersion='1.4.5';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}		
		else if($DbVersion == 'Version 1.4.5') {
			$targetVersion='1.46';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.46') {
			$targetVersion='1.47';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.47') {
			$targetVersion='1.50';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}		
		else if($DbVersion == 'Version 1.50') {
			$targetVersion='1.51';		
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}		
		else if($DbVersion == 'Version 1.51') {
			$targetVersion='1.60';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.60') {	
			$targetVersion='1.61';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.61') {	
			$targetVersion='1.62';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.62') {	
			$targetVersion='1.63';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.63') {	
			$targetVersion='1.64';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.64') {	
			$targetVersion='1.65';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.65') {	
			$targetVersion='1.66';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.66') {	
			$targetVersion='1.67';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		
		else if($DbVersion == 'Version 1.67') {	
			$targetVersion='1.68';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.68') {	
			$targetVersion='1.69';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.69') {	
			$targetVersion='1.70';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if($DbVersion == 'Version 1.70') {	
			$targetVersion='1.71';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if(preg_replace("/[^0-9\.]/", "", $DbVersion) > 1.71 && preg_replace("/[^0-9\.]/", "", $DbVersion) < 2.0 && APPLICATION_VERSION < 2.00) {	
			$targetVersion='1.72';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if(preg_replace("/[^0-9\.]/", "", $DbVersion) >= 1.71 && preg_replace("/[^0-9\.]/", "", $DbVersion) < 2.0 && APPLICATION_VERSION == 2.00) {	
				# es kann mehrere 1.7x versionen geben und 2.0 muss damit umgehen können
				# 2.0 muss dann alle Schritte die zwischen 1.71 und 1.99 sind ausführen jedoch nur wenn noch nicht gemacht
			$targetVersion='2.00';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		else if(preg_replace("/[^0-9\.]/", "", $DbVersion) >= 1.71 && preg_replace("/[^0-9\.]/", "", $DbVersion) < 2.0 && APPLICATION_VERSION >= 2.01) {	
				# es kann mehrere 1.7x versionen geben und 2.0 muss damit umgehen können
				# 2.0 muss dann alle Schritte die zwischen 1.71 und 1.99 sind ausführen jedoch nur wenn noch nicht gemacht
			$targetVersion='2.00';	
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";
		}
		
		else if($DbVersion == 'Version 2.00') {
			$targetVersion='2.01';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.01') {
			$targetVersion='2.02';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.02') {
			$targetVersion='2.03';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.03') {
			$targetVersion='2.04';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.04') {
			$targetVersion='2.05';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}	
		else if($DbVersion == 'Version 2.05') {
			$targetVersion='2.06';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.06') {
			$targetVersion='2.10';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.10') {
			$targetVersion='2.11';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.11') {
			$targetVersion='2.12';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.12') {
			$targetVersion='2.13';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.13') {
			$targetVersion='2.14';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.14') {
			$targetVersion='2.15';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.15') {
			$targetVersion='2.16';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.16') {
			$targetVersion='2.17';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.17') {
			$targetVersion='2.18';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.18') {
			$targetVersion='2.19';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.19') {
			$targetVersion='2.20';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 2.20') {
			$targetVersion='3.00';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.00') {
			$targetVersion='3.01';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.01') {
			$targetVersion='3.02';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.02') {
			$targetVersion='3.03';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.03') {
			$targetVersion='3.04';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.04') {
			$targetVersion='3.05';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.05') {
			$targetVersion='3.06';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.06') {
			$targetVersion='3.07';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.07') {
			$targetVersion='3.08';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 3.08') {
			$targetVersion='4.01';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.01') {
			$targetVersion='4.02';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.02') {
			$targetVersion='4.03';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.03') {
			$targetVersion='4.04';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.04') {
			$targetVersion='4.05';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.05') {
			$targetVersion='4.06';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.06') {
			$targetVersion='4.07';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.07') {
			$targetVersion='4.08';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.08') {
			$targetVersion='4.09';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.09') {
			$targetVersion='4.10';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if($DbVersion == 'Version 4.10') {
			$targetVersion='4.11';
			$formContent="<button type='submit' class='button orange upgradebutton' name='upgradeStep' value='".$DbVersion."-".$targetVersion."' >Upgrade von ".$DbVersion." auf ".$targetVersion."</button>";		
		}
		else if(isset($_POST['resultCont']) && $_POST['resultCont'] != "") {	
				#	$formContent="<p>Keine weiteren Upgrades verfügbar.</p>";
				
				$formContent="<button type='submit' class='button_none_float orange upgradebutton' name='upgradeStep' value='finishUpgrade' >Fertigstellen
								</button>";
				$targetVersion=false;
				$folloingUGmessage="";
		}
									
		if($targetVersion == true){
			$ugHead="<p>Erforderliches Upgrade:</p>";
			$ugForm="	<form id='upgradeForm' action='index.php' method='post' >
						".$ugHead."
						".$formContent."
						<input type='hidden' name='targetVersion' value='".$targetVersion."' />
						<div class='cclear'></div>
				</form>";
		}
		else if($targetVersion == false && $resultContent == true){
			$ugForm="<form action='index.php' method='post' >
							".$formContent."
						</form>";
		}
	
		else $ugForm="";
		
		
		
					

								
								




?>