Compare commits

..

3 Commits

3 changed files with 71 additions and 60 deletions

View File

@ -1,4 +1,5 @@
// Local
import '/models/item_type.dart';
import '/models/tracked_item.dart';
class Asset extends TrackedItem {
@ -6,6 +7,7 @@ class Asset extends TrackedItem {
Asset({
super.id,
super.type = ItemType.asset,
required super.name,
required super.amount,
required super.description,

View File

@ -1,12 +1,14 @@
// Local
import '/models/tracked_item.dart';
import '/models/frequency.dart';
import '/models/item_type.dart';
class Income extends TrackedItem {
static String amountText = "Revenue";
Income({
super.id,
super.type = ItemType.income,
required super.name,
required super.amount,
required super.frequency,

View File

@ -103,12 +103,17 @@ class _TrackedItemPageState extends State<TrackedItemPage> {
itemYearAmount = -1;
estimateSymbolYearly = "";
}
final String monthlyTitle = curr.type == ItemType.asset
? ""
: " ${Frequency.monthly.title}";
final String itemTopText = itemDayAmount < 0
? ""
: "$estimateSymbolDaily${itemDayAmount.toStringAsFixed(2)} ${Frequency.daily.title}";
final String itemMiddleText = itemMonthAmount < 0
? ""
: "$estimateSymbolMonthly${itemMonthAmount.toStringAsFixed(2)} ${Frequency.monthly.title}";
: "$estimateSymbolMonthly${itemMonthAmount.toStringAsFixed(2)}$monthlyTitle";
final String itemBottomText = itemYearAmount < 0
? ""
: "$estimateSymbolYearly${itemYearAmount.toStringAsFixed(2)} ${Frequency.yearly.title}";
@ -468,69 +473,71 @@ class _TrackedItemInputDialogState extends State<TrackedItemInputDialog> {
onPressed: () {
if (_formKey.currentState!.validate()) {
_formKey.currentState!.save();
setState(() {
switch (_type) {
case ItemType.expense:
Expense expense = Expense(
id: _id,
name: _name,
amount: _amount,
frequency: _freq,
description: _desc,
);
if (_id != null) {
DatabaseHelper.instance.updateExpense(
expense,
setState(
() {
switch (_type) {
case ItemType.expense:
Expense expense = Expense(
id: _id,
name: _name,
amount: _amount,
frequency: _freq,
description: _desc,
);
} else {
DatabaseHelper.instance.addExpense(
expense,
if (_id != null) {
DatabaseHelper.instance.updateExpense(
expense,
);
} else {
DatabaseHelper.instance.addExpense(
expense,
);
}
break;
case ItemType.income:
Income income = Income(
id: _id,
name: _name,
amount: _amount,
frequency: _freq,
description: _desc,
);
}
break;
case ItemType.income:
Income income = Income(
id: _id,
name: _name,
amount: _amount,
frequency: _freq,
description: _desc,
);
if (_id != null) {
DatabaseHelper.instance.updateIncome(
income,
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,
);
} else {
DatabaseHelper.instance.addIncome(
income,
if (_id != null) {
DatabaseHelper.instance.updateAsset(
asset,
);
} else {
DatabaseHelper.instance.addAsset(
asset,
);
}
break;
default:
throw UnimplementedError(
"No code for type ${_type!.title}",
);
}
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();
Navigator.of(context).pop();
}
widget.notifyParent();
Navigator.of(context).pop();
},
);
}
},
icon: Icon(Icons.save),