Add view (WIP), add variable for DB type

This commit is contained in:
Florian Pesth 2024-02-12 06:04:46 +01:00
parent 7caa507600
commit 724e10fbc4
6 changed files with 35 additions and 8 deletions

View File

@ -52,3 +52,11 @@ CREATE TABLE `Status` (
`Text` text NOT NULL, `Text` text NOT NULL,
PRIMARY KEY (`StatusID`) PRIMARY KEY (`StatusID`)
); );
DROP VIEW IF EXISTS `SchichtUebersicht`;
CREATE VIEW `SchichtUebersicht` AS SELECT
`Schicht`.`DienstID` AS `DienstID`,
`Schicht`.`SchichtID` AS `SchichtID`,
`Schicht`.`Von` AS `Von`,`Schicht`.
`Bis` AS `Bis`,
count(`EinzelSchicht`.`SchichtID`) AS `C`,
`Schicht`.`Soll` AS `Soll` FROM (`Schicht` LEFT JOIN `EinzelSchicht` ON(`Schicht`.`SchichtID` = `EinzelSchicht`.`SchichtID`)) GROUP BY `Schicht`.`SchichtID`;

View File

@ -52,3 +52,11 @@ CREATE TABLE `Status` (
`Text` text NOT NULL, `Text` text NOT NULL,
PRIMARY KEY (`StatusID`) PRIMARY KEY (`StatusID`)
); );
DROP VIEW IF EXISTS `SchichtUebersicht`;
CREATE VIEW `SchichtUebersicht` AS SELECT
`Schicht`.`DienstID` AS `DienstID`,
`Schicht`.`SchichtID` AS `SchichtID`,
`Schicht`.`Von` AS `Von`,`Schicht`.
`Bis` AS `Bis`,
count(`EinzelSchicht`.`SchichtID`) AS `C`,
`Schicht`.`Soll` AS `Soll` FROM (`Schicht` LEFT JOIN `EinzelSchicht` ON(`Schicht`.`SchichtID` = `EinzelSchicht`.`SchichtID`)) GROUP BY `Schicht`.`SchichtID`;

View File

@ -21,9 +21,11 @@ class DB {
{ {
if(self::$instance == null){ if(self::$instance == null){
self::$instance = new DB(); self::$instance = new DB();
// Set database to german (FIXME should be configurable) if(DBTYPE === 'mariadb'){
self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'"); // Set database to german (FIXME should be configurable)
self::execute(__METHOD__); self::prepare(__METHOD__,"SET lc_time_names = 'de_DE'");
self::execute(__METHOD__);
}
} }
return self::$instance; return self::$instance;
} }
@ -269,7 +271,8 @@ function AlleSchichten($Sort, $HelferLevel = 1)
$db->onErrorDie(__METHOD__,'sort_by_was_von'); $db->onErrorDie(__METHOD__,'sort_by_was_von');
} }
return $db_erg; $schichten = $db->fetchAll(__METHOD__);
return $schichten;
} }
function AlleSchichtenCount($HelferLevel = 1) function AlleSchichtenCount($HelferLevel = 1)

View File

@ -191,8 +191,9 @@ function AlleSchichten($db_link, $Sort, $HelferLevel = 1)
die('Ungueltige Abfrage: ' . mysqli_error($db_link)); die('Ungueltige Abfrage: ' . mysqli_error($db_link));
} }
while($zeilen[] = mysqli_fetch_array($db_erg, MYSQLI_ASSOC));
return $db_erg; array_pop($zeilen);
return $zeilen;
} }
function AlleSchichtenCount($db_link, $HelferLevel = 1) function AlleSchichtenCount($db_link, $HelferLevel = 1)

View File

@ -36,15 +36,18 @@ $wizard->addCode('createdatabase',function($storedvariables){
fwrite($conf_file, "<?php\n"); fwrite($conf_file, "<?php\n");
if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){ if($storedvariables['selectdatabase']['databasetype'] == 'SQLite'){
fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n"); fwrite($conf_file, "define( 'MYSQL_DSN', 'sqlite:". realpath("..") . "/helferdb.sqlite3' );\n");
fwrite($conf_file, "define( 'MYSQL_HOST', '' );\n");
fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '' );\n");
fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '' );\n");
fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '' );\n");
fwrite($conf_file, "define( 'DBTYPE', 'sqlite');\n");
} elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){ } elseif ($storedvariables['selectdatabase']['databasetype'] == 'MariaDB'){
fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n"); fwrite($conf_file, "define( 'MYSQL_DSN', 'mysql:host=" . $storedvariables['enterlogindata']['host'] . ";dbname=". $storedvariables['enterlogindata']['dbname'] . ";charset=utf8mb4' );\n");
fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n"); fwrite($conf_file, "define( 'MYSQL_HOST', '".$storedvariables['enterlogindata']['host']."' );\n");
fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n"); fwrite($conf_file, "define( 'MYSQL_BENUTZER', '".$storedvariables['enterlogindata']['user']."' );\n");
fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n"); fwrite($conf_file, "define( 'MYSQL_KENNWORT', '".$storedvariables['enterlogindata']['password']."' );\n");
fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n"); fwrite($conf_file, "define( 'MYSQL_DATENBANK', '".$storedvariables['enterlogindata']['dbname']."' );\n");
fwrite($conf_file, "define( 'DBTYPE', 'mariadb');\n");
} }
fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n"); fwrite($conf_file, "define( 'LOGFILE', '".$storedvariables['basedata']['logfile']."' );\n");
fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n"); fwrite($conf_file, "define( 'EVENTNAME', '".$storedvariables['basedata']['eventname']."' );\n");

View File

@ -160,8 +160,11 @@ function TestHelferdatenAendern(){
function TestAlleSchichten(){ function TestAlleSchichten(){
$dbl = old\ConnectDB(); $dbl = old\ConnectDB();
$erg_old = old\AlleSchichten($dbl, $Sort, $HelferLevel = 1); $erg_old = old\AlleSchichten($dbl, 1, 2);
$erg_new = AlleSchichten($Sort, $HelferLevel = 1); var_dump($erg_old);
$erg_new = AlleSchichten(1, 2);
var_dump($erg_new);
die("Test");
if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){
echo "Old AlleSchichten returns".var_export($erg_old, true)."\n"; echo "Old AlleSchichten returns".var_export($erg_old, true)."\n";
echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n"; echo "New AlleSchichten returns '".var_export($erg_new, true)."'\n";
@ -553,4 +556,5 @@ TestNewSchicht();
TestGetSchichtenEinesDienstes(); TestGetSchichtenEinesDienstes();
TestChangeSchicht(); TestChangeSchicht();
TestGetSchichtenForDienstForDay(); TestGetSchichtenForDienstForDay();
TestAlleSchichten();
?> ?>