diff --git a/LibDataBaseInterface/databaselms_tasks_fim.cpp b/LibDataBaseInterface/databaselms_tasks_fim.cpp index 92d60e1..be9337c 100644 --- a/LibDataBaseInterface/databaselms_tasks_fim.cpp +++ b/LibDataBaseInterface/databaselms_tasks_fim.cpp @@ -431,7 +431,7 @@ QList DataBaseLMS::selectTasksFIMofTrainee(int id_trainee) //Выгребаем отчет для этой задачи int report_id = 0; - queryStr = QString("SELECT reports.report_id " + queryStr = QString("SELECT reports.report_id, reports.mmel " "FROM public.reports " "WHERE fk_task_fim_id = %1 " "ORDER BY reports.report_id ASC").arg( @@ -445,6 +445,7 @@ QList DataBaseLMS::selectTasksFIMofTrainee(int id_trainee) {//Отчет report_id = queryReport.value(0).toInt(); task.report.id = report_id; + task.report.mmel = queryReport.value(1).toBool(); } } else @@ -490,7 +491,7 @@ QList DataBaseLMS::selectTasksFIMofTrainee(int id_trainee) //Выгребаем все wh_item отчета - queryStr = QString("SELECT report_wh_items.wh_item_id, report_wh_items.status, report_wh_items.go_name, report_wh_items.obj_name, report_wh_items.fk_report_id, report_wh_items.number " + queryStr = QString("SELECT report_wh_items.wh_item_id, report_wh_items.status, report_wh_items.go_name, report_wh_items.obj_name, report_wh_items.code, report_wh_items.fk_report_id, report_wh_items.number " "FROM public.report_wh_items " "WHERE fk_report_id = %1 " "ORDER BY report_wh_items.number ASC").arg( @@ -507,6 +508,7 @@ QList DataBaseLMS::selectTasksFIMofTrainee(int id_trainee) reportWhItem.status = queryWhItems.value(1).toInt(); reportWhItem.goName = queryWhItems.value(2).toString(); reportWhItem.objName = queryWhItems.value(3).toString(); + reportWhItem.code = queryWhItems.value(4).toString(); task.report.warehouseItemList.append(reportWhItem); } @@ -618,7 +620,7 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task) //Выгребаем отчет для этой задачи int report_id = 0; - queryStr = QString("SELECT reports.report_id " + queryStr = QString("SELECT reports.report_id, reports.mmel " "FROM public.reports " "WHERE fk_task_fim_id = %1 " "ORDER BY reports.report_id ASC").arg( @@ -632,6 +634,7 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task) {//Отчет report_id = queryReport.value(0).toInt(); task.report.id = report_id; + task.report.mmel = queryReport.value(1).toBool(); } } else @@ -677,7 +680,7 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task) //Выгребаем все wh_item отчета - queryStr = QString("SELECT report_wh_items.wh_item_id, report_wh_items.status, report_wh_items.go_name, report_wh_items.obj_name, report_wh_items.fk_report_id, report_wh_items.number " + queryStr = QString("SELECT report_wh_items.wh_item_id, report_wh_items.status, report_wh_items.go_name, report_wh_items.obj_name, report_wh_items.code, report_wh_items.fk_report_id, report_wh_items.number " "FROM public.report_wh_items " "WHERE fk_report_id = %1 " "ORDER BY report_wh_items.number ASC").arg( @@ -694,6 +697,7 @@ TaskAmmFim DataBaseLMS::selectTaskFIMbyID(int id_task) reportWhItem.status = queryWhItems.value(1).toInt(); reportWhItem.goName = queryWhItems.value(2).toString(); reportWhItem.objName = queryWhItems.value(3).toString(); + reportWhItem.code = queryWhItems.value(4).toString(); task.report.warehouseItemList.append(reportWhItem); } @@ -751,8 +755,8 @@ int DataBaseLMS::updateReportFIMforTask(TaskAmmFim task) queryStr = QString("INSERT INTO public.reports (fk_task_fim_id, mmel) " "VALUES (%1, %2) " "RETURNING reports.report_id").arg( - task.getID(), - task.report.mmel); + QString::number(task.getID()), + (task.report.mmel ? "true" : "false")); report_id = queryExecInt(queryStr); if(!report_id) diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp index 5620174..c8bf2af 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp +++ b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp @@ -885,6 +885,7 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array {//Отчет FIMReport report; report.id = malfOrReportNode.toElement().attribute("report_id").toInt(); + report.mmel = malfOrReportNode.toElement().attribute("mmel") == "true" ? true : false; for(int k = 0; k < malfOrReportNode.childNodes().count(); k++) { @@ -906,6 +907,17 @@ void RecognizeSystem::xmlParserQueryToDB(PacketType packetType, QByteArray array report.itemList.append(reportItem); } + else if(reportItemNode.nodeName() == "reportWHItem") + { + FIMReportWarehouseItem reportWhItem; + reportWhItem.id = reportItemNode.toElement().attribute("wh_item_id").toInt(); + reportWhItem.status = reportItemNode.toElement().attribute("status").toInt(); + reportWhItem.goName = reportItemNode.toElement().attribute("goName"); + reportWhItem.objName = reportItemNode.toElement().attribute("objName"); + reportWhItem.code = reportItemNode.toElement().attribute("code"); + + report.warehouseItemList.append(reportWhItem); + } } task.report = report; diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index c9f178b..2a1cef4 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -27,6 +27,7 @@ CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, { fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); ui->verticalLayout_3->addWidget(fimTasksWidget); + fimTasksWidget->setMaximumHeight(300); ui->lblName->setVisible(false); ui->lblDMcode->setVisible(false); @@ -202,7 +203,7 @@ void CheckerTask::outReport(FIMReport report) */ //Title - str = QString("%1").arg(item.procedure.title); + str = QString("

