diff --git a/src/edit_article.php b/src/edit_article.php index 63af08f..2a7a4cc 100644 --- a/src/edit_article.php +++ b/src/edit_article.php @@ -180,6 +180,13 @@ if ($can_edit) { $parent_articles = $stmt_parent_articles->get_result()->fetch_all(MYSQLI_ASSOC); $stmt_parent_articles->close(); + // Lade ALLE Bilder (für Auswahl im Modal) - Limit auf 500 + $stmt_imgs = $conn->prepare("SELECT DISTINCT image_url FROM articles WHERE user_id IN ($placeholders) AND image_url IS NOT NULL AND image_url != '' AND image_url != '0' ORDER BY created_at DESC LIMIT 500"); + $stmt_imgs->bind_param($types, ...$household_member_ids); + $stmt_imgs->execute(); + $all_images = $stmt_imgs->get_result()->fetch_all(MYSQLI_ASSOC); + $stmt_imgs->close(); + // Lade Tags für Haushalt $stmt_tags_load = $conn->prepare("SELECT name FROM tags WHERE household_id = ? ORDER BY name ASC"); $stmt_tags_load->bind_param("i", $household_id_for_user); @@ -201,7 +208,39 @@ if ($can_edit) { $current_tags_value = implode(',', $current_article_tags); } -if ($_SERVER["REQUEST_METHOD"] == "POST" && $can_edit) { +if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['split_quantity']) && $can_edit) { + $split_qty = intval($_POST['split_quantity']); + $orig_qty = $article_data['quantity_owned']; + if ($split_qty > 0 && $split_qty < $orig_qty) { + $new_orig_qty = $orig_qty - $split_qty; + + $stmt_upd = $conn->prepare("UPDATE articles SET quantity_owned = ? WHERE id = ?"); + $stmt_upd->bind_param("ii", $new_orig_qty, $article_id); + $stmt_upd->execute(); + $stmt_upd->close(); + + $stmt_ins = $conn->prepare("INSERT INTO articles (name, weight_grams, category_id, image_url, user_id, household_id, consumable, quantity_owned, product_url, manufacturer_id, product_designation, storage_location_id, parent_article_id, owner_id) + SELECT name, weight_grams, category_id, image_url, user_id, household_id, consumable, ?, product_url, manufacturer_id, product_designation, storage_location_id, parent_article_id, owner_id FROM articles WHERE id = ?"); + $stmt_ins->bind_param("ii", $split_qty, $article_id); + $stmt_ins->execute(); + $new_article_id = $conn->insert_id; + $stmt_ins->close(); + + $stmt_tags = $conn->prepare("INSERT INTO article_tags (article_id, tag_id) SELECT ?, tag_id FROM article_tags WHERE article_id = ?"); + $stmt_tags->bind_param("ii", $new_article_id, $article_id); + $stmt_tags->execute(); + $stmt_tags->close(); + + if ($household_id_for_user) { + $log_message = htmlspecialchars($_SESSION['username']) . " hat den Bestand von '" . htmlspecialchars($article_data['name']) . "' aufgeteilt."; + log_household_action($conn, $household_id_for_user, $current_user_id, $log_message); + } + + header("Location: edit_article.php?id=" . $article_id . "&split_success=1"); + exit; + } +} +elseif ($_SERVER["REQUEST_METHOD"] == "POST" && $can_edit) { $name = trim($_POST['name']); $weight_grams = intval($_POST['weight_grams']); $consumable = isset($_POST['consumable']) ? 1 : 0; @@ -332,8 +371,70 @@ $conn->close(); - + +
+ + + + +