taskFIM выдаются из базы с Malfunction в GUI

This commit is contained in:
krivoshein
2025-01-30 17:39:00 +03:00
parent e346757864
commit efb57f4868
2 changed files with 51 additions and 2 deletions

View File

@@ -573,6 +573,7 @@ int DataBaseLMS::updateTaskFIM(TaskAmmFim task)
int DataBaseLMS::deleteTaskFIM(int id_task)
{
//TODO доделать удаление malfunction
QString queryStr = QString("DELETE FROM public.tasks_fim "
"WHERE task_id = %1 "
"RETURNING tasks_fim.task_id").arg(
@@ -584,8 +585,12 @@ int DataBaseLMS::deleteTaskFIM(int id_task)
QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
{
QList<TaskAmmFim> listTasks;
QString queryStr;
bool resBool = false;
QString queryStr = QString("SELECT tasks_fim.task_id, tasks_fim.title, "
resBool = db->transaction();
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 "
@@ -603,10 +608,45 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
task.setID(query.value(0).toInt());
task.title = query.value(1).toString();
//Выгребаем все malfunction для этой задачи
queryStr = QString("SELECT malfunctions.malfunction_id, malfunctions.num, malfunctions.dm_code, malfunctions.description, "
"tasks_fim.task_id "
"FROM public.malfunctions JOIN public.tasks_fim ON tasks_fim.task_id = malfunctions.task_fim_malf "
"WHERE malfunctions.task_fim_malf = %1 "
"ORDER BY malfunctions.num ASC").arg(
task.getID());
QSqlQuery queryMalf = QSqlQuery(*db);
if(queryExec(queryStr, &queryMalf))
{
while (queryMalf.next())
{//Неисправность
Malfunction malfanction;
malfanction.num = queryMalf.value(1).toString();
malfanction.dmCode = queryMalf.value(2).toString();
malfanction.description = queryMalf.value(3).toString();
task.addMalfunction(malfanction);
};
}
else
{
resBool = db->rollback();
return QList<TaskAmmFim>();
}
listTasks.append(task);
}
};
}
else
{
resBool = db->rollback();
return QList<TaskAmmFim>();
}
resBool = db->commit();
return listTasks;
}