Корректное удаление обучаемого с задачами 1

This commit is contained in:
krivoshein
2025-03-19 11:47:23 +03:00
parent 8f92c9487a
commit 06feb01b0d
3 changed files with 42 additions and 7 deletions

View File

@@ -918,6 +918,8 @@ int DataBaseLMS::deleteTrainee(int id_trainee)
QSqlQuery query = QSqlQuery(*db);
//Удаление задач AMM
queryStr = QString("DELETE FROM public.tasks_amm "
"WHERE trainee_task = %1 ").arg(
QString::number(id_trainee));
@@ -928,6 +930,39 @@ int DataBaseLMS::deleteTrainee(int id_trainee)
return 0;
}
//Удаление задач FIM
/*Выборка задач FIM для этого обучаемого*/
queryStr = QString("SELECT tasks_fim.task_id, tasks_fim.title, "
"trainees.trainee_id "
"FROM public.tasks_fim JOIN public.trainees ON trainees.trainee_id = tasks_fim.trainee_task "
"WHERE tasks_fim.trainee_task = %1 "
"ORDER BY tasks_fim.task_id ASC").arg(
id_trainee);
if(queryExec(queryStr, &query))
{
while (query.next())
{//Задача
/*Удаляем все malfunction для этой задачи*/
queryStr = QString("DELETE FROM public.malfunctions "
"WHERE malfunctions.task_fim_malf = %1 ").arg(
query.value(0).toInt());
if(!queryExec(queryStr, &query))
{
resBool = db->rollback();
return 0;
}
};
}
else
{
resBool = db->rollback();
return 0;
}
/*Удаление непосредственно задач FIM*/
queryStr = QString("DELETE FROM public.tasks_fim "
"WHERE trainee_task = %1 ").arg(
QString::number(id_trainee));
@@ -938,6 +973,8 @@ int DataBaseLMS::deleteTrainee(int id_trainee)
return 0;
}
//Удаление обучаемого
queryStr = QString("DELETE FROM public.trainees "
"WHERE trainee_id = %1 "
"RETURNING trainees.trainee_id").arg(