diff --git a/LibDataBaseInterface/databaselms_tasks.cpp b/LibDataBaseInterface/databaselms_tasks.cpp index 080c201..71030b6 100644 --- a/LibDataBaseInterface/databaselms_tasks.cpp +++ b/LibDataBaseInterface/databaselms_tasks.cpp @@ -435,6 +435,54 @@ int DataBaseLMS::updateStatusTaskFIM(int task_id, QString status) return 0; } + if(status == "new") + {//Удаляем отчет + queryStr = QString("SELECT reports.report_id " + "FROM public.reports " + "WHERE fk_task_fim_id = %1 " + "ORDER BY reports.report_id ASC").arg( + QString::number(task_id)); + + int report_id = 0; + + QSqlQuery queryReportsSEL = QSqlQuery(*db); + if(queryExec(queryStr, &queryReportsSEL)) + { + if (queryReportsSEL.first()) + {//Отчет + report_id = queryReportsSEL.value(0).toInt(); + } + } + else + { + 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; + } + } + resBool = db->commit(); return id_trainee; } diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index ddaec4e..2cb3504 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -70,15 +70,55 @@ void CheckerTask::setTask(TaskAmmFim* task) //Репорт outReport(this->task.report); + + if(this->task.status == "new") + { + ui->btnNew->setEnabled(false); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(false); + } + else if(this->task.status == "checkup") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(true); + ui->btnCompleted->setEnabled(true); + } + else if(this->task.status == "failed") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(true); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(true); + } + else if(this->task.status == "completed") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(true); + ui->btnWrong->setEnabled(true); + ui->btnCompleted->setEnabled(false); + } + else + { + ui->btnNew->setEnabled(false); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(false); + } } else if(type == TypeChecker::amm_check) { - /* if(this->task.status == "new") + { + ui->btnNew->setEnabled(false); ui->btnCompleted->setEnabled(true); + } else - ui->btnWrong->setEnabled(true); - */ + { + ui->btnNew->setEnabled(true); + ui->btnCompleted->setEnabled(false); + } ui->lblName->setText(task->ammProcedure.title); ui->lblDMcode->setText(task->ammProcedure.dmCode); diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 63c1a3a..02a7c30 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -19,7 +19,7 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, Checker case CheckerTask::TypeChecker::fim_check: this->setWindowTitle(tr("Check Task")); this->setMinimumSize(1400, 700); - this->setWindowState(Qt::WindowMaximized); + //this->setWindowState(Qt::WindowMaximized); break; case CheckerTask::TypeChecker::amm_check: this->setWindowTitle(tr("Status Task"));