From d658745ad3935b663b8a5fa218d3fcc3f7bc8654 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Fri, 4 Jul 2025 12:13:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20AMM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBaseLMS/databaselms.cpp | 40 +++++++- DataBaseLMS/interfacedatabaselms.cpp | 10 +- DataBaseLMS/interfacedatabaselms.h | 2 +- DataBaseLMS/typeQueryToDB.h | 1 + .../connectorToServer/Core/dataparser.cpp | 3 +- .../tasks/ammtaskswidget.cpp | 27 +++++- .../tasks/ammtaskswidget.ui | 2 +- .../tasks/dialogchecktask.cpp | 75 +++++++++++---- .../tasks/dialogchecktask.h | 5 +- .../tasks/fimtaskswidget.cpp | 2 +- .../InstructorsAndTraineesWidget_ru_RU.qm | Bin 19788 -> 20139 bytes .../InstructorsAndTraineesWidget_ru_RU.ts | 89 ++++++++++++------ ServerLMS/Systems/Parsers/processparser.cpp | 2 + ServerLMS/Systems/processingsystem.cpp | 20 +++- ServerLMS/providerdblms.cpp | 10 +- ServerLMS/providerdblms.h | 2 +- 16 files changed, 223 insertions(+), 67 deletions(-) diff --git a/DataBaseLMS/databaselms.cpp b/DataBaseLMS/databaselms.cpp index b4dd8c2..4ff9bbe 100644 --- a/DataBaseLMS/databaselms.cpp +++ b/DataBaseLMS/databaselms.cpp @@ -545,13 +545,49 @@ int DataBaseLMS::updateTaskAMM(TaskAmmFim task) int DataBaseLMS::updateStatusTaskAMM(int task_id, QString status) { - QString queryStr = QString("UPDATE public.tasks_amm SET status = '%1' " + QString queryStr; + bool resBool = false; + int id_trainee = 0; + + resBool = db->transaction(); + + queryStr = QString("SELECT trainees.trainee_id " + "FROM public.trainees JOIN public.tasks_amm ON trainees.trainee_id = tasks_amm.trainee_task " + "WHERE tasks_amm.task_id = %1 " + "ORDER BY trainees.trainee_id ASC").arg( + QString::number(task_id)); + + QSqlQuery query = QSqlQuery(*db); + + if(queryExec(queryStr, &query)) + { + if (query.first()) + {//Обучаемый + id_trainee = query.value(0).toInt(); + } + } + if(!id_trainee) + { + resBool = db->rollback(); + return 0; + } + + + queryStr = QString("UPDATE public.tasks_amm SET status = '%1' " "WHERE task_id = %2 " "RETURNING tasks_amm.task_id").arg( status, QString::number(task_id) ); - return queryExecInt(queryStr); + + if(!queryExecInt(queryStr)) + { + resBool = db->rollback(); + return 0; + } + + resBool = db->commit(); + return id_trainee; } int DataBaseLMS::deleteTaskAMM(int id_task) diff --git a/DataBaseLMS/interfacedatabaselms.cpp b/DataBaseLMS/interfacedatabaselms.cpp index c09b77a..81c450f 100644 --- a/DataBaseLMS/interfacedatabaselms.cpp +++ b/DataBaseLMS/interfacedatabaselms.cpp @@ -307,11 +307,6 @@ int InterfaceDataBaseLMS::editTaskAMM(TaskAmmFim task) return updateTaskAMM(task); } -int InterfaceDataBaseLMS::editStatusTaskAMM(int task_id, QString status) -{ - return updateStatusTaskAMM(task_id, status); -} - QList InterfaceDataBaseLMS::getListTasksAMMofTrainee(int id_trainee) { return selectTasksAMMofTrainee(id_trainee); @@ -356,6 +351,11 @@ int InterfaceDataBaseLMS::changeStatusTaskFIM(int id_task, QString status) return updateStatusTaskFIM(id_task, status); } +int InterfaceDataBaseLMS::changeStatusTaskAMM(int id_task, QString status) +{ + return updateStatusTaskAMM(id_task, status); +} + int InterfaceDataBaseLMS::newTrainee(int id_group) { return insertTrainee(id_group); diff --git a/DataBaseLMS/interfacedatabaselms.h b/DataBaseLMS/interfacedatabaselms.h index 7ddb2b9..105fb90 100644 --- a/DataBaseLMS/interfacedatabaselms.h +++ b/DataBaseLMS/interfacedatabaselms.h @@ -72,7 +72,6 @@ public: int newTaskAMM(TaskAmmFim task, int id_trainee); int delTaskAMM(int id); int editTaskAMM(TaskAmmFim task); - int editStatusTaskAMM(int task_id, QString status); QList getListTasksAMMofTrainee(int id_trainee); QList getListTasksFIMofTrainee(int id_trainee); @@ -82,6 +81,7 @@ public: int editTaskFIM(TaskAmmFim task); int replaceReportFIM(TaskAmmFim task); int changeStatusTaskFIM(int id_task, QString status); + int changeStatusTaskAMM(int id_task, QString status); int newTrainee(int id_group); int delTrainee(int id); diff --git a/DataBaseLMS/typeQueryToDB.h b/DataBaseLMS/typeQueryToDB.h index c025f71..5f712bd 100644 --- a/DataBaseLMS/typeQueryToDB.h +++ b/DataBaseLMS/typeQueryToDB.h @@ -25,6 +25,7 @@ enum TypeQueryToDB{ TYPE_QUERY_SET_REPORT_TASK_AMM_TO_TRAINEE, TYPE_QUERY_SET_REPORT_TASK_FIM_TO_TRAINEE, + TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE, TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE }; diff --git a/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp b/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp index bd34307..e28ddc1 100644 --- a/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp +++ b/InstructorsAndTrainees/connectorToServer/Core/dataparser.cpp @@ -204,7 +204,8 @@ QByteArray DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id } } } - else if(queryToDB->typeQuery == TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE) + else if(queryToDB->typeQuery == TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE || + queryToDB->typeQuery == TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE) { QString* status = (QString*)data; if(status) diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 52167cc..306df53 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -6,6 +6,7 @@ #include #include "ammtaskswidget.h" #include "ui_ammtaskswidget.h" +#include "dialogchecktask.h" AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTreeAMMFIM type, QWidget *parent) : QWidget(parent), @@ -72,7 +73,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre ui->verticalLayout->setAlignment(Qt::AlignmentFlag::AlignBottom); } - ui->btnCheck->setVisible(false); + //ui->btnCheck->setVisible(false); } AMMtasksWidget::~AMMtasksWidget() @@ -150,10 +151,12 @@ void AMMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, if(current == nullptr) { ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); return; } else { + ui->btnCheck->setEnabled(true); ui->btnDelete->setEnabled(true); } @@ -335,7 +338,29 @@ void AMMtasksWidget::on_btnDelete_clicked() void AMMtasksWidget::on_btnCheck_clicked() { + QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem(); + if(treeItemCurrent != nullptr) + {//Выбрана задача + + int id = treeItemCurrent->text(ColumnsTreeAMM::clmnAMM_ID).toInt(); + + DialogCheckTask dlg(connectorToServer, "amm", this); + + //dlg.setTask(task); + dlg.setIDTask(id); + + QDialog* dialog = new QDialog(this); + QHBoxLayout *layout = new QHBoxLayout(dialog); + layout->addWidget(&dlg); + dialog->setWindowTitle(tr("Status Task")); + dialog->setMinimumSize(200, 100); + dialog->setStyleSheet(this->styleSheet()); + dialog->exec(); + + if(dlg.getFlChanged()) + waitAnimationWidget->showWithPlay(); + } } void AMMtasksWidget::on_btnAssignTask_clicked() diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.ui b/InstructorsAndTrainees/tasks/ammtaskswidget.ui index 0bb88e1..c6f8eb5 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.ui @@ -99,7 +99,7 @@ - Check + Status diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.cpp b/InstructorsAndTrainees/tasks/dialogchecktask.cpp index 1fcd9ae..3f926d7 100644 --- a/InstructorsAndTrainees/tasks/dialogchecktask.cpp +++ b/InstructorsAndTrainees/tasks/dialogchecktask.cpp @@ -1,21 +1,37 @@ #include "dialogchecktask.h" #include "ui_dialogchecktask.h" -DialogCheckTask::DialogCheckTask(ConnectorToServer* connectorToServer, QWidget *parent) : +DialogCheckTask::DialogCheckTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent) : QWidget(parent), ui(new Ui::DialogCheckTask), connectorToServer(connectorToServer), fimTasksWidget(nullptr), - flChanged(false) + flChanged(false), + id_task(0), + type("fim") { ui->setupUi(this); - fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); + this->type = type; - ui->verticalLayout_3->addWidget(fimTasksWidget); + if(type == "fim") + { + fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); - ui->plainText->setReadOnly(true); - ui->plainText->setObjectName("plainText"); + ui->verticalLayout_3->addWidget(fimTasksWidget); + + ui->plainText->setReadOnly(true); + ui->plainText->setObjectName("plainText"); + } + else + { + ui->plainText->setVisible(false); + ui->label->setVisible(false); + ui->label_2->setVisible(false); + ui->btnRight->setText(tr("Completed")); + ui->btnWrong->setText(tr("New")); + ui->btnWrong->setIcon(QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + } } DialogCheckTask::~DialogCheckTask() @@ -27,6 +43,7 @@ DialogCheckTask::~DialogCheckTask() void DialogCheckTask::setTask(TaskAmmFim* task) { this->task = *task; + id_task = task->getID(); //Задача fimTasksWidget->setOneTaskFim(&this->task); @@ -84,13 +101,26 @@ void DialogCheckTask::outReport(FIMReport report) void DialogCheckTask::on_btnWrong_clicked() { - int id = task.getID(); - QString status = "failed"; + TypeQueryToDB typeQuery; + QString status; + QString msgString; - if(QMessageBox::warning(this, tr("Attention!"), tr("Change task status?\nThe status will be set: 'failed'"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) + if(type == "fim") { - connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE, id, (void*)&status); - //this->close(); + 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'"); + } + else + { + 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(QMessageBox::warning(this, tr("Attention!"), msgString, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) + { + connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } @@ -98,13 +128,26 @@ void DialogCheckTask::on_btnWrong_clicked() void DialogCheckTask::on_btnRight_clicked() { - int id = task.getID(); - QString status = "completed"; + TypeQueryToDB typeQuery; + QString status; + QString msgString; - if(QMessageBox::warning(this, tr("Attention!"), tr("Change task status?\nThe status will be set: 'completed'"), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) + if(type == "fim") { - connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE, id, (void*)&status); - //this->close(); + 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 + { + 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(QMessageBox::warning(this, tr("Attention!"), msgString, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) + { + connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); this->parentWidget()->close(); flChanged = true; } diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.h b/InstructorsAndTrainees/tasks/dialogchecktask.h index 35893ef..cbdcf56 100644 --- a/InstructorsAndTrainees/tasks/dialogchecktask.h +++ b/InstructorsAndTrainees/tasks/dialogchecktask.h @@ -14,13 +14,14 @@ class DialogCheckTask : public QWidget Q_OBJECT public: - explicit DialogCheckTask(ConnectorToServer* connectorToServer, QWidget *parent = nullptr); + explicit DialogCheckTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent = nullptr); ~DialogCheckTask(); public: void setTask(TaskAmmFim* task); TaskAmmFim getTask(); bool getFlChanged(){return flChanged;} + void setIDTask(int id){id_task = id;} private slots: void on_btnWrong_clicked(); @@ -39,6 +40,8 @@ private: FIMtasksWidget* fimTasksWidget; bool flChanged; + int id_task; + QString type; }; #endif // DIALOGCHECKTASK_H diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index 504d171..1816e27 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -361,7 +361,7 @@ void FIMtasksWidget::on_btnCheck_clicked() TaskAmmFim* task = taskTreePreparation->getTaskFIMbyID(id); - DialogCheckTask dlg(connectorToServer, this); + DialogCheckTask dlg(connectorToServer, "fim", this); dlg.setTask(task); diff --git a/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.qm b/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.qm index 0bd5b094c9a4657ce202e0aa865f61768b2aa957..dc2d7fbe1b068ac50c3a8dbac0fc7d946e4f11d5 100644 GIT binary patch delta 1893 zcmZ9Mdr(wW9LK+R_uk!m_ukz_@Uf!2F%ZxdWEXiYAa5VQ3}lIEp#lmGIY8hz<WWBO*y<)J9RPk<1#3%t2>tg!@<#A&6pSmzO@y=b?_au$L?Oj{&=4O|7{%!DQ6U$8AH}Hninue z)iEwu%$VHCm_7g@Y638fLddWHI!{Kqg;D8-P_+{<&Vta?L(GHFoB}(d&Otc350E0D zU6u-1Rx+mUhq%K4%*;gQ2+hwvjzz(glC1%m!x`Hf&s4JDbuXn=Dv+xSd@|zX%|%B5O)OttLp`SL=gSWe zr6R`oQohQ5j}8bn@wNMJQ&WI3_!{4o`5ArSH{SV(Y8JVgKl({42?*iaRMdE}P5iMi z8gsFXArXuVd-zTrm26H6|CQ<#CA*gIYfJ(>42(X{G0r{55B0rEg0#H-{snU879#jv zAt7@T1j`U@lzkbM#f;Xij0sUfb8|P9q)uqtO3|v47(+E0?b%%F31~b%m;h!S)}&vg z9QEyIkqaItNe9P#ap@?}Ql0i$(-G2wmj#0zay%8$jbQ^}Zp?h5fy zD>>o>Nxz*+VIGy-x}3nYTFLU$8^FA?Ql&fUFT}X7`t)c)>~w#$#_pb z=0;t-b3Krub!^hya@A{{oZ6H3b95>uN4!~5P5qXcr5|C`b2(>1!FqJs4=JL;5~+=lUS|`l0VM~RKMWX2#{)L$B9P$^M1%kfX>H_5;Ds|lS~yVF z2P7N>oOC_QmrWXhXl|x`JRwd9;HePS>0b)*!-w=k2Wxzv4G(4`|6*rluyKN&zlP1I zf)Y0dSX!Vw>j2cNta%x$t%Fj&lYSq7vbPs-w?L^+qrlceX|013#vvG&r30}O*t8W; zx4Q$rGBSti09zZ-a~QM_y&Xc z=uaE)^dfYOw?Vh#`iZwGLo0rK{S*+iRZ5Y^TTvwyJ@J9G!EUGL>ZF$YGT?Dm>brOw zNWCE48gWujh(ZV|pM^ZfKt7y>p{^bdjWIuM8`C`mfm5*hS-!1;*^4<&{YZ~;%~+2xJ3(1H^iNi{L zeGe_nP})AAlFIAY@Y4q4NjfRBj~To^8w2bGh6R^sCK8tzo&=KcreW-W6$m(O)Y~@! zo}EVh8kO8IVl3T53A^29r$;-D?ZvME{{F`HZG+UKV&lOQ+9>f$=fgWpxN50B9E{c27?HkH(-R%X)-#8k2wS?ZR}lj!-C>b4@PoVUsb zrKvT&RMGT0wWe=e=R9dHKtN;TTCUt(5TpMn~wZJ6_}W6>dCLB-hFDiGAjZIYcdV#A+*lU zrY|)OecS}hy=CdOM zG;GH-pGpcS`a8|BF@ScS%Z8rUo)7q%E;F_AX|$njr?y2r&TiV{6m7a0Vk$+*8+z_#>XoO&+7{@A z+Yiu+T2`6FdTeI>Tx?h<8?l^?uh;i<-lSF<*zgLyzB?C~aYjE_L;)uI>n9|dm6^JJ zzR5|ExOeJ<*86~u#iH*BrpP5WHqSDlmICsU*nl!i&+Z~RUd60`m*w88Hd=Siz3$Q& z5Ljxh39g`H8_mYgwqEIfj}pqW-tF+9%4EGpe;VCxl#-|L7ttb4B)ZC?0$isIhg_-A zp{^;aS67L#QR-T1YLlgM*S}hn6zGc5$3KhoMfBOJ+ojU~-H){_p!*e;AlCu+-mX2? RidZShW%ZcY6_HkH{tp#0)gk}@ diff --git a/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.ts b/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.ts index 7dd8554..6ae559b 100644 --- a/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.ts +++ b/InstructorsAndTrainees/translations/InstructorsAndTraineesWidget_ru_RU.ts @@ -18,67 +18,68 @@ Аvailable Доступные - - - Check - Проверить - Delete Удалить - + Task AMM Задача AMM - + DM code DM код - - + + ID ID - - + + + Status Статус - + PM/DM PM/DM - + Code Код - + Attention! Внимание! - + The deletion will be irrevocable. Delete it anyway? Удаление будет безвозвратным. Всё равно удалить? - + + Status Task + Статус задачи + + + New task Новая задача - + Assign this task? Назначить эту задачу? @@ -135,32 +136,58 @@ Delete it anyway? Верно - + + Completed + Выполнена + + + + New + Новая + + + viewed Просмотрено - + completed Выполнена - - + + Change task status? +The status will be set: +'failed' + Изменить статус задачи? +Будет установлен статус: +'неверно' + + + + Change task status? +The status will be set: +'new' + Изменить статус задачи? +Будет установлен статус: +'новая' + + + + Attention! Внимание! - + + Change task status? -The status will be set: 'failed' - Изменить статус задачи? Будет установлен статус 'неверно' - - - - Change task status? -The status will be set: 'completed' - Изменить статус задачи? Будет установлен статус 'выполнена' +The status will be set: +'completed' + Изменить статус задачи? +Будет установлен статус: +'выполнена' @@ -950,7 +977,7 @@ Delete it anyway? completed - выполнено + выполнена diff --git a/ServerLMS/Systems/Parsers/processparser.cpp b/ServerLMS/Systems/Parsers/processparser.cpp index 7b46ac3..ad72b3e 100644 --- a/ServerLMS/Systems/Parsers/processparser.cpp +++ b/ServerLMS/Systems/Parsers/processparser.cpp @@ -454,6 +454,7 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, //task.title = value; break; + case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE: case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE: if(name == "status") status = value; @@ -480,6 +481,7 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE: data = &task; break; + case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE: case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE: data = &status; break; diff --git a/ServerLMS/Systems/processingsystem.cpp b/ServerLMS/Systems/processingsystem.cpp index 72998da..d0003f2 100644 --- a/ServerLMS/Systems/processingsystem.cpp +++ b/ServerLMS/Systems/processingsystem.cpp @@ -327,7 +327,7 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu { TaskAmmFim* task = (TaskAmmFim*)data; if(task->status == "completed") - if( int id_task = providerDBLMS->editStatusTaskAMM(task->getID(), "completed") ) + if( int id_trainee = providerDBLMS->changeStatusTaskAMM(task->getID(), "completed") ) { } @@ -344,6 +344,24 @@ void ProcessingSystem::processingClientQueryToDB(ClientHandler *client, ClientQu break; } + case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE: + { + QString* status = (QString*)data; + if(int id_trainee = providerDBLMS->changeStatusTaskAMM(id, *status)) + { + //Отправка списка задач AMM всем клиентам GUI + //sendListTasksAMMofTraineetoClient(client, id_trainee); + emit sigStatusTasksAMMofTraineeChanged(id_trainee); + + //Отправка списка задач AMM клиенту Юнити + if(ClientHandler* clientUnity = getUnityClientById(id_trainee)) + {//Есть такой + sendListTasksAMMofTraineetoClient(clientUnity, id_trainee); + } + } + break; + } + case TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE: { QString* status = (QString*)data; diff --git a/ServerLMS/providerdblms.cpp b/ServerLMS/providerdblms.cpp index af9ca84..8c46229 100644 --- a/ServerLMS/providerdblms.cpp +++ b/ServerLMS/providerdblms.cpp @@ -372,11 +372,6 @@ int ProviderDBLMS::editTaskAMM(TaskAmmFim task) return dbLMS->editTaskAMM(task); } -int ProviderDBLMS::editStatusTaskAMM(int task_id, QString status) -{ - return dbLMS->editStatusTaskAMM(task_id, status); -} - int ProviderDBLMS::newTaskFIM(TaskAmmFim task, int id_trainee) { return dbLMS->newTaskFIM(task, id_trainee); @@ -402,6 +397,11 @@ int ProviderDBLMS::changeStatusTaskFIM(int id_task, QString status) return dbLMS->changeStatusTaskFIM(id_task, status); } +int ProviderDBLMS::changeStatusTaskAMM(int id_task, QString status) +{ + return dbLMS->changeStatusTaskAMM(id_task, status); +} + QList ProviderDBLMS::GetListTasksAMMofTrainee(int id_trainee) { QList listTasks; diff --git a/ServerLMS/providerdblms.h b/ServerLMS/providerdblms.h index 6d86523..9ed4485 100644 --- a/ServerLMS/providerdblms.h +++ b/ServerLMS/providerdblms.h @@ -51,13 +51,13 @@ public: int newTaskAMM(TaskAmmFim task, int id_trainee); int delTaskAMM(int id); int editTaskAMM(TaskAmmFim task); - int editStatusTaskAMM(int task_id, QString status); int newTaskFIM(TaskAmmFim task, int id_trainee); int delTaskFIM(int id); int editTaskFIM(TaskAmmFim task); int replaceReportFIM(TaskAmmFim task); int changeStatusTaskFIM(int id_task, QString status); + int changeStatusTaskAMM(int id_task, QString status); QList GetListTasksAMMofTrainee(int id_trainee); QList GetListTasksFIMofTrainee(int id_trainee);