Files
Kundenverwaltung/incs/project.php
T
adminandClaude Opus 5 e2124220e5 Initialer Commit: Kundenverwaltung (PHP/Smarty)
Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 16:41:18 +02:00

154 lines
5.7 KiB
PHP

<?php
require_once("saveNchange.php");
function makeprojectarray($dbconn,$projectid)
{
$qry=mysqli_query($dbconn,"SELECT name, partner_id, id
FROM project
WHERE project.id = $projectid") or $err=error("Fehler beim ermitteln der Projektdaten<br />".mysqli_error($dbconn));
$project = mysqli_fetch_assoc($qry);
return $project;
}
function makeworkarray($dbconn,$projectid)
{
$qry=mysqli_query($dbconn,"SELECT rechn, bezeichn, std, id, DATE_FORMAT(datetime,'%d.%m.%y') AS datetime
FROM work
WHERE project_id = $projectid") or $err=error("Fehler beim ermitteln der Arbeiten<br />".mysqli_error($dbconn));
while($res=mysqli_fetch_assoc($qry))
{
$work[] = $res;
}
return $work;
}
function checkpartner($dbconn,$partnerid)
{
$qry=mysqli_query($dbconn,"SELECT id
FROM partner
WHERE id = '".mysqli_real_escape_string($dbconn,$partnerid)."'") or $err=error("Fehler beim ermitteln der Arbeiten<br />".mysqli_error($dbconn));
if(mysqli_fetch_assoc($qry))
$work = 1;
else
$work = 0;
return $work;
}
function saveProject($dbconn,$update)
{
$name = trim($_POST["name"]);
$partnerid = $_POST["partnerid"];
if($update)
{
$projectid=$update;
$undoqry=mysqli_query($dbconn,"SELECT * FROM project WHERE id ='".mysqli_escape_string($dbconn,$update)."'") or $err=error("Fehler beim einholen der Informationen für die LOG<br />".mysqli_error($dbconn));
$undores=mysqli_fetch_assoc($undoqry);
if(!$err)
{
$querystr = "UPDATE project SET
name='$name',
changeuser='".$_SESSION["user"]."',
partner_id='$partnerid',
changetime=NOW()
WHERE id = '".mysqli_escape_string($dbconn,$update)."'";
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren des Projekts<br />".mysqli_error($dbconn));
}
if(!$err)
{
$undoquerystr = "UPDATE projects SET
name='".$undores["name"]."',
partner_id='".$undores["partner_id"]."',
changetime='".$undores["changetime"]."'
WHERE id = '".mysqli_escape_string($dbconn,$update)."'";
$err = saveLog($dbconn,$querystr." [project change]",$undoquerystr,"ändern");
}
//delete ART-RECHN-LINKS
if(!$err)
{
$undoqry=mysqli_query($dbconn,"SELECT * FROM work WHERE project_id ='".mysqli_escape_string($dbconn,$update)."'") or $err=error("Fehler beim einholen der Verknüpfungen für die LOG<br />".mysqli_error($dbconn));
$undores=mysqli_fetch_assoc($undoqry);
}
if(!$err)
{
$querystr = "DELETE FROM work WHERE project_id = '".mysqli_escape_string($dbconn,$update)."'";
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim löschen der Verknüpfungen<br />".mysqli_error($dbconn));
}
if(!$err)
{
$undoquerystr = "INSERT INTO work SET project_id = '".mysqli_escape_string($dbconn,$update)."', bezeichn='".$undores["bezeichn"]."', std='".$undores["std"]."', rechn='".$undores["rechn"]."'";
$err = saveLog($dbconn,$querystr." [project change]",$undoquerystr,"löschen");
}
}
else
{
$querystr = "INSERT INTO project SET
name='$name',
partner_id='$partnerid',
changeuser='".$_SESSION["user"]."',
datetime=NOW()";
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim einfügen des Projekts<br />".mysqli_error($dbconn));
$projectid=mysqli_insert_id($dbconn);
if(!$err)
{
$undoquerystr = "DELETE FROM project WHERE id = '".$projectid."'";
$err = saveLog($dbconn,$querystr." [project add]",$undoquerystr,"anlegen");
}
}
if(!$err)
{
$i = 1;
$workhead = trim($_POST["workhead".$i]);
$workrechn = trim($_POST["workrechn".$i]);
$workstd = str_replace(",",".",trim($_POST["workstd".$i]));
$datetime = $_POST["workdate".$i];
$querystr = "INSERT INTO work SET rechn='$workrechn', bezeichn='$workhead', std='$workstd', datetime=STR_TO_DATE('$datetime','%d.%m.%y'), project_id='".$projectid."'";
$qry = mysqli_query($dbconn, $querystr) or $err=error("Fehler beim erstellen neuer Arbeiten <br />".mysqli_error($dbconn));
$workid = mysqli_insert_id($dbconn);
if(!$err)
{
$err = saveLog($dbconn,$querystr." [project change]","DELETE FROM work WHERE id ='$workid'","anlegen");
}
$i++;
while($_POST["workhead".$i] && !$err)
{
$workhead = trim($_POST["workhead".$i]);
$workrechn = trim($_POST["workrechn".$i]);
$workstd = str_replace(",",".",trim($_POST["workstd".$i]));
$datetime = $_POST["workdate".$i];
$querystr = "INSERT INTO work SET rechn='$workrechn', bezeichn='$workhead', std='$workstd', datetime=STR_TO_DATE('$datetime','%d.%m.%y'), project_id='".$projectid."'";
$qry = mysqli_query($dbconn, $querystr) or $err=error("Fehler beim erstellen neuer Arbeiten <br />".mysqli_error($dbconn));
$workid = mysqli_insert_id($dbconn);
if(!$err)
{
$err = saveLog($dbconn,$querystr." [project change]","DELETE FROM work WHERE id ='$workid'","anlegen");
}
$i++;
}
}
else
{
$err = error("Es ist ein Fehler beim Speichern aufgetreten, <br />
Ihr Projekt ist aber noch vorhanden, <br />
Bitte gehen Sie <a href='?action=rechnungadd&type=$type'>zurück zum Rechnungsformular</a> <br />
und wählen Sie in der auftauchenden Meldung die Schaltfläche <b>JA</b>");
}
return $err;
}
function delRechnung($dbconn,$id)
{
$qry= mysqli_query($dbconn, "DELETE FROM work WHERE project_id = '".mysql_escape_string($id)."'") or $err=error("Fehler beim löschen der Arbeiten <br />".mysqli_error($dbconn));
$qry= mysqli_query($dbconn, "DELETE FROM project WHERE id = '".mysql_escape_string($id)."' LIMIT 1") or $err=error("Fehler beim löschen des Projeckts <br />".mysqli_error($dbconn));
if(!$err)
{
$err = saveLog($dbconn,"DELETE FROM project WHERE id = '".mysql_escape_string($id)."' LIMIT 1 [project DEL]","","löschen");
}
return $err;
}
?>