<?php
require('constants.php');
$db = new SQLite3($DB_FILE);

$new_group_id = 0;

// Handle new group creation if provided
if (isset($_POST['new_group_name']) && !empty($_POST['new_group_name'])) {
    $new_group_name = $_POST['new_group_name'];
    // Insert new group into the database
    $stmt = $db->prepare('INSERT INTO groups (name) VALUES (:name)');
    $stmt->bindValue(':name', $new_group_name, SQLITE3_TEXT);
    $stmt->execute();
    $new_group_id = $db->lastInsertRowID();
}

// Handle form submission for creating a new entry
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $position = $_POST['position'];
    $beschreibung = $_POST['beschreibung'];
    $einheit = $_POST['einheit'];
    $menge = floatval($_POST['menge']);
    $preis_pro_einheit = floatval($_POST['preis_pro_einheit']);
    $gesamtpreis = $menge * $preis_pro_einheit;
    $group_id = $new_group_id > 0 ? $new_group_id : intval($_POST['group_id']);  // Capture the group ID

    if ($group_id < 1) {
	die("no group");
    }

    if ($id) {
        // Update entry
        $stmt = $db->prepare('UPDATE entries SET position = :position, beschreibung = :beschreibung, einheit = :einheit, menge = :menge, preis_pro_einheit = :preis_pro_einheit, gesamtpreis = :gesamtpreis, group_id = :group_id WHERE id = :id');
        $stmt->bindValue(':id', $id, SQLITE3_INTEGER);
    } else {
        // Insert new entry
        $stmt = $db->prepare('INSERT INTO entries (position, beschreibung, einheit, menge, preis_pro_einheit, gesamtpreis, group_id) VALUES (:position, :beschreibung, :einheit, :menge, :preis_pro_einheit, :gesamtpreis, :group_id)');
    }

    $stmt->bindValue(':position', $position, SQLITE3_TEXT);
    $stmt->bindValue(':beschreibung', $beschreibung, SQLITE3_TEXT);
    $stmt->bindValue(':einheit', $einheit, SQLITE3_TEXT);
    $stmt->bindValue(':menge', $menge, SQLITE3_FLOAT);
    $stmt->bindValue(':preis_pro_einheit', $preis_pro_einheit, SQLITE3_FLOAT);
    $stmt->bindValue(':gesamtpreis', $gesamtpreis, SQLITE3_FLOAT);
    $stmt->bindValue(':group_id', $group_id, SQLITE3_INTEGER);
    $stmt->execute();

    header('Location: list.php');
    exit();
}

// Fetch existing groups for the dropdown
$groupResults = $db->query('SELECT * FROM groups');
$groups = [];
while ($row = $groupResults->fetchArray(SQLITE3_ASSOC)) {
    $groups[] = $row;
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo isset($id) ? 'Edit Entry' : 'Create New Entry'; ?></title>
</head>
<body>
    <h1><?php echo isset($id) ? 'Edit Entry' : 'Create New Entry'; ?></h1>
    <form action="" method="post">
        <label for="position">Position:</label><br>
        <input type="text" id="position" name="position" value="<?php echo htmlspecialchars($entry['position']); ?>" required><br><br>

        <label for="beschreibung">Beschreibung:</label><br>
        <textarea id="beschreibung" name="beschreibung"><?php echo htmlspecialchars($entry['beschreibung']); ?></textarea><br><br>

        <label for="einheit">Einheit:</label><br>
        <input type="text" id="einheit" name="einheit" value="<?php echo htmlspecialchars($entry['einheit']); ?>"><br><br>

        <label for="menge">Menge:</label><br>
        <input type="number" step="0.01" id="menge" name="menge" value="<?php echo htmlspecialchars($entry['menge']); ?>"><br><br>

        <label for="preis_pro_einheit">Preis pro Einheit:</label><br>
        <input type="number" step="0.01" id="preis_pro_einheit" name="preis_pro_einheit" value="<?php echo htmlspecialchars($entry['preis_pro_einheit']); ?>"><br><br>

        <label for="group_id">Select Group:</label><br>
        <select id="group_id" name="group_id">
            <option value="">-- Select Group --</option>
            <?php foreach ($groups as $group): ?>
                <option value="<?php echo htmlspecialchars($group['id']); ?>">
                    <?php echo htmlspecialchars($group['name']); ?>
                </option>
            <?php endforeach; ?>
        </select>
        <br><br>

        <h3>Create New Group</h3>
        <label for="new_group_name">Group Name:</label><br>
        <input type="text" id="new_group_name" name="new_group_name"><br><br>

        <button type="submit"><?php echo isset($id) ? 'Update' : 'Create'; ?></button>
    </form>
    <br>
    <a href="list.php">Back to List</a>
</body>
</html>

