associate
This commit is contained in:
@@ -33,6 +33,17 @@ if (isset($_POST['formclass']) && $_POST['formclass'] === 'Y') {
|
||||
$idassociateservice = (int) ($_POST['servicelist'] ?? 0);
|
||||
|
||||
if ($idmainservice > 0 && $idassociateservice > 0) {
|
||||
// Evita duplicati: inserisci solo se l'associazione non esiste già
|
||||
$stmtCheck = $pdo->prepare(
|
||||
"SELECT COUNT(*) FROM associateclass
|
||||
WHERE idmainservice = :main AND idassociateservice = :assoc"
|
||||
);
|
||||
$stmtCheck->execute([':main' => $idmainservice, ':assoc' => $idassociateservice]);
|
||||
$alreadyExists = (int) $stmtCheck->fetchColumn() > 0;
|
||||
|
||||
if ($alreadyExists) {
|
||||
$insertFeedback = ['type' => 'error', 'text' => 'Questa classe è già associata.'];
|
||||
} else {
|
||||
$stmt = $pdo->prepare(
|
||||
"INSERT INTO associateclass (idmainservice, idassociateservice)
|
||||
VALUES (:main, :assoc)"
|
||||
@@ -44,6 +55,7 @@ if (isset($_POST['formclass']) && $_POST['formclass'] === 'Y') {
|
||||
$insertFeedback = $ok
|
||||
? ['type' => 'success', 'text' => 'Associazione aggiunta con successo.']
|
||||
: ['type' => 'error', 'text' => 'Errore durante l\'associazione. Riprova.'];
|
||||
}
|
||||
} else {
|
||||
$insertFeedback = ['type' => 'error', 'text' => 'Seleziona una classe da associare.'];
|
||||
}
|
||||
@@ -66,12 +78,21 @@ if ($idmain > 0) {
|
||||
}
|
||||
|
||||
/* -------------------------------------------------------------------------
|
||||
* Elenco di tutte le classi (per il dropdown), escludendo la principale
|
||||
* Elenco delle classi per il dropdown:
|
||||
* esclude la principale E quelle già associate a questa principale.
|
||||
* ---------------------------------------------------------------------- */
|
||||
$stmtAll = $pdo->prepare(
|
||||
"SELECT idservice, servicename FROM service WHERE idservice != :idmain ORDER BY servicename"
|
||||
"SELECT idservice, servicename
|
||||
FROM service
|
||||
WHERE idservice != :idmain
|
||||
AND idservice NOT IN (
|
||||
SELECT idassociateservice
|
||||
FROM associateclass
|
||||
WHERE idmainservice = :idmain2
|
||||
)
|
||||
ORDER BY servicename"
|
||||
);
|
||||
$stmtAll->execute([':idmain' => $idmain]);
|
||||
$stmtAll->execute([':idmain' => $idmain, ':idmain2' => $idmain]);
|
||||
$allServices = $stmtAll->fetchAll();
|
||||
|
||||
/* -------------------------------------------------------------------------
|
||||
@@ -251,6 +272,9 @@ $associatedClasses = $stmtAssoc->fetchAll();
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<?php if (empty($allServices)) : ?>
|
||||
<small class="text-muted">Tutte le classi disponibili sono già state associate.</small>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user