ArabicWord method

String ArabicWord (
  1. String inputNumber,
  2. String CurrencyName,
  3. String CurrencyPartName,
  4. {String SuffixText: ""}
)

Implementation

static String ArabicWord(
    String inputNumber, String CurrencyName, String CurrencyPartName, {String SuffixText = ""}) {
  double numberFix = roundDouble(inputNumber, 2);
  List<String> stnumber = numberFix.toString().split(".");
  int number = int.parse(stnumber[0]);

  if (number == 0) {
    return "صفر";
  }
  String fullNumber = stnumber[0];
  String fNumber = stnumber[0];
  String CurrencyPart = "";
  int _CurrencyPart = int.parse( stnumber[1]);
  if (_CurrencyPart > 0) {
    CurrencyPart = " و " +
        _convertLessThanOneThousand(_CurrencyPart) +
        " " +
        CurrencyPartName;
  }
  for (var i = 0; i < 15 - fullNumber.length; i++) {
    fNumber = "0" + fNumber;
  }
  fullNumber = fNumber;

  int trillion = int.parse(fullNumber.substring(0, 3));
  int billions = int.parse(fullNumber.substring(3, 6));
  int millions = int.parse(fullNumber.substring(6, 9));
  int hundredThousands = int.parse(fullNumber.substring(9, 12));
  int thousands = int.parse(fullNumber.substring(12, 15));

  String tradtrillion;

  switch (trillion) {
    case 0:
      tradtrillion = "";
      break;
    case 1:
      tradtrillion = " تریلیون و ";
      break;
    case 2:
      tradtrillion = " تريليونان و ";
      break;
    default:
      tradtrillion = _convertLessThanOneThousand(trillion) + " تریلیون و";
  }
  String result = tradtrillion;

  String tradBillions;

  switch (billions) {
    case 0:
      tradBillions = "";
      break;
    case 1:
      tradBillions = " مليار و ";
      break;
    case 2:
      tradBillions = " ملياران و ";
      break;
    default:
      tradBillions = _convertLessThanOneThousand(billions) + " مليار و";
  }
  result += tradBillions;

  String tradMillions;

  switch (millions) {
    case 0:
      tradMillions = "";
      break;
    case 1:
      tradMillions = "ملیون و ";
      break;
    case 2:
      tradMillions = "مليونان و ";
      break;
    default:
      tradMillions = _convertLessThanOneThousand(millions) + " مليون و";
  }
  result = result + tradMillions;

  String tradHundredThousands;
  switch (hundredThousands) {
    case 0:
      tradHundredThousands = "";
      break;
    case 1:
      tradHundredThousands = " الف و ";
      break;
    case 2:
      tradHundredThousands = " الفان و";
      break;
    default:
      tradHundredThousands =
          _convertLessThanOneThousand(hundredThousands) + " الف و ";
  }
  result = result + tradHundredThousands;

  String tradThousand;
  tradThousand = _convertLessThanOneThousand(thousands);
  result = result + tradThousand;

  if (result.trim().endsWith("و")) {
    result = result.substring(0, result.length - 2);
  }
  return result + " " + CurrencyName + CurrencyPart + " " + SuffixText;
}