?php // IT-Dienstleistung CRM - All-in-One Single File PHP Application // Database: SQLite (crm.db) $db_file = __DIR__ . '/crm.db'; try { $db = new PDO('sqlite:' . $db_file); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Tabellen erstellen falls nicht vorhanden $db->exec("CREATE TABLE IF NOT EXISTS kunden ( id INTEGER PRIMARY KEY AUTOINCREMENT, firmenname TEXT, ansprechpartner TEXT, email TEXT, telefon TEXT, adresse TEXT, notizen TEXT, erstellt_am DATETIME DEFAULT CURRENT_TIMESTAMP )"); $db->exec("CREATE TABLE IF NOT EXISTS akten ( id INTEGER PRIMARY KEY AUTOINCREMENT, kunde_id INTEGER, titel TEXT, kategorie TEXT, -- z.B. Hardware, Netzwerk, Software, Wartung status TEXT, -- Offen, In Bearbeitung, Erledigt, Wartung beschreibung TEXT, kosten REAL DEFAULT 0.0, erstellt_am DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY(kunde_id) REFERENCES kunden(id) ON DELETE CASCADE )"); } catch (PDOException $e) { die("Datenbankfehler: " . $e->getMessage()); } $action = $_GET['action'] ?? 'dashboard'; $id = $_GET['id'] ?? null; // POST Handler if ($_SERVER['REQUEST_METHOD'] === 'POST') { $form_type = $_POST['form_type'] ?? ''; if ($form_type === 'kunde_speichern') { $firmenname = $_POST['firmenname'] ?? ''; $ansprechpartner = $_POST['ansprechpartner'] ?? ''; $email = $_POST['email'] ?? ''; $telefon = $_POST['telefon'] ?? ''; $adresse = $_POST['adresse'] ?? ''; $notizen = $_POST['notizen'] ?? ''; $kid = $_POST['id'] ?? ''; if ($kid) { $stmt = $db->prepare("UPDATE kunden SET firmenname=?, ansprechpartner=?, email=?, telefon=?, adresse=?, notizen=? WHERE id=?"); $stmt->execute([$firmenname, $ansprechpartner, $email, $telefon, $adresse, $notizen, $kid]); } else { $stmt = $db->prepare("INSERT INTO kunden (firmenname, ansprechpartner, email, telefon, adresse, notizen) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$firmenname, $ansprechpartner, $email, $telefon, $adresse, $notizen]); } header("Location: index.php?action=kunden"); exit; } if ($form_type === 'akte_speichern') { $kunde_id = $_POST['kunde_id'] ?? ''; $titel = $_POST['titel'] ?? ''; $kategorie = $_POST['kategorie'] ?? ''; $status = $_POST['status'] ?? ''; $beschreibung = $_POST['beschreibung'] ?? ''; $kosten = floatval($_POST['kosten'] ?? 0); $aid = $_POST['id'] ?? ''; if ($aid) { $stmt = $db->prepare("UPDATE akten SET kunde_id=?, titel=?, kategorie=?, status=?, beschreibung=?, kosten=? WHERE id=?"); $stmt->execute([$kunde_id, $titel, $kategorie, $status, $beschreibung, $kosten, $aid]); } else { $stmt = $db->prepare("INSERT INTO akten (kunde_id, titel, kategorie, status, beschreibung, kosten) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$kunde_id, $titel, $kategorie, $status, $beschreibung, $kosten]); } header("Location: index.php?action=akten"); exit; } } // Löschen Handler if ($action === 'loeschen' && $id) { $typ = $_GET['typ'] ?? ''; if ($typ === 'kunde') { $stmt = $db->prepare("DELETE FROM kunden WHERE id = ?"); $stmt->execute([$id]); header("Location: index.php?action=kunden"); exit; } elseif ($typ === 'akte') { $stmt = $db->prepare("DELETE FROM akten WHERE id = ?"); $stmt->execute([$id]); header("Location: index.php?action=akten"); exit; } } ?> EDV & IT CRM - Kleingewerbe