до убирания mtxAccess из ProviderDBLMS

This commit is contained in:
2025-08-13 12:44:48 +03:00
parent 93fe4a94b2
commit 842118cbea
5 changed files with 174 additions and 185 deletions

View File

@@ -182,6 +182,7 @@ TaskAmmFim DataBaseLMS::selectTaskAMMbyID(int id_task)
return task;
}
int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
{
QString queryStr;
@@ -228,9 +229,9 @@ int DataBaseLMS::insertTaskFIM(TaskAmmFim task, int id_trainee)
{
sign.description = sign.description.replace("'", "''"); //Задваиваем одинарные кавычки
queryStr = QString("INSERT INTO public.malf_sign (type, description, fk_malfunction_id) "
queryStr = QString("INSERT INTO public.malf_signs (type, description, fk_malfunction_id) "
"VALUES ('%1', '%2', %3) "
"RETURNING malf_sign.sign_id").arg(
"RETURNING malf_signs.sign_id").arg(
QString::number(sign.type),
sign.description,
QString::number(malfunction_id));
@@ -321,13 +322,13 @@ int DataBaseLMS::deleteTaskFIM(int id_task)
"ORDER BY users.user_id ASC").arg(
QString::number(id_task));
QSqlQuery query = QSqlQuery(*db);
QSqlQuery queryUserSEL = QSqlQuery(*db);
if(queryExec(queryStr, &query))
if(queryExec(queryStr, &queryUserSEL))
{
if (query.first())
if (queryUserSEL.first())
{//Обучаемый
id_trainee = query.value(0).toInt();
id_trainee = queryUserSEL.value(0).toInt();
}
}
if(!id_trainee)
@@ -342,24 +343,24 @@ int DataBaseLMS::deleteTaskFIM(int id_task)
"WHERE malfunctions.fk_task_fim_id = %1 "
"ORDER BY malfunctions.malfunction_id ASC").arg(
id_task);
QSqlQuery queryMalf = QSqlQuery(*db);
QSqlQuery queryMalfSEL = QSqlQuery(*db);
if(queryExec(queryStr, &queryMalf))
if(queryExec(queryStr, &queryMalfSEL))
{
while (queryMalf.next())
while (queryMalfSEL.next())
{//Неисправность
int malfunction_id = 0;
malfunction_id = queryMalf.value(0).toString().toInt();
malfunction_id = queryMalfSEL.value(0).toString().toInt();
if(malfunction_id)
{
queryStr = QString("DELETE FROM public.malf_sign "
queryStr = QString("DELETE FROM public.malf_signs "
"WHERE fk_malfunction_id = %1 ").arg(
malfunction_id);
QSqlQuery querySign = QSqlQuery(*db);
if(!queryExec(queryStr, &querySign))
QSqlQuery querySignDEL = QSqlQuery(*db);
if(!queryExec(queryStr, &querySignDEL))
{
resBool = db->rollback();
return 0;
@@ -378,13 +379,62 @@ int DataBaseLMS::deleteTaskFIM(int id_task)
"WHERE fk_task_fim_id = %1 ").arg(
QString::number(id_task));
QSqlQuery query1 = QSqlQuery(*db);
if(!queryExec(queryStr, &query1))
QSqlQuery queryMulfDEL = QSqlQuery(*db);
if(!queryExec(queryStr, &queryMulfDEL))
{
resBool = db->rollback();
return 0;
}
queryStr = QString("SELECT reports.report_id "
"FROM public.reports "
"WHERE fk_task_fim_id = %1 "
"ORDER BY reports.report_id ASC").arg(
QString::number(id_task));
int report_id = 0;
QSqlQuery queryReportsSEL = QSqlQuery(*db);
if(queryExec(queryStr, &queryReportsSEL))
{
if (queryReportsSEL.first())
{//Отчет
report_id = queryReportsSEL.value(0).toInt();
}
}
if(!report_id)
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.report_items "
"WHERE fk_report_id = %1 ").arg(
QString::number(report_id));
QSqlQuery queryItemsDEL = QSqlQuery(*db);
if(!queryExec(queryStr, &queryItemsDEL))
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.reports "
"WHERE report_id = %1 ").arg(
QString::number(report_id));
QSqlQuery queryReportsDEL = QSqlQuery(*db);
if(!queryExec(queryStr, &queryReportsDEL))
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.tasks_fim "
"WHERE task_id = %1 "
"RETURNING tasks_fim.task_id").arg(
@@ -450,10 +500,10 @@ QList<TaskAmmFim> DataBaseLMS::selectTasksFIMofTrainee(int id_trainee)
malfanction.description = queryMalf.value(3).toString();
//Выгребаем сигналы для этой неисправности
queryStr = QString("SELECT malf_sign.sign_id, malf_sign.type, malf_sign.description "
"FROM public.malf_sign "
queryStr = QString("SELECT malf_signs.sign_id, malf_signs.type, malf_signs.description "
"FROM public.malf_signs "
"WHERE fk_malfunction_id = %1 "
"ORDER BY malf_sign.sign_id ASC").arg(
"ORDER BY malf_signs.sign_id ASC").arg(
QString::number(malfunction_id));
QSqlQuery querySign = QSqlQuery(*db);
@@ -601,10 +651,10 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task)
malfanction.description = queryMalf.value(3).toString();
//Выгребаем сигналы для этой неисправности
queryStr = QString("SELECT malf_sign.sign_id, malf_sign.type, malf_sign.description "
"FROM public.malf_sign "
queryStr = QString("SELECT malf_signs.sign_id, malf_signs.type, malf_signs.description "
"FROM public.malf_signs "
"WHERE fk_malfunction_id = %1 "
"ORDER BY malf_sign.sign_id ASC").arg(
"ORDER BY malf_signs.sign_id ASC").arg(
QString::number(malfunction_id));
QSqlQuery querySign = QSqlQuery(*db);
@@ -701,11 +751,12 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task)
return task;
}
int DataBaseLMS::deleteReportFIM(int task_id)
int DataBaseLMS::updateReportFIMforTask(TaskAmmFim task)
{
QString queryStr;
bool resBool = false;
int report_id = 0;
int task_id = task.getID();
resBool = db->transaction();
@@ -715,79 +766,47 @@ int DataBaseLMS::deleteReportFIM(int task_id)
"ORDER BY reports.report_id ASC").arg(
QString::number(task_id));
QSqlQuery query = QSqlQuery(*db);
QSqlQuery queryReportsSEL = QSqlQuery(*db);
if(queryExec(queryStr, &query))
if(queryExec(queryStr, &queryReportsSEL))
{
if (query.first())
if (queryReportsSEL.first())
{//Отчет
report_id = query.value(0).toInt();
report_id = queryReportsSEL.value(0).toInt();
}
}
else
{
resBool = db->rollback();
return 0;
}
if(!report_id)
{
resBool = db->rollback();
return 0;
queryStr = QString("INSERT INTO public.reports (fk_task_fim_id) "
"VALUES (%1) "
"RETURNING reports.report_id").arg(
task.getID());
report_id = queryExecInt(queryStr);
if(!report_id)
{
resBool = db->rollback();
return 0;
}
}
queryStr = QString("DELETE FROM public.report_items "
"WHERE fk_report_id = %1 ").arg(
QString::number(report_id));
QSqlQuery query1 = QSqlQuery(*db);
if(!queryExec(queryStr, &query1))
else
{
resBool = db->rollback();
return 0;
}
queryStr = QString("DELETE FROM public.report_items "
"WHERE fk_report_id = %1 ").arg(
QString::number(report_id));
queryStr = QString("DELETE FROM public.reports "
"WHERE report_id = %1 ").arg(
QString::number(report_id));
if(!queryExec(queryStr, &query1))
{
resBool = db->rollback();
return 0;
}
queryStr = QString("UPDATE public.tasks_fim SET status = '%1' "
"WHERE task_id = %2 ").arg(
"new",
QString::number(task_id) );
if(!queryExec(queryStr, &query1))
{
resBool = db->rollback();
return 0;
}
resBool = db->commit();
return report_id;
}
int DataBaseLMS::insertReportFIM(TaskAmmFim task)
{
QString queryStr;
bool resBool = false;
resBool = db->transaction();
//task.title = task.title.replace("'", "''"); //Задваиваем одинарные кавычки
queryStr = QString("INSERT INTO public.reports (fk_task_fim_id) "
"VALUES (%1) "
"RETURNING reports.report_id").arg(
task.getID());
int report_id = queryExecInt(queryStr);
if(!report_id)
{
resBool = db->rollback();
return 0;
QSqlQuery queryItemsDEL = QSqlQuery(*db);
if(!queryExec(queryStr, &queryItemsDEL))
{
resBool = db->rollback();
return 0;
}
}
int number = 0;
@@ -811,19 +830,17 @@ int DataBaseLMS::insertReportFIM(TaskAmmFim task)
}
}
/*
queryStr = QString("UPDATE public.tasks_fim SET status = '%1' "
"WHERE task_id = %2 ").arg(
"checkup",
QString::number(task.getID()) );
QString::number(task_id) );
QSqlQuery query1 = QSqlQuery(*db);
if(!queryExec(queryStr, &query1))
QSqlQuery queryTaskUPD = QSqlQuery(*db);
if(!queryExec(queryStr, &queryTaskUPD))
{
resBool = db->rollback();
return 0;
}
*/
resBool = db->commit();
return report_id;