user admin capability
This commit is contained in:
@@ -161,6 +161,40 @@ class BankController extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
/// Insert a locally created transaction (admin testing). Persisted like CSV
|
||||
/// imports and included in PocketBase `transactions` sync.
|
||||
Future<BankTransaction> addManualTransaction({
|
||||
required DateTime date,
|
||||
required String description,
|
||||
required double amount,
|
||||
String currency = 'EUR',
|
||||
bool pending = false,
|
||||
}) async {
|
||||
final desc = description.trim().isEmpty ? 'Test transaction' : description.trim();
|
||||
// Include a short unique suffix so identical drafts do not collide on id.
|
||||
final stamp = DateTime.now().millisecondsSinceEpoch % 100000;
|
||||
final tx = BankTransaction(
|
||||
date:
|
||||
'${date.year.toString().padLeft(4, '0')}-'
|
||||
'${date.month.toString().padLeft(2, '0')}-'
|
||||
'${date.day.toString().padLeft(2, '0')}',
|
||||
description: '$desc ·#$stamp',
|
||||
amount: amount,
|
||||
currency: currency.trim().isEmpty ? 'EUR' : currency.trim().toUpperCase(),
|
||||
pending: pending,
|
||||
);
|
||||
|
||||
_importedTransactions = mergeTransactions(_importedTransactions, [tx]);
|
||||
_importedTransactions = filterNewTransactions(
|
||||
_remoteTransactions,
|
||||
_importedTransactions,
|
||||
);
|
||||
_invalidateMerged();
|
||||
await _persistImported();
|
||||
notifyListeners();
|
||||
return tx;
|
||||
}
|
||||
|
||||
/// Union cloud txs into the local bank cache without dropping either side.
|
||||
///
|
||||
/// Rows land in the API cache; CSV imports that match are deduped away.
|
||||
|
||||
Reference in New Issue
Block a user