From 55dcb7577e6bb1b9912217a5acf59ba60ef653e9 Mon Sep 17 00:00:00 2001 From: Herwig Birke Date: Tue, 28 Mar 2023 10:38:01 +0200 Subject: [PATCH] migrate migrate --- cmainwindow.cpp | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ cmainwindow.h | 3 ++ cmainwindow.ui | 24 ++++++++++++++++ 3 files changed, 100 insertions(+) diff --git a/cmainwindow.cpp b/cmainwindow.cpp index bed56db..6edcec2 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -14,6 +14,8 @@ #include #include +#include + cMainWindow::cMainWindow(QWidget *parent) : QMainWindow(parent), @@ -101,6 +103,9 @@ void cMainWindow::initUI() ui->m_lpMainTab->addTab(m_lpMonthlyView, "Monthly"); ui->m_lpMainTab->setCurrentWidget(m_lpMonthlyView); + + connect(ui->m_exportTimesheet, &QAction::triggered, this, &cMainWindow::onExportTimesheet); + connect(ui->m_exportSalery, &QAction::triggered, this, &cMainWindow::onExportSalery); } void cMainWindow::openDB() @@ -210,3 +215,71 @@ void cMainWindow::openDB() qDebug() << "CREATE TABLE vacation"; } } + +void cMainWindow::onExportTimesheet() +{ + if(!m_monthlyBookingList.count()) + return; + + QSettings settings; + QString path = settings.value("timesheet/lastExportFolder", QVariant::fromValue(QDir::homePath())).toString(); + QString directory = QFileDialog::getExistingDirectory(this, tr("Export Timesheet"), path); + + if(directory.isEmpty()) + return; + + settings.setValue("timesheet/lastExportFolder", QVariant::fromValue(directory)); + + for(int x = 0;x < m_monthlyBookingList.count();x++) + { + cMonthlyBooking* monthlyBooking = m_monthlyBookingList[x]; + if(!monthlyBooking) + continue; + + if(monthlyBooking->timesheet().isEmpty()) + continue; + + QString fileName = directory + QDir::separator() + monthlyBooking->date().toString("yyyy-MM") + ".pdf"; + QFile file(fileName); + + if(!file.open(QIODevice::WriteOnly)) + return; + + file.write(monthlyBooking->timesheet()); + file.close(); + } +} + +void cMainWindow::onExportSalery() +{ + if(!m_monthlyBookingList.count()) + return; + + QSettings settings; + QString path = settings.value("salery/lastExportFolder", QVariant::fromValue(QDir::homePath())).toString(); + QString directory = QFileDialog::getExistingDirectory(this, tr("Export Salery"), path); + + if(directory.isEmpty()) + return; + + settings.setValue("salery/lastExportFolder", QVariant::fromValue(directory)); + + for(int x = 0;x < m_monthlyBookingList.count();x++) + { + cMonthlyBooking* monthlyBooking = m_monthlyBookingList[x]; + if(!monthlyBooking) + continue; + + if(monthlyBooking->salery().isEmpty()) + continue; + + QString fileName = directory + QDir::separator() + monthlyBooking->date().toString("yyyy-MM") + ".pdf"; + QFile file(fileName); + + if(!file.open(QIODevice::WriteOnly)) + return; + + file.write(monthlyBooking->salery()); + file.close(); + } +} diff --git a/cmainwindow.h b/cmainwindow.h index e895a13..22c0c13 100644 --- a/cmainwindow.h +++ b/cmainwindow.h @@ -48,6 +48,9 @@ private: protected: void closeEvent(QCloseEvent* event); +private slots: + void onExportTimesheet(); + void onExportSalery(); }; #endif // CMAINWINDOW_H diff --git a/cmainwindow.ui b/cmainwindow.ui index 40c1af4..bcea3ac 100644 --- a/cmainwindow.ui +++ b/cmainwindow.ui @@ -29,6 +29,20 @@ 21 + + + &File + + + + &Export + + + + + + + @@ -39,6 +53,16 @@ + + + &Salery... + + + + + &Timesheet... + +