%1

").arg(item.procedure.title); ui->plainText->appendHtml(str); //DMcode @@ -222,10 +223,10 @@ void CheckerTask::outReport(FIMReport report) str = QString("

%1

").arg(item.text); ui->plainText->appendHtml(str); - ui->plainText->appendHtml("
"); + //ui->plainText->appendHtml("
"); } - ui->plainText->appendHtml("
"); + //ui->plainText->appendHtml("
"); //Устройства/приборы bool flNeedMMEL = false; @@ -258,19 +259,22 @@ void CheckerTask::outReport(FIMReport report) str = QString("

%1

").arg(whItem.code); ui->plainText->appendHtml(str); - ui->plainText->appendHtml("
"); + //ui->plainText->appendHtml("
"); } - ui->plainText->appendHtml("
"); + //ui->plainText->appendHtml("
"); if(flNeedMMEL) { - QString strMMEL = tr("Trainee believes that:") + "\n"; + QString strMMEL = tr("Trainee believes that:"); if(report.mmel) - str += tr("The aircraft may operate with its equipment removed in accordance with the \"Master Minimum Equipment List\""); + strMMEL += tr("The aircraft may operate with its equipment removed in accordance with the \"Master Minimum Equipment List\""); else - str += tr("The aircraft cannot be flown with equipment removed in accordance with the \"Master Minimum Equipment List\""); + strMMEL += tr("The aircraft cannot be flown with equipment removed in accordance with the \"Master Minimum Equipment List\""); + + str = QString("

%1

").arg(strMMEL); + ui->plainText->appendHtml(str); } } diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 8bd62f8..5fed614 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -18,7 +18,7 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, Checker { case CheckerTask::TypeChecker::fim_check: this->setWindowTitle(tr("Check Task")); - this->setMinimumSize(1400, 700); + this->setMinimumSize(1400, 900); //this->setWindowState(Qt::WindowMaximized); break; case CheckerTask::TypeChecker::amm_check: diff --git a/LibServer/Systems/Parsers/dbanswerparser.cpp b/LibServer/Systems/Parsers/dbanswerparser.cpp index c644b22..49d2bdf 100644 --- a/LibServer/Systems/Parsers/dbanswerparser.cpp +++ b/LibServer/Systems/Parsers/dbanswerparser.cpp @@ -225,6 +225,7 @@ QByteArray DBAnswerParser::listTasksFIMofTrainee(bool result, QList QDomNode reportNode = commonDOM.createElement("report"); taskNode.appendChild(reportNode); reportNode.toElement().setAttribute("report_id", report.id); + reportNode.toElement().setAttribute("mmel", report.mmel ? "true" : "false"); for(FIMReportItem reportItem : task.report.itemList) {//FIMReportItem @@ -242,6 +243,17 @@ QByteArray DBAnswerParser::listTasksFIMofTrainee(bool result, QList procedureIDNode.toElement().setAttribute("dmCode", reportItem.procedure.dmCode); procedureIDNode.toElement().setAttribute("result", reportItem.procedure.result); } + + for(FIMReportWarehouseItem reportWhItem : task.report.warehouseItemList) + {//FIMReportWarehouseItem + QDomNode reportWhItemNode = commonDOM.createElement("reportWHItem"); + reportNode.appendChild(reportWhItemNode); + reportWhItemNode.toElement().setAttribute("wh_item_id", reportWhItem.id); + reportWhItemNode.toElement().setAttribute("status", reportWhItem.status); + reportWhItemNode.toElement().setAttribute("goName", reportWhItem.goName); + reportWhItemNode.toElement().setAttribute("objName", reportWhItem.objName); + reportWhItemNode.toElement().setAttribute("code", reportWhItem.code); + } } } diff --git a/LibServer/Systems/Parsers/processparser.cpp b/LibServer/Systems/Parsers/processparser.cpp index 7df7a36..c8d5189 100644 --- a/LibServer/Systems/Parsers/processparser.cpp +++ b/LibServer/Systems/Parsers/processparser.cpp @@ -221,7 +221,7 @@ void ProcessParser::clientUnityTaskFIMreport(QXmlStreamReader &xmlReader, Client } else if(reportItemNode.nodeName() == "mmel") { - report.mmel = (reportItemNode.toElement().nodeValue() == "true" ? true : false); + report.mmel = (reportItemNode.nodeValue() == "true" ? true : false); } }