<?php
//V4.09 2023-06-20	RFR: neue Version APPLICATION_VERSION 4.09 gesetzt
date_default_timezone_set('Europe/Vienna');
require_once(__DIR__ . "/../global_functions.php");
require_once(__DIR__ . "/sIT_global_db_functions.php");

define('APPLICATION_VERSION', '4.11');
// hier wird die Programm Version mit der Version in der Datenbank verglichen
// gibt es hier keine Übereinstimmung wird das beim Kassa eröffnen mit Link zur Upgrad Page angezeigt.

// Create connection
define('SQL_HOST', '127.0.0.1');
define('SQL_USER', 'sitpos');
define('SQL_PW', 'mYSitP05P@ssw0rt'); 
define('SQL_DB', 'sitpos');
  
// Test Sync auf Filialsystem muss SQL_DB sitpos sein.
//define('SQL_DB', 'sitpos_ellies');

$con = mysql_connect(SQL_HOST, SQL_USER, SQL_PW, SQL_DB);

$con_i = sIT_mysql_connect(SQL_HOST, SQL_USER, SQL_PW, SQL_DB);

define('SITPOS_CRYPT', 'ochenta_50');
define('USER_ACTIVE_LIMIT', 5);	# defination in Minuten  default = 5
define('LICENSE_GRACE_PERIOD', 30);	# in Tage, 
define('VIOLATION_TIMEFRAME', 5);	# in Minuten, für Abfrage wie viele Verletzungen in den letzten x Minuten 
# Violation Toleranze is weiter unten definiert, die Toleranz is abhängig von der anzahl user Lizenezen, event auch gleichgesetzt
# war für das popup bei bezahlen gedacht, derzeit nicht in verwendung. 
define('VIOLATION_ABSCHLUSS_TIMEFRAME', 24);    # in Stunden hier wird der Zeitraum der Verletzungen beim Kassenabschluss gesetzt
define('VIOLATION_DIALOG_RANDOM_NO', 3);	# je niedriger der wert, desto ötters wird eine user Lizenz überschreitung angezeigt Zahl muss höher 1 sein !!!

define('SIGNATUR_MODUS', 'com');		# ist auf com gesetzt wird die aTrust Com Schnitstelle verwendet, ansonsten das Exe
define('GS_PREFIX', "GS");

// Check connection
if (!$con) {
	echo "Failed to connect to MySQL: " . mysql_error();
}

if (!mysql_select_db(SQL_DB, $con)) {
	echo 'Could not select database';
	exit;
}

$sq = mysql_query("SET NAMES 'utf8'");
if (!$sq) echo "fehler";


if (!isset($_SESSION)) session_start();

updateUserActive();			# bei jedem aufruf von connect.php wird der table benutzer_aktive, last_atctive gesetzt

if (isset($_SESSION['requested_resolution'])) {
	$default = $_SESSION['requested_resolution'];
} else {

	$sq = mysql_query("SELECT * FROM konfiguration WHERE name='DEFAULT_AUFLOESUNG'");
	if ($sq) {
		if ($rowC = mysql_fetch_object($sq)) {
			if (!empty($rowC->wert)) {
				$default = $rowC->wert;
			} else $default = false;
		}
	}
}


// Setze alle Parameter aus der Tabelle konfiguration als Konstanten
$sq = mysql_query("SELECT * FROM konfiguration");

if ($sq) {
	while ($rowC = mysql_fetch_array($sq)) {
		if (!empty($default)) {
			if (!empty($rowC[$default])) {
				$name = $rowC['name'];
				$wert = $rowC[$default];
			} else {
				$name = $rowC['name'];
				$wert = $rowC['wert'];
			}
		} else {
			$name = $rowC['name'];
			$wert = $rowC['wert'];
		}
		define($name, $wert);
	}
}

$sq = mysql_query("SELECT * FROM konfiguration_sitpos");
if ($sq) {
	while ($rowC = mysql_fetch_array($sq)) {

		define($rowC['name'], $rowC['wert']);
	}
}

if (defined('ANZAHL_USER_LIZENZEN') && ANZAHL_USER_LIZENZEN > 0) define('VIOLATION_TOLERANCE', ANZAHL_USER_LIZENZEN);
else define('VIOLATION_TOLERANCE', 0);

