5. Mostrar el contexto de la transacción
Última actualización
¿Te fue útil?
¿Te fue útil?
func displayTransactionContext(_ context: TransactionContext) {
// Establezca esto en su configuración regional.
let locale = Locale(identifier: "en_US")
// Mapear códigos numéricos ISO-4217 a códigos alfabéticos.
// Ampliar este mapeo según las monedas que admita.
let iso4217NumToCode: [Int: String] = [
978: "EUR",
840: "USD"
]
let currencyFormatter = NumberFormatter()
currencyFormatter.locale = locale
currencyFormatter.numberStyle = .currency
if let currencyCode = iso4217NumToCode[context.currencyCode.bcdToInt()] {
currencyFormatter.currencyCode = currencyCode
}
let rawDateFormatter = DateFormatter()
rawDateFormatter.dateFormat = "yyMMdd"
guard let transactionDate = rawDateFormatter.date(from: context.transactionDate.bcdToString()) else {
// Alternativa: omitir la representación de la fecha si el análisis falla.
return
}
let displayDateFormatter = DateFormatter()
displayDateFormatter.locale = locale
displayDateFormatter.dateStyle = .medium
let amountStr = currencyFormatter.string(from: context.amount as NSNumber) ?? "-"
let dateStr = displayDateFormatter.string(from: transactionDate)
let transactionTypeStr = context.transactionType.bcdToString()
switch transactionTypeStr {
case "00":
// Compra
break
case "20":
// Reembolso / corrección
break
default:
// Tipo de transacción desconocido
break
}
// Actualice su interfaz con amountStr, dateStr, scheme, isTransit y transactionID.
}