74: million number := power(10,6);
75: billion number := power(10,9);
76:
77: begin
78: --hr_utility.trace_on(null,'AMT');
79:
80: hr_utility.trace('LANGUAGE '||p_language);
81: hr_utility.trace('ABS_NUM '||abs_num);
82:
76:
77: begin
78: --hr_utility.trace_on(null,'AMT');
79:
80: hr_utility.trace('LANGUAGE '||p_language);
81: hr_utility.trace('ABS_NUM '||abs_num);
82:
83: select substr(abs_num,1,instr(abs_num,'.'))
84: into numeral
77: begin
78: --hr_utility.trace_on(null,'AMT');
79:
80: hr_utility.trace('LANGUAGE '||p_language);
81: hr_utility.trace('ABS_NUM '||abs_num);
82:
83: select substr(abs_num,1,instr(abs_num,'.'))
84: into numeral
85: from dual;
84: into numeral
85: from dual;
86:
87:
88: hr_utility.trace('NUMERAL '||to_char(numeral));
89:
90: if numeral >= power(10,max_digit) then
91: raise number_too_large;
92: end if;
105: end if;
106:
107: cents := to_char( (abs_num - numeral),'9.99' );
108: cents_seg := substr(cents,instr(cents,'.')+1,2);
109: hr_utility.trace('CENTS NUMERAL '||cents_seg);
110: hr_utility.trace('BILLION NUMERAL '||to_char(numeral));
111: billion_seg := to_char(trunc(numeral/billion));
112: hr_utility.trace('BILLION '||billion_seg);
113: numeral := numeral - (trunc(numeral/billion) * billion);
106:
107: cents := to_char( (abs_num - numeral),'9.99' );
108: cents_seg := substr(cents,instr(cents,'.')+1,2);
109: hr_utility.trace('CENTS NUMERAL '||cents_seg);
110: hr_utility.trace('BILLION NUMERAL '||to_char(numeral));
111: billion_seg := to_char(trunc(numeral/billion));
112: hr_utility.trace('BILLION '||billion_seg);
113: numeral := numeral - (trunc(numeral/billion) * billion);
114: hr_utility.trace('MILLION NUMERAL '||to_char(numeral));
108: cents_seg := substr(cents,instr(cents,'.')+1,2);
109: hr_utility.trace('CENTS NUMERAL '||cents_seg);
110: hr_utility.trace('BILLION NUMERAL '||to_char(numeral));
111: billion_seg := to_char(trunc(numeral/billion));
112: hr_utility.trace('BILLION '||billion_seg);
113: numeral := numeral - (trunc(numeral/billion) * billion);
114: hr_utility.trace('MILLION NUMERAL '||to_char(numeral));
115: million_seg := to_char(trunc(numeral/million));
116: hr_utility.trace('MILLION '||million_seg);
110: hr_utility.trace('BILLION NUMERAL '||to_char(numeral));
111: billion_seg := to_char(trunc(numeral/billion));
112: hr_utility.trace('BILLION '||billion_seg);
113: numeral := numeral - (trunc(numeral/billion) * billion);
114: hr_utility.trace('MILLION NUMERAL '||to_char(numeral));
115: million_seg := to_char(trunc(numeral/million));
116: hr_utility.trace('MILLION '||million_seg);
117: numeral := numeral - (trunc(numeral/million) * million);
118: hr_utility.trace('THOUSAND NUMERAL '||to_char(numeral));
112: hr_utility.trace('BILLION '||billion_seg);
113: numeral := numeral - (trunc(numeral/billion) * billion);
114: hr_utility.trace('MILLION NUMERAL '||to_char(numeral));
115: million_seg := to_char(trunc(numeral/million));
116: hr_utility.trace('MILLION '||million_seg);
117: numeral := numeral - (trunc(numeral/million) * million);
118: hr_utility.trace('THOUSAND NUMERAL '||to_char(numeral));
119: thousand_seg := to_char(trunc(numeral/thousand));
120: hr_utility.trace('THOUSAND '||thousand_seg);
114: hr_utility.trace('MILLION NUMERAL '||to_char(numeral));
115: million_seg := to_char(trunc(numeral/million));
116: hr_utility.trace('MILLION '||million_seg);
117: numeral := numeral - (trunc(numeral/million) * million);
118: hr_utility.trace('THOUSAND NUMERAL '||to_char(numeral));
119: thousand_seg := to_char(trunc(numeral/thousand));
120: hr_utility.trace('THOUSAND '||thousand_seg);
121: units_seg := numeral - (trunc(numeral/thousand) * thousand);
122: hr_utility.trace('UNITS NUMERAL '||units_seg);
116: hr_utility.trace('MILLION '||million_seg);
117: numeral := numeral - (trunc(numeral/million) * million);
118: hr_utility.trace('THOUSAND NUMERAL '||to_char(numeral));
119: thousand_seg := to_char(trunc(numeral/thousand));
120: hr_utility.trace('THOUSAND '||thousand_seg);
121: units_seg := numeral - (trunc(numeral/thousand) * thousand);
122: hr_utility.trace('UNITS NUMERAL '||units_seg);
123: hr_utility.trace('UNITS '||units_seg);
124: --units_seg := to_char(mod(numeral,thousand));
118: hr_utility.trace('THOUSAND NUMERAL '||to_char(numeral));
119: thousand_seg := to_char(trunc(numeral/thousand));
120: hr_utility.trace('THOUSAND '||thousand_seg);
121: units_seg := numeral - (trunc(numeral/thousand) * thousand);
122: hr_utility.trace('UNITS NUMERAL '||units_seg);
123: hr_utility.trace('UNITS '||units_seg);
124: --units_seg := to_char(mod(numeral,thousand));
125:
126:
119: thousand_seg := to_char(trunc(numeral/thousand));
120: hr_utility.trace('THOUSAND '||thousand_seg);
121: units_seg := numeral - (trunc(numeral/thousand) * thousand);
122: hr_utility.trace('UNITS NUMERAL '||units_seg);
123: hr_utility.trace('UNITS '||units_seg);
124: --units_seg := to_char(mod(numeral,thousand));
125:
126:
127: select flv9.meaning,
249: number_text := number_text || ' '||dollars_lookup||' '||and_lookup ||
250: ' '||cents_seg||' '||cents_lookup;
251: end if;
252:
253: --hr_utility.trace_off;
254: return(number_text);
255:
256: exception
257: when number_too_large then