Compare commits

...

2 commits

Author SHA1 Message Date
Frank Denzer
48e7d76e1a add uuid lib and use it 2023-06-25 11:11:55 +02:00
Frank Denzer
96c89170a0 add logic example 2023-06-25 11:04:24 +02:00
4 changed files with 55 additions and 14 deletions

View file

@ -20,7 +20,7 @@ class ShowBasket extends StatelessWidget {
return Card( return Card(
child: ListTile( child: ListTile(
leading: const Icon(Icons.abc), leading: const Icon(Icons.abc),
title: Text(SampleData().basket.purchases[index].product.name), title: Text(SampleData().basket.purchases.keys.elementAt(index).name),
//trailing: Text(), //trailing: Text(),
), ),
); );

View file

@ -1,3 +1,5 @@
import 'package:uuid/uuid.dart';
final now = DateTime.now(); final now = DateTime.now();
enum TransaktionArt { monatlBeitrag, aufladung, einkauf, korrektur } enum TransaktionArt { monatlBeitrag, aufladung, einkauf, korrektur }
@ -27,7 +29,7 @@ class Product {
final int id = 0; final int id = 0;
final String name; final String name;
final Unit unit; final Unit unit;
final double price; //pro Kilogramm oder Stück final double price; //pro Kilogramm oder Stück, d.h. pro unit
final double vat; final double vat;
final Category category; final Category category;
const Product(this.name, this.unit, this.price, this.vat, this.category); const Product(this.name, this.unit, this.price, this.vat, this.category);
@ -40,9 +42,23 @@ class Purchase {
} }
class Basket { class Basket {
List<Purchase> purchases; Map<Product, int> purchases;
int price; double price;
Basket(this.purchases, this.price); String guid;
Basket(this.purchases, this.price): guid = const Uuid().v4();
void addItem(Product product, int quantity) {
if (purchases.containsKey(product)) {
purchases.update(product, (existingQuantity) => existingQuantity + quantity);
} else {
purchases[product] = quantity;
}
}
void removeItem(Product product) {
purchases.remove(product);
}
} }
//sample data //sample data
@ -90,13 +106,13 @@ class SampleData {
Product('Schokolade', Unit.menge, 0.23, 7, Category.suessesUndKnabbereien) Product('Schokolade', Unit.menge, 0.23, 7, Category.suessesUndKnabbereien)
]; ];
Basket basket = Basket([ Basket basket = Basket({
Purchase(products[0], 20), products[0]: 20,
Purchase(products[1], 2200), products[1]: 2200,
Purchase(products[2], 2), products[2]: 2,
Purchase(products[3], 1), products[3]: 1,
Purchase(products[4], 1), products[4]: 1,
Purchase(products[5], 2), products[5]: 2,
Purchase(products[6], 202) products[6]: 202
], 304); }, 304);
} }

View file

@ -41,6 +41,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.17.1" version: "1.17.1"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
cupertino_icons: cupertino_icons:
dependency: "direct main" dependency: "direct main"
description: description:
@ -184,6 +192,22 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.1" version: "0.5.1"
typed_data:
dependency: transitive
description:
name: typed_data
sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c
url: "https://pub.dev"
source: hosted
version: "1.3.2"
uuid:
dependency: "direct main"
description:
name: uuid
sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
url: "https://pub.dev"
source: hosted
version: "3.0.7"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:

View file

@ -28,6 +28,7 @@ environment:
# the latest version available on pub.dev. To see which dependencies have newer # the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`. # versions available, run `flutter pub outdated`.
dependencies: dependencies:
uuid: ^3.0.4
flutter: flutter:
sdk: flutter sdk: flutter