You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
uco-mobile-poc/lib/app/core/utils/app_utils.dart

94 lines
3.2 KiB
Dart

import 'package:intl/intl.dart';
import '../../models/ExchangeRate.dart';
import 'SessionCache.dart';
class AppUtils {
/// Balance show format method
static String formatCurrency(num value) {
final currencyFormatter = NumberFormat.currency(
// locale: 'eu',
customPattern: '#,##,###',
symbol: '', // Set the currency symbol
decimalDigits: 2, // Set the number of decimal places
);
return currencyFormatter.format(value);
}
bool isValidEmail(String email) {
final RegExp emailRegex = RegExp(r'^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$');
return emailRegex.hasMatch(email);
}
static String formatDateTime(String dateTimeString, String format) {
DateTime dateTime = DateTime.parse(dateTimeString);
final formatter = DateFormat(format);
String formattedDateTime = formatter.format(dateTime);
return formattedDateTime;
}
static String showAmountWithCurr(String amount, String currencyCode) {
ExchangeRate exchangeRate = SessionCache.instance.exchangeRateList.firstWhere((rate) => rate.pcrCurrcode == currencyCode, orElse: () => ExchangeRate.empty());
return exchangeRate.pcrCurrshort.isEmpty ? '$currencyCode $amount' : '${exchangeRate.pcrCurrshort} $amount';
}
static String accountNumberFormatter(String accountNumber) {
return accountNumber;
}
static bool isPasswordValid(String password, [int minLength = 8]) {
bool hasUppercase = password.contains(RegExp(r'[A-Z]'));
bool hasDigits = password.contains(RegExp(r'[0-9]'));
bool hasLowercase = password.contains(RegExp(r'[a-z]'));
bool hasSpecialCharacters = password.contains(RegExp(r'[!@#$%^&*(),.?":{}|<>]'));
bool hasMinLength = password.length >= minLength;
return hasDigits & hasUppercase & hasLowercase & hasSpecialCharacters & hasMinLength;
}
static String getInitials(String fullName) {
List<String> words = fullName.split(' ');
if (words.isNotEmpty) {
String initials = words.map((word) => word.isNotEmpty ? word[0].toUpperCase() : '').join();
return initials.length >= 2 ? initials.substring(0, 2) : initials;
} else {
return '';
}
}
static String formatPhoneNumber(String phoneNumber) {
if (phoneNumber.startsWith("0")) {
phoneNumber = "+92${phoneNumber.substring(1)}";
}
if (phoneNumber.startsWith("3")) {
phoneNumber = "+92$phoneNumber";
}
if (phoneNumber.startsWith("92")) {
phoneNumber = "+$phoneNumber";
}
if (phoneNumber.contains("-")) {
phoneNumber = phoneNumber.replaceAll("-", "");
}
phoneNumber = phoneNumber.replaceAll(" ", "");
return phoneNumber;
}
static String convertDateTime(String timestamp) {
// Parse the timestamp string into a DateTime object
DateTime dateTime = DateTime.parse(timestamp);
// Format the DateTime object to display only the date and time
String formattedDateTime =
'${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')} '
'${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}:${dateTime.second.toString().padLeft(2, '0')}';
return formattedDateTime;
}
static String showAmountWithCurrencyCode(String amount) {
return "Rs. " + amount;
}
}