show total price in receipts

This commit is contained in:
Mikkel Troels Kongsted 2025-02-04 12:24:53 +01:00
parent 13ef0644be
commit 9451187c97
2 changed files with 51 additions and 25 deletions

View File

@ -54,10 +54,10 @@ class FinishShoppingPage extends StatelessWidget {
onPressed: () async {
payingStateRepo.next();
receiptRepo.createReceipt(cart);
cartRepo.clearCart();
await Future.delayed(const Duration(seconds: 1));
payingStateRepo.next();
await Future.delayed(const Duration(seconds: 1));
cartRepo.clearCart();
payingStateRepo.reset();
if (context.mounted) Navigator.pop(context);
},

View File

@ -2,6 +2,55 @@ import 'package:flutter/material.dart';
import 'package:mobile/repos/receipt.dart';
import 'package:mobile/widgets/receipt_item.dart';
class ReceiptView extends StatelessWidget {
final Receipt receipt;
const ReceiptView({super.key, required this.receipt});
@override
Widget build(BuildContext context) {
final receiptItems = receipt.allReceiptItems();
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const BackButton(),
Expanded(
child: Container(
margin: const EdgeInsets.all(20),
child: Column(
children: [
Text(receipt.dateFormatted()),
Expanded(
child: Column(
children: [
ListView.builder(
shrinkWrap: true,
itemBuilder: (_, idx) => ReceiptItemView(
pricePerAmount: receiptItems[idx].product.price,
name: receiptItems[idx].product.name,
amount: receiptItems[idx].amount),
itemCount: receiptItems.length),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
const Text(
"Total:",
style: TextStyle(fontWeight: FontWeight.bold),
),
Text("${receipt.totalPrice()} kr"),
],
),
],
)),
],
),
),
),
],
);
}
}
class ReceiptPage extends StatelessWidget {
final Receipt receipt;
@ -9,29 +58,6 @@ class ReceiptPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final receiptItems = receipt.allReceiptItems();
return Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const BackButton(),
Container(
margin: const EdgeInsets.symmetric(horizontal: 10),
child: Text(receipt.dateFormatted())),
Container(
margin: const EdgeInsets.symmetric(horizontal: 10),
child: Expanded(
child: ListView.builder(
shrinkWrap: true,
itemBuilder: (_, idx) => ReceiptItemView(
pricePerAmount: receiptItems[idx].product.price,
name: receiptItems[idx].product.name,
amount: receiptItems[idx].amount),
itemCount: receiptItems.length)),
),
],
),
);
return Scaffold(body: ReceiptView(receipt: receipt));
}
}