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>
154 lines
5.7 KiB
PHP
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;
|
|
}
|
|
|
|
?>
|