2018-07-06 13:30:23 +02:00
|
|
|
#ifndef DATABASE_H
|
|
|
|
#define DATABASE_H
|
|
|
|
|
2018-07-25 09:31:17 +02:00
|
|
|
#include "sale.h"
|
2018-07-11 15:58:09 +02:00
|
|
|
#include "seller.h"
|
|
|
|
|
2018-07-06 13:30:23 +02:00
|
|
|
#include <string>
|
|
|
|
|
|
|
|
#include <sqlite3.h>
|
|
|
|
|
|
|
|
class Database
|
|
|
|
{
|
2018-07-13 13:05:19 +02:00
|
|
|
public:
|
2018-07-17 10:19:41 +02:00
|
|
|
explicit Database(const std::string& dbname);
|
|
|
|
Database();
|
2018-07-06 13:30:23 +02:00
|
|
|
~Database();
|
|
|
|
Database(const Database&) = delete;
|
|
|
|
Database& operator=(const Database&) = delete;
|
|
|
|
void exec(const std::string& sql);
|
2018-07-25 09:31:17 +02:00
|
|
|
unsigned int storeSellers(std::vector<std::unique_ptr<Seller>>& sellers,
|
|
|
|
bool onlyDelete = false);
|
2018-07-17 11:09:35 +02:00
|
|
|
unsigned int loadSellers(std::vector<std::unique_ptr<Seller>>& sellers);
|
2018-07-25 09:31:17 +02:00
|
|
|
unsigned int storeSales(std::vector<std::unique_ptr<Sale>>& sales);
|
|
|
|
unsigned int loadSales(std::vector<std::unique_ptr<Sale>>& sales,
|
|
|
|
std::vector<std::unique_ptr<Seller>>& sellers);
|
2018-07-30 13:40:58 +02:00
|
|
|
void updateCashPointNo(int oldCashPointNo, int newCashPointNo);
|
2018-07-13 13:05:19 +02:00
|
|
|
|
|
|
|
private:
|
2018-07-17 10:19:41 +02:00
|
|
|
sqlite3* db_{nullptr};
|
2018-07-11 09:43:40 +02:00
|
|
|
std::string dbname_;
|
2018-07-17 10:19:41 +02:00
|
|
|
void init();
|
2018-07-09 21:03:59 +02:00
|
|
|
void beginTransaction();
|
|
|
|
void endTransaction();
|
2018-07-11 09:43:40 +02:00
|
|
|
void createNew();
|
|
|
|
int getVersion();
|
2018-07-13 14:05:22 +02:00
|
|
|
unsigned int storeArticles(std::vector<Article*> articles);
|
2018-07-06 13:30:23 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // DATABASE_H
|