Удаление назначенных задач

This commit is contained in:
krivoshein
2025-03-25 12:58:42 +03:00
parent 50d1a2cf9e
commit c0b2ff0621
9 changed files with 242 additions and 17 deletions

View File

@@ -481,12 +481,46 @@ int DataBaseLMS::updateTaskAMM(TaskAmmFim task)
int DataBaseLMS::deleteTaskAMM(int id_task)
{
QString queryStr = QString("DELETE FROM public.tasks_amm "
QString queryStr;
bool resBool = false;
int id_trainee = 0;
resBool = db->transaction();
queryStr = QString("SELECT trainees.trainee_id "
"FROM public.trainees JOIN public.tasks_amm ON trainees.trainee_id = tasks_amm.trainee_task "
"WHERE tasks_amm.task_id = %1 "
"ORDER BY trainees.trainee_id ASC").arg(
QString::number(id_task));
QSqlQuery query = QSqlQuery(*db);
if(queryExec(queryStr, &query))
{
if (query.first())
{//Обучаемый
id_trainee = query.value(0).toInt();
}
}
if(!id_trainee)
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.tasks_amm "
"WHERE task_id = %1 "
"RETURNING tasks_amm.task_id").arg(
QString::number(id_task));
return queryExecInt(queryStr);
if(!queryExecInt(queryStr))
{
resBool = db->rollback();
return 0;
}
resBool = db->commit();
return id_trainee;
}
QList<TaskAmmFim> DataBaseLMS::selectTasksAMMofTrainee(int id_trainee)
@@ -577,13 +611,57 @@ int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
int DataBaseLMS::deleteTaskFIM(int id_task)
{
//TODO доделать удаление malfunction
QString queryStr = QString("DELETE FROM public.tasks_fim "
QString queryStr;
bool resBool = false;
int id_trainee = 0;
resBool = db->transaction();
queryStr = QString("SELECT trainees.trainee_id "
"FROM public.trainees JOIN public.tasks_fim ON trainees.trainee_id = tasks_fim.trainee_task "
"WHERE tasks_fim.task_id = %1 "
"ORDER BY trainees.trainee_id ASC").arg(
QString::number(id_task));
QSqlQuery query = QSqlQuery(*db);
if(queryExec(queryStr, &query))
{
if (query.first())
{//Обучаемый
id_trainee = query.value(0).toInt();
}
}
if(!id_trainee)
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.malfunctions "
"WHERE task_fim_malf = %1 ").arg(
QString::number(id_task));
QSqlQuery query1 = QSqlQuery(*db);
if(!queryExec(queryStr, &query1))
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.tasks_fim "
"WHERE task_id = %1 "
"RETURNING tasks_fim.task_id").arg(
QString::number(id_task));
return queryExecInt(queryStr);
if(!queryExecInt(queryStr))
{
resBool = db->rollback();
return 0;
}
resBool = db->commit();
return id_trainee;
}
QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)