values are now doubles
This commit is contained in:
parent
40089ad861
commit
089e9115f1
@ -23,7 +23,7 @@ Account AccountData::createObject() {
|
||||
std::list<Payment> payments;
|
||||
for (auto &domPayment : document["payments"].GetArray()) {
|
||||
Receipt receipt(domPayment["receipt"]["file"].GetString());
|
||||
int value = domPayment["value"].GetInt();
|
||||
double value = domPayment["value"].GetDouble();
|
||||
std::time_t date = domPayment["date"].GetInt64();
|
||||
std::tm tmTime{};
|
||||
std::memcpy(&tmTime, std::localtime(&date), sizeof(struct tm));
|
||||
@ -33,7 +33,7 @@ Account AccountData::createObject() {
|
||||
|
||||
std::list<Earning> earnings;
|
||||
for (auto &domEarning : document["earnings"].GetArray()) {
|
||||
int value = domEarning["value"].GetInt();
|
||||
double value = domEarning["value"].GetDouble();
|
||||
std::time_t date = domEarning["date"].GetInt64();
|
||||
std::tm tmTime{};
|
||||
std::memcpy(&tmTime, std::localtime(&date), sizeof(struct tm));
|
||||
@ -73,14 +73,14 @@ bool AccountData::isJsonCorrect() {
|
||||
if (!(domPayment.IsObject() &&
|
||||
domPayment.HasMember("receipt") && domPayment["receipt"].IsObject() &&
|
||||
domPayment["receipt"].HasMember("file") && domPayment["receipt"]["file"].IsString() &&
|
||||
domPayment.HasMember("value") && domPayment["value"].IsInt() &&
|
||||
domPayment.HasMember("value") && domPayment["value"].IsDouble() &&
|
||||
domPayment.HasMember("date") && domPayment["date"].IsInt64())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (auto &domEarning : document["earnings"].GetArray()) {
|
||||
if (!(domEarning.IsObject() &&
|
||||
domEarning.HasMember("value") && domEarning["value"].IsInt() &&
|
||||
domEarning.HasMember("value") && domEarning["value"].IsDouble() &&
|
||||
domEarning.HasMember("date") && domEarning["date"].IsInt64())) {
|
||||
return false;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "dateMoney.h"
|
||||
|
||||
|
||||
DateMoney::DateMoney(const int *value, tm *date) : value(value), date(date) {}
|
||||
DateMoney::DateMoney(const double *value, tm *date) : value(value), date(date) {}
|
||||
|
||||
bool DateMoney::operator<(const DateMoney &rhs) const {
|
||||
return mktime(date) < mktime(rhs.date);
|
||||
@ -29,7 +29,7 @@ std::ostream &operator<<(std::ostream &os, const DateMoney &money) {
|
||||
return os;
|
||||
}
|
||||
|
||||
const int *DateMoney::getValue() const {
|
||||
const double *DateMoney::getValue() const {
|
||||
return value;
|
||||
}
|
||||
|
||||
|
@ -11,9 +11,9 @@
|
||||
|
||||
class DateMoney {
|
||||
public:
|
||||
DateMoney(const int *value, tm *date);
|
||||
DateMoney(const double *value, tm *date);
|
||||
|
||||
[[nodiscard]] const int *getValue() const;
|
||||
[[nodiscard]] const double *getValue() const;
|
||||
|
||||
[[nodiscard]] tm *getDate() const;
|
||||
|
||||
@ -28,7 +28,7 @@ public:
|
||||
friend std::ostream &operator<<(std::ostream &os, const DateMoney &money);
|
||||
|
||||
private:
|
||||
const int *value;
|
||||
const double *value;
|
||||
tm *date;
|
||||
};
|
||||
|
||||
|
10
src/main.cpp
10
src/main.cpp
@ -77,15 +77,17 @@ int main(int argc, char *argv[]) {
|
||||
printf("Account value: %d\n", value);
|
||||
printf("Last 10 transactions:\n");
|
||||
for (int i = 0; i < timeline.size() && i < 10; i++) {
|
||||
const int *amount = timeline[i].getValue();
|
||||
const double *amount = timeline[i].getValue();
|
||||
const tm *date = timeline[i].getDate();
|
||||
if (*amount <= 0) {
|
||||
printf("Value: \033[31m%d\033[0m, ", *amount);
|
||||
// Red
|
||||
printf("Value: \033[31m%.2f\033[0m, ", *amount);
|
||||
}
|
||||
else {
|
||||
printf("Value: \033[32m%d\033[0m, ", *amount);
|
||||
// Green
|
||||
printf("Value: \033[32m%.2f\033[0m, ", *amount);
|
||||
}
|
||||
printf("Date: %d/%d/%d ", date->tm_mon+1, date->tm_mday, date->tm_year+1900);
|
||||
printf("Date: %d/%d/%d\n", date->tm_mon+1, date->tm_mday, date->tm_year+1900);
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ std::vector<DateMoney> Account::getTimeline() {
|
||||
for (auto &earning : earnings) {
|
||||
timeline.emplace_back(&earning.value, earning.getDate());
|
||||
}
|
||||
std::sort(timeline.begin(), timeline.end());
|
||||
std::sort(timeline.begin(), timeline.end(), std::greater<>());
|
||||
|
||||
return timeline;
|
||||
}
|
||||
|
@ -4,4 +4,4 @@
|
||||
|
||||
#include "earning.h"
|
||||
|
||||
Earning::Earning(const int value, std::tm date) : Transaction(value, date) {}
|
||||
Earning::Earning(const double value, std::tm date) : Transaction(value, date) {}
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
class Earning : public Transaction {
|
||||
public:
|
||||
explicit Earning(int value, std::tm date);
|
||||
explicit Earning(double value, std::tm date);
|
||||
};
|
||||
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
#include <utility>
|
||||
|
||||
Payment::Payment(const int value, Receipt receipt, std::tm date) : Transaction(value, date), receipt(std::move(receipt)) {
|
||||
Payment::Payment(const double value, Receipt receipt, std::tm date) : Transaction(value, date), receipt(std::move(receipt)) {
|
||||
negativeValue = -value;
|
||||
}
|
||||
|
||||
@ -14,6 +14,6 @@ Receipt &Payment::getReceipt() {
|
||||
return receipt;
|
||||
}
|
||||
|
||||
const int *Payment::getValue() {
|
||||
const double *Payment::getValue() {
|
||||
return &negativeValue;
|
||||
}
|
||||
|
@ -11,16 +11,16 @@
|
||||
|
||||
class Payment : public Transaction {
|
||||
public:
|
||||
Payment(int value, Receipt receipt, std::tm date);
|
||||
Payment(double value, Receipt receipt, std::tm date);
|
||||
|
||||
Receipt &getReceipt();
|
||||
|
||||
const int *getValue();
|
||||
const double *getValue();
|
||||
|
||||
private:
|
||||
Receipt receipt;
|
||||
|
||||
int negativeValue;
|
||||
double negativeValue;
|
||||
};
|
||||
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include "transaction.h"
|
||||
|
||||
Transaction::Transaction(const int value, const tm &date) : value(value), date(date) {}
|
||||
Transaction::Transaction(const double value, const tm &date) : value(value), date(date) {}
|
||||
|
||||
tm *Transaction::getDate() {
|
||||
return &date;
|
||||
|
@ -9,9 +9,9 @@
|
||||
|
||||
class Transaction {
|
||||
public:
|
||||
Transaction(int value, const tm &date);
|
||||
Transaction(double value, const tm &date);
|
||||
|
||||
const int value;
|
||||
const double value;
|
||||
|
||||
tm *getDate();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user