.
*/
/**
* This script performs updates of the database from any version
* to the current version.
*/
require('includes/basics.php');
if (!$kga['revision']) die("Database update failed. (Revision not defined!)");
$version_temp = get_DBversion();
$versionDB = $version_temp[0];
$revisionDB = $version_temp[1];
unset($version_temp);
if (!isset($_REQUEST['a']) && $kga['show_update_warn'] == 1) {
$RUsure = $kga['lang']['updater'][0];
?>
Kimai Update
Kimai Update
Kimai Update
Kimai Auto Updater v
Database Utility
";
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$pdo_query = $pdo_conn->prepare($query);
$success = $pdo_query->execute(array());
}
} else {
if (is_object($conn)) {
$success = $conn->Query($query);
}
}
logfile($query,$success);
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$err = $pdo_query->errorInfo();
$err = serialize($err);
}
} else {
if (is_object($conn)) {
$err = $conn->Error();
}
}
$query = htmlspecialchars($query);
$displayQuery = htmlspecialchars($displayQuery);
echo "".($displayQuery==null?$query:$displayQuery) ." ";
echo "" . $err . "";
echo " | ";
if ($success) {
echo " | ";
} else {
if ($errorProcessing) {
echo "! | ";
$errors++;
} else {
echo " | ";
}
}
if (!$success) {
logfile("An error has occured in query: $query");
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$err = $pdo_query->errorInfo();
$err = serialize($err);
}
} else {
if (is_object($conn)) {
$err = $conn->Error();
}
}
logfile("Error text: $err");
}
}
$version_e = explode(".",$kga['version']);
$versionDB_e = explode(".",$versionDB);
$errors = 0;
$executed_queries = 0;
logfile("-- begin update -----------------------------------");
$p = $kga['server_prefix'];
if ((int)$revisionDB < $kga['revision']) {
/**
* Perform an backup (or snapshot) of the current tables.
*/
logfile("-- begin backup -----------------------------------");
$backup_stamp = time(); // as an individual backup label the timestamp should be enough for now...
// by using this type of label we can also exactly identify when it was done
// may be shown by a recovering script in human-readable format
$query = ("SHOW TABLES;");
$result_backup=@mysql_query($query);
logfile($query,$result_backup);
$prefix_length = strlen($p);
echo "
";
echo "".$kga['lang']['updater'][50]."";
echo "";
while ($row = mysql_fetch_array($result_backup)) {
if ((substr($row[0], 0, $prefix_length) == $p) && (substr($row[0], 0, 10) != "kimai_bak_")) {
$primaryKey = "";
if (strlen(strstr($row[0],"evt"))>0) { $primaryKey = "evt_ID";}
if (strlen(strstr($row[0],"grp"))>0) { $primaryKey = "grp_ID";}
if (strlen(strstr($row[0],"knd"))>0) { $primaryKey = "knd_ID";}
if (strlen(strstr($row[0],"pct"))>0) { $primaryKey = "pct_ID";}
if (strlen(strstr($row[0],"zef"))>0) { $primaryKey = "zef_ID";}
if (strlen(strstr($row[0],"usr"))>0) { $primaryKey = "usr_name";}
if (strlen(strstr($row[0],"var"))>0) { $primaryKey = "var";}
if ( (strlen(strstr($row[0],"ldr"))>0)
|| (strlen(strstr($row[0],"grp_evt"))>0)
|| (strlen(strstr($row[0],"pct_evt"))>0)
|| (strlen(strstr($row[0],"grp_knd"))>0)
|| (strlen(strstr($row[0],"grp_pct"))>0))
{
$primaryKey = "uid";
}
if ( ((int)$revisionDB < 733) && (strlen(strstr($row[0],"ldr"))>0) ) { $primaryKey = ""; }
if ($primaryKey!="") {
$primaryKey = " (PRIMARY KEY (`" .$primaryKey. "`))";
}
$query = "CREATE TABLE kimai_bak_" . $backup_stamp . "_" . $row[0] . $primaryKey . " SELECT * FROM " . $row[0] . ";";
exec_query($query,1);
if ($errors) die($kga['lang']['updater'][60]);
}
}
logfile("-- backup finished -----------------------------------");
echo "
";
echo "".$kga['lang']['updater'][70]."";
echo "";
}
//////// ---------------------------------------------------------------------------------------------------
//////// ---------------------------------------------------------------------------------------------------
if ( ((int)$versionDB_e[1] == 7 && (int)$versionDB_e[2] < 12) ) {
logfile("-- update to 0.7.12");
exec_query("ALTER TABLE `${p}evt` ADD `evt_visible` TINYINT NOT NULL DEFAULT '1'",1);
exec_query("ALTER TABLE `${p}knd` ADD `knd_visible` TINYINT NOT NULL DEFAULT '1'",1);
exec_query("ALTER TABLE `${p}pct` ADD `pct_visible` TINYINT NOT NULL DEFAULT '1'",1);
exec_query("ALTER TABLE `${p}evt` ADD `evt_filter` TINYINT NOT NULL DEFAULT '0'",1);
exec_query("ALTER TABLE `${p}knd` ADD `knd_filter` TINYINT NOT NULL DEFAULT '0'",1);
exec_query("ALTER TABLE `${p}pct` ADD `pct_filter` TINYINT NOT NULL DEFAULT '0'",1);
exec_query("INSERT INTO ${p}var (`var`, `value`) VALUES ('revision','0')",1);
}
if ((int)$revisionDB < 96) {
logfile("-- update to 0.7.13r96");
exec_query("ALTER TABLE `${p}conf` ADD `allvisible` TINYINT(1) NOT NULL DEFAULT '1'",1);
// a proper installed database throws errors from here. don't worry - no problem. We ignore those ...
exec_query("ALTER TABLE `${p}evt` CHANGE `visible` `evt_visible` TINYINT(1) NOT NULL DEFAULT '1'",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `visible` `knd_visible` TINYINT(1) NOT NULL DEFAULT '1'",0);
exec_query("ALTER TABLE `${p}pct` CHANGE `visible` `pct_visible` TINYINT(1) NOT NULL DEFAULT '1'",0);
exec_query("ALTER TABLE `${p}evt` CHANGE `filter` `evt_filter` TINYINT(1) NOT NULL DEFAULT '0'",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `filter` `knd_filter` TINYINT(1) NOT NULL DEFAULT '0'",0);
exec_query("ALTER TABLE `${p}pct` CHANGE `filter` `pct_filter` TINYINT(1) NOT NULL DEFAULT '0'",0);
}
if ((int)$revisionDB < 141) {
logfile("-- update to 0.7.13r141");
$query="ALTER TABLE `${p}conf` ADD `flip_pct_display` tinyint(1) NOT NULL DEFAULT '0'";
exec_query($query,1);
}
if ((int)$revisionDB < 221) {
logfile("-- update to 0.8");
// drop views
exec_query("DROP VIEW IF EXISTS ${p}get_arr_grp, ${p}get_usr_count_in_grp",0);
// Set news group name length
exec_query("ALTER TABLE `${p}grp` CHANGE `grp_name` `grp_name` VARCHAR(160)",1);
// Merge usr and conf tables
$query="CREATE TABLE IF NOT EXISTS `${p}usr_tmp` (
`usr_ID` int(10) NOT NULL,
`usr_name` varchar(160) NOT NULL,
`usr_grp` int(5) NOT NULL default '1',
`usr_sts` tinyint(1) NOT NULL default '2',
`usr_trash` tinyint(1) NOT NULL default '0',
`usr_active` tinyint(1) NOT NULL default '1',
`usr_mail` varchar(160) NOT NULL,
`pw` varchar(254) NOT NULL,
`ban` int(1) NOT NULL default '0',
`banTime` int(7) NOT NULL default '0',
`secure` varchar(60) NOT NULL default '0',
`rowlimit` int(3) NOT NULL,
`skin` varchar(20) NOT NULL,
`recordingstate` tinyint(1) NOT NULL default '1',
`lastProject` int(10) NOT NULL default '1',
`lastEvent` int(10) NOT NULL default '1',
`lastRecord` int(10) NOT NULL default '0',
`filter` int(10) NOT NULL default '0',
`filter_knd` int(10) NOT NULL default '0',
`filter_pct` int(10) NOT NULL default '0',
`filter_evt` int(10) NOT NULL default '0',
`view_knd` int(10) NOT NULL default '0',
`view_pct` int(10) NOT NULL default '0',
`view_evt` int(10) NOT NULL default '0',
`zef_anzahl` int(10) NOT NULL default '0',
`timespace_in` varchar(60) NOT NULL default '0',
`timespace_out` varchar(60) NOT NULL default '0',
`autoselection` tinyint(1) NOT NULL default '1',
`quickdelete` tinyint(1) NOT NULL default '0',
`allvisible` tinyint(1) NOT NULL default '1',
`lang` varchar(6) NOT NULL,
`flip_pct_display` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`usr_name`))";
exec_query($query,1);
//////// ---------------------------------------------------------------------------------------------------
$query="SELECT * FROM `${p}usr` JOIN `${p}conf` ON `${p}usr`.usr_ID = `${p}conf`.conf_usrID";
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$pdo_query = $pdo_conn->prepare($query);
$success = $pdo_query->execute(array());
$executed_queries++;
while ($result_array = $pdo_query->fetch(PDO::FETCH_ASSOC)) {
echo "";
$query=<<prepare($query);
$success = $d_query->execute(array());
$executed_queries++;
$err = $d_query->errorInfo();
$err = serialize($err);
echo "".$query ." ";
echo "" . $err . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
} else {
if (is_object($conn)) {
$success = $conn->Query($query);
$executed_queries++;
$arr = array();
$rows = $conn->RecordsArray(MYSQL_ASSOC);
foreach($rows as $row) {
echo "";
$query=<<Query($query);
$executed_queries++;
echo "".$query ." ";
echo "" . $conn->Error() . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
}
//////// ---------------------------------------------------------------------------------------------------
exec_query("DROP TABLE `${p}usr`",1);
exec_query("DROP TABLE `${p}conf`",1);
exec_query("RENAME TABLE `${p}usr_tmp` TO `${p}usr`",1);
exec_query("ALTER TABLE `${p}knd` CHANGE `knd_telephon` `knd_tel` VARCHAR(255)",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `knd_mobilphon` `knd_mobile` VARCHAR(255)",0);
// Add field for icon/logo filename to customer, project and task table
exec_query("ALTER TABLE `${p}knd` ADD `knd_logo` VARCHAR(80)",1);
exec_query("ALTER TABLE `${p}pct` ADD `pct_logo` VARCHAR(80)",1);
exec_query("ALTER TABLE `${p}evt` ADD `evt_logo` VARCHAR(80)",1);
// Add trash field for customer, project and task tables
exec_query("ALTER TABLE `${p}knd` ADD `knd_trash` TINYINT(1) NOT NULL DEFAULT '0'",1);
exec_query("ALTER TABLE `${p}pct` ADD `pct_trash` TINYINT(1) NOT NULL DEFAULT '0'",1);
exec_query("ALTER TABLE `${p}evt` ADD `evt_trash` TINYINT(1) NOT NULL DEFAULT '0'",1);
exec_query("ALTER TABLE `${p}zef` ADD `zef_cleared` TINYINT(1) NOT NULL DEFAULT '0'",1);
//////// ---------------------------------------------------------------------------------------------------
// put the existing group-customer-relations into the new table
exec_query("CREATE TABLE `${p}grp_knd` (`uid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `grp_ID` INT NOT NULL, `knd_ID` INT NOT NULL)",0);
//////// ---------------------------------------------------------------------------------------------------
$query="SELECT `knd_ID`, `knd_grpID` FROM ${p}knd";
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$pdo_query = $pdo_conn->prepare($query);
$success = $pdo_query->execute(array());
$executed_queries++;
while ($result_array = $pdo_query->fetch(PDO::FETCH_ASSOC)) {
echo "";
$query="INSERT INTO ${p}grp_knd (`grp_ID`, `knd_ID`) VALUES (".$result_array[knd_grpID].", ".$result_array[knd_ID].")";
$d_query = $pdo_conn->prepare($query);
$success = $d_query->execute(array());
$executed_queries++;
$err = $d_query->errorInfo();
$err = serialize($err);
echo "".$query ." ";
echo "" . $err . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
} else {
if (is_object($conn)) {
$success = $conn->Query($query);
$executed_queries++;
$arr = array();
$rows = $conn->RecordsArray(MYSQL_ASSOC);
foreach($rows as $row) {
echo "";
$query="INSERT INTO ${p}grp_knd (`grp_ID`, `knd_ID`) VALUES (".$row[knd_grpID].", ".$row[knd_ID].")";
$success = $conn->Query($query);
$executed_queries++;
echo "".$query ." ";
echo "" . $conn->Error() . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
echo $conn->Error();
}
}
}
//////// ---------------------------------------------------------------------------------------------------
// put the existing group-project-relations into the new table
exec_query("CREATE TABLE `${p}grp_pct` (`uid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `grp_ID` INT NOT NULL, `pct_ID` INT NOT NULL)");
//////// ---------------------------------------------------------------------------------------------------
$query="SELECT `pct_ID`, `pct_grpID` FROM ${p}pct";
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$pdo_query = $pdo_conn->prepare($query);
$success = $pdo_query->execute(array());
$executed_queries++;
while ($result_array = $pdo_query->fetch(PDO::FETCH_ASSOC)) {
echo "";
$query="INSERT INTO ${p}grp_pct (`grp_ID`, `pct_ID`) VALUES (".$result_array[pct_grpID].", ".$result_array[pct_ID].")";
$d_query = $pdo_conn->prepare($query);
$success = $d_query->execute(array());
$executed_queries++;
$err = $d_query->errorInfo();
$err = serialize($err);
echo "".$query ." ";
echo "" . $err . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
} else {
if (is_object($conn)) {
$success = $conn->Query($query);
$executed_queries++;
$arr = array();
$rows = $conn->RecordsArray(MYSQL_ASSOC);
foreach($rows as $row) {
echo "";
$query="INSERT INTO ${p}grp_pct (`grp_ID`, `pct_ID`) VALUES (".$row[pct_grpID].", ".$row[pct_ID].")";
$success = $conn->Query($query);
$executed_queries++;
echo "".$query ." ";
echo "" . $conn->Error() . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
}
//////// ---------------------------------------------------------------------------------------------------
// put the existing group-event-relations into the new table
exec_query("CREATE TABLE `${p}grp_evt` (`uid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `grp_ID` INT NOT NULL, `evt_ID` INT NOT NULL)");
//////// ---------------------------------------------------------------------------------------------------
$query="SELECT `evt_ID`, `evt_grpID` FROM ${p}evt";
if ($kga['server_conn'] == "pdo") {
if (is_object($pdo_conn)) {
$pdo_query = $pdo_conn->prepare($query);
$success = $pdo_query->execute(array());
$executed_queries++;
while ($result_array = $pdo_query->fetch(PDO::FETCH_ASSOC)) {
echo "";
$query="INSERT INTO ${p}grp_evt (`grp_ID`, `evt_ID`) VALUES (".$result_array[evt_grpID].", ".$result_array[evt_ID].")";
$d_query = $pdo_conn->prepare($query);
$success = $d_query->execute(array());
$executed_queries++;
$err = $d_query->errorInfo();
$err = serialize($err);
echo "".$query ." ";
echo "" . $err . "";
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
} else {
if (is_object($conn)) {
$success = $conn->Query($query);
$executed_queries++;
$arr = array();
$rows = $conn->RecordsArray(MYSQL_ASSOC);
foreach($rows as $row) {
echo "";
$query="INSERT INTO ${p}grp_evt (`grp_ID`, `evt_ID`) VALUES (".$row[evt_grpID].", ".$row[evt_ID].")";
$success = $conn->Query($query);
$executed_queries++;
echo "| ".$query;
echo " | ";
if ($success) {
echo " | ";
} else {
echo "! | ";
}
echo "
";
}
}
}
//////// ---------------------------------------------------------------------------------------------------
// delete old single-group fields in knd, pct and evt
exec_query("ALTER TABLE ${p}knd DROP `knd_grpID`");
exec_query("ALTER TABLE ${p}pct DROP `pct_grpID`");
exec_query("ALTER TABLE ${p}evt DROP `evt_grpID`");
}
//////// ---------------------------------------------------------------------------------------------------
if ((int)$revisionDB < 733) {
logfile("-- update to 0.8.0a");
exec_query("ALTER TABLE `${p}evt` CHANGE `evt_visible` `evt_visible` TINYINT(1) NOT NULL DEFAULT '1';",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `knd_visible` `knd_visible` TINYINT(1) NOT NULL DEFAULT '1';",0);
exec_query("ALTER TABLE `${p}pct` CHANGE `pct_visible` `pct_visible` TINYINT(1) NOT NULL DEFAULT '1';",0);
exec_query("ALTER TABLE `${p}evt` CHANGE `evt_filter` `evt_filter` TINYINT(1) NOT NULL DEFAULT '0';",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `knd_filter` `knd_filter` TINYINT(1) NOT NULL DEFAULT '0';",0);
exec_query("ALTER TABLE `${p}pct` CHANGE `pct_filter` `pct_filter` TINYINT(1) NOT NULL DEFAULT '0';",0);
exec_query("ALTER TABLE `${p}evt` CHANGE `evt_ID` `evt_ID` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY;",0);
exec_query("ALTER TABLE `${p}grp` CHANGE `grp_ID` `grp_ID` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY;",0);
exec_query("ALTER TABLE `${p}grp` DROP `grp_leader`;",0);
exec_query("ALTER TABLE `${p}knd` CHANGE `knd_ID` `knd_ID` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY;",0);
exec_query("ALTER TABLE `${p}ldr` ADD `uid` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;",0);
exec_query("ALTER TABLE `${p}pct` CHANGE `pct_ID` `pct_ID` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY;",0);
exec_query("ALTER TABLE `${p}usr` DROP `recordingstate`;",0);
exec_query("ALTER TABLE `${p}var` ADD PRIMARY KEY (`var`);",0);
exec_query("ALTER TABLE `${p}zef` CHANGE `zef_ID` `zef_ID` INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY;",0);
}
if ((int)$revisionDB < 809) {
logfile("-- update to r810");
exec_query("ALTER TABLE `${p}usr` ADD `pct_comment_flag` TINYINT(1) NOT NULL DEFAULT '0'",1);
}
if ((int)$revisionDB < 817) {
logfile("-- update to r817");
exec_query("ALTER TABLE `${p}usr` ADD `showIDs` TINYINT(1) NOT NULL DEFAULT '0'",1);
}
if ((int)$revisionDB < 837) {
logfile("-- update to r837");
exec_query("ALTER TABLE `${p}usr` ADD `usr_alias` VARCHAR(10)",0);
exec_query("ALTER TABLE `${p}zef` ADD `zef_location` varchar(50)",1);
}
if ((int)$revisionDB < 848) {
logfile("-- update to r848");
exec_query("ALTER TABLE `${p}zef` ADD `zef_trackingnr` int(20)",1);
}
if ((int)$revisionDB < 898) {
logfile("-- update to r898");
exec_query("CREATE TABLE `${p}rates` (
`user_id` int(10) DEFAULT NULL,
`project_id` int(10) DEFAULT NULL,
`event_id` int(10) DEFAULT NULL,
`rate` decimal(10,2) NOT NULL
);",1);
exec_query("ALTER TABLE `${p}zef` ADD `zef_rate` DECIMAL( 10, 2 ) NOT NULL DEFAULT '0';",1);
}
if ((int)$revisionDB < 922) {
logfile("-- update to r922");
exec_query("ALTER TABLE `${p}knd` ADD `knd_password` VARCHAR(255);",1);
exec_query("ALTER TABLE `${p}knd` ADD `knd_secure` varchar(60) NOT NULL default '0';",1);
}
if ((int)$revisionDB < 935) {
logfile("-- update to r935");
exec_query("CREATE TABLE `${p}exp` (
`exp_ID` int(10) NOT NULL AUTO_INCREMENT,
`exp_timestamp` int(10) NOT NULL DEFAULT '0',
`exp_usrID` int(10) NOT NULL,
`exp_pctID` int(10) NOT NULL,
`exp_designation` text NOT NULL,
`exp_comment` text NOT NULL,
`exp_comment_type` tinyint(1) NOT NULL DEFAULT '0',
`exp_cleared` tinyint(1) NOT NULL DEFAULT '0',
`exp_value` decimal(10,2) NOT NULL DEFAULT '0.00',
PRIMARY KEY (`exp_ID`)
) AUTO_INCREMENT=1;");
}
if ((int)$revisionDB < 1067) {
logfile("-- update to r1067");
/*
* Write new config file with password salt
*/
$kga['password_salt'] = createPassword(20);
if (write_config_file(
$kga['server_database'],
$kga['server_hostname'],
$kga['server_username'],
$kga['server_password'],
$kga['server_conn'],
$kga['server_type'],
$kga['server_prefix'],
$kga['language'],
$kga['password_salt']))
echo '| '.$kga['lang']['updater'][140].' | |
';
else
die($kga['lang']['updater'][130]);
/*
* Reset all passwords
*/
$new_passwords = array();
$result = mysql_query("SELECT * FROM ${p}usr");
$users = array();
while ($row = mysql_fetch_assoc($result))
$users[] = $row;
foreach ($users as $user) {
if ($user['usr_name'] == 'admin')
$new_password = 'changeme';
else
$new_password = createPassword(8);
exec_query("UPDATE ${p}usr SET pw = '".
md5($kga['password_salt'].$new_password.$kga['password_salt']).
"' WHERE usr_ID = $user[usr_ID]");
if ($result)
$new_passwords[$user['usr_name']] = $new_password;
}
}
if ((int)$revisionDB < 1068) {
logfile("-- update to r1068");
exec_query("ALTER TABLE `${p}usr` CHANGE `autoselection` `autoselection` TINYINT( 1 ) NOT NULL default '0';");
}
if ((int)$revisionDB < 1077) {
logfile("-- update to r1076");
exec_query("ALTER TABLE `${p}usr` CHANGE `usr_mail` `usr_mail` varchar(160) DEFAULT ''");
exec_query("ALTER TABLE `${p}usr` CHANGE `pw` `pw` varchar(254) NULL DEFAULT NULL");
exec_query("ALTER TABLE `${p}usr` CHANGE `lang` `lang` varchar(6) DEFAULT ''");
exec_query("ALTER TABLE `${p}zef` CHANGE `zef_comment` `zef_comment` TEXT NULL DEFAULT NULL");
}
if ((int)$revisionDB < 1086) {
logfile("-- update to r1086");
exec_query("ALTER TABLE `${p}pct` ADD `pct_budget` DECIMAL(10,2) NOT NULL DEFAULT 0.00");
}
if ((int)$revisionDB < 1088) {
logfile("-- update to r1088");
exec_query("ALTER TABLE `${p}usr` ADD `noFading` TINYINT(1) NOT NULL DEFAULT '0'");
}
if ((int)$revisionDB < 1089) {
logfile("-- update to r1089");
exec_query("ALTER TABLE `${p}usr` ADD `export_disabled_columns` INT NOT NULL DEFAULT '0'");
}
if ((int)$revisionDB < 1103) {
logfile("-- update to r1103");
exec_query("ALTER TABLE ${p}usr DROP `allvisible`");
}
if ((int)$revisionDB < 1112) {
logfile("-- update to r1112");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('currency_name','Euro')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('currency_sign','€')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_sensible_data','1')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_update_warn','1')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('check_at_startup','0')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_daySeperatorLines','1')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_gabBreaks','0')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_RecordAgain','1')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('show_TrackingNr','1')");
}
if ((int)$revisionDB < 1113) {
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('date_format_0','%d.%m.%Y')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('date_format_1','%d.%m.')");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('date_format_2','%d.%m.%Y')");
exec_query("DELETE FROM ${p}var WHERE `var` = 'charset' LIMIT 1");
}
if ((int)$revisionDB < 1115) {
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('language','$kga[language]')");
}
if ((int)$revisionDB < 1126) {
logfile("-- update to r1126");
exec_query("ALTER TABLE `${p}grp_evt` ADD UNIQUE (`grp_ID` ,`evt_ID`);");
exec_query("ALTER TABLE `${p}grp_knd` ADD UNIQUE (`grp_ID` ,`knd_ID`);");
exec_query("ALTER TABLE `${p}grp_pct` ADD UNIQUE (`grp_ID` ,`pct_ID`);");
exec_query("ALTER TABLE `${p}ldr` ADD UNIQUE (`grp_ID` ,`grp_leader`);");
}
if ((int)$revisionDB < 1132) {
logfile("-- update to r1132");
if ($kga['server_conn'] == "mysql") {
exec_query("UPDATE ${p}usr, ${p}ldr SET usr_sts = 2 WHERE usr_sts = 1");
exec_query("UPDATE ${p}usr, ${p}ldr SET usr_sts = 1 WHERE usr_sts = 2 AND grp_leader = usr_ID");
}
}
if ((int)$revisionDB < 1139) {
logfile("-- update to r1139");
exec_query("ALTER TABLE `${p}usr` ADD `user_list_hidden` INT NOT NULL DEFAULT '0'");
}
if ((int)$revisionDB < 1142) {
logfile("-- update to r1142");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('roundPrecision','0')");
}
if ((int)$revisionDB < 1145) {
logfile("-- update to r1145");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('currency_first','0')");
}
if ((int)$revisionDB < 1176) {
logfile("-- update to r1176");
exec_query("ALTER TABLE `${p}exp` ADD INDEX ( `exp_usrID` ) ");
exec_query("ALTER TABLE `${p}exp` ADD INDEX ( `exp_pctID` ) ");
exec_query("ALTER TABLE `${p}pct` ADD INDEX ( `pct_kndID` ) ");
exec_query("ALTER TABLE `${p}zef` ADD INDEX ( `zef_usrID` ) ");
exec_query("ALTER TABLE `${p}zef` ADD INDEX ( `zef_pctID` ) ");
exec_query("ALTER TABLE `${p}zef` ADD INDEX ( `zef_evtID` ) ");
}
if ((int)$revisionDB < 1183) {
logfile("-- update to r1183");
exec_query("ALTER TABLE `${p}zef` CHANGE `zef_trackingnr` `zef_trackingnr` varchar(30) DEFAULT ''");
}
if ((int)$revisionDB < 1184) {
logfile("-- update to r1184");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('decimalSeparator',',')");
}
if ((int)$revisionDB < 1185) {
logfile("-- update to r1185");
exec_query("CREATE TABLE ${p}pct_evt (`uid` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `pct_ID` INT NOT NULL, `evt_ID` INT NOT NULL, UNIQUE (`pct_ID` ,`evt_ID`)) ;");
}
if ((int)$revisionDB < 1206) {
logfile("-- update to r1206");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('durationWithSeconds','0')");
}
if ((int)$revisionDB < 1207) {
logfile("-- update to r1207");
exec_query("ALTER TABLE `${p}exp` ADD `exp_multiplier` INT NOT NULL DEFAULT '1'");
}
if ((int)$revisionDB < 1213) {
logfile("-- update to r1213");
exec_query("ALTER TABLE ${p}knd DROP `knd_logo`");
exec_query("ALTER TABLE ${p}pct DROP `pct_logo`");
exec_query("ALTER TABLE ${p}evt DROP `evt_logo`");
}
if ((int)$revisionDB < 1216) {
logfile("-- update to r1216");
exec_query("ALTER TABLE `${p}exp`
ADD `exp_refundable` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'expense refundable to employee (0 = no, 1 = yes)' AFTER `exp_comment_type`;");
}
if ((int)$revisionDB < 1219) {
$timezone = mysql_real_escape_string($_REQUEST['timezone']);
logfile("-- update to r1219");
exec_query("ALTER TABLE `${p}usr`
ADD `timezone` VARCHAR( 40 ) NOT NULL DEFAULT ''");
exec_query("UPDATE `${p}usr`
SET `timezone` = '$timezone'");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('defaultTimezone','$timezone')");
}
if ((int)$revisionDB < 1225) {
logfile("-- update to r1225");
exec_query("CREATE TABLE `${p}preferences` (
`userID` int(10) NOT NULL,
`var` varchar(255) NOT NULL,
`value` varchar(255) NOT NULL,
PRIMARY KEY (`userID`,`var`)
);");
$columns = array('rowlimit','skin','autoselection','quickdelete',
'lang','flip_pct_display','pct_comment_flag','showIDs','noFading',
'export_disabled_columns','user_list_hidden','timezone');
// move user configuration over to preferences table, which are still in use
foreach ($columns as $column) {
exec_query("INSERT INTO ${p}preferences (`userID`,`var`,`value`) SELECT `usr_ID` , \"$column\", `$column` FROM `${p}usr`");
}
// add unused columns and drop all in usr table
$columns = array_merge($columns,array('zef_anzahl','filter','filter_knd','filter_pct','filter_evt','view_knd','view_pct','view_evt'));
foreach ($columns as $column) {
exec_query("ALTER TABLE ${p}usr DROP $column");
}
}
if ((int)$revisionDB < 1227) {
logfile("-- update to r1227");
exec_query("ALTER TABLE `${p}knd`
ADD `knd_vat` VARCHAR( 255 ) NOT NULL");
exec_query("ALTER TABLE `${p}knd`
ADD `knd_contact` VARCHAR( 255 ) NOT NULL");
}
if ((int)$revisionDB < 1229) {
logfile("-- update to r1229");
exec_query("ALTER TABLE `${p}usr` CHANGE `banTime` `banTime` int(10) NOT NULL DEFAULT 0");
}
if ((int)$revisionDB < 1236) {
logfile("-- update to r1236");
exec_query("ALTER TABLE `${p}pct`
ADD `pct_internal` TINYINT( 1 ) NOT NULL DEFAULT 0");
}
if ((int)$revisionDB < 1240) {
logfile("-- update to r1240");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('exactSums','0')");
}
if ((int)$revisionDB < 1256) {
logfile("-- update to r1256");
exec_query("INSERT INTO ${p}var (`var`,`value`) VALUES('defaultVat','0')");
}
if ((int)$revisionDB < 1257) {
logfile("-- update to r1257");
exec_query("UPDATE ${p}preferences SET var = CONCAT('ui.',var) WHERE var
IN ('skin', 'rowlimit', 'lang', 'autoselection', 'quickdelete', 'flip_pct_display',
'pct_comment_flag', 'showIDs', 'noFading', 'user_list_hidden', 'hideClearedEntries')");
}
if ((int)$revisionDB < 1284) {
logfile("-- update to r1284");
exec_query("ALTER TABLE `${p}exp` CHANGE `exp_multiplier`
`exp_multiplier` decimal(10,2) NOT NULL DEFAULT '1.00'");
}
if ((int)$revisionDB < 1291) {
logfile("-- update to r1291");
$salt = $kga['password_salt'];
$query = "UPDATE `${p}usr` SET pw=MD5(CONCAT('${salt}',pw,'${salt}')) WHERE pw REGEXP '^[0-9a-f]{32}$' = 0 AND pw != ''";
exec_query($query,false,str_replace($salt,'salt was stripped',$query));
}
if ((int)$revisionDB < 1305) {
logfile("-- update to r1305");
// update knd_name
$result = mysql_query("SELECT knd_ID,knd_name FROM ${p}knd");
while ($customer = mysql_fetch_assoc($result)) {
$name = htmlspecialchars_decode($customer['knd_name']);
if ($name == $customer['knd_name'])
continue;
exec_query("UPDATE ${p}knd SET knd_name = '".
mysql_real_escape_string($name).
"' WHERE knd_ID = $customer[knd_ID]");
}
// update pct_name
$result = mysql_query("SELECT pct_ID,pct_name FROM ${p}pct");
while ($project = mysql_fetch_assoc($result)) {
$name = htmlspecialchars_decode($project['pct_name']);
if ($name == $project['pct_name'])
continue;
exec_query("UPDATE ${p}pct SET pct_name = '".
mysql_real_escape_string($name).
"' WHERE pct_ID = $project[pct_ID]");
}
// update evt_name
$result = mysql_query("SELECT evt_ID,evt_name FROM ${p}evt");
while ($event = mysql_fetch_assoc($result)) {
$name = htmlspecialchars_decode($event['evt_name']);
if ($name == $event['evt_name'])
continue;
exec_query("UPDATE ${p}evt SET evt_name = '".
mysql_real_escape_string($name).
"' WHERE evt_ID = $event[evt_ID]");
}
// update usr_name
$result = mysql_query("SELECT usr_ID,usr_name FROM ${p}usr");
while ($user = mysql_fetch_assoc($result)) {
$name = htmlspecialchars_decode($user['usr_name']);
if ($name == $user['usr_name'])
continue;
exec_query("UPDATE ${p}usr SET usr_name = '".
mysql_real_escape_string($name).
"' WHERE usr_ID = $user[usr_ID]");
}
// update grp_name
$result = mysql_query("SELECT grp_ID,grp_name FROM ${p}grp");
while ($group = mysql_fetch_assoc($result)) {
$name = htmlspecialchars_decode($group['grp_name']);
if ($name == $group['grp_name'])
continue;
exec_query("UPDATE ${p}grp SET grp_name = '".
mysql_real_escape_string($name).
"' WHERE grp_ID = $group[grp_ID]");
}
}
// ============================
// = update DB version number =
// ============================
if ((int)$revisionDB < $kga['revision']) {
$versionDB_e[0] = 0;
$versionDB_e[1] = 8;
$versionDB_e[2] = 2;
$query=sprintf("UPDATE `${p}var` SET value = '%s' WHERE var = 'version';", $kga['version']);
exec_query($query,0);
$query=sprintf("UPDATE `${p}var` SET value = '%d' WHERE var = 'revision';", $kga['revision']);
exec_query($query,0);
}
logfile("-- update finished --------------------------------");
if ((int)$revisionDB == $kga['revision']) {
echo "";
} else {
$l2 = $kga['lang']['login'];
$l3 = $kga['lang']['updater'][90];
if (!$errors) {
$l1 = $kga['lang']['updater'][80];
echo<<
$("#link").append("$l1
");
$("#link").append("");
$("#link").addClass("success");
$("#queries").append("$executed_queries $l3");
EOD;
} else {
$l1 = $kga['lang']['updater'][100];
echo<<
$("#link").append("$l1
");
$("#link").append("");
$("#link").addClass("fail");
$("#queries").append("$executed_queries $l3");
EOD;
}
}
?>
:
| | |
$password)
echo "| $username | $password |
";
?>