Featured post

Functionality of Segment Value Inheritance ESS Process

  The Segment Value Inheritance process simplifies the maintenance of the chart of accounts. When the characteristics of values in the value...

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.