unit Accounting;

interface

type
  JIAccountingCurrencyFormat = class external
    pos: String;
    neg: String; // nullable
    zero: String; // nullable
  end;

  JIAccountingCurrencySettings{<TFormat>} = class external
    symbol: String; // nullable
    format: JTFormat; // nullable
    decimal: String; // nullable
    thousand: String; // nullable
    precision: Float; // nullable
  end;

  JIAccountingNumberSettings = class external
    precision: Float; // nullable
    thousand: String; // nullable
    decimal: String; // nullable
  end;

  JIAccountingSettings = class external
    currency: JIAccountingCurrencySettings{<Variant>};
    number: JIAccountingNumberSettings;
  end;

  JIAccountingStatic = class external
    function formatMoney(number: Float): String overload;
    function formatMoney(number: Float; symbol: String): String overload;
    function formatMoney(number: Float; symbol: String; precision: Float): String overload;
    function formatMoney(number: Float; symbol: String; precision: Float; thousand: String): String overload;
    function formatMoney(number: Float; symbol: String; precision: Float; thousand: String; decimal: String): String overload;
    function formatMoney(number: Float; symbol: String; precision: Float; thousand: String; decimal: String; format: String): String overload;
    function formatMoney(number: Float; options: JIAccountingCurrencySettings{<String>}): String
    function formatMoney(number: Float; options: JIAccountingCurrencySettings{<JIAccountingCurrencyFormat>}): String
    function formatMoney(numbers: array of Float): array of String overload;
    function formatMoney(numbers: array of Float; symbol: String): array of String overload;
    function formatMoney(numbers: array of Float; symbol: String; precision: Float): array of String overload;
    function formatMoney(numbers: array of Float; symbol: String; precision: Float; thousand: String): array of String overload;
    function formatMoney(numbers: array of Float; symbol: String; precision: Float; thousand: String; decimal: String): array of String overload;
    function formatMoney(numbers: array of Float; symbol: String; precision: Float; thousand: String; decimal: String; format: String): array of String overload;
    function formatMoney(numbers: array of Float; options: JIAccountingCurrencySettings{<String>}): array of String
    function formatMoney(numbers: array of Float; options: JIAccountingCurrencySettings{<JIAccountingCurrencyFormat>}): array of String
    function formatMoney(numbers: array of Variant): array of Variant overload;
    function formatMoney(numbers: array of Variant; symbol: String): array of Variant overload;
    function formatMoney(numbers: array of Variant; symbol: String; precision: Float): array of Variant overload;
    function formatMoney(numbers: array of Variant; symbol: String; precision: Float; thousand: String): array of Variant overload;
    function formatMoney(numbers: array of Variant; symbol: String; precision: Float; thousand: String; decimal: String): array of Variant overload;
    function formatMoney(numbers: array of Variant; symbol: String; precision: Float; thousand: String; decimal: String; format: String): array of Variant overload;
    function formatMoney(numbers: array of Variant; options: JIAccountingCurrencySettings{<String>}): array of Variant
    function formatMoney(numbers: array of Variant; options: JIAccountingCurrencySettings{<JIAccountingCurrencyFormat>}): array of Variant
    function formatColumn(numbers: array of Float): array of String overload;
    function formatColumn(numbers: array of Float; symbol: String): array of String overload;
    function formatColumn(numbers: array of Float; symbol: String; precision: Float): array of String overload;
    function formatColumn(numbers: array of Float; symbol: String; precision: Float; thousand: String): array of String overload;
    function formatColumn(numbers: array of Float; symbol: String; precision: Float; thousand: String; decimal: String): array of String overload;
    function formatColumn(numbers: array of Float; symbol: String; precision: Float; thousand: String; decimal: String; format: String): array of String overload;
    function formatColumn(numbers: array of Float; options: JIAccountingCurrencySettings{<String>}): array of String
    function formatColumn(numbers: array of Float; options: JIAccountingCurrencySettings{<JIAccountingCurrencyFormat>}): array of String
    function formatColumn(numbers: array of array of Float): array of array of String overload;
    function formatColumn(numbers: array of array of Float; symbol: String): array of array of String overload;
    function formatColumn(numbers: array of array of Float; symbol: String; precision: Float): array of array of String overload;
    function formatColumn(numbers: array of array of Float; symbol: String; precision: Float; thousand: String): array of array of String overload;
    function formatColumn(numbers: array of array of Float; symbol: String; precision: Float; thousand: String; decimal: String): array of array of String overload;
    function formatColumn(numbers: array of array of Float; symbol: String; precision: Float; thousand: String; decimal: String; format: String): array of array of String overload;
    function formatColumn(numbers: array of array of Float; options: JIAccountingCurrencySettings{<String>}): array of array of String
    function formatColumn(numbers: array of array of Float; options: JIAccountingCurrencySettings{<JIAccountingCurrencyFormat>}): array of array of String
    function formatNumber(number: Float): String overload;
    function formatNumber(number: Float; precision: Float): String overload;
    function formatNumber(number: Float; precision: Float; thousand: String): String overload;
    function formatNumber(number: Float; precision: Float; thousand: String; decimal: String): String overload;
    function formatNumber(number: Float; options: JIAccountingNumberSettings): String
    function formatNumber(number: array of Float): array of String overload;
    function formatNumber(number: array of Float; precision: Float): array of String overload;
    function formatNumber(number: array of Float; precision: Float; thousand: String): array of String overload;
    function formatNumber(number: array of Float; precision: Float; thousand: String; decimal: String): array of String overload;
    function formatNumber(number: array of Float; options: JIAccountingNumberSettings): array of String
    function formatNumber(number: array of Variant): array of Variant overload;
    function formatNumber(number: array of Variant; precision: Float): array of Variant overload;
    function formatNumber(number: array of Variant; precision: Float; thousand: String): array of Variant overload;
    function formatNumber(number: array of Variant; precision: Float; thousand: String; decimal: String): array of Variant overload;
    function formatNumber(number: array of Variant; options: JIAccountingNumberSettings): array of Variant
    function toFixed(number: Float): String overload;
    function toFixed(number: Float; precision: Float): String overload;
    function unformat(&string: String): Float overload;
    function unformat(&string: String; decimal: String): Float overload;
    settings: JIAccountingSettings;
  end;

accounting: JIAccountingStatic;
//"accounting"