$checkA4Printer = mysql_query("SELECT * FROM drucker WHERE LOWER(ist_a4) = 'ja'");
if (mysql_num_rows($checkA4Printer) == 1) {
	$a4Pr = mysql_fetch_assoc($checkA4Printer);
	define('A4_DRUCKER_ID', $a4Pr['drucker_id']);
} else define('A4_DRUCKER_ID', 0);

define('PAGE_CACHE_OFF', '<meta http-equiv="cache-control" content="max-age=0" />
							<meta http-equiv="cache-control" content="no-cache" />
							<meta http-equiv="expires" content="0" />
							<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
							<meta http-equiv="pragma" content="no-cache" />
							
		');

// wird in verschiedenen funktionen wo strings mit " ' usw verwendet werden könnten zum replace verwendet.
$pattern = array("/'/", "/´/", '/"/', "/;/", "/à/");
$replace = array("\'", "\`", '\\"', ",", "a");

#	echo "<input id='hiddenConfigField_autoEdit' type='hidden' value='".FUNKTION_BONIEREN_AUTOMATISCH_EDITIEREN."' />";

#   diese Konstaneten werden dann in abhängigkeit von Lizenz Codes aus der DB gesetzt 

define('MODUL_EMAIL', 'ja');

function getUserIp()
{
	if (!empty($_SERVER['HTTP_CLIENT_IP'])) {   //check ip from share internet

		$ip = $_SERVER['HTTP_CLIENT_IP'];
	} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {   //to check ip is pass from proxy

		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	} else {
		$ip = $_SERVER['REMOTE_ADDR'];
	}

	return $ip;
}


function check_base_licensing()
{
	$licVersion = false;
	$baseL = false;
	$userL = false;
	$gutscheinModul = false;
	$kassabuchModul = false;
	$lieferscheinModul = false;
	$ecKarteModul = false;
	#$abholModul=false;


	if (defined('LIZENZ_VERSION') && LIZENZ_VERSION >= preg_replace('/[^0-9\.,]/', '', SITPOS_VERSION)) $licVersion = true;
	if ((defined('BASIS_LIZENZ_VORHANDEN') && strtolower(BASIS_LIZENZ_VORHANDEN) == 'ja')
		|| (defined('BASIS_LIGHT_LIZENZ_VORHANDEN') && strtolower(BASIS_LIGHT_LIZENZ_VORHANDEN) == 'ja')
	) $baseL = true;
	if (defined('ANZAHL_USER_LIZENZEN') && ANZAHL_USER_LIZENZEN > 0) $userL = ANZAHL_USER_LIZENZEN;
	if (defined('GUTSCHEIN_LIZENZ') && strtolower(GUTSCHEIN_LIZENZ) == 'ja') $gutscheinModul = true;
	if (defined('KASSABUCH_LIZENZ') && strtolower(KASSABUCH_LIZENZ) == 'ja') $kassabuchModul = true;
	if (defined('LIEFERSCHEIN_LIZENZ') && strtolower(LIEFERSCHEIN_LIZENZ) == 'ja') $lieferscheinModul = true;
	if (defined('ECKARTE') && strtolower(ECKARTE) == 'ja') $ecKarteModul = true;

	#if(defined('ABHOL') && strtolower(ABHOL) == 'ja') $abholModul=true;

	# Jan 2021 -> aktuelle Module BASIS-BASIS LIGHT-UPGRADE-USER-KASSABUCH-GUTSCHEIN-LIEFERSCHEIN-ECKARTE-INITIAL WARTUNG

	return array($licVersion, $baseL, $userL, $gutscheinModul, $kassabuchModul, $lieferscheinModul, $ecKarteModul);
}


if (defined('BUTTON_FARBE')) {
	if (BUTTON_FARBE == "") {
		# was wir ursprünglich hatten #FAA51A;
		define('BUTTON_FARBE_SET', '#FAA51A');
		$boC = "solid 1px #DA7C0C";
		$txC = "#fff";
		$hoferBg = "#f47c20";
	} else {
		define('BUTTON_FARBE_SET', BUTTON_FARBE);
		$bgF = preg_replace(array('/^\d/', '/\s/', '/#/'), '', BUTTON_FARBE);

		$bgR = false;
		$bgG = false;
		$bgB = false;
		if (strlen($bgF) == 3) {
			$bgR = hexdec(substr($bgF, 0, 1) . substr($bgF, 0, 1));

			$bgG = hexdec(substr($bgF, 1, 1) . substr($bgF, 1, 1));
			$bgB = hexdec(substr($bgF, 2, 1) . substr($bgF, 2, 1));
		} else {
			$bgR = hexdec(substr($bgF, 0, 2));
			$bgG = hexdec(substr($bgF, 2, 2));
			$bgB = hexdec(substr($bgF, 4, 2));
		}

		if ($bgR > 128) $boR = dechex($bgR * .7);
		else $boR = dechex($bgR * 1.3);
		if ($bgG > 128) $boG = dechex($bgG * .7);
		else $boG = dechex($bgG * 1.3);
		if ($bgB > 128) $boB = dechex($bgB * .7);
		else $boB = dechex($bgB * 1.3);

		if (strlen($boR) == 1) $boR = '0' . $boR;
		if (strlen($boG) == 1) $boG = '0' . $boG;
		if (strlen($boB) == 1) $boB = '0' . $boB;
		$boC = "solid 1px #" . $boR . $boG . $boB;


		if ($bgR > 128) $hoR = dechex($bgR * .9);
		else $hoR = dechex($bgR * 1.1);
		if ($bgG > 128) $hoG = dechex($bgG * .9);
		else $hoG = dechex($bgG * 1.1);
		if ($bgB > 128) $hoB = dechex($bgB * .9);
		else $hoB = dechex($bgB * 1.1);

		if (strlen($hoR) == 1) $hoR = '0' . $hoR;
		if (strlen($hoG) == 1) $hoG = '0' . $hoG;
		if (strlen($hoB) == 1) $hoB = '0' . $hoB;
		$hoferBg = "#" . $hoR . $hoG . $hoB;




		#	 file_put_contents('kpcheckit.txt', "\n".basename( __FILE__)." / ". __LINE__ ." ".date('Y-m-d H:i')."\nborder: ".$boC." / ".$boX."\n", FILE_APPEND);


		$cCalc = (($bgR * 250) + ($bgG * 520) + ($bgB * 114)) / 1200;
		if ($cCalc >= 128) {
			$txC = "#000";
		} else $txC = "#fff";
	}

	define('BUTTON_BORDER', $boC);
	define('BUTTON_TXT_FARBE', $txC);
	define('BUTTON_HOVER_FARBE', $hoferBg);
}
	
/*	$myIp=getUserIp();
	$zahlungsTermId=mysql_query("SELECT terminal_id, ip_adresse FROM zahlungsterminal");
	$numRows=mysql_num_rows($zahlungsTermId);
	if($numRows == 1){
		$termId=mysql_fetch_array($zahlungsTermId);
		define('ZAHLUNGSTERM_ID', $termId['terminal_id']);
		#file_put_contents('C:\\tmp\\zulu.txt', "\nim num row 1.. ".$termId['terminal_id']."\n\n", FILE_APPEND);
	}
	else if($numRows > 1){
		
		while($termId=mysql_fetch_array($zahlungsTermId)){
			$ipStrg=$termId['ip_adresse'];
			if(strlen($ipStrg) > 2 && $myIp == $ipStrg && strpos($ipStrg, ';') === false){
				file_put_contents('C:\\tmp\\zulu.txt', "\neinzel eintrag.. ".$termId['terminal_id']."\n\n", FILE_APPEND);
				if(!defined('ZAHLUNGSTERM_ID'))define('ZAHLUNGSTERM_ID', $termId['terminal_id']);
			}
			else if (strpos($ipStrg, ';') !== false) {
				$termIdArray=explode(";", $ipStrg);
				if (in_array($myIp , $termIdArray)) {
					if(!defined('ZAHLUNGSTERM_ID'))define('ZAHLUNGSTERM_ID', $termId['terminal_id']);
					file_put_contents('C:\\tmp\\zulu.txt', "\nmehrfach einträge aray .. ".$termId['terminal_id']."\n\n", FILE_APPEND);
				}
			}
			
			
		}
	}
	else define('ZAHLUNGSTERM_ID', 'undefined');
*/
