mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
передается список ПП в sendQueryToDB для отправки
This commit is contained in:
@@ -362,11 +362,48 @@ void AMMtasksWidget::assignTaskAMMtoTrainee()
|
||||
|
||||
if(taskNew.getID())
|
||||
{
|
||||
emit signal_AssignedTask();
|
||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE, idTraineeSelected, &taskNew);
|
||||
//QList<SubProc> listSubProc;
|
||||
|
||||
if(selectSubProcForAssignTaskAMM(taskNew, &taskNew.listSubProc))
|
||||
{
|
||||
if(SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningYesNo, tr("Assign this task?")).exec() == QDialog::Accepted)
|
||||
{
|
||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE, idTraineeSelected, &taskNew);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool AMMtasksWidget::selectSubProcForAssignTaskAMM(TaskAmmFim taskNew, QList<SubProc>* listSubProc)
|
||||
{
|
||||
bool result = false;
|
||||
|
||||
dlgListSubProc = new DialogListSubProc(connectorToServer, this);
|
||||
dlgListSubProc->setTask(&taskNew);
|
||||
|
||||
switch( dlgListSubProc->exec() )
|
||||
{
|
||||
case QDialog::Accepted:
|
||||
{
|
||||
//Здесь нужно забрать список отмеченных подпроцедур
|
||||
result = dlgListSubProc->getListCheckedSubProc(listSubProc);
|
||||
break;
|
||||
}
|
||||
case QDialog::Rejected:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if(dlgListSubProc)
|
||||
{
|
||||
delete dlgListSubProc;
|
||||
dlgListSubProc = nullptr;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void AMMtasksWidget::setCurrentTask(int id)
|
||||
{
|
||||
for(int i = 0; i < treeWidget->topLevelItemCount(); i++)
|
||||
@@ -433,8 +470,7 @@ void AMMtasksWidget::on_btnCheck_clicked()
|
||||
|
||||
void AMMtasksWidget::on_btnAssignTask_clicked()
|
||||
{
|
||||
if(SpecialMessageBox(this, SpecialMessageBox::TypeSpecMsgBox::warningYesNo, tr("Assign this task?")).exec() == QDialog::Accepted)
|
||||
assignTaskAMMtoTrainee();
|
||||
assignTaskAMMtoTrainee();
|
||||
}
|
||||
|
||||
void AMMtasksWidget::on_btnOnlyActive_clicked()
|
||||
@@ -464,24 +500,8 @@ void AMMtasksWidget::on_treeWidgetDoubleClicked(QTreeWidgetItem *item, int colum
|
||||
|
||||
}
|
||||
else
|
||||
{//Отображаем перечень подпроцедур
|
||||
TaskAmmFim task = taskTreePreparation->getTaskAMMbyID(id);
|
||||
|
||||
if(!task.getID())
|
||||
return;
|
||||
|
||||
dlgListSubProc = new DialogListSubProc(connectorToServer, this);
|
||||
dlgListSubProc->setTask(&task);
|
||||
dlgListSubProc->exec();
|
||||
|
||||
//if(dlgListSubProc->getFlChanged())
|
||||
//waitAnimationWidget->showWithPlay();
|
||||
|
||||
if(dlgListSubProc)
|
||||
{
|
||||
delete dlgListSubProc;
|
||||
dlgListSubProc = nullptr;
|
||||
}
|
||||
{
|
||||
assignTaskAMMtoTrainee();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,14 +65,14 @@ private:
|
||||
void loadTasksAMM(bool flRequestFirst = true);
|
||||
void assignTaskAMMtoTrainee();
|
||||
|
||||
bool selectSubProcForAssignTaskAMM(TaskAmmFim taskNew, QList<SubProc>* listSubProc);
|
||||
|
||||
void setCurrentTask(int id);
|
||||
|
||||
Q_SIGNALS:
|
||||
void signal_prepareAMMListItems(QByteArray array, bool flOnlyActive, bool flRequestFirst);
|
||||
void signal_prepareAMMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
||||
|
||||
void signal_AssignedTask();
|
||||
|
||||
void signal_stopParserPreparation();
|
||||
|
||||
void signal_countTasksAMMforTraineeChanged(int trainee_id, int count);
|
||||
|
||||
@@ -7,12 +7,13 @@ DialogListSubProc::DialogListSubProc(ConnectorToServer* connectorToServer, QWidg
|
||||
| Qt::WindowMaximizeButtonHint
|
||||
| Qt::WindowMinimizeButtonHint
|
||||
| Qt::WindowCloseButtonHint),
|
||||
listSubProc(nullptr)
|
||||
listSubProcCtrl(nullptr)
|
||||
{
|
||||
listSubProc = new ListSubProc(connectorToServer, this);
|
||||
listSubProcCtrl = new ListSubProc(connectorToServer, this);
|
||||
connect(listSubProcCtrl, &ListSubProc::signal_Accepted, this, &DialogListSubProc::slot_Accepted);
|
||||
|
||||
QHBoxLayout *layout = new QHBoxLayout(this);
|
||||
layout->addWidget(listSubProc);
|
||||
layout->addWidget(listSubProcCtrl);
|
||||
this->setWindowTitle(tr("List subprocedures"));
|
||||
|
||||
this->setMinimumSize(1400, 700);
|
||||
@@ -21,15 +22,25 @@ DialogListSubProc::DialogListSubProc(ConnectorToServer* connectorToServer, QWidg
|
||||
|
||||
DialogListSubProc::~DialogListSubProc()
|
||||
{
|
||||
delete listSubProc;
|
||||
delete listSubProcCtrl;
|
||||
}
|
||||
|
||||
void DialogListSubProc::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
listSubProc->close();
|
||||
listSubProcCtrl->close();
|
||||
}
|
||||
|
||||
void DialogListSubProc::slot_Accepted()
|
||||
{
|
||||
this->accept();
|
||||
}
|
||||
|
||||
void DialogListSubProc::setTask(TaskAmmFim *task)
|
||||
{
|
||||
listSubProc->setTask(task);
|
||||
listSubProcCtrl->setTask(task);
|
||||
}
|
||||
|
||||
bool DialogListSubProc::getListCheckedSubProc(QList<SubProc>* listSubProc)
|
||||
{
|
||||
return listSubProcCtrl->getListCheckedSubProc(listSubProc);
|
||||
}
|
||||
|
||||
@@ -16,11 +16,15 @@ public:
|
||||
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
||||
public slots:
|
||||
void slot_Accepted();
|
||||
|
||||
public:
|
||||
void setTask(TaskAmmFim* task);
|
||||
bool getListCheckedSubProc(QList<SubProc>* listSubProcCtrl);
|
||||
|
||||
private:
|
||||
ListSubProc* listSubProc;
|
||||
ListSubProc* listSubProcCtrl;
|
||||
};
|
||||
|
||||
#endif // DIALOGLISTSUBPROC_H
|
||||
|
||||
@@ -374,7 +374,6 @@ void FIMtasksWidget::assignTaskFIMtoTrainee()
|
||||
}
|
||||
}
|
||||
|
||||
emit signal_AssignedTask();
|
||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE, idTraineeSelected, &taskNew);
|
||||
|
||||
updateTaskItem(current);
|
||||
|
||||
@@ -64,8 +64,6 @@ Q_SIGNALS:
|
||||
void signal_prepareFIMListItems(QByteArray array);
|
||||
void signal_prepareFIMListItemsForTrainee(QList<TaskAmmFim> listTask);
|
||||
|
||||
void signal_AssignedTask();
|
||||
|
||||
void signal_stopParserPreparation();
|
||||
|
||||
void signal_countTasksFIMforTraineeChanged(int trainee_id, int count);
|
||||
|
||||
@@ -69,6 +69,25 @@ void ListSubProc::setTask(TaskAmmFim *task)
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
|
||||
bool ListSubProc::getListCheckedSubProc(QList<SubProc>* listSubProc)
|
||||
{
|
||||
//Заполнение списка отмеченных ПП
|
||||
for (int i = 0; i < treeWidget->topLevelItemCount(); i++)
|
||||
{
|
||||
QTreeWidgetItem *item = treeWidget->topLevelItem(i);
|
||||
if(item->checkState(0) == Qt::Checked)
|
||||
{
|
||||
SubProc subProc;
|
||||
subProc.dmCode = item->text(ColumnsTreeSubProc::clmnSP_code);
|
||||
subProc.title = item->text(ColumnsTreeSubProc::clmnSP_title);
|
||||
subProc.modeList = parseCanplay(item->text(ColumnsTreeSubProc::clmnSP_canplay));
|
||||
listSubProc->append(subProc);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void ListSubProc::preparationTreeWidget()
|
||||
{
|
||||
treeWidget->setColumnCount(ColumnsTreeSubProc::clmnSP_count);
|
||||
@@ -131,6 +150,45 @@ QString ListSubProc::buildCanplay(ModeList modeList)
|
||||
return canplay;
|
||||
}
|
||||
|
||||
ModeList ListSubProc::parseCanplay(QString canplay)
|
||||
{
|
||||
ModeList modeList;
|
||||
|
||||
if(canplay == "")
|
||||
{
|
||||
modeList.demo = false;
|
||||
modeList.train = false;
|
||||
modeList.exam = false;
|
||||
modeList.autoM = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
QStringList list = canplay.split("/");
|
||||
|
||||
if(list.at(0) == "+")
|
||||
modeList.demo = true;
|
||||
else
|
||||
modeList.demo = false;
|
||||
|
||||
if(list.at(1) == "+")
|
||||
modeList.train = true;
|
||||
else
|
||||
modeList.train = false;
|
||||
|
||||
if(list.at(2) == "+")
|
||||
modeList.exam = true;
|
||||
else
|
||||
modeList.exam = false;
|
||||
|
||||
if(list.at(3) == "+")
|
||||
modeList.autoM = true;
|
||||
else
|
||||
modeList.autoM = false;
|
||||
}
|
||||
|
||||
return modeList;
|
||||
}
|
||||
|
||||
void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
||||
{
|
||||
if(this->task.ammProcedure.dmCode == dmCode)
|
||||
@@ -155,3 +213,8 @@ void ListSubProc::slot_UpdateSubProcForDMCode(QString dmCode)
|
||||
waitAnimationWidget->hideWithStop();
|
||||
}
|
||||
}
|
||||
|
||||
void ListSubProc::on_btnAssign_clicked()
|
||||
{
|
||||
emit signal_Accepted();
|
||||
}
|
||||
|
||||
@@ -30,17 +30,25 @@ public:
|
||||
void changeEvent(QEvent * event) override;
|
||||
|
||||
void setTask(TaskAmmFim* task);
|
||||
bool getListCheckedSubProc(QList<SubProc>* listSubProc);
|
||||
|
||||
private:
|
||||
void preparationTreeWidget();
|
||||
void reSetHeadTreeWidget();
|
||||
void setWidthColumnsTree();
|
||||
int calculateWidth_0Column();
|
||||
QString buildCanplay(ModeList modeList);
|
||||
QString buildCanplay(ModeList modeList); //TODO Дублируется в DocsUpdater (Server)!
|
||||
ModeList parseCanplay(QString canplay); //TODO Дублируется в DocsUpdater (Server)!
|
||||
|
||||
public slots:
|
||||
void slot_UpdateSubProcForDMCode(QString dmCode);
|
||||
|
||||
private slots:
|
||||
void on_btnAssign_clicked();
|
||||
|
||||
signals:
|
||||
void signal_Accepted();
|
||||
|
||||
private:
|
||||
Ui::ListSubProc *ui;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_SubProc">
|
||||
<property name="text">
|
||||
<string>Subprocedures</string>
|
||||
<string>Select subprocedures allowed to run in Auto mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -48,10 +48,42 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_Btn">
|
||||
<item>
|
||||
<widget class="QToolButton" name="btnAssign">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>50</width>
|
||||
<height>50</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Assign</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../InstructorsAndTrainees.qrc">
|
||||
<normaloff>:/resources/icons/circleGreen.png</normaloff>:/resources/icons/circleGreen.png</iconset>
|
||||
</property>
|
||||
<property name="iconSize">
|
||||
<size>
|
||||
<width>32</width>
|
||||
<height>32</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolButtonStyle">
|
||||
<enum>Qt::ToolButtonTextUnderIcon</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<resources>
|
||||
<include location="../InstructorsAndTrainees.qrc"/>
|
||||
</resources>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define MODULE_H
|
||||
#include <QString>
|
||||
#include <QList>
|
||||
#include "tasksAmmFim.h"
|
||||
#include "instructorsAndTrainees_global.h"
|
||||
|
||||
enum ModuleType
|
||||
@@ -10,22 +11,6 @@ enum ModuleType
|
||||
TYPE_DM = 1
|
||||
};
|
||||
|
||||
struct ModeList
|
||||
{
|
||||
bool demo = false;
|
||||
bool train = false;
|
||||
bool exam = false;
|
||||
bool autoM = false;
|
||||
};
|
||||
|
||||
struct SubProc
|
||||
{
|
||||
QString dmCode;
|
||||
QString title;
|
||||
|
||||
ModeList modeList;
|
||||
};
|
||||
|
||||
class INSTRUCTORSANDTRAINEES_EXPORT Module
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user