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,
|
||||
this, &MainWindow::getProjekteFinished);
|
||||
erfassung.doGetProjekte(userInfo.userId);
|
||||
erfassung.doGetProjekte(userInfo.userId, QDate::currentDate());
|
||||
|
||||
ui->comboBoxProjekt->setMaxVisibleItems(10);
|
||||
|
||||
@@ -75,6 +75,8 @@ MainWindow::MainWindow(QSettings &settings, Zeiterfassung &erfassung, const Zeit
|
||||
this, &MainWindow::contextMenuBuchung);
|
||||
connect(ui->treeViewKontierungen, &QWidget::customContextMenuRequested,
|
||||
this, &MainWindow::contextMenuKontierung);
|
||||
|
||||
erfassung.doGetAuswertung(userInfo.userId, QDate::currentDate());
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
|
@@ -17,7 +17,8 @@ Zeiterfassung::Zeiterfassung(const QString &url, QObject *parent) :
|
||||
m_url(url),
|
||||
m_manager(new QNetworkAccessManager(this)),
|
||||
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;
|
||||
}
|
||||
|
||||
bool Zeiterfassung::doGetProjekte(int userId, QDate date)
|
||||
bool Zeiterfassung::doGetProjekte(int userId, const QDate &date)
|
||||
{
|
||||
if(m_replies.getProjekte)
|
||||
{
|
||||
@@ -345,6 +346,26 @@ bool Zeiterfassung::doGetProjekte(int userId, QDate date)
|
||||
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()
|
||||
{
|
||||
if(m_replies.loginPage->error() != QNetworkReply::NoError)
|
||||
@@ -815,3 +836,38 @@ void Zeiterfassung::getProjekteRequestFinished()
|
||||
m_replies.getProjekte->deleteLater();
|
||||
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 QNetworkReply;
|
||||
class QByteArray;
|
||||
|
||||
class Zeiterfassung : public QObject
|
||||
{
|
||||
@@ -78,7 +79,8 @@ public Q_SLOTS:
|
||||
const QString &workpackage, const QString &text);
|
||||
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:
|
||||
void urlChanged(const QString &url);
|
||||
@@ -98,6 +100,7 @@ Q_SIGNALS:
|
||||
void deleteKontierungFinished(bool success, const QString &message);
|
||||
|
||||
void getProjekteFinished(bool success, const QString &message, const QVector<Projekt> &projekte);
|
||||
void getAuswertungFinished(bool success, const QString &message, const QByteArray &content);
|
||||
|
||||
private Q_SLOTS:
|
||||
void loginPageRequestFinished();
|
||||
@@ -115,6 +118,8 @@ private Q_SLOTS:
|
||||
void deleteKontierungRequestFinished();
|
||||
|
||||
void getProjekteRequestFinished();
|
||||
void getAuswertungRequest0Finished();
|
||||
void getAuswertungRequest1Finished();
|
||||
|
||||
private:
|
||||
QString m_url;
|
||||
@@ -136,6 +141,7 @@ private:
|
||||
QNetworkReply *deleteKontierung;
|
||||
|
||||
QNetworkReply *getProjekte;
|
||||
QNetworkReply *getAuswertung;
|
||||
} m_replies;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user