#include "goods.h" #include #include #include Goods::Goods() { } Goods::Goods(std::string name, double price_per_unit, std::string net_weight, double quantity) : name(name), price_per_unit(price_per_unit), net_weight(net_weight), quantity(quantity) {} double Goods::calculate_total_price() { return this->price_per_unit * this->quantity; } std::string Goods::get_name() { return this->name; } double Goods::get_quantity() { return this->quantity; } std::string Goods::get_net_weight() { return this->net_weight; } double Goods::get_price_per_unit() { return this->price_per_unit; } void Goods::set_name(std::string name) { this->name = name; } void Goods::set_name(QString name) { this->name = name.toStdString(); } void Goods::set_quantity(double quantity) { this->quantity = quantity; } void Goods::set_net_weight(std::string net_weight) { this->net_weight = net_weight; } void Goods::set_net_weight(QString net_weight) { this->net_weight = net_weight.toStdString(); } void Goods::set_price_per_unit(double price_per_unit) { this->price_per_unit = price_per_unit; } Q_DECLARE_METATYPE(Goods) QDataStream &operator<<(QDataStream &in, Goods &goods) { in << QString::fromStdString(goods.get_name()) << goods.get_quantity() << QString::fromStdString(goods.get_net_weight()) << goods.get_price_per_unit(); return in; } QDataStream &operator>>(QDataStream &out, Goods &goods) { QString name, net_weight; double quantity, price_per_unit; out >> name >> quantity >> net_weight >> price_per_unit; goods.set_name(name); goods.set_quantity(quantity); goods.set_net_weight(net_weight); goods.set_price_per_unit(price_per_unit); return out; } QDataStream &operator<<(QDataStream &stream, std::vector &goods) { stream << (unsigned int )goods.size(); for (Goods &g : goods) { stream << g; } return stream; } QDataStream &operator>>(QDataStream &stream, std::vector &goods) { unsigned int size; stream >> size; for (unsigned int i = 0 ; i < size; i ++) { Goods g = Goods(); stream >> g; goods.push_back(g); } return stream; }