Income and Assets are successfully being inserted and selected! Still needs tweaking, such as Asset saying "monthly".

This commit is contained in:
Hyperling 2025-03-07 13:06:26 -07:00
parent f6f167dd83
commit e5e85b68ff

View File

@ -331,7 +331,7 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> {
title: Center( title: Center(
child: widget.entry == null child: widget.entry == null
? Text("New ${_type!.title}") ? Text("New ${_type!.title}")
: Text("Edit Expense"), : Text("Edit ${_type!.title}"),
), ),
content: FutureBuilder<List<Expense>>( content: FutureBuilder<List<Expense>>(
future: DatabaseHelper.instance.getExpenses(), future: DatabaseHelper.instance.getExpenses(),
@ -399,6 +399,7 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> {
_amount = double.parse(value!); _amount = double.parse(value!);
}, },
), ),
if (_type != ItemType.asset)
DropdownButtonFormField( DropdownButtonFormField(
items: Frequency.values items: Frequency.values
.map( .map(
@ -468,6 +469,8 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> {
if (_formKey.currentState!.validate()) { if (_formKey.currentState!.validate()) {
_formKey.currentState!.save(); _formKey.currentState!.save();
setState(() { setState(() {
switch (_type) {
case ItemType.expense:
Expense expense = Expense( Expense expense = Expense(
id: _id, id: _id,
name: _name, name: _name,
@ -484,6 +487,47 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> {
expense, expense,
); );
} }
break;
case ItemType.income:
Income income = Income(
id: _id,
name: _name,
amount: _amount,
frequency: _freq,
description: _desc,
);
if (_id != null) {
DatabaseHelper.instance.updateIncome(
income,
);
} else {
DatabaseHelper.instance.addIncome(
income,
);
}
break;
case ItemType.asset:
Asset asset = Asset(
id: _id,
name: _name,
amount: _amount,
description: _desc,
);
if (_id != null) {
DatabaseHelper.instance.updateAsset(
asset,
);
} else {
DatabaseHelper.instance.addAsset(
asset,
);
}
break;
default:
throw UnimplementedError(
"No code for type ${_type!.title}",
);
}
}); });
widget.notifyParent(); widget.notifyParent();
Navigator.of(context).pop(); Navigator.of(context).pop();