/*************************************************************************** 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 MCSALESSUMMARY_H #define MCSALESSUMMARY_H #include #include #include #include class MCSalesModel; /** * @brief Speichert die Verkaufsliste einzelner Kunden nach Kundennummer. * * Verwaltet _alle_ Verkaufstransaktionen, wird benötigt für die Endabrechnung. * Die einzelen Verkäufe an der Kasse werden von @see MCSalesItemMap abgedeckt. * * Die einzelen Kassendateien werden nacheinander eingelesen und dann für die * Endabrechnung ausgewertet. Für jede Kundennummer wird eine Map mit verkauften Artikeln * angelegt, der Schlüssel ist die laufende Nummer des Artikels, die Verwendung einer Map * sichert die automatische Sortierung der Einträge. Die Artikelmaps landen wiederum in der * "Hauptmap", mit der CustomerId als Schlüssel. Ergebnis ist eine sortierte Struktur mit allen * Kunden und den jeweils verkauften Artikeln. QMultiMap taugt hierfür leider nicht, * es wird also eine "Map of Maps" implementiert. * */ class LIBMINICASH_EXPORT MCSalesSummary : public QMap { public: explicit MCSalesSummary(); int appendFromFile( const QString& filename, int& customercount, MCSalesModel& model ); void dump(); }; #endif // MCSALESSUMMARY_H