-
Notifications
You must be signed in to change notification settings - Fork 0
/
pay.cpp
114 lines (98 loc) · 2.66 KB
/
pay.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "pay.h"
#include <QFile>
#include <QJsonDocument>
#include <QDebug>
#include <QDateTime>
#include <QSettings>
#include "utilities.h"
#include <QJsonObject>
pay::pay()
{
}
QJsonArray pay::getAllPay()
{
QFile f("pay.json");
f.open(QIODevice::ReadOnly);
QByteArray data = f.readAll();
QJsonDocument json = QJsonDocument::fromJson(data);
f.close();
return json.array();
}
qint64 pay::getSumOfPay()
{
QFile f("pay.json");
qint64 sum = 0;
f.open(QIODevice::ReadOnly);
QByteArray data = f.readAll();
QJsonDocument json = QJsonDocument::fromJson(data);
QJsonArray pay = json.array();
for (int i = 0; i < pay.size(); i++) {
sum += pay.at(i)["amount"].toInt();
}
f.close();
return sum;
}
QJsonArray pay::getPayForCustomer(QString customer)
{
QJsonArray newPay;
QFile f("pay.json");
f.open(QIODevice::ReadOnly);
QByteArray data = f.readAll();
QJsonDocument json = QJsonDocument::fromJson(data);
QJsonArray pay = json.array();
for (int i = 0; i < pay.size(); i++) {
if(pay.at(i)["customer"] == customer){
newPay.append(pay.at(i));
}
}
f.close();
return newPay;
}
qint64 pay::getTotoalPayForCustomer(QString customer)
{
qint64 sum = 0;
QFile f("pay.json");
f.open(QIODevice::ReadOnly);
QByteArray data = f.readAll();
QJsonDocument json = QJsonDocument::fromJson(data);
QJsonArray pay = json.array();
for (int i = 0; i < pay.size(); i++) {
if(pay.at(i)["customer"] == customer){
sum += pay.at(i)["amount"].toInt();
}
}
f.close();
return sum;
}
int pay::getLastId()
{
QFile f("pay.json");
f.open(QIODevice::ReadOnly);
QByteArray data = f.readAll();
QJsonDocument json = QJsonDocument::fromJson(data);
QJsonArray pay = json.array();
if(pay.size() > 0){
return pay.last()["id"].toInt() + 1;
}
return 1;
}
bool pay::checkout(QString username, qint64 amount)
{
QFile f("pay.json");
if( !f.open( QIODevice::ReadOnly ) ){
return false;
}
QJsonDocument jsonOrg = QJsonDocument::fromJson( f.readAll() );
f.close();
QJsonObject newPay = { {"id", pay::getLastId()},{"date", utilities::getDataAndTime()},{"customer", username},{"amount",amount}};
QJsonArray allPay = jsonOrg.array();
allPay.push_back(newPay);
QJsonDocument doc(allPay);
QFile j("pay.json");
if( !j.open( QIODevice::ReadWrite | QIODevice::Truncate ) ){
return false;
}
j.write(doc.toJson());
j.close();
return true;
}