#include "checkertask.h" #include "specialmessagebox.h" #include "ui_checkertask.h" #include "fimtaskswidget.h" #include "ammtaskswidget.h" CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent) : QWidget(parent), ui(new Ui::CheckerTask), connectorToServer(connectorToServer), fimTasksWidget(nullptr), ammTasksWidget(nullptr), reportFimWidget(nullptr), flChanged(false), id_task(0), type(TypeChecker::fim_check) { ui->setupUi(this); ui->btnNew->setObjectName("btnNew"); ui->btnCheckup->setObjectName("btnCheckup"); ui->btnWrong->setObjectName("btnWrong"); ui->btnCompleted->setObjectName("btnCompleted"); this->type = type; if(type == TypeChecker::fim_check) { fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); ui->verticalLayout_3->addWidget(fimTasksWidget); //fimTasksWidget->setMaximumHeight(300); ui->lblName->setVisible(false); ui->lblDMcode->setVisible(false); reportFimWidget = new ReportFimWidget(this); ui->horizontalLayout_ReportWidget->addWidget(reportFimWidget); } else if(type == TypeChecker::amm_check) { ammTasksWidget = new AMMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); ui->verticalLayout_3->addWidget(ammTasksWidget); ui->lblName->setVisible(false); ui->lblDMcode->setVisible(false); ui->groupBox_Report->setVisible(false); ui->btnWrong->setEnabled(false); ui->btnCheckup->setEnabled(false); ui->btnWrong->setVisible(false); ui->btnCheckup->setVisible(false); } } CheckerTask::~CheckerTask() { if(fimTasksWidget) { delete fimTasksWidget; fimTasksWidget = nullptr; } if(ammTasksWidget) { delete ammTasksWidget; ammTasksWidget = nullptr; } if(reportFimWidget) { delete reportFimWidget; reportFimWidget = nullptr; } delete ui; } void CheckerTask::closeEvent(QCloseEvent *event) { } void CheckerTask::setTask(TaskAmmFim* task) { this->task = *task; id_task = task->getID(); if(type == TypeChecker::fim_check) { //Задача fimTasksWidget->setOneTaskFim(&this->task); //Репорт reportFimWidget->setReport(this->task.report); if(this->task.status == "new") { ui->btnNew->setEnabled(false); ui->btnCheckup->setEnabled(false); ui->btnWrong->setEnabled(false); ui->btnCompleted->setEnabled(false); ui->groupBox_Report->setVisible(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) { //Задача ammTasksWidget->setOneTaskAmm(&this->task); if(this->task.status == "new") { ui->btnNew->setEnabled(false); ui->btnCompleted->setEnabled(true); } else { ui->btnNew->setEnabled(true); ui->btnCompleted->setEnabled(false); } ui->lblName->setText(task->ammProcedure.title); ui->lblDMcode->setText(task->ammProcedure.dmCode); } //Статус if(this->task.status == "completed") { ui->lblStatusCurrText->setText(tr("completed")); ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); } else if(this->task.status == "failed") { ui->lblStatusCurrText->setText(tr("failed")); ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleRed.png"))); } else if(this->task.status == "checkup") { ui->lblStatusCurrText->setText(tr("checkup")); ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleYellow.png"))); } else { ui->lblStatusCurrText->setText(tr("new")); ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/new.png"))); } } TaskAmmFim CheckerTask::getTask() { return this->task; } void CheckerTask::setModule(Module *module) { this->module = *module; id_task = this->module.getID(); } //НЕВЕРНО void CheckerTask::on_btnWrong_clicked() { TypeQueryToDB typeQuery; QString status; QString msgString; if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "failed"; msgString = tr("Change task status?\nThe status will be set:\n'failed'"); } if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) { connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } } //ВЫПОЛНЕНО void CheckerTask::on_btnCompleted_clicked() { TypeQueryToDB typeQuery; QString status; QString msgString; if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "completed"; msgString = tr("Change task status?\nThe status will be set:\n'completed'"); } else if(type == TypeChecker::amm_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; status = "completed"; msgString = tr("Change task status?\nThe status will be set:\n'completed'"); } if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) { connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } } //НОВАЯ void CheckerTask::on_btnNew_clicked() { TypeQueryToDB typeQuery; QString status; QString msgString; if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "new"; msgString = tr("Change task status?\nThe status will be set:\n'new'"); } else if(type == TypeChecker::amm_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; status = "new"; msgString = tr("Change task status?\nThe status will be set:\n'new'"); } if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) { connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } } //НА ПРОВЕРКЕ void CheckerTask::on_btnCheckup_clicked() { TypeQueryToDB typeQuery; QString status; QString msgString; if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "checkup"; msgString = tr("Change task status?\nThe status will be set:\n'checkup'"); } if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) { connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } }