0) { $product = $product[0]; } else { $product = null; } } else { $product = null; } // Get assigned software versions $api_url = '/v2/products_software_assignment/product_id='.$productrowid; $assigned_response = ioServer($api_url,''); if (!empty($assigned_response)){$assigned = json_decode($assigned_response,true);}else{$assigned = [];} $assigned_ids = array_column($assigned, 'software_version_id'); // Get all software versions $api_url = '/v2/products_software_versions/list'; $versions_response = ioServer($api_url,''); if (!empty($versions_response)){$versions = json_decode($versions_response,true);}else{$versions = [];} // Get all upgrade paths $api_url = '/v2/products_software_upgrade_paths/list'; $paths_response = ioServer($api_url,''); if (!empty($paths_response)){$paths = json_decode($paths_response,true);}else{$paths = [];} // Handle form submission if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit'])) { $selected_versions = $_POST['versions'] ?? []; // Delete existing assignments not in selected foreach ($assigned as $assign) { if (!in_array($assign['software_version_id'], $selected_versions)) { $payload = json_encode(['rowID' => $assign['rowID'], 'delete' => true], JSON_UNESCAPED_UNICODE); ioServer('/v2/products_software_assignment', $payload); } } // Add new assignments foreach ($selected_versions as $version_id) { if (!in_array($version_id, $assigned_ids)) { $payload = json_encode(['product_id' => $productrowid, 'software_version_id' => $version_id], JSON_UNESCAPED_UNICODE); ioServer('/v2/products_software_assignment', $payload); } } header('Location: index.php?page=products_software_assignments&productrowid='.$productrowid.'&success_msg=1'); exit; } // Handle success messages if (isset($_GET['success_msg'])) { if ($_GET['success_msg'] == 1) { $success_msg = 'Software assignments updated successfully.'; } } template_header('Software Assignments', 'products_software_assignments', 'manage'); $view = '
'.$success_msg.'