'', 'from_version_id' => '', 'to_version_id' => '', 'price' => '', 'currency' => 'USD', 'description' => '', 'is_active' => 1, 'created' => '', 'createdby' => $_SESSION['username'], 'updated' => '', 'updatedby' => $_SESSION['username'] ]; // Determine filter version id from URL (for hw_version filtering) $filter_version_id = $_GET['from_version_id'] ?? $_GET['to_version_id'] ?? $_GET['id'] ?? ''; // If editing, fetch existing data if (isset($_GET['id']) && $_GET['id'] != '') { $api_url = '/v2/products_software_upgrade_paths/rowID=' . $_GET['id']; $response = ioServer($api_url, ''); var_dump($response); if (!empty($response)) { $existing = json_decode($response); if (!empty($existing)) { $path = (array) $existing[0]; } } } // Fetch software versions for selects $api_url = '/v2/products_software_versions/list'; $versions_response = ioServer($api_url, ''); $all_versions = []; if (!empty($versions_response)) { $all_versions = json_decode($versions_response); } // Determine hw_version for filtering $filter_hw_version = null; $selected_versions = []; if (!empty($path['from_version_id'])) { $selected_versions[] = $path['from_version_id']; $api_url = '/v2/products_software_versions/rowID=' . $path['from_version_id']; $response = ioServer($api_url, ''); if (!empty($response)) { $ver = json_decode($response); if (!empty($ver)) { $filter_hw_version = $ver[0]->hw_version; } } } if (!empty($path['to_version_id'])) { $selected_versions[] = $path['to_version_id']; } if ($filter_hw_version === null && !empty($filter_version_id)) { $api_url = '/v2/products_software_versions/rowID=' . $filter_version_id; $response = ioServer($api_url, ''); if (!empty($response)) { $ver = json_decode($response); if (!empty($ver)) { $filter_hw_version = $ver[0]->hw_version; } } } // Filter versions to same hw_version $versions = []; if ($filter_hw_version !== null) { foreach ($all_versions as $ver) { if ($ver->hw_version == $filter_hw_version) { $versions[] = $ver; } } // Ensure selected versions are included foreach ($selected_versions as $sel_id) { $found = false; foreach ($versions as $ver) { if ($ver->rowID == $sel_id) { $found = true; break; } } if (!$found) { // Fetch and add $api_url = '/v2/products_software_versions/rowID=' . $sel_id; $response = ioServer($api_url, ''); if (!empty($response)) { $ver = json_decode($response); if (!empty($ver)) { $versions[] = $ver[0]; } } } } } else { $versions = $all_versions; } // Handle form submission if ($_SERVER['REQUEST_METHOD'] == 'POST') { $data = [ 'rowID' => $_POST['rowID'] ?? '', 'from_version_id' => $_POST['from_version_id'] ?? '', 'to_version_id' => $_POST['to_version_id'] ?? '', 'price' => $_POST['price'] ?? '', 'currency' => $_POST['currency'] ?? 'USD', 'description' => $_POST['description'] ?? '', 'is_active' => isset($_POST['is_active']) ? 1 : 0 ]; // Handle delete if (isset($_POST['delete'])) { $data['delete'] = true; } // Call API $api_url = '/v2/products_software_upgrade_paths/'; $result = ioServer($api_url, json_encode($data)); if ($result) { $success = isset($_POST['delete']) ? 3 : (isset($_POST['rowID']) && $_POST['rowID'] != '' ? 2 : 1); header('Location: ' . $url . '&success_msg=' . $success); exit; } else { $error_msg = 'Failed to save upgrade path.'; } } template_header('Upgrade Path', 'products_software_upgrade_paths_manage', 'manage'); $view ='