Line data Source code
1 : // Copyright 2023 The terCAD team. All rights reserved.
2 : // Use of this source code is governed by a CC BY-NC-ND 4.0 license that can be found in the LICENSE file.
3 :
4 : import 'package:app_finance/_classes/herald/app_locale.dart';
5 : import 'package:app_finance/_classes/structure/bill_app_data.dart';
6 : import 'package:app_finance/_ext/double_ext.dart';
7 : import 'package:app_finance/pages/bill/widgets/expenses_tab.dart';
8 :
9 : class ExpensesEditTab extends ExpensesTab {
10 : final String uuid;
11 : final bool hasChild;
12 : final String? childOf;
13 :
14 0 : const ExpensesEditTab({
15 : super.key,
16 : required this.uuid,
17 : required super.state,
18 : required super.callback,
19 : super.account,
20 : super.budget,
21 : super.currency,
22 : super.bill,
23 : super.description,
24 : super.createdAt,
25 : this.hasChild = false,
26 : this.childOf,
27 : });
28 :
29 0 : @override
30 0 : ExpensesEditTabState createState() => ExpensesEditTabState();
31 : }
32 :
33 : class ExpensesEditTabState extends ExpensesTabState<ExpensesEditTab> {
34 0 : @override
35 : void updateStorage() {
36 0 : exchange.save();
37 0 : widget.state.update(
38 0 : widget.uuid,
39 0 : BillAppData(
40 0 : uuid: widget.uuid,
41 0 : account: account ?? '',
42 0 : category: budget ?? '',
43 0 : currency: currency,
44 0 : title: description.text,
45 0 : details: double.tryParse(bill.text)?.toFixed(currency?.decimalDigits) ?? 0.0,
46 0 : createdAt: createdAt,
47 0 : hasChild: widget.hasChild,
48 0 : childOf: widget.childOf,
49 : ));
50 : }
51 :
52 0 : @override
53 0 : String getTitle() => AppLocale.labels.updateBillTooltip;
54 :
55 0 : @override
56 0 : String getButtonName() => AppLocale.labels.updateBillTooltip;
57 : }
|