Portions created by the Initial Developer are Copyright (C) 2016 - 2018 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes require_once "root.php"; require_once "resources/require.php"; //check permissions require_once "resources/check_auth.php"; if (permission_exists('database_transaction_add') || permission_exists('database_transaction_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //action add or update if (isset($_REQUEST["id"])) { $database_transaction_uuid = check_str($_REQUEST["id"]); } //pre-populate the form if (count($_GET) > 0 && $_POST["persistformvar"] != "true") { $database_transaction_uuid = check_str($_GET["id"]); $sql = "select "; $sql .= "t.database_transaction_uuid, d.domain_name, u.username, t.user_uuid, t.app_name, t.app_uuid, "; $sql .= "t.transaction_code, t.transaction_address, t.transaction_type, t.transaction_date, "; $sql .= "t.transaction_old, t.transaction_new, t.transaction_result "; $sql .= "from v_database_transactions as t, v_domains as d, v_users as u "; $sql .= "where t.domain_uuid = '$domain_uuid' "; $sql .= "and t.database_transaction_uuid = '$database_transaction_uuid' "; $sql .= "and t.user_uuid = u.user_uuid "; $sql .= "and t.domain_uuid = d.domain_uuid "; //$sql = "select *, u.username from v_database_transactions as t, v_users as u "; //$sql .= "where domain_uuid = '$domain_uuid' "; //$sql .= "t.user_uuid = u.user_uuid "; //$sql .= "and database_transaction_uuid = '$database_transaction_uuid' "; $prep_statement = $db->prepare(check_sql($sql)); $prep_statement->execute(); $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); foreach ($result as &$row) { $user_uuid = $row["user_uuid"]; $app_name = $row["app_name"]; $app_uuid = $row["app_uuid"]; $domain_name = $row["domain_name"]; $username = $row["username"]; $transaction_code = $row["transaction_code"]; $transaction_address = $row["transaction_address"]; $transaction_type = $row["transaction_type"]; $transaction_date = $row["transaction_date"]; $transaction_old = $row["transaction_old"]; $transaction_new = $row["transaction_new"]; $transaction_result = $row["transaction_result"]; } unset ($prep_statement); } //get the type if not provided //if (strlen($transaction_old) > 4) { // $transaction_type = 'add'; //} //else { // $transaction_type = 'update'; //} //show the header require_once "resources/header.php"; //show the content echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
".$text['title-database_transaction']."

\n"; echo " "; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['label-app_name']."\n"; echo " \n"; echo " ".$app_name."\n"; echo "
\n"; echo " ".$text['label-user_uuid']."\n"; echo " \n"; echo " ".$username."\n"; echo "
\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['label-transaction_code']."\n"; echo " \n"; echo " $transaction_code\n"; echo "
\n"; echo " ".$text['label-transaction_address']."\n"; echo " \n"; echo " $transaction_address\n"; echo "
\n"; echo "
\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['label-transaction_type']."\n"; echo " \n"; echo " $transaction_type\n"; echo "
\n"; echo " ".$text['label-domain']."\n"; echo " \n"; echo " ".$domain_name; echo "
\n"; echo "
\n"; if ($_REQUEST["debug"] == "true") { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['label-transaction_old']."\n"; echo "\n"; //echo " \n"; echo " \n"; //echo "
\n"; //echo $text['description-transaction_old']."\n"; echo "
\n"; echo " ".$text['label-transaction_new']."\n"; echo "\n"; //echo " \n"; echo " \n"; //echo "
\n"; //echo $text['description-transaction_new']."\n"; echo "
\n"; echo " ".$text['label-transaction_result']."\n"; echo "\n"; //echo " \n"; echo " \n"; //echo "
\n"; //echo $text['description-transaction_result']."\n"; echo "
"; } //define the array _difference function //this adds old and new values to the array function array_difference($array1, $array2) { $difference = array(); if (is_array($array1)) { foreach($array1 as $key => $value) { if(is_array($array2[$key])) { $difference[$key] = array_difference($array1[$key], $array2[$key]); } else { $difference[$key]['old'] = $value; } } } if (is_array($array2)) { foreach($array2 as $key => $value) { if(is_array($value)) { $difference[$key] = array_difference($array1[$key], $array2[$key]); } else { $difference[$key]['new'] = $value; } } } return $difference; } //show the content from the difference array as a list function show_difference($array) { //loop through the array foreach($array as $key => $value) { if(is_array($value) && !isset($value['old']) && !isset($value['new'])) { if (!is_numeric($key)) { //get the table name $_SESSION['name'] = $key; } else { //get the row id $_SESSION['row'] = $key; } $array = show_difference($value); } else { //set the variables $old = $value['old']; $new = $value['new']; if (is_null($old)) { $old = ''; } if (is_null($new)) { $new = ''; } //determine if the value has changed if (strval($old) == strval($new) && isset($old)) { $color = "#000000"; } else { $color = "#ff0000"; } //set the table header if ($_SESSION['previous_name'] != $_SESSION['name'] || $_SESSION['previous_row'] != $_SESSION['row']) { echo str_replace("name","".$_SESSION['name']."",$_SESSION['table_header']); //echo $_SESSION['table_header']; } $_SESSION['previous_name'] = $_SESSION['name']; $_SESSION['previous_row'] = $_SESSION['row']; //show the results echo "\n"; //echo " ".$_SESSION['name']."\n"; //echo " ".$_SESSION['row']."\n"; echo " $key\n"; echo " ".$old."\n"; echo " ".$new.""; echo "\n"; //echo "\n"; } } } //decode the json to arrays $before = json_decode($transaction_old, true); $after = json_decode($transaction_new, true); //unset the sessions unset($_SESSION['previous_name']); unset($_SESSION['previous_row']); //show the add or update if ($transaction_type == "add") { echo "
\n"; echo "
\n";
		print_r($after);
		echo "		
\n"; } //show the add or update if ($transaction_type == "update") { if (count($before) > 0 && count($after) > 0) { //create the table header $array = array_difference($before, $after, 1); $table_header = " \n"; $table_header .= "\n"; //$table_header .= " Table\n"; //$table_header .= " Row\n"; $table_header .= " name\n"; $table_header .= " old\n"; $table_header .= " new\n"; $table_header .= "\n"; $_SESSION['table_header'] = $table_header; //show the difference echo "\n"; show_difference($array); echo "
\n"; } } //show the delete if ($transaction_type == "delete") { //echo "

Record Deleted


\n"; echo "
\n"; echo "
\n";
		print_r($before);
		echo "		
\n"; } //add a few lines at the end echo "
\n"; echo "
\n"; //include the footer require_once "resources/footer.php"; ?>