first re-commit.

This commit is contained in:
2025-08-05 22:37:51 +02:00
commit 5295a82aa3
109 changed files with 9928 additions and 0 deletions

185
libMiniCash/libMiniCash.h Normal file
View File

@@ -0,0 +1,185 @@
/***************************************************************************
libMiniCash
Copyright © 2013-2022 christoph holzheuer
c.holzheuer@sourceworx.org
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
***************************************************************************/
#ifndef LIBMINICASH_H
#define LIBMINICASH_H
#include "libMiniCash_global.h"
/**
@mainpage libMiniCash
@section xxx Die libMiniCash Dll
libMiniCash enthält die von den Kassensystemen 'miniCash' und 'miniCash.connect'
gemeinsam verwendete Funktionalität als Dll.
@subsection xxz Funktionsbereiche
- Datenmodelle und Datentypen
- Eingabe der Verkäufe
- Setup-Dialoge
- Erzeugung der Abrechnungen
- Druckersteuerung
@section sec3 Ideen & TODO:
@subsection sec3_1 Ideen:
- oberfläche erneuern?
- beim server hochfahren: daten abholen, puffern, wahlweise via usb
- adressverwaltung einbeziehen, für personalisierte Abrechnungen
@subsection sec3_2 TODO für 1.0:
- wlan first, disk backup
- netzprotocol, erfinden oder json/xml
- splash screen?
- fehler dulden wg. kassenschlange, hinterher kennzeichnen
- server security: only allowed hosts
- auto feeder zum testen
- data: kasse|count|cust|pos|price|timestamp
- protocol: [...]: transaction, -: storno;
- kasse: semi blocking (soll genau was heissen, chris?)
- Beim einlesen mitzählen, Ergebnis in den statusbar.
- suche bei Storno mit mehreren Feldern zulassen
- setup.exe bauen
@subsection sec3_3 TODO für 0.9:
- backup über WLAN -> Adhoc Netzwerk einrichten
- layouts verwenden
- handbuch schreiben
- vernünftiger setup-dialog mit abbruch möglichkeit
@subsection sec3_4 TODO für 0.8:
- Auswertung: laden und speichern :
- Printbuttons ab/an schalten :
- Kurzanleitung :
- programm muss immer starten, fehlerloop verwirrt nur
QUARK: Programm _kann_ ohne Laufwerk nicht starten!
- help about : mit hinweis auf sourceworx & logo
- fonts vereinheitlichen
- statusbar einbinden ?!?
- Caps lock abschalten, wie ?
*/
/**
* @brief der namespace miniCash enthält Definitionen und Konstanten.
*
* Hier stehen die Konstanten für
* - die HTML-Templates zur Erzeugung der Print-Files
* - Die Dateipfade
* - die RegEx zur Eingabekontrolle
* - Copyright-Hinweise
* Der Namespace gilt Anwendungsübergreifend sowohl für die Library als
* auch die damit implementierten Anwendungen.
*/
namespace miniCash
{
/// networkstate
typedef enum
{
Disabled = 0,
UnConnected,
Error,
Connected,
IsServer,
ServerReady,
CStateSize
} CState;
[[maybe_unused]] constexpr static const char* cstDisabled = " ";
[[maybe_unused]] constexpr static const char* cstUnConnected = "--Ready";
[[maybe_unused]] constexpr static const char* cstError = "Error";
[[maybe_unused]] constexpr static const char* cstConnected = "Connected";
[[maybe_unused]] constexpr static const char* cstIsServer = "Ready";
[[maybe_unused]] constexpr static const char* cstServerReady = "Connected";
[[maybe_unused]] static const char* const icnConnected = ":images/connect.png";
[[maybe_unused]] static const char* const icnUnConnected = ":images/disconnect.png";
[[maybe_unused]] static const char* const icnServer = ":images/_server.png";
/// basics
[[maybe_unused]] static const char* const orgName = "source::worx";
[[maybe_unused]] static const char* const domainName = "sourceworx.org";
/// eigene KassenID
[[maybe_unused]] static const char* const keySelfID = "selfID";
[[maybe_unused]] static const char* const selfID = "1";
/// transaktionszähler, vormals die hässliche Zähldatei
[[maybe_unused]] static const char* const keyTransCount = "TransCount";
[[maybe_unused]] static const char* const transCount = "1";
/// file handling
[[maybe_unused]] static const char* const keyMobileDrive = "MobileDrive";
[[maybe_unused]] static const char* const mobileDrive = "E:/";
[[maybe_unused]] static const char* const dataDir = "/miniCash.data/";
[[maybe_unused]] static const char* const filetype = ".mcd";
/// address handling
[[maybe_unused]] static const char* const keyAddressFile = "AddressFile";
/// defaults
[[maybe_unused]] static const char* const keyProfit = "Profit";
[[maybe_unused]] static const char* const profit = "15";
[[maybe_unused]] static const char* const keyFooterText = "FooterText";
/// networking
[[maybe_unused]] static const char* const keyIsTcpReceiver = "isTcpReceiver";
[[maybe_unused]] static const bool isTcpReceiver = false;
[[maybe_unused]] static const char* const keyIsTcpSender = "isTcpSender";
[[maybe_unused]] static const bool isTcpSender = true;
[[maybe_unused]] static const int senderTimeout = 60000;
[[maybe_unused]] static const char* const keyReceiverPort = "receiverPort";
[[maybe_unused]] static const int receiverPort = 7077;
[[maybe_unused]] static const char* const keyReceiverHost = "receiverHost";
/// resource handling
[[maybe_unused]] static const char* const tplFinal = ":templates/tplFinal.html";
[[maybe_unused]] static const char* const tplPayoff = ":templates/tplPayoff.html";
[[maybe_unused]] static const char* const tplReceipt = ":templates/tplReceipt.html";
/// input filter
[[maybe_unused]] static const char* const fCustID = "^[0-9]{4}$";
[[maybe_unused]] static const char* const fItemNo = "^[0-9]{1,3}$";
[[maybe_unused]] static const char* const fPrice = "^[0-9]{1,3}(,[0-9]{1,2})?$";
[[maybe_unused]] static const char* const fSrcDrive = "^[e-zE-Z]$";
[[maybe_unused]] static const char* const fProfit = "^[0-9]{2}$";
[[maybe_unused]] static const char* const fFromID = "^1[1-3][0-9]{2}$";
[[maybe_unused]] static const char* const fToID = "^1[1-3][0-9]{2}$";
/// misc
[[maybe_unused]] static const char* const versionLib = "Version 0.8.42, 14.07.2022";
[[maybe_unused]] static const char* const copyright = "miniCash, © 2013-2022 Christoph Holzheuer c.holzheuer@sourceworx.org ";
[[maybe_unused]] static const char* const copyShort = "miniCash, © 2013-2022\nc.holzheuer@sourceworx.org ";
}
#endif // LIBMINICASH_H