Add date of values

This commit is contained in:
2025-06-12 11:16:36 +02:00
parent 55fd214e03
commit 00b2fba271
2 changed files with 27 additions and 12 deletions

View File

@@ -30,19 +30,21 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
Future<void> submitForm() async { Future<void> submitForm() async {
String fromCurrencyCode = _fromCurrencyController.text.split(" - ")[0]; String fromCurrencyCode = _fromCurrencyController.text.split(" - ")[0];
String toCurrencyCode = _toCurrencyController.text.split(" - ")[0]; String toCurrencyCode = _toCurrencyController.text.split(" - ")[0];
List<String> dateValue = [];
double exchangeRate = 0; double exchangeRate = 0;
await MihCurrencyExchangeRateServices.getCurrencyExchangeValue( await MihCurrencyExchangeRateServices.getCurrencyExchangeValue(
fromCurrencyCode, toCurrencyCode) fromCurrencyCode, toCurrencyCode)
.then((amount) { .then((amount) {
exchangeRate = amount; dateValue = amount;
}); });
exchangeRate = double.parse(dateValue[1]);
double exchangeValue = double exchangeValue =
double.parse(_fromAmountController.text) * exchangeRate; double.parse(_fromAmountController.text) * exchangeRate;
print( print(
"${_fromAmountController.text} | $fromCurrencyCode\n$exchangeValue | $toCurrencyCode"); "Date: ${dateValue[0]}\n${_fromAmountController.text} | $fromCurrencyCode\n$exchangeValue | $toCurrencyCode");
displayResult(_fromAmountController.text, fromCurrencyCode, exchangeValue, displayResult(dateValue[0], _fromAmountController.text, fromCurrencyCode,
toCurrencyCode); exchangeValue, toCurrencyCode);
} }
void clearInput() { void clearInput() {
@@ -52,7 +54,7 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
_toAmountController.clear(); _toAmountController.clear();
} }
void displayResult(String amount, String fromCurrencyCode, void displayResult(String date, String amount, String fromCurrencyCode,
double exchangeValue, String toCurrencyCode) { double exchangeValue, String toCurrencyCode) {
showDialog( showDialog(
context: context, context: context,
@@ -71,6 +73,19 @@ class _CurrencyExchangeRateState extends State<CurrencyExchangeRate> {
color: MzanziInnovationHub.of(context)!.theme.secondaryColor(), color: MzanziInnovationHub.of(context)!.theme.secondaryColor(),
), ),
const SizedBox(height: 20), const SizedBox(height: 20),
FittedBox(
child: Text(
"Values as at $date",
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 30,
fontWeight: FontWeight.bold,
color:
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
),
),
),
const SizedBox(height: 10),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [ children: [

View File

@@ -38,7 +38,7 @@ class MihCurrencyExchangeRateServices {
} }
} }
static Future<double> getCurrencyExchangeValue( static Future<List<String>> getCurrencyExchangeValue(
String fromCurrencyCode, String fromCurrencyCode,
String toCurrencyCode, String toCurrencyCode,
) async { ) async {
@@ -48,19 +48,19 @@ class MihCurrencyExchangeRateServices {
final Map<String, dynamic> jsonResponse = json.decode(response.body); final Map<String, dynamic> jsonResponse = json.decode(response.body);
final Map<String, dynamic>? baseCurrencyData = final Map<String, dynamic>? baseCurrencyData =
jsonResponse[fromCurrencyCode]; jsonResponse[fromCurrencyCode];
final List<String> dateValue = [];
if (baseCurrencyData != null) { if (baseCurrencyData != null) {
// Access the value for the target currency (e.g., "usd")
final dynamic rateValue = baseCurrencyData[toCurrencyCode]; final dynamic rateValue = baseCurrencyData[toCurrencyCode];
final String date = jsonResponse["date"];
if (rateValue is num) { if (rateValue is num) {
// Check if it's a number (int or double) dateValue.add(date);
return rateValue.toDouble(); dateValue.add(rateValue.toString());
return dateValue;
} else { } else {
// Handle cases where the rate might not be a number or is missing
print( print(
'Warning: Rate for $toCurrencyCode in $fromCurrencyCode is not a number or missing.'); 'Warning: Rate for $toCurrencyCode in $fromCurrencyCode is not a number or missing.');
return 0; return ["Error", "0"];
} }
} else { } else {
throw Exception( throw Exception(