mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Transaction deleteTrainee
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
#include <QtSql>
|
||||
#include <QSqlDatabase>
|
||||
#include <QSqlDriver>
|
||||
#include <QMessageBox>
|
||||
|
||||
DataBaseLMS::DataBaseLMS():
|
||||
@@ -20,14 +21,16 @@ bool DataBaseLMS::createConnection()
|
||||
{
|
||||
mtxAccess.lock();
|
||||
|
||||
db = new QSqlDatabase(QSqlDatabase::addDatabase(dbType));
|
||||
db = new QSqlDatabase(QSqlDatabase::addDatabase(dbType, connectionName));
|
||||
db->setDatabaseName(dbName);
|
||||
db->setUserName(dbUserName);
|
||||
db->setPassword(dbPassword);
|
||||
db->setPort(5432);
|
||||
db->setHostName("192.168.100.87");
|
||||
|
||||
if(!db->open())
|
||||
bool res = db->open();
|
||||
|
||||
if(!res)
|
||||
{
|
||||
mtxAccess.unlock();
|
||||
deleteConnection();
|
||||
@@ -35,6 +38,11 @@ bool DataBaseLMS::createConnection()
|
||||
}
|
||||
else
|
||||
{
|
||||
bool flHas = db->driver()->hasFeature(QSqlDriver::Transactions);
|
||||
|
||||
//bool resBool = QSqlDatabase::database(connectionName).transaction();
|
||||
//resBool = QSqlDatabase::database(connectionName).commit();
|
||||
|
||||
mtxAccess.unlock();
|
||||
return true;
|
||||
}
|
||||
@@ -823,12 +831,50 @@ int DataBaseLMS::insertTrainee(Trainee trainee)
|
||||
|
||||
int DataBaseLMS::deleteTrainee(int id_trainee)
|
||||
{
|
||||
QString queryStr = QString("DELETE FROM public.trainees "
|
||||
QString queryStr;
|
||||
int res = 0;
|
||||
bool resBool = false;
|
||||
|
||||
resBool = db->transaction();
|
||||
|
||||
QSqlQuery query = QSqlQuery(*db);
|
||||
|
||||
queryStr = QString("DELETE FROM public.tasks_amm "
|
||||
"WHERE trainee_task = %1 ").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
if(!queryExec(queryStr, &query))
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
queryStr = QString("DELETE FROM public.tasks_fim "
|
||||
"WHERE trainee_task = %1 ").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
if(!queryExec(queryStr, &query))
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
|
||||
queryStr = QString("DELETE FROM public.trainees "
|
||||
"WHERE trainee_id = %1 "
|
||||
"RETURNING trainees.trainee_id").arg(
|
||||
QString::number(id_trainee));
|
||||
|
||||
return queryExecInt(queryStr);
|
||||
res = queryExecInt(queryStr);
|
||||
if(res)
|
||||
{
|
||||
resBool = db->commit();
|
||||
return res;
|
||||
}
|
||||
else
|
||||
{
|
||||
resBool = db->rollback();
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
int DataBaseLMS::updateTrainee(Trainee trainee)
|
||||
|
||||
@@ -94,6 +94,7 @@ private:
|
||||
protected:
|
||||
QSqlDatabase* db;
|
||||
const QString dbName = "DataBaseLMS";
|
||||
const QString connectionName = "Connection_DataBaseLMS";
|
||||
private:
|
||||
bool transactionBegined;
|
||||
const QString dbUserName = "postgres";
|
||||
|
||||
@@ -184,6 +184,15 @@ QByteArray DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id
|
||||
if(task)
|
||||
{
|
||||
xmlWriter.writeAttribute("title", task->title);
|
||||
|
||||
for(Malfunction malfunction : task->malfunctionList)
|
||||
{
|
||||
xmlWriter.writeStartElement("malfunction");
|
||||
xmlWriter.writeAttribute("dmCode", malfunction.dmCode);
|
||||
xmlWriter.writeAttribute("num", malfunction.num);
|
||||
xmlWriter.writeAttribute("description", malfunction.description);
|
||||
xmlWriter.writeEndElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,11 +226,6 @@ void AMMtasksWidget::on_btnUpdateTasks_clicked()
|
||||
connectorToServer->sendQueryTasksXML("amm");
|
||||
}
|
||||
|
||||
void AMMtasksWidget::on_btnAssignTaskToTrainee_clicked()
|
||||
{
|
||||
slot_AssignTaskAMMtoTrainee();
|
||||
}
|
||||
|
||||
void AMMtasksWidget::slot_AssignTaskAMMtoTrainee()
|
||||
{
|
||||
QTreeWidgetItem *current = treeWidget->currentItem();
|
||||
|
||||
@@ -43,7 +43,7 @@ public:
|
||||
private Q_SLOTS:
|
||||
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
void on_btnUpdateTasks_clicked();
|
||||
void on_btnAssignTaskToTrainee_clicked();
|
||||
|
||||
public Q_SLOTS:
|
||||
void slot_AssignTaskAMMtoTrainee();
|
||||
|
||||
|
||||
@@ -356,11 +356,6 @@ void FIMtasksWidget::on_btnUpdateTasks_clicked()
|
||||
connectorToServer->sendQueryTasksXML("fim");
|
||||
}
|
||||
|
||||
void FIMtasksWidget::on_btnAssignTaskToTrainee_clicked()
|
||||
{
|
||||
slot_AssignTaskFIMtoTrainee();
|
||||
}
|
||||
|
||||
void FIMtasksWidget::slot_AssignTaskFIMtoTrainee()
|
||||
{
|
||||
QTreeWidgetItem *current = treeWidget->currentItem();
|
||||
@@ -379,6 +374,18 @@ void FIMtasksWidget::slot_AssignTaskFIMtoTrainee()
|
||||
TaskAmmFim taskNew;
|
||||
taskNew.title = task->title;
|
||||
|
||||
//Назначенные неисправности
|
||||
for (int i = 0; i < current->childCount(); i++)
|
||||
{
|
||||
QTreeWidgetItem* itemMalfunction = current->child(i);
|
||||
|
||||
if(itemMalfunction->checkState(0) == Qt::Checked)
|
||||
{
|
||||
Malfunction malfunction = task->malfunctionList.at(i);
|
||||
taskNew.malfunctionList.append(malfunction);
|
||||
}
|
||||
}
|
||||
|
||||
connectorToServer->sendQueryToDB(TypeQueryToDB::TYPE_QUERY_ASSIGN_TASK_FIM_TO_TRAINEE, trainee_id, &taskNew);
|
||||
|
||||
updateTaskItem(current);
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
private Q_SLOTS:
|
||||
void on_treeWidget_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
void on_btnUpdateTasks_clicked();
|
||||
void on_btnAssignTaskToTrainee_clicked();
|
||||
|
||||
public Q_SLOTS:
|
||||
void slot_AssignTaskFIMtoTrainee();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user