Перед доработкой удаления задач

This commit is contained in:
2025-05-27 09:49:45 +03:00
parent 25d11dc88f
commit 5a3ba9a75c
5 changed files with 89 additions and 2 deletions

View File

@@ -663,11 +663,31 @@ int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
malfanction.description,
QString::number(task_id));
if(!queryExecInt(queryStr))
int malfunction_id = queryExecInt(queryStr);
if(!malfunction_id)
{
resBool = db->rollback();
return 0;
}
//Sign
for(MalfunctionSign sign : malfanction.malfunctionSigns)
{
sign.description = sign.description.replace("'", "''"); //Задваиваем одинарные кавычки
queryStr = QString("INSERT INTO public.malf_sign (type, description, malf_malf_sign) "
"VALUES ('%1', '%2', %3) "
"RETURNING malf_sign.sign_id").arg(
QString::number(sign.type),
sign.description,
QString::number(malfunction_id));
if(!queryExecInt(queryStr))
{
resBool = db->rollback();
return 0;
}
}
}
resBool = db->commit();
@@ -831,11 +851,33 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
while (queryMalf.next())
{//Неисправность
Malfunction malfanction;
int malfunction_id = 0;
malfunction_id = queryMalf.value(0).toString().toInt();
malfanction.num = queryMalf.value(1).toString();
malfanction.dmCode = queryMalf.value(2).toString();
malfanction.description = queryMalf.value(3).toString();
//Выгребаем сигналы для этой неисправности
queryStr = QString("SELECT malf_sign.sign_id, malf_sign.type, malf_sign.description "
"FROM public.malf_sign "
"WHERE malf_malf_sign = %1 "
"ORDER BY malf_sign.sign_id ASC").arg(
QString::number(malfunction_id));
QSqlQuery querySign = QSqlQuery(*db);
if(queryExec(queryStr, &querySign))
{
while (querySign.next())
{//Сигналы
MalfunctionSign sign;
sign.type = querySign.value(1).toString().toInt();
sign.description = querySign.value(2).toString();
malfanction.malfunctionSigns.append(sign);
};
}
task.addMalfunction(malfanction);
};
}