Can delete expense
This commit is contained in:
@@ -10,7 +10,6 @@ import 'package:path_provider/path_provider.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
part 'expenses.freezed.dart';
|
||||
|
||||
part 'expenses.g.dart';
|
||||
|
||||
typedef ExpensesList = List<Expense>;
|
||||
@@ -157,11 +156,28 @@ class ExpensesManager {
|
||||
Future<void> updateExpense(Expense expense, BaseExpenseInfo newInfo) async {
|
||||
final list = await getList();
|
||||
final entry = list.indexWhere((e) => e.id == expense.id);
|
||||
list[entry] = Expense(id: expense.id,
|
||||
label: newInfo.label,
|
||||
cost: newInfo.cost,
|
||||
time: newInfo.timeAsSeconds,
|
||||
mimeType: expense.mimeType);
|
||||
list[entry] = Expense(
|
||||
id: expense.id,
|
||||
label: newInfo.label,
|
||||
cost: newInfo.cost,
|
||||
time: newInfo.timeAsSeconds,
|
||||
mimeType: expense.mimeType,
|
||||
);
|
||||
saveList(list);
|
||||
}
|
||||
}
|
||||
|
||||
/// Delete an expense
|
||||
Future<void> deleteExpense(Expense expense) async {
|
||||
// Remove expense from the list
|
||||
final list = await getList();
|
||||
await saveList(list.where((e) => e.id != expense.id).toList());
|
||||
|
||||
// Delete associated file, if any
|
||||
final filePath = File(
|
||||
p.join(filesStoragePath.absolute.path, expense.localFileName),
|
||||
);
|
||||
if (await filePath.exists()) {
|
||||
await filePath.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user