Skip to content

pluzanov/to_text

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

Функции to_text, uom2text

Реализованы на SQL и PL/pgSQL соответственно.

Функция to_text

Выводит денежную сумму прописью (словами).
Подробное описание в to_text.sql

Примеры:

select to_text (123.45, 'рубль');
                 to_text                  
------------------------------------------
 сто двадцать три рубля сорок пять копеек

Кроме рублей можно указать: доллар или евро:

select to_text(1,'доллар') as dollar, to_text(15,'евро') as euro;
         dollar          |            euro             
-------------------------+-----------------------------
 один доллар ноль центов | пятнадцать евро ноль центов

Копейки можно цифрами:

select to_text(7.77, 'рубль', scale_mode => 'int');
        to_text        
-----------------------
 семь рублей 77 копеек

А если копеек нет, то можно без них:

select to_text(100, 'рубль', scale_mode => 'none');
  to_text   
------------
 сто рублей

Целые числа можно в тоннах:

select to_text(100, 'тонна', scale_mode => 'none');
 to_text  
----------
 сто тонн

Функция uom2text

Функция to_text требует точного указания значений параметров. Можно обернуть её вызов в другую функцию, где допускаются послабления и расширяется функционал.

Например, функция uom2text:

  1. amount сразу имеет тип данных bigint, во избежание дробной части.
  2. uom допускает не только 'тонна', но 'т.', 'т'. Причем в любом регистре.
  3. Дополнительный параметр text_case преобразует вывод в нужный регистр символов.

UOM - Units Of Measurement - единицы измерения

Примеры:

select uom2text(1, 'тоННа');
  uom2text  
------------
 Одна тонна

select uom2text(16, 'т.', 'upper');
     uom2text     
------------------
 ШЕСТНАДЦАТЬ ТОНН

-- Пример добавления новой валюты. Этот патч добавляет поддержку евро.

Схожим образом можно добавлять килограммы, метры, пр.
Их добавить даже чуть проще - не нужна дробная часть.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published