1

Тема: SQL-функции: работа с числами/валютами/суммами

ИМХО, нужно бы отдельный раздел сделать, у меня разработки таки бывают smile

Для начала несколько вспомогательных функций.

1. Функция, возвращающая язык печати бланков:
COMMON.GetLang()

Post's attachments

COMMON.GetLang.sql 516 b, 2 downloads since 2017-06-13 

You don't have the permssions to download the attachments of this post.

2

Re: SQL-функции: работа с числами/валютами/суммами

2. Функция возвращает код валюты из настроек (по-умолчанию гривня)
COMMON.GetCurrency()

Post's attachments

COMMON.GetCurrency.sql 508 b, 1 downloads since 2017-06-13 

You don't have the permssions to download the attachments of this post.

3

Re: SQL-функции: работа с числами/валютами/суммами

Функция возвращает строку вида "XX грн. YY коп."

COMMON.Numeric2Money(@i, @kodV)

Post's attachments

COMMON.Numeric2Money.sql 1.37 kb, 1 downloads since 2017-06-13 

You don't have the permssions to download the attachments of this post.

4

Re: SQL-функции: работа с числами/валютами/суммами

Сама интересная функция smile

COMMON.Numeric2MoneyPhrase(@i, @LangID, @kodV, @TypeOfKop)

Функция возвращает сумму прописью

Передаваемые параметры:
@i                   : Сумма числом
@LangID        : язык
@kodV           : валюта
@TypeOfKop :
                         0 или NULL - если копеек нет (.00), то возвращает без копеек, иначе копейки числом
                         1 - копейки прописью
                         2 или больше - копейки числом

Очень полезно для договоров/счетов/актов smile
Я всегда вызываю примерно с такими параметрами:
SELECT COMMON.Numeric2MoneyPhrase(1875611.12,null,null,1) FROM system.iota;
Результат:
"один мільйон вісімсот сімдесят п`ять тисяч шістсот одинадцять гривень дванадцять копійок"

P.S. Я ее написал давно, в Софтпро пересылал и, возможно, в тираже она уже есть. НО в ней был небольшой баг, который подправил только сегодня.

Post's attachments

COMMON.Numeric2MoneyPhrase.sql 7.37 kb, 1 downloads since 2017-06-13 

You don't have the permssions to download the attachments of this post.

5

Re: SQL-функции: работа с числами/валютами/суммами

Чуть не забыл, без этой функции не работает предыдущая (тоже подправил прямо сейчас).

Функция, возвращающая целое число словами (без дробной части; т.е., для копеек, например, нужно вызывать отдельно):
COMMON.NumPhrase(Num, LangID, IsMaleGender)

Параметры:
@Num - Число для преобразования в текст
@LangID - язык
@IsMaleGender - если NULL или =0, то женский род (по-умолчанию)

Post's attachments

COMMON.NumPhrase.sql 21.35 kb, 2 downloads since 2017-06-13 

You don't have the permssions to download the attachments of this post.

6

Re: SQL-функции: работа с числами/валютами/суммами

Спасибо большое

7

Re: SQL-функции: работа с числами/валютами/суммами

Спасибо  большое - выпущен PDR-72359
Добавлены новые серверные функции для работы с числами/валютами/суммам
========================================================================

Статус: PDR закрыт (прошел первый и второй тест)

Назначение: Настройки БД
Тип:        Новые возможности

Содержание:
-----------
Добавлены новые серверные функции для работы с числами/валютами/суммами

- Функция, возвращающая язык печати бланков:
   COMMON.GetLang()

- Функция возвращает код валюты из настроек (по-умолчанию гривня)
   COMMON.GetCurrency()

- Функция возвращает строку вида "XX грн. YY коп."
   COMMON.Numeric2Money(@i, @kodV)

- Функция, возвращающая целое число словами (без дробной части; т.е., для копеек, например, нужно
вызывать отдельно):
   COMMON.NumPhrase(Num, LangID, IsMaleGender)
   Параметры:
   @Num - Число для преобразования в текст
   @LangID - язык
   @IsMaleGender - если NULL или =0, то женский род (по-умолчанию)

- COMMON.Numeric2MoneyPhrase(@i, @LangID, @kodV, @TypeOfKop)
   Функция возвращает сумму прописью
   Передаваемые параметры:
   @i              : Сумма числом
   @LangID         : язык
   @kodV           : валюта
   @TypeOfKop :
                            0 или NULL - если копеек нет (.00), то возвращает без копеек, иначе
копейки числом
                            1 - копейки прописью
                            2 или больше - копейки числом
   Очень полезно для договоров/счетов/актов

   Например:
   SELECT COMMON.Numeric2MoneyPhrase(1875611.12,null,null,1) FROM system.iota;
   Результат:
   "один мільйон вісімсот сімдесят п`ять тисяч шістсот одинадцять гривень дванадцять копійок"


Благодарность Dr.Sydorenko за предоставленные функции
------------------------------------------------------------------------

Метод исправления:
------------------
Выполнить утилиту автоматического обновления.
Содержание автоматического обновления : добавляются серверные функции

- COMMON.GetLang()
- COMMON.GetCurrency()
- COMMON.Numeric2Money()
- COMMON.NumPhrase()
- COMMON.Numeric2MoneyPhrase()
------------------------------------------------------------------------

Версия устранения: 7.50

8

Re: SQL-функции: работа с числами/валютами/суммами

Самое забавное - у меня нет доступа к этому PDR smile