mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 16:24:07 +02:00
73 lines
1.8 KiB
Dart
73 lines
1.8 KiB
Dart
class Receipt {
|
|
final int id;
|
|
final DateTime timestamp;
|
|
final List<ReceiptItem> receiptItems;
|
|
|
|
Receipt(
|
|
{required this.timestamp, required this.receiptItems, required this.id});
|
|
|
|
List<ReceiptItem> allReceiptItems() {
|
|
return receiptItems;
|
|
}
|
|
|
|
ReceiptItem? withProductId(int productId) {
|
|
for (var i = 0; i < receiptItems.length; i++) {
|
|
if (receiptItems[i].productId == productId) {
|
|
return receiptItems[i];
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
int totalPrice() {
|
|
var result = 0;
|
|
for (var i = 0; i < receiptItems.length; i++) {
|
|
result += receiptItems[i].totalPrice();
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Receipt.fromJson(Map<String, dynamic> json)
|
|
: id = json["receipt_id"],
|
|
timestamp = DateTime.parse(json["timestamp"]),
|
|
receiptItems = (json["products"] as List<dynamic>)
|
|
.map(((receiptItem) => ReceiptItem.fromJson(receiptItem)))
|
|
.toList();
|
|
}
|
|
|
|
class ReceiptItem {
|
|
final int productId;
|
|
final String name;
|
|
final int priceDkkCent;
|
|
final int amount;
|
|
ReceiptItem(
|
|
{required this.productId,
|
|
required this.name,
|
|
required this.priceDkkCent,
|
|
required this.amount});
|
|
|
|
int totalPrice() {
|
|
return priceDkkCent * amount;
|
|
}
|
|
|
|
ReceiptItem.fromJson(Map<String, dynamic> json)
|
|
: productId = json["product_id"],
|
|
name = json["name"],
|
|
priceDkkCent = json["price_dkk_cent"],
|
|
amount = json["amount"];
|
|
}
|
|
|
|
class ReceiptHeader {
|
|
final int id;
|
|
final DateTime timestamp;
|
|
final int totalDkkCent;
|
|
|
|
ReceiptHeader(
|
|
{required this.timestamp, required this.id, required this.totalDkkCent});
|
|
|
|
ReceiptHeader.fromJson(Map<String, dynamic> json)
|
|
: id = json["id"],
|
|
totalDkkCent = json["total_dkk_cent"],
|
|
timestamp = DateTime.parse(json["timestamp"]);
|
|
}
|