abfrage ob die tbl vorhanden ist hinzugefuegt

This commit is contained in:
ma0048
2021-10-28 12:30:10 +02:00
parent 7805784214
commit e6a11d0dc2
3 changed files with 136 additions and 57 deletions
+26 -5
View File
@@ -2177,6 +2177,7 @@ function exportProjectOverviewAsCSV($user, $delimiter = ',')
function getDataForProjectOverviewCSV($user)
{
$db = new basis_db();
$projects_of_user = new projekt();
$projects = $projects_of_user->getProjekteListForMitarbeiter($user);
@@ -2188,6 +2189,8 @@ function getDataForProjectOverviewCSV($user)
$csvData = array();
$exists = @$db->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
foreach ($projects as $project)
{
$titel = $project->titel;
@@ -2196,9 +2199,16 @@ function getDataForProjectOverviewCSV($user)
$projekt_phase_id = '';
$beginn = $project->beginn;
$ende = $project->ende;
$sap_projekt_id = $project->sap_project_id;
$csvData[] = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende, $sap_projekt_id);
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
if ($exists)
{
$sap_projekt_id = $project->sap_project_id;
$inhalt[] = $sap_projekt_id;
}
$csvData[] = $inhalt;
}
foreach ($projektphasen as $prjp)
@@ -2211,15 +2221,26 @@ function getDataForProjectOverviewCSV($user)
$projekt_phase_id = $prjp->projektphase_id;
$beginn = $prjp->start;
$ende = $prjp->ende;
$sap_project_id = $project->sap_project_id;
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
array_push($csvData, array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende, $sap_project_id) );
if ($exists)
{
$project_task_id = $prjp->project_task_id;
$inhalt[] = $project_task_id;
}
array_push($csvData, $inhalt);
}
}
sort($csvData);
//headers schreiben
array_unshift($csvData, array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE', 'SAP PROJEKTNUMMER'));
$header = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE');
if ($exists)
$header[] = 'SAP PROJEKTNUMMER';
array_unshift($csvData, $header);
return $csvData;
}
?>
+72 -30
View File
@@ -420,45 +420,86 @@ class projekt extends basis_db
function getProjekteListForMitarbeiter($mitarbeiter_uid, $projektphasen = false)
{
$projectList = array();
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
$qry = "SELECT DISTINCT
tbl_projekt.*, tbl_projects_timesheets_project.projects_timesheet_id
FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
LEFT JOIN sync.tbl_projects_timesheets_project USING(projekt_id)
WHERE (beginn<=now() or beginn is null)
tbl_projekt.*
";
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_id
";
}
$qry .= "FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project USING(projekt_id)
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE (beginn<=now() or beginn is null)
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
AND
(
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
student_uid=" . $this->db_add_param($mitarbeiter_uid) . "
)
AND tbl_projects_timesheets_project.projektphase_id IS NULL
";
if ($projektphasen == true)
$qry .= "UNION
if ($exists)
{
$qry .= "AND tbl_projects_timesheets_project.projektphase_id IS NULL
";
}
SELECT DISTINCT
tbl_projekt.*, tbl_projects_timesheets_project.projects_timesheet_id
FROM
fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
LEFT JOIN sync.tbl_projects_timesheets_project USING(projektphase_id)
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) OR (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if ($projektphasen == true)
{
$qry .= "UNION
SELECT DISTINCT
tbl_projekt.*
";
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_task_id
";
}
$qry .= "FROM fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) OR (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
";
};
$qry .= "AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if ($result = $this->db_query($qry)) {
while ($row = $this->db_fetch_object($result)) {
@@ -471,7 +512,8 @@ class projekt extends basis_db
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->sap_project_id = $row->projects_timesheet_id;
if ($exists)
$obj->sap_project_id = $row->project_id;
$this->result[] = $obj;
+38 -22
View File
@@ -48,7 +48,7 @@ class projektphase extends basis_db
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $sap_project_id;
public $project_task_id;
/**
@@ -686,27 +686,42 @@ public function getFortschritt($projektphase_id)
public function getProjectphaseForMitarbeiter($mitarbeiter_uid)
{
$projecphasetList = array();
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
$qry = "
SELECT
DISTINCT tbl_projektphase.*,tbl_projekt.titel, tbl_projects_timesheets_project.projects_timesheet_id
FROM
fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
LEFT JOIN sync.tbl_projects_timesheets_project USING(projektphase_id)
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) AND (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
$qry = "SELECT DISTINCT tbl_projektphase.*,
tbl_projekt.titel
";
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_task_id
";
}
$qry .= "FROM fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) AND (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if($result = $this->db_query($qry))
{
@@ -731,7 +746,8 @@ public function getFortschritt($projektphase_id)
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->sap_project_id = $row->projects_timesheet_id;
if ($exists)
$obj->project_task_id = $row->project_task_id;
$this->result[] = $obj;