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"
);
|