diff --git a/ServerLMS/Systems/Parsers/processparser.cpp b/ServerLMS/Systems/Parsers/processparser.cpp index 9554285..7627b35 100644 --- a/ServerLMS/Systems/Parsers/processparser.cpp +++ b/ServerLMS/Systems/Parsers/processparser.cpp @@ -302,6 +302,36 @@ TaskAmmFim ProcessParser::xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(QByteArr return task; } +TaskAmmFim ProcessParser::xmlParserQueryToDB_ASSIGN_TASK_AMM_TO_TRAINEE(QByteArray array) +{ + TaskAmmFim task; + + QDomDocument commonDOM; + commonDOM.setContent(array); + + QDomNode mainNode = commonDOM.namedItem("QueryToDB"); + + task.ammProcedure.title = mainNode.toElement().attribute("title"); + task.ammProcedure.dmCode = mainNode.toElement().attribute("dmCode"); + + for(int i = 0; i < mainNode.childNodes().count(); i++) + { + QDomNode subProcNode = mainNode.childNodes().at(i); + if(subProcNode.nodeName() == "SubProc") + {//Подпроцедура + SubProc subProc; + + subProc.setTitle(subProcNode.toElement().attribute("title")); + subProc.setDmCode(subProcNode.toElement().attribute("dmCode")); + subProc.setModeListStr(subProcNode.toElement().attribute("canplay")); + + task.listSubProc.append(subProc); + } + } + + return task; +} + void ProcessParser::clientAuth(QXmlStreamReader &xmlReader,ClientHandler *client) { ClientAutorization clientAutorization; @@ -387,6 +417,10 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, { task = xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(array); } + else if(queryToDB.typeQuery == TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE) + { + task = xmlParserQueryToDB_ASSIGN_TASK_AMM_TO_TRAINEE(array); + } } else if(name == "id") id = value.toInt(); @@ -445,10 +479,12 @@ void ProcessParser::queryToDb(QXmlStreamReader &xmlReader,ClientHandler *client, break; case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_AMM_TO_TRAINEE: + /* if(name == "title") task.ammProcedure.title = value; else if(name == "dmCode") task.ammProcedure.dmCode = value; + */ break; case TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE: //if(name == "title") diff --git a/ServerLMS/Systems/Parsers/processparser.h b/ServerLMS/Systems/Parsers/processparser.h index 298dbf8..f482913 100644 --- a/ServerLMS/Systems/Parsers/processparser.h +++ b/ServerLMS/Systems/Parsers/processparser.h @@ -37,6 +37,7 @@ private: void clientUnityTaskFIMreport(QXmlStreamReader &xmlReader,ClientHandler *client, QByteArray array = QByteArray()); TaskAmmFim xmlParserQueryToDB_ASSIGN_TASK_FIM_TO_TRAINEE(QByteArray array); + TaskAmmFim xmlParserQueryToDB_ASSIGN_TASK_AMM_TO_TRAINEE(QByteArray array); }; #endif // PROCESSPARSER_H