diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 64a1c6b..7df4118 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -3,8 +3,7 @@ set(Boost_USE_STATIC_LIBS ON) find_package(Boost 1.62 COMPONENTS date_time REQUIRED) find_package(SQLite3 REQUIRED) find_package(PkgConfig REQUIRED) -pkg_check_modules(XLNT REQUIRED xlnt>=1.3) -pkg_check_modules(JSONCPP REQUIRED jsoncpp) +pkg_check_modules(XLNT REQUIRED xlnt) set(CORE_SOURCES database.cpp @@ -14,11 +13,10 @@ set(CORE_SOURCES sale.cpp marketplace.cpp excelreader.cpp - jsonutil ) add_library(core STATIC ${CORE_SOURCES}) -target_link_libraries(core Boost::boost Boost::date_time sqlite3 ${XLNT_LIBRARIES} ${JSONCPP_LIBRARIES}) +target_link_libraries(core Boost::boost Boost::date_time sqlite3 ${XLNT_LIBRARIES}) if (WIN32) target_link_libraries(core bcrypt) endif() diff --git a/src/core/excelreader.cpp b/src/core/excelreader.cpp index f136a34..eee03ef 100644 --- a/src/core/excelreader.cpp +++ b/src/core/excelreader.cpp @@ -8,19 +8,15 @@ void ExcelReader::readSellersFromFile(const std::string& filename, Marketplace* wb.load(filename); auto ws = wb.sheet_by_index(0); - const int START_ROW = 5; - const int END_ROW = 350; + const int START_ROW = 6; + const int END_ROW = 349; int rowCount{}; for (const auto& row : ws.rows(false)) { // auto test = row[0].value(); - if (rowCount < START_ROW) { - rowCount++; + if (rowCount < START_ROW) continue; - } else if (rowCount > END_ROW) { - break; - } - std::cout << row[0].value() << "\n"; + std::cout << row[0].to_string() << "\n"; rowCount++; } } diff --git a/src/core/jsonutil.cpp b/src/core/jsonutil.cpp deleted file mode 100644 index 6dc855c..0000000 --- a/src/core/jsonutil.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "jsonutil.h" -#include "database.h" - -#include - -#include - -void JsonUtil::exportSellers(const std::string& filename, Marketplace* market) -{ - Json::Value root; - std::ofstream file(filename); - - Json::StreamWriterBuilder builder; - builder["commentStyle"] = "None"; - builder["indentation"] = " "; - - std::unique_ptr writer(builder.newStreamWriter()); - - for (const auto& seller : market->getSellers()) { - Json::Value newEntry; - newEntry["uuid"] = seller->getUuidAsString(); - newEntry["seller_no"] = seller->getSellerNo(); - newEntry["last_name"] = seller->getLastName(); - newEntry["first_name"] = seller->getFirstName(); - newEntry["num_offered_articles"] = seller->numArticlesOffered(); - root["sellers"].append(newEntry); - } - - writer->write(root, &file); -} - -void JsonUtil::importSellers(const std::string& filename, Marketplace* market) -{ - for (auto& seller : market->getSellers()) - { - seller->setState(Seller::State::DELETE); - } - market->storeToDb(true); - - Json::Value jsonValues; - std::ifstream file(filename); - file >> jsonValues; - - for(auto val : jsonValues["sellers"]) { - auto seller = std::make_unique(); - seller->setUuidFromString(val["uuid"].asString()); - seller->setSellerNo(val["seller_no"].asInt()); - seller->setLastName(val["last_name"].asString()); - seller->setFirstName(val["first_name"].asString()); - seller->setNumArticlesOffered(val["num_offered_articles"].asInt()); - market->getSellers().push_back(std::move(seller)); - } - market->storeToDb(); -} \ No newline at end of file diff --git a/src/core/jsonutil.h b/src/core/jsonutil.h deleted file mode 100644 index 0e3a03d..0000000 --- a/src/core/jsonutil.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef JSON_H -#define JSON_H - -#include "marketplace.h" - -#include - -class JsonUtil -{ - public: - static void exportSellers(const std::string& filename, Marketplace* market); - static void importSellers(const std::string& filename, Marketplace* market); -}; - -#endif \ No newline at end of file diff --git a/src/core/marketplace.h b/src/core/marketplace.h index 9bf6542..0751b04 100644 --- a/src/core/marketplace.h +++ b/src/core/marketplace.h @@ -16,6 +16,9 @@ using SalesVec = std::vector>; using BasketVec = std::vector>; } // namespace +struct Basket { +}; + class Marketplace { public: diff --git a/src/gui/kima2.cpp b/src/gui/kima2.cpp index b8886cf..baf9cb7 100644 --- a/src/gui/kima2.cpp +++ b/src/gui/kima2.cpp @@ -14,8 +14,8 @@ int main(int argc, char* argv[]) // Set the locale to german, so that currency is correct // std::locale german("de_DE.utf-8"); - //std::locale myLocale(""); - //std::locale::global(myLocale); + std::locale myLocale(""); + std::locale::global(myLocale); QApplication kimaApp{argc, argv}; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 5d12161..de48a3b 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -2,7 +2,6 @@ #include "basketmodel.h" #include "config.h" -#include "jsonutil.h" #include "pricedialog.h" #include "reportdialog.h" #include "salemodel.h" @@ -62,12 +61,8 @@ MainWindow::MainWindow() this->setWindowTitle("KIMA2 - Kasse Nr. " + QSettings().value("global/cashPointNo").toString()); }); - connect(ui_.importSellerExcelAction, &QAction::triggered, this, - &MainWindow::onImportSellerExcelActionTriggered); - connect(ui_.importSellerJsonAction, &QAction::triggered, this, - &MainWindow::onImportSellerJsonActionTriggered); - connect(ui_.exportSellerJsonAction, &QAction::triggered, this, - &MainWindow::onExportSellerJsonActionTriggered); + connect(ui_.importExcelAction, &QAction::triggered, this, + &MainWindow::onImportExcelActionTriggered); } void MainWindow::onActionEditSellerTriggered() @@ -244,7 +239,7 @@ void MainWindow::onAbout() ">info@rustysoft.de>

"); } -void MainWindow::onImportSellerExcelActionTriggered() +void MainWindow::onImportExcelActionTriggered() { if (!marketplace_->getSales().empty()) { QMessageBox(QMessageBox::Icon::Information, "Import nicht möglich", @@ -258,29 +253,4 @@ void MainWindow::onImportSellerExcelActionTriggered() "Excel Dateien (*.xlsx *.xls)"); ExcelReader::readSellersFromFile(filename.toStdString(), marketplace_.get()); -} - -void MainWindow::onImportSellerJsonActionTriggered() -{ - if (!marketplace_->getSales().empty()) { - QMessageBox(QMessageBox::Icon::Information, "Import nicht möglich", - "Der Import ist nicht möglich, da schon Verkäufe getätigt wurden.", - QMessageBox::StandardButton::Ok, this) - .exec(); - return; - } - - auto filename = QFileDialog::getOpenFileName(this, "Verkäufer importieren", QString(), - "JSON Dateien (*.json)"); - - JsonUtil::importSellers(filename.toStdString(), marketplace_.get()); -} - - -void MainWindow::onExportSellerJsonActionTriggered() -{ - auto filename = QFileDialog::getSaveFileName(this, "Verkäufer exportieren", QString(), - "JSON Dateien (*.json)"); - - JsonUtil::exportSellers(filename.toStdString(), marketplace_.get()); } \ No newline at end of file diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 77f59c6..8c87f91 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -32,9 +32,7 @@ class MainWindow : public QMainWindow void onActionEditSellerTriggered(); void onSellerNoEditCheckSellerNo(); void onPaidButtonTriggered(); - void onImportSellerExcelActionTriggered(); - void onImportSellerJsonActionTriggered(); - void onExportSellerJsonActionTriggered(); + void onImportExcelActionTriggered(); void setSaleModel(); Ui::MainWindow ui_; diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index f0f54a6..56c493c 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -403,16 +403,8 @@ drucken
&Verkäufer - - - Importieren - - - - - - + @@ -467,19 +459,9 @@ drucken Auswertung - + - Exportieren (JSON) - - - - - Aus Excel-Datei - - - - - Aus JSON-Datei + Importieren (Excel)