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>
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
<?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;
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user