Featured post

General Ledger Revaluation

General Ledger Revaluation Account balances denominated in foreign currencies are adjusted through the revaluation procedure. Revaluat...

Monday, 18 November 2019

Function for displaying Rupees in Words

Function for displaying Rupees in Words

Function for displaying Rupees in Words
–XXIII. Function for displaying Rupees in Words :
CREATE OR REPLACE FUNCTION to_word_i
(amount IN NUMBER)
RETURN VARCHAR2
AS
v_length INTEGER := 0;
v_num2 VARCHAR2 (50) := NULL;
v_amount VARCHAR2 (50) := TO_CHAR (TRUNC (amount));
v_word VARCHAR2 (4000) := NULL;
v_word1 VARCHAR2 (4000) := NULL;
TYPE myarray IS TABLE OF VARCHAR2 (255);
v_str myarray := myarray (‘ Thousand ‘,
‘ Lakh ‘,
‘ Crore ‘);
BEGIN
IF ((amount = 0) OR (amount IS NULL)) THEN
v_word := ‘zero’;
ELSIF (TO_CHAR (amount) LIKE ‘%.%’) THEN
IF (SUBSTR (amount, INSTR (amount, ‘.’) + 1) > 0) THEN
v_num2 := SUBSTR (amount, INSTR (amount, ‘.’) + 1);
IF (LENGTH (v_num2) < 2) THEN
v_num2 := v_num2 * 10;
END IF;
v_word1 := ‘ AND ‘ || (TO_CHAR (TO_DATE (SUBSTR (v_num2, LENGTH (v_num2) –
1,2), ‘J’),
‘JSP’ ))|| ‘ paise ‘;
v_amount := SUBSTR(amount,1,INSTR (amount, ‘.’)-1);
v_word := TO_CHAR (TO_DATE (SUBSTR (v_amount, LENGTH (v_amount) –
2,3), ‘J’), ‘Jsp’ ) || v_word;
v_amount := SUBSTR (v_amount, 1, LENGTH (v_amount) – 3);
FOR i in 1 .. v_str.COUNT
LOOP
EXIT WHEN (v_amount IS NULL);
v_word := TO_CHAR (TO_DATE (SUBSTR (v_amount, LENGTH (v_amount) –
1,2), ‘J’), ‘Jsp’ ) || v_str (i) || v_word;
v_amount := SUBSTR (v_amount, 1, LENGTH (v_amount) – 2);
END LOOP;
END IF;
ELSE
v_word := TO_CHAR ( TO_DATE ( TO_CHAR ( amount, ‘999999999’) , ‘J’),
‘JSP’);
END IF;
v_word := v_word || ‘ ‘ || v_word1 || ‘ only ‘;
v_word := REPLACE (RTRIM (v_word), ‘ ‘, ‘ ‘);
v_word := REPLACE (RTRIM (v_word), ‘-‘, ‘ ‘);
RETURN INITCAP (v_word);
END to_word_i;

No comments:

Post a Comment

Please review my topic and update your comments

Note: only a member of this blog may post a comment.