Тайминг. Работает. Предварительно.

This commit is contained in:
2025-07-30 12:34:34 +03:00
parent 5c80f6824a
commit 726abda4c0
19 changed files with 292 additions and 9 deletions

View File

@@ -1,6 +1,8 @@
#include <QMessageBox>
#include <QCoreApplication>
#include <QSqlError>
#include <QDateTime>
#include <QTime>
#include "interfacedatabaselms.h"
InterfaceDataBaseLMS::InterfaceDataBaseLMS(QWidget* parent):
@@ -218,6 +220,86 @@ bool InterfaceDataBaseLMS::deAuthorizationAllTrainees()
return updateAllTraineesLoggedIn(false);
}
int InterfaceDataBaseLMS::entryTraineeOnSimulator(int id_trainee)
{
TimingOfTrainee timing;
QDateTime dataTime_entry = QDateTime::currentDateTime();
QDateTime dataTime_exit;
int interval;
QString dataTimeStr_entry = dataTime_entry.toString("yyyy-MM-dd hh:mm:ss.zzz");
QString dataTimeStr_exit = "";
QString intervalStr = "";
timing = selectTimingTrainee(id_trainee);
if(timing.getID())
{//Запись уже есть в базе
dataTime_exit = QDateTime::fromString(timing.getExitTime());
dataTimeStr_exit = dataTime_exit.toString("yyyy-MM-dd hh:mm:ss.zzz");
intervalStr = timing.getOperatingTime();
}
else
{//Еще нет записи
int timing_id = insertTimingTrainee(id_trainee);
timing.setID(timing_id);
dataTime_exit = dataTime_entry;
interval = dataTime_entry.secsTo(dataTime_exit);
dataTimeStr_exit = dataTime_exit.toString("yyyy-MM-dd hh:mm:ss.zzz");
intervalStr = QString::number(interval);
}
timing.setTraineeID(id_trainee);
timing.setEntryTime(dataTimeStr_entry);
timing.setExitTime(dataTimeStr_exit);
timing.setOperatingTime(intervalStr);
return updateTimingTrainee(id_trainee, timing);
}
int InterfaceDataBaseLMS::exitTraineeFromSimulator(int id_trainee)
{
TimingOfTrainee timing;
QDateTime dataTime_entry;
QDateTime dataTime_exit = QDateTime::currentDateTime();
int interval;
QString dataTimeStr_entry = "";
QString dataTimeStr_exit = dataTime_exit.toString("yyyy-MM-dd hh:mm:ss.zzz");
QString intervalStr = "";
timing = selectTimingTrainee(id_trainee);
if(timing.getID())
{//Запись уже есть в базе
dataTime_entry = QDateTime::fromString(timing.getEntryTime());
dataTimeStr_entry = dataTime_entry.toString("yyyy-MM-dd hh:mm:ss.zzz");
interval = QTime::fromString(timing.getOperatingTime()).second() + dataTime_entry.secsTo(dataTime_exit);
//interval = dataTime_entry.secsTo(dataTime_exit);
intervalStr = QString::number(interval);
}
else
{//Еще нет записи
int timing_id = insertTimingTrainee(id_trainee);
timing.setID(timing_id);
dataTime_entry = dataTime_exit;
interval = dataTime_entry.secsTo(dataTime_exit);
dataTimeStr_entry = dataTime_entry.toString("yyyy-MM-dd hh:mm:ss.zzz");
intervalStr = QString::number(interval);
}
timing.setTraineeID(id_trainee);
timing.setEntryTime(dataTimeStr_entry);
timing.setExitTime(dataTimeStr_exit);
timing.setOperatingTime(intervalStr);
return updateTimingTrainee(id_trainee, timing);
}
QString InterfaceDataBaseLMS::getNameTraineeOnComputer(QString computer_name)
{
return selectTraineeNameOnComputer(computer_name);