Compare commits

..

3 Commits

3 changed files with 71 additions and 60 deletions

View File

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

View File

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

View File

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