From 472c23b4515628b7f327e38ffb1e5e5a90af067c Mon Sep 17 00:00:00 2001 From: OpenXE <> Date: Sun, 26 Jan 2025 20:34:38 +0100 Subject: [PATCH] projekt uebergeordnetes_projekt nummernkreis --- upgrade/data/db_schema.json | 11 ++++++++++ www/lib/class.erpapi.php | 17 +++++++++++++++ www/pages/content/projekt_uebersicht.tpl | 6 ++++++ www/pages/projekt.php | 27 ++++++++++++++++-------- 4 files changed, 52 insertions(+), 9 deletions(-) diff --git a/upgrade/data/db_schema.json b/upgrade/data/db_schema.json index df80f65f..5484bc0b 100644 --- a/upgrade/data/db_schema.json +++ b/upgrade/data/db_schema.json @@ -80375,6 +80375,17 @@ "Extra": "", "Privileges": "select,insert,update,references", "Comment": "" + }, + { + "Field": "uebergeordnetes_projekt", + "Type": "int(11)", + "Collation": null, + "Null": "NO", + "Key": "", + "Default": "0", + "Extra": "", + "Privileges": "select,insert,update,references", + "Comment": "" } ], "keys": [ diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index b1105403..4dc99ab0 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -27254,6 +27254,23 @@ function Firmendaten($field,$projekt="") $eigenernummernkreis = $this->app->DB->Select("SELECT eigenernummernkreis FROM projekt WHERE id='$projekt' LIMIT 1"); $belegnr = ''; + + $untergeordnetes_projekt = $projekt; + if (empty($eigenernummernkreis)) { + do { + $uebergeordnetes_projekt = $this->app->DB->Select("SELECT uebergeordnetes_projekt FROM projekt WHERE id='$untergeordnetes_projekt' LIMIT 1"); + if (!empty($uebergeordnetes_projekt)) { + $eigenernummernkreis = $this->app->DB->Select("SELECT eigenernummernkreis FROM projekt WHERE id='$uebergeordnetes_projekt' LIMIT 1"); + if ($eigenernummernkreis) { + $projekt = $uebergeordnetes_projekt; + break; + } else { + $untergeordnetes_projekt = $uebergeordnetes_projekt; + } + } + } while (!empty($uebergeordnetes_projekt) && $uebergeordnetes_projekt != $projekt); + } + if($eigenernummernkreis=='1') { $allowedtypes = ['angebot', 'auftrag', 'rechnung', 'lieferschein', 'arbeitsnachweis', 'reisekosten', diff --git a/www/pages/content/projekt_uebersicht.tpl b/www/pages/content/projekt_uebersicht.tpl index bd0a5eb0..1ba449a4 100644 --- a/www/pages/content/projekt_uebersicht.tpl +++ b/www/pages/content/projekt_uebersicht.tpl @@ -46,6 +46,12 @@ + + Übergeordnetes Projekt: + + Für Nummernkreise + + Status: diff --git a/www/pages/projekt.php b/www/pages/projekt.php index 0ce13276..7ca8bfd3 100644 --- a/www/pages/projekt.php +++ b/www/pages/projekt.php @@ -1890,6 +1890,10 @@ class Projekt extends GenProjekt { { $kunde = $this->app->Secure->GetPOST("kunde"); $verantwortlicher = $this->app->Secure->GetPOST("verantwortlicher"); + $uebergeordnetes_projekt = $this->app->Secure->GetPOST('uebergeordnetes_projekt'); + + $uebergeordnetes_projekt = $this->app->erp->ReplaceProjektName(true,$uebergeordnetes_projekt,true); + $kundennummer = strstr($kunde,' ',true); $mitarbeiternummer = strstr($verantwortlicher,' ',true); $kundeid = $this->app->DB->Select("SELECT id FROM adresse WHERE kundennummer!='' AND kundennummer='$kundennummer' AND geloescht!=1 LIMIT 1"); @@ -1921,7 +1925,7 @@ class Projekt extends GenProjekt { } $this->app->FormHandler->FormUpdateDatabase("projekt",$id); - $this->app->DB->Update("UPDATE projekt SET kunde='$kundeid', verantwortlicher='$verantwortlicherid' WHERE id='$id' LIMIT 1"); + $this->app->DB->Update("UPDATE projekt SET kunde='$kundeid', verantwortlicher='$verantwortlicherid', uebergeordnetes_projekt='$uebergeordnetes_projekt' WHERE id='$id' LIMIT 1"); if($msg!="") { header("Location: index.php?module=projekt&action=uebersicht&id=$id&msg=$msg"); @@ -1931,12 +1935,13 @@ class Projekt extends GenProjekt { } $this->app->FormHandler->FormGetVars("projekt",$id); - $data = $this->app->DB->SelectArr("SELECT CONCAT(a.kundennummer,' ',a.name) as kunde, CONCAT(a2.id,' ',a2.name) as mitarbeiter, status FROM projekt p + $data = $this->app->DB->SelectArr("SELECT CONCAT(a.kundennummer,' ',a.name) as kunde, CONCAT(a2.id,' ',a2.name) as mitarbeiter, status, uebergeordnetes_projekt FROM projekt p LEFT JOIN adresse a ON a.id=p.kunde LEFT JOIN adresse a2 ON a2.id=p.verantwortlicher WHERE p.id='$id' LIMIT 1"); if(isset($data[0])) { $this->app->Tpl->Set('KUNDE',$data[0]['kunde']); - $this->app->Tpl->Set('VERANTWORTLICHER',$data[0]['mitarbeiter']); + $this->app->Tpl->Set('VERANTWORTLICHER',$data[0]['mitarbeiter']); + $this->app->Tpl->Set('UEBERGEORDNETES_PROJEKT',$this->app->erp->ReplaceProjektName(false,$data[0]['uebergeordnetes_projekt'],false)); switch($data[0]['status']){ case 'gestartet': case 'geplant': @@ -1946,8 +1951,6 @@ class Projekt extends GenProjekt { } } - - for($i = 0; $i <= 10; $i++) { $n1 = 'projektfreifeld'.$i.'typ'; @@ -2041,9 +2044,10 @@ class Projekt extends GenProjekt { $this->app->Tpl->Set("FREIFELDER",$output); - $this->app->YUI->AutoComplete("abkuerzung","projektname",1); + // $this->app->YUI->AutoComplete("abkuerzung","projektname",1); $this->app->YUI->AutoComplete("kunde","kunde"); $this->app->YUI->AutoComplete("verantwortlicher","adresse"); + $this->app->YUI->AutoComplete("uebergeordnetes_projekt","projektname"); $this->app->YUI->CkEditor("beschreibung","belege"); $this->app->YUI->CkEditor("sonstiges","internal"); $this->app->Tpl->Parse('PAGE','projekt_uebersicht.tpl'); @@ -2825,9 +2829,14 @@ class Projekt extends GenProjekt { if($check > 0){ $this->app->DB->Update( "UPDATE `projekt` - SET `name` = '" . $data['name'] . "', `abkuerzung` = '" . $data['abkuerzung'] . "', - `kunde` = '" . $data['kunde'] . "', `verantwortlicher` = '" . $data['verantwortlicher'] . "', - `beschreibung` = '" . $data['beschreibung'] . "', `status` = '" . $data['status'] . "' + SET + `name` = '" . $data['name'] . "', + `abkuerzung` = '" . $data['abkuerzung'] . "', + `kunde` = '" . $data['kunde'] . "', + `verantwortlicher` = '" . $data['verantwortlicher'] . "', + `uebergeordnetes_projekt` = '" . $data['uebergeordnetes_projekt'] . "', + `beschreibung` = '" . $data['beschreibung'] . "', + `status` = '" . $data['status'] . "' WHERE `id` = '$check' LIMIT 1" );