Excel stuff removed.
This commit is contained in:
parent
42bf036f85
commit
19ea7f27de
9 changed files with 18 additions and 133 deletions
|
@ -9,14 +9,6 @@ find_package(Threads REQUIRED)
|
|||
|
||||
find_package(fmt)
|
||||
|
||||
|
||||
if (MINGW)
|
||||
find_package(XLNT REQUIRED STATIC)
|
||||
else (MINGW)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(XLNT REQUIRED xlnt>=1.3)
|
||||
endif (MINGW)
|
||||
|
||||
set(CORE_SOURCES
|
||||
database.cpp
|
||||
entity.cpp
|
||||
|
@ -26,7 +18,6 @@ set(CORE_SOURCES
|
|||
article.cpp
|
||||
sale.cpp
|
||||
marketplace.cpp
|
||||
excelreader.cpp
|
||||
csvreader.cpp
|
||||
jsonutil.cpp
|
||||
utils.cpp
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
#include "excelreader.h"
|
||||
#include "utils.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <xlnt/xlnt.hpp>
|
||||
|
||||
namespace fs = std::filesystem;
|
||||
|
||||
std::size_t ExcelReader::readSellersFromFile(const fs::path &filePath, Marketplace *market)
|
||||
{
|
||||
xlnt::workbook wb;
|
||||
std::ifstream mystream(filePath, std::ios::binary);
|
||||
if (!mystream.is_open()) {
|
||||
throw std::runtime_error("Could not open Excel file");
|
||||
}
|
||||
wb.load(mystream);
|
||||
|
||||
for (auto &seller : market->getSellers()) {
|
||||
seller->setState(Seller::State::DELETE);
|
||||
}
|
||||
|
||||
market->storeToDb(true);
|
||||
auto ws = wb.sheet_by_index(0);
|
||||
|
||||
for (auto row : ws.rows(true)) {
|
||||
// Skip the row if the first value is not a number (= seller no)
|
||||
if (row[0].data_type() != xlnt::cell::type::number) {
|
||||
continue;
|
||||
}
|
||||
|
||||
auto seller = std::make_unique<Seller>();
|
||||
seller->setSellerNo(row[0].value<int>());
|
||||
seller->setNumArticlesOffered(row[1].value<int>());
|
||||
|
||||
// If both, first name and last name, are empty, use N. N.
|
||||
// Else, use the real values.
|
||||
if (row[2].value<std::string>().empty() && row[3].value<std::string>().empty()) {
|
||||
seller->setFirstName("N.");
|
||||
seller->setLastName("N.");
|
||||
} else {
|
||||
std::string firstName = row[2].value<std::string>();
|
||||
seller->setFirstName(trim(firstName));
|
||||
std::string lastName = row[3].value<std::string>();
|
||||
seller->setLastName(trim(lastName));
|
||||
}
|
||||
|
||||
market->getSellers().push_back(std::move(seller));
|
||||
}
|
||||
|
||||
// Add one additional seller "RESERVE RESERVE"
|
||||
auto seller = std::make_unique<Seller>();
|
||||
seller->setSellerNo(market->getNextSellerNo());
|
||||
seller->setFirstName("RESERVE");
|
||||
seller->setLastName("RESERVE");
|
||||
market->getSellers().push_back(std::move(seller));
|
||||
|
||||
// If there was no special seller "Sonderkonto" in import data, then create one
|
||||
auto specialSeller = market->findSellerWithSellerNo(0);
|
||||
if (!specialSeller) {
|
||||
auto seller = std::make_unique<Seller>();
|
||||
seller->setSellerNo(0);
|
||||
seller->setLastName("Sonderkonto");
|
||||
seller->setFirstName("Sonderkonto");
|
||||
seller->setNumArticlesOffered(0);
|
||||
market->getSellers().push_back(std::move(seller));
|
||||
}
|
||||
|
||||
market->sortSellers();
|
||||
market->storeToDb();
|
||||
|
||||
return market->getSellers().size() - 1; // minus 1 because we don't count the "special" seller
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
#ifndef EXCEL_READER_H
|
||||
#define EXCEL_READER_H
|
||||
|
||||
#include "marketplace.h"
|
||||
#include "seller.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class ExcelReader
|
||||
{
|
||||
public:
|
||||
static std::size_t readSellersFromFile(const std::filesystem::path &filePath,
|
||||
Marketplace *market);
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue