Compare commits

...

20 commits

Author SHA1 Message Date
8a5038e462 README 2024-10-01 14:39:54 +02:00
068a50e289 Push to new version 2024-10-01 14:08:34 +02:00
da89a0d2c7 Fix translations and style for Windows 2024-10-01 14:00:36 +02:00
429d66dd4d user manual updated 2024-09-30 15:03:17 +02:00
37c8446ea4 user manual updated 2024-09-30 14:39:50 +02:00
a896e0d40e Push to new version 2024-09-30 14:17:17 +02:00
3668e2484f try to make singleapplication flatpak-compatible (2) 2024-09-30 10:47:03 +02:00
52dc7f1974 try to make singleapplication flatpak-compatible 2024-09-30 10:26:14 +02:00
ab7b14f12e get rid of fmt 2024-05-22 13:09:44 +02:00
0c7f071b9d include dir for boost added. 2024-03-05 14:38:02 +01:00
d0c50c9b9a qsingleapplication version bumped 2024-01-23 11:25:07 +01:00
a17cb22e05 2023 → 2024 2024-01-23 11:22:51 +01:00
205dac5326 nlohmann updateted to 3.11.3 2024-01-23 11:20:39 +01:00
b0d2d6b284 update to version 1.8 2024-01-23 10:46:49 +01:00
7f11ba4e5d new version 1.8.0 2024-01-23 10:42:04 +01:00
32d0ec7749 Allow import of multiple sales at once. 2024-01-23 10:39:43 +01:00
54e5c70447 Changed minimum versions 2024-01-23 10:06:01 +01:00
379fd4a73c Lib references for Windows updated 2023-09-21 15:00:18 +02:00
8a94b53379 Push boost version. 2023-05-02 11:07:15 +02:00
d9b13d0e1a README updated. 2023-05-02 11:03:22 +02:00
16 changed files with 50 additions and 50 deletions

View file

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.8)
cmake_minimum_required(VERSION 3.10)
project(kima2 VERSION 1.7.2)
project(kima2 VERSION 1.8.3)
set(CMAKE_MODULE_PATH "${CMAKE_HOME_DIRECTORY}/cmake")
@ -98,9 +98,9 @@ if( MINGW )
${MINGW_PATH}/libwinpthread-1.dll
${MINGW_PATH}/libsqlite3-0.dll
${MINGW_PATH}/libusb-1.0.dll
${MINGW_PATH}/libicuuc72.dll
${MINGW_PATH}/libicuin72.dll
${MINGW_PATH}/libicudt72.dll
${MINGW_PATH}/libicuuc75.dll
${MINGW_PATH}/libicuin75.dll
${MINGW_PATH}/libicudt75.dll
${MINGW_PATH}/libpcre2-16-0.dll
${MINGW_PATH}/libpcre2-8-0.dll
${MINGW_PATH}/zlib1.dll
@ -117,7 +117,7 @@ if( MINGW )
${MINGW_PATH}/libmd4c.dll
${MINGW_PATH}/libbrotlicommon.dll
${MINGW_PATH}/libbrotlidec.dll
${MINGW_PATH}/libfmt.dll
#${MINGW_PATH}/libfmt.dll
${MINGW_PATH}/libb2-1.dll
${MINGW_PATH}/libiconv-2.dll)
install(FILES ${MINGW_PATH}/../share/qt6/plugins/platforms/qwindows.dll
@ -129,10 +129,9 @@ if( MINGW )
${MINGW_PATH}/../share/qt6/translations/qt_de.qm
${MINGW_PATH}/../share/qt6/translations/qt_help_de.qm
${MINGW_PATH}/../share/qt6/translations/qtmultimedia_de.qm
#${MINGW_PATH}/../share/qt6/translations/qtquickcontrols_de.qm
#${MINGW_PATH}/../share/qt6/translations/qtscript_de.qm
#${MINGW_PATH}/../share/qt6/translations/qtxmlpatterns_de.qm
DESTINATION bin/translations)
DESTINATION bin/share/qt6/translations)
install(FILES ${MINGW_PATH}/../share/qt6/plugins/styles/qmodernwindowsstyle.dll
DESTINATION bin/styles)
endif( MINGW )
include(InstallRequiredSystemLibraries)

View file

