/**
 * Перетворює число на суму прописом (українською мовою).
 * @param {number} inputNumber Число для перетворення.
 * @return Сума прописом.
 * @customfunction
 */
function UKR_SUMA(inputNumber) {
  if (isNaN(inputNumber) || inputNumber === "") return "";

  var num = parseFloat(inputNumber).toFixed(2);
  var parts = num.split(".");
  var rubles = parseInt(parts[0], 10);
  var kopecks = parts[1];

  if (rubles === 0) return "Нуль гривень " + kopecks + " копійок";

  var ones = ["", "одна", "дві", "три", "чотири", "п'ять", "шість", "сім", "вісім", "дев'ять"];
  var ones_m = ["", "один", "два", "три", "чотири", "п'ять", "шість", "сім", "вісім", "дев'ять"];
  var teens = ["десять", "одинадцять", "дванадцять", "тринадцять", "чотирнадцять", "п'ятнадцять", "шістнадцять", "сімнадцять", "вісімнадцять", "дев'ятнадцять"];
  var tens = ["", "", "двадцять", "тридцять", "сорок", "п'ятдесят", "шістдесят", "сімдесят", "вісімдесят", "дев'яносто"];
  var hundreds = ["", "сто", "двісті", "триста", "чотириста", "п'ятсот", "шістсот", "сімсот", "вісімсот", "дев'ятсот"];

  function getGroup(n, gender) {
    var r = "";
    var h = Math.floor(n / 100);
    var t = Math.floor((n % 100) / 10);
    var o = n % 10;

    if (h > 0) r += hundreds[h] + " ";
    if (t === 1) {
      r += teens[o] + " ";
    } else {
      if (t > 1) r += tens[t] + " ";
      if (o > 0) r += (gender === 'f' ? ones[o] : ones_m[o]) + " ";
    }
    return r.trim();
  }

  var result = "";
  var millions = Math.floor(rubles / 1000000);
  var thousands = Math.floor((rubles % 1000000) / 1000);
  var units = rubles % 1000;

  if (millions > 0) {
    result += getGroup(millions, 'm') + " мільйон";
    var m10 = millions % 100;
    var m1 = millions % 10;
    if (m10 >= 11 && m10 <= 14) result += "ів ";
    else if (m1 === 1) result += " ";
    else if (m1 >= 2 && m1 <= 4) result += "и ";
    else result += "ів ";
  }

  if (thousands > 0) {
    result += getGroup(thousands, 'f') + " тисяч";
    var t10 = thousands % 100;
    var t1 = thousands % 10;
    if (t10 >= 11 && t10 <= 14) result += " ";
    else if (t1 === 1) result += "а ";
    else if (t1 >= 2 && t1 <= 4) result += "і ";
    else result += " ";
  }

  if (units > 0) {
    result += getGroup(units, 'f');
  }

  // Узгодження валюти (Гривня)
  var currency = " гривень";
  var u10 = rubles % 100;
  var u1 = rubles % 10;
  if (u10 >= 11 && u10 <= 14) currency = " гривень";
  else if (u1 === 1) currency = " гривня";
  else if (u1 >= 2 && u1 <= 4) currency = " гривні";

  // Робимо першу літеру великою
  var finalString = result.trim() + currency + " " + kopecks + " копійок";
  return finalString.charAt(0).toUpperCase() + finalString.slice(1);
}