API now supports Auswertung
This commit is contained in:
@@ -55,7 +55,7 @@ MainWindow::MainWindow(QSettings &settings, Zeiterfassung &erfassung, const Zeit
|
|||||||
|
|
||||||
connect(&m_erfassung, &Zeiterfassung::getProjekteFinished,
|
connect(&m_erfassung, &Zeiterfassung::getProjekteFinished,
|
||||||
this, &MainWindow::getProjekteFinished);
|
this, &MainWindow::getProjekteFinished);
|
||||||
erfassung.doGetProjekte(userInfo.userId);
|
erfassung.doGetProjekte(userInfo.userId, QDate::currentDate());
|
||||||
|
|
||||||
ui->comboBoxProjekt->setMaxVisibleItems(10);
|
ui->comboBoxProjekt->setMaxVisibleItems(10);
|
||||||
|
|
||||||
@@ -75,6 +75,8 @@ MainWindow::MainWindow(QSettings &settings, Zeiterfassung &erfassung, const Zeit
|
|||||||
this, &MainWindow::contextMenuBuchung);
|
this, &MainWindow::contextMenuBuchung);
|
||||||
connect(ui->treeViewKontierungen, &QWidget::customContextMenuRequested,
|
connect(ui->treeViewKontierungen, &QWidget::customContextMenuRequested,
|
||||||
this, &MainWindow::contextMenuKontierung);
|
this, &MainWindow::contextMenuKontierung);
|
||||||
|
|
||||||
|
erfassung.doGetAuswertung(userInfo.userId, QDate::currentDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
@@ -17,7 +17,8 @@ Zeiterfassung::Zeiterfassung(const QString &url, QObject *parent) :
|
|||||||
m_url(url),
|
m_url(url),
|
||||||
m_manager(new QNetworkAccessManager(this)),
|
m_manager(new QNetworkAccessManager(this)),
|
||||||
m_replies { Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR,
|
m_replies { Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR,
|
||||||
Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR }
|
Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR,
|
||||||
|
Q_NULLPTR }
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,7 +326,7 @@ bool Zeiterfassung::doDeleteKontierung(int kontierungId)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Zeiterfassung::doGetProjekte(int userId, QDate date)
|
bool Zeiterfassung::doGetProjekte(int userId, const QDate &date)
|
||||||
{
|
{
|
||||||
if(m_replies.getProjekte)
|
if(m_replies.getProjekte)
|
||||||
{
|
{
|
||||||
@@ -345,6 +346,26 @@ bool Zeiterfassung::doGetProjekte(int userId, QDate date)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Zeiterfassung::doGetAuswertung(int userId, const QDate &date)
|
||||||
|
{
|
||||||
|
if(m_replies.getAuswertung)
|
||||||
|
{
|
||||||
|
qWarning() << "another getAuswertung already processing!";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QNetworkRequest request(QUrl(QStringLiteral("%0json/auswertung/month?persNr=%1&date=%2")
|
||||||
|
.arg(m_url)
|
||||||
|
.arg(userId)
|
||||||
|
.arg(date.toString(QStringLiteral("yyyyMMdd")))));
|
||||||
|
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
|
||||||
|
|
||||||
|
m_replies.getAuswertung = m_manager->get(request);
|
||||||
|
connect(m_replies.getAuswertung, &QNetworkReply::finished, this, &Zeiterfassung::getAuswertungRequest0Finished);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void Zeiterfassung::loginPageRequestFinished()
|
void Zeiterfassung::loginPageRequestFinished()
|
||||||
{
|
{
|
||||||
if(m_replies.loginPage->error() != QNetworkReply::NoError)
|
if(m_replies.loginPage->error() != QNetworkReply::NoError)
|
||||||
@@ -815,3 +836,38 @@ void Zeiterfassung::getProjekteRequestFinished()
|
|||||||
m_replies.getProjekte->deleteLater();
|
m_replies.getProjekte->deleteLater();
|
||||||
m_replies.getProjekte = Q_NULLPTR;
|
m_replies.getProjekte = Q_NULLPTR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Zeiterfassung::getAuswertungRequest0Finished()
|
||||||
|
{
|
||||||
|
if(m_replies.getAuswertung->error() != QNetworkReply::NoError)
|
||||||
|
{
|
||||||
|
Q_EMIT getAuswertungFinished(false, tr("Request error occured: %0").arg(m_replies.getProjekte->error()), QByteArray());
|
||||||
|
m_replies.getAuswertung->deleteLater();
|
||||||
|
m_replies.getAuswertung = Q_NULLPTR;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QUrl url(m_url);
|
||||||
|
url.setPath(QString(m_replies.getAuswertung->readAll()));
|
||||||
|
|
||||||
|
m_replies.getAuswertung->deleteLater();
|
||||||
|
|
||||||
|
m_replies.getAuswertung = m_manager->get(QNetworkRequest(url));
|
||||||
|
connect(m_replies.getAuswertung, &QNetworkReply::finished,
|
||||||
|
this, &Zeiterfassung::getAuswertungRequest1Finished);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Zeiterfassung::getAuswertungRequest1Finished()
|
||||||
|
{
|
||||||
|
if(m_replies.getProjekte->error() != QNetworkReply::NoError)
|
||||||
|
{
|
||||||
|
Q_EMIT getAuswertungFinished(false, tr("Request error occured: %0").arg(m_replies.getProjekte->error()), QByteArray());
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_EMIT getAuswertungFinished(true, QString(), m_replies.getProjekte->readAll());
|
||||||
|
|
||||||
|
end:
|
||||||
|
m_replies.getProjekte->deleteLater();
|
||||||
|
m_replies.getProjekte = Q_NULLPTR;
|
||||||
|
}
|
||||||
|
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
class QNetworkAccessManager;
|
class QNetworkAccessManager;
|
||||||
class QNetworkReply;
|
class QNetworkReply;
|
||||||
|
class QByteArray;
|
||||||
|
|
||||||
class Zeiterfassung : public QObject
|
class Zeiterfassung : public QObject
|
||||||
{
|
{
|
||||||
@@ -78,7 +79,8 @@ public Q_SLOTS:
|
|||||||
const QString &workpackage, const QString &text);
|
const QString &workpackage, const QString &text);
|
||||||
bool doDeleteKontierung(int kontierungId);
|
bool doDeleteKontierung(int kontierungId);
|
||||||
|
|
||||||
bool doGetProjekte(int userId, QDate date = QDate::currentDate());
|
bool doGetProjekte(int userId, const QDate &date);
|
||||||
|
bool doGetAuswertung(int userId, const QDate &date);
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void urlChanged(const QString &url);
|
void urlChanged(const QString &url);
|
||||||
@@ -98,6 +100,7 @@ Q_SIGNALS:
|
|||||||
void deleteKontierungFinished(bool success, const QString &message);
|
void deleteKontierungFinished(bool success, const QString &message);
|
||||||
|
|
||||||
void getProjekteFinished(bool success, const QString &message, const QVector<Projekt> &projekte);
|
void getProjekteFinished(bool success, const QString &message, const QVector<Projekt> &projekte);
|
||||||
|
void getAuswertungFinished(bool success, const QString &message, const QByteArray &content);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void loginPageRequestFinished();
|
void loginPageRequestFinished();
|
||||||
@@ -115,6 +118,8 @@ private Q_SLOTS:
|
|||||||
void deleteKontierungRequestFinished();
|
void deleteKontierungRequestFinished();
|
||||||
|
|
||||||
void getProjekteRequestFinished();
|
void getProjekteRequestFinished();
|
||||||
|
void getAuswertungRequest0Finished();
|
||||||
|
void getAuswertungRequest1Finished();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_url;
|
QString m_url;
|
||||||
@@ -136,6 +141,7 @@ private:
|
|||||||
QNetworkReply *deleteKontierung;
|
QNetworkReply *deleteKontierung;
|
||||||
|
|
||||||
QNetworkReply *getProjekte;
|
QNetworkReply *getProjekte;
|
||||||
|
QNetworkReply *getAuswertung;
|
||||||
} m_replies;
|
} m_replies;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user