@ -1,4 +1,4 @@
Copyright © 2018-2023 Martin Brodbeck
Copyright © 2018-2024 Martin Brodbeck
Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der
zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt,

View file

@ -13,20 +13,16 @@ Verkaufsdaten nach dem Verkaufsende auszutauschen.
Ebenso können über einen ESC/POS-Drucker Quittungen ausgestellt werden.
## Installation
Auf [rustysoft.de](https://www.rustysoft.de/software/kima2/) werden verschiedene Installationspakete (Arch Linux,
Ubuntu, Windows) angeboten. Bitte die Hinweise dort beachten.
Auf [rustysoft.de](https://www.rustysoft.de/software/kima2/) werden die Installationsmöglichkeiten (Flatpak, Windows-Installer) erläutert. Bitte die Hinweise dort beachten.
### Selbst compilieren
## Selbst compilieren
KIMA2 benötigt folgende Libraries:
* Qt 6
* boost >= 1.62
* boost >= 1.80
* libusb-1.0
* xlnt >= 1.5.0
* nlohmann-json (als 3rdparty submodule vorhanden)
* csv-parser (als 3rdparty submodule vorhanden)
Da Features aus C++20 verwendet werden sowie std::filesystem, sollte als Compiler mindestens
GCC 12 verwendet werden.
Da Features aus C++20 sowie von neueren Compilern verwendet werden, sollte als Compiler mindestens GCC 14 verwendet werden.
Die Installationsschritte unter Linux sind wie folgt:
```

View file

@ -9,12 +9,12 @@
<project_license>GPL-3.0-or-later</project_license>
<releases>
<release version="@PROJECT_VERSION@" type="stable" date="2023-04-25" />
<release version="@PROJECT_VERSION@" type="stable" date="2024-01-23" />
</releases>
<description>
<p>
A small cash point program for childrens stuff markets. German language only.
A small cash point program for children's stuff markets. German language only.
</p>
</description>

Binary file not shown.

Binary file not shown.

View file

@ -1,4 +1,4 @@
project('kima2', 'cpp', default_options : ['cpp_std=c++20'], version : '1.6.1')
project('kima2', 'cpp', default_options : ['cpp_std=c++20'], version : '1.8.0')
conf_data = configuration_data()
conf_data.set('PROJECT_VERSION', '"' + meson.project_version() + '"')

View file

@ -1,6 +1,6 @@
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.62 REQUIRED)
find_package(Boost 1.78 REQUIRED)
find_package(SQLite3 REQUIRED)
# Because csv-parser needs threads:
@ -25,10 +25,10 @@ set(CORE_SOURCES
add_library(core STATIC ${CORE_SOURCES})
#target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/subprojects/csv-parser/single_include)
if (WIN32)
target_link_libraries(core PRIVATE sqlite3 nlohmann_json::nlohmann_json fmt::fmt)
target_link_libraries(core PRIVATE sqlite3 nlohmann_json::nlohmann_json)
target_link_libraries(core PRIVATE bcrypt)
else()
target_link_libraries(core PRIVATE sqlite3 nlohmann_json::nlohmann_json fmt::fmt)
target_link_libraries(core PRIVATE sqlite3 nlohmann_json::nlohmann_json)
endif()
target_include_directories(core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)

View file

@ -2,7 +2,7 @@
#include <chrono>
#include <filesystem>
#include <fmt/chrono.h>
#include <format>
#include <iostream>
#include <stdexcept>
#include <vector>
@ -47,7 +47,7 @@ void Database::newDb()
fs::path destPath = sourcePath.parent_path() / sourcePath.stem();
auto chronoTime = std::chrono::system_clock::now();
std::string timeString = fmt::format("{0:%FT%H-%M-%S}", chronoTime);
std::string timeString = std::format("{0:%FT%H-%M-%S}", chronoTime);
destPath += std::string("_") += timeString += ".db";

View file

@ -102,8 +102,10 @@ void JsonUtil::importSales(const std::filesystem::path &filePath, Marketplace *m
int source_no = jsonValues["source_no"];
if (source_no == cashPointNo) {
throw std::runtime_error("Die Kassen-Nr. der zu imporierenden Daten wird von dieser Kasse "
"hier bereits verwendet.");
std::string ret = "Die Kassen-Nr. ";
ret += std::to_string(source_no);
ret += " der zu imporierenden Daten wird von dieser Kasse hier bereits verwendet.";
throw std::runtime_error(ret);
}
market->setSalesToDelete(jsonValues["source_no"]);

View file

@ -2,13 +2,13 @@
#include <algorithm>
#include <clocale>
#include <fmt/format.h>
#include <format>
#include <iomanip>
#include <numeric>
#include <iostream>
using namespace fmt;
//using namespace fmt;
std::string formatCentAsEuroString(const int cent, int width)
{
@ -32,7 +32,7 @@ std::string formatCentAsEuroString(const int cent, int width)
#else
std::locale myLocale{"de_DE.utf8"};
#endif
return fmt::format(myLocale, "{:{}.2Lf} €", cent / 100.0L, width);
return std::format(myLocale, "{:{}.2Lf} €", cent / 100.0L, width);
}
std::string &ltrim(std::string &str, const std::string &chars)

View file

@ -15,7 +15,7 @@
int main(int argc, char *argv[])
{
SingleApplication kimaApp(argc, argv);
SingleApplication kimaApp(argc, argv, false, SingleApplication::Mode::User | SingleApplication::ExcludeAppPath | SingleApplication::ExcludeAppVersion);
// QCoreApplication::setOrganizationName("RustySoft");
QCoreApplication::setOrganizationDomain("rustysoft.de");

View file

@ -105,7 +105,7 @@ MainWindow::MainWindow()
});
connect(m_ui.licenseAction, &QAction::triggered, this, [this]() {
QString licenseText(
"Copyright © 2018-2023 Martin Brodbeck\n\n"
"Copyright © 2018-2024 Martin Brodbeck\n\n"
"Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der "
"zugehörigen Dokumentationen (die \"Software\") erhält, die Erlaubnis erteilt, "
"sie uneingeschränkt zu nutzen, inklusive und ohne Ausnahme mit dem Recht, "
@ -504,27 +504,30 @@ void MainWindow::onImportSalesJsonActionTriggered()
{
QSettings settings;
auto filename = QFileDialog::getOpenFileName(this, "Umsätze/Transaktionen importieren",
auto filenames = QFileDialog::getOpenFileNames(this, "Umsätze/Transaktionen importieren",
QString(), "JSON Dateien (*.json)");
if (filename.isEmpty())
if (filenames.isEmpty())
return;
for(auto filename: filenames) {
#if defined(_WIN64) || defined(_WIN32)
fs::path filePath(filename.toStdWString());
fs::path filePath(filename.toStdWString());
#else
fs::path filePath(filename.toStdString());
fs::path filePath(filename.toStdString());
#endif
delete m_ui.salesView->model();
try {
JsonUtil::importSales(filePath, m_marketplace.get(),
settings.value("global/cashPointNo").toInt());
} catch (std::runtime_error &err) {
QMessageBox(QMessageBox::Icon::Warning, "Import nicht möglich", err.what(), QMessageBox::Ok,
this)
.exec();
delete m_ui.salesView->model();
try {
JsonUtil::importSales(filePath, m_marketplace.get(),
settings.value("global/cashPointNo").toInt());
} catch (std::runtime_error &err) {
QMessageBox(QMessageBox::Icon::Warning, "Import nicht möglich", err.what(), QMessageBox::Ok,
this)
.exec();
}
}
setSaleModel();
updateStatLabel();
}

View file

@ -1,6 +1,6 @@
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost 1.62 REQUIRED)
find_package(Boost 1.78 REQUIRED)
if(WIN32)
find_package(LIBUSB REQUIRED)
@ -20,4 +20,4 @@ if(WIN32)
else()
target_link_libraries(printer core ${LibUSB_LIBRARIES})
endif()
target_include_directories(printer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
target_include_directories(printer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/.. ${Boost_INCLUDE_DIRS})

@ -1 +1 @@
Subproject commit bc889afb4c5bf1c0d8ee29ef35eaaf4c8bef8a5d
Subproject commit 9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03

@ -1 +1 @@
Subproject commit a3ed916f591c300e97b873fde36863fa37b49fa9
Subproject commit 8c48163c4d3fbba603cfe8a5b94046c9dad71825