Base fixes and test harness

This commit is contained in:
alexandrev-tibco
2026-02-01 11:12:57 +01:00
parent f5b13ec924
commit e328767c4a
39 changed files with 3575 additions and 142 deletions
@@ -185,18 +185,27 @@ struct AddSourceView: View {
}
private func parseDecimal(_ string: String) -> Decimal? {
let locale = CurrencyFormatter.locale(for: currencyCode)
let cleaned = string
.replacingOccurrences(of: currencySymbol, with: "")
.replacingOccurrences(of: ",", with: ".")
.replacingOccurrences(of: locale.groupingSeparator ?? "", with: "")
.trimmingCharacters(in: .whitespaces)
guard !cleaned.isEmpty else { return nil }
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.locale = Locale(identifier: "en_US")
formatter.locale = locale
return formatter.number(from: cleaned)?.decimalValue
if let value = formatter.number(from: cleaned)?.decimalValue {
return value
}
let normalized = cleaned
.replacingOccurrences(of: locale.decimalSeparator ?? ",", with: ".")
.replacingOccurrences(of: ",", with: ".")
formatter.locale = Locale(identifier: "en_US_POSIX")
return formatter.number(from: normalized)?.decimalValue
}
private var currencySymbol: String {
@@ -206,6 +215,13 @@ struct AddSourceView: View {
return AppSettings.getOrCreate(in: CoreDataStack.shared.viewContext).currencySymbol
}
private var currencyCode: String {
if let account = selectedAccount, let code = account.currencyCode {
return code
}
return AppSettings.getOrCreate(in: CoreDataStack.shared.viewContext).currency
}
private var selectedAccount: Account? {
guard let id = selectedAccountId else { return nil }
return availableAccounts.first { $0.safeId == id }