query("SELECT id, name FROM categories ORDER BY name"); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch locations for dropdown $stmt = $pdo->query("SELECT id, name FROM locations ORDER BY name"); $locations = $stmt->fetchAll(PDO::FETCH_ASSOC); // Fetch users for dropdown $stmt = $pdo->query("SELECT id, name FROM users ORDER BY name"); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $error_message = 'Database error: ' . $e->getMessage(); } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $data = []; $placeholders = []; $columns = []; // Generate new asset tag try { $pdo = db(); $stmt = $pdo->query("SELECT asset_tag FROM assets WHERE asset_tag LIKE 'ASSET-%' ORDER BY CAST(SUBSTRING(asset_tag, 7) AS UNSIGNED) DESC LIMIT 1"); $last_asset_tag = $stmt->fetchColumn(); if ($last_asset_tag) { $last_number = (int) substr($last_asset_tag, 6); $new_number = $last_number + 1; } else { $new_number = 1; } $new_asset_tag = 'ASSET-' . str_pad($new_number, 3, '0', STR_PAD_LEFT); $data = [$new_asset_tag]; $columns = ['asset_tag']; $placeholders = '?'; } catch (PDOException $e) { $error_message = 'Error generating asset tag: ' . $e->getMessage(); } if (empty($error_message)) { foreach ($allowed_fields as $field) { if (isset($_POST[$field])) { $value = $_POST[$field]; if (($field === 'category_id' || $field === 'location_id' || $field === 'assigned_to') && $value === '') { $value = null; } $data[] = $value; $columns[] = $field; } } if (count($data) <= 1) { // Only asset tag is present $error_message = 'No data submitted.'; } else { try { $sql = sprintf("INSERT INTO assets (%s) VALUES (%s)", implode(', ', $columns), implode(', ', array_fill(0, count($columns), '?'))); $stmt = $pdo->prepare($sql); $stmt->execute($data); header("Location: index.php?success=asset_added"); exit; } catch (PDOException $e) { $error_message = 'Database error: ' . $e->getMessage(); } } } } ?> Add New Asset - IC-Inventory

Add New Asset

Cancel