'Non identifié — veuillez vous connecter.']); exit; } try { $pdo = getDbConnection(); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Connexion base de données impossible']); exit; } $method = $_SERVER['REQUEST_METHOD']; if ($method === 'GET') { $lignes = $pdo->query( 'SELECT ac.AGC_Incr, ac.AGC_AgentIncr, ac.AGC_CompetenceCode, ac.AGC_DateAttribution, a.AGN_Prenom, c.CMP_Libelle FROM ASP_AgentsCompetences ac JOIN ASP_Agents a ON a.AGN_Incr = ac.AGC_AgentIncr JOIN ASP_Competences c ON c.CMP_Code = ac.AGC_CompetenceCode ORDER BY a.AGN_Prenom, c.CMP_Libelle' )->fetchAll(); echo json_encode(['attributions' => $lignes]); exit; } if ($method === 'POST') { $data = json_decode(file_get_contents('php://input'), true) ?? []; $agentIncr = (int) ($data['AGC_AgentIncr'] ?? 0); $competenceCode = trim((string) ($data['AGC_CompetenceCode'] ?? '')); if ($agentIncr <= 0 || $competenceCode === '') { http_response_code(400); echo json_encode(['error' => 'AGC_AgentIncr et AGC_CompetenceCode sont obligatoires.']); exit; } try { $verifAgent = $pdo->prepare('SELECT 1 FROM ASP_Agents WHERE AGN_Incr = ?'); $verifAgent->execute([$agentIncr]); if (!$verifAgent->fetch()) { http_response_code(404); echo json_encode(['error' => 'Collaborateur introuvable']); exit; } $verifComp = $pdo->prepare('SELECT 1 FROM ASP_Competences WHERE CMP_Code = ?'); $verifComp->execute([$competenceCode]); if (!$verifComp->fetch()) { http_response_code(404); echo json_encode(['error' => 'Compétence introuvable']); exit; } $stmt = $pdo->prepare('SELECT 1 FROM ASP_AgentsCompetences WHERE AGC_AgentIncr = ? AND AGC_CompetenceCode = ?'); $stmt->execute([$agentIncr, $competenceCode]); if ($stmt->fetch()) { http_response_code(409); echo json_encode(['error' => 'Ce collaborateur a déjà cette compétence.']); exit; } $pdo->prepare('INSERT INTO ASP_AgentsCompetences (AGC_AgentIncr, AGC_CompetenceCode) VALUES (?, ?)') ->execute([$agentIncr, $competenceCode]); echo json_encode(['success' => true]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]); } exit; } if ($method === 'DELETE') { $data = json_decode(file_get_contents('php://input'), true) ?? []; $agentIncr = (int) ($data['AGC_AgentIncr'] ?? 0); $competenceCode = trim((string) ($data['AGC_CompetenceCode'] ?? '')); if ($agentIncr <= 0 || $competenceCode === '') { http_response_code(400); echo json_encode(['error' => 'AGC_AgentIncr et AGC_CompetenceCode sont obligatoires.']); exit; } try { $stmt = $pdo->prepare('DELETE FROM ASP_AgentsCompetences WHERE AGC_AgentIncr = ? AND AGC_CompetenceCode = ?'); $stmt->execute([$agentIncr, $competenceCode]); echo json_encode(['success' => true]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]); } exit; } http_response_code(405); echo json_encode(['error' => 'Méthode non autorisée']);