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 : import 'package:flutter_currency_picker/flutter_currency_picker.dart'; 9 : 10 : class ExpensesEditTab extends ExpensesTab { 11 : final String uuid; 12 : 13 0 : const ExpensesEditTab({ 14 : super.key, 15 : required this.uuid, 16 : required super.state, 17 : required super.callback, 18 : String? account, 19 : String? budget, 20 : Currency? currency, 21 : double? bill, 22 : String? description, 23 : DateTime? createdAt, 24 0 : }) : super( 25 : account: account, 26 : budget: budget, 27 : currency: currency, 28 : bill: bill, 29 : description: description, 30 : createdAt: createdAt, 31 : ); 32 : 33 0 : @override 34 0 : ExpensesEditTabState createState() => ExpensesEditTabState(); 35 : } 36 : 37 : class ExpensesEditTabState extends ExpensesTabState<ExpensesEditTab> { 38 0 : @override 39 : void updateStorage() { 40 0 : widget.state.update( 41 0 : widget.uuid, 42 0 : BillAppData( 43 0 : uuid: widget.uuid, 44 0 : account: account ?? '', 45 0 : category: budget ?? '', 46 0 : currency: currency, 47 0 : title: description.text, 48 0 : details: double.tryParse(bill.text)?.toFixed(currency?.decimalDigits) ?? 0.0, 49 0 : createdAt: createdAt, 50 : )); 51 : } 52 : 53 0 : @override 54 0 : String getTitle() => AppLocale.labels.updateBillTooltip; 55 : 56 0 : @override 57 0 : String getButtonName() => AppLocale.labels.updateBillTooltip; 58 : }