[Home] [Help]
PACKAGE BODY: APPS.IEU_UWQ_UTIL
Source
1 PACKAGE BODY IEU_UWQ_UTIL AS
2 /* $Header: IEUVUTLB.pls 120.0 2005/06/02 15:59:05 appldev noship $ */
3
4 PROCEDURE ADD_DATES
5 (l_start_date in DATE,
6 l_time_value IN NUMBER,
7 l_time_uom IN VARCHAR2,
8 l_final_date OUT NOCOPY DATE) IS
9
10
11 l_curr_date VARCHAR2(25);
12 l_curr_time VARCHAR2(25);
13 l_curr_hh NUMBER := 0;
14 l_curr_mi NUMBER := 0;
15 l_curr_ss NUMBER := 0;
16 l_hh NUMBER := 0;
17 l_mi NUMBER := 0;
18 l_ss NUMBER := 0;
19
20 BEGIN
21
22 SELECT to_char(l_start_date, 'hh24:mi:ss')
23 INTO l_curr_time
24 FROM dual;
25 l_curr_ss := substr(l_curr_time, instr(l_curr_time, ':', 1, 2) + 1,
26 length(l_curr_time)- instr(l_curr_time, ':', 1, 2) );
27 l_curr_mi := substr(l_curr_time, instr(l_curr_time, ':', 1, 1) + 1,
28 (instr(l_curr_time, ':', 1, 2) - instr(l_curr_time, ':', 1, 1) - 1 ) );
29 l_curr_hh := substr(l_curr_time, instr(l_curr_time, ' ', 1, 1) + 1,
30 (instr(l_curr_time, ':', 1, 1) - instr(l_curr_time, ' ', 1, 1) - 1) );
31
32 IF (l_time_uom = 'HH')
33 THEN
34
35 l_ss := l_curr_ss;
36 l_mi := l_curr_mi;
37 l_hh := l_curr_hh + l_time_value;
38 IF (l_hh > 24)
39 THEN
40 l_curr_date := to_char((l_start_date + floor(l_hh/24)), 'dd-mon-yyyy');
41 l_hh := l_hh - (floor(l_hh/24)*24);
42 ELSE
43 l_curr_date := to_char(l_start_date, 'dd-mon-yyyy');
44 END IF;
45
46 l_curr_date := l_curr_date || ' '||l_hh||':'||l_mi||':'||l_ss;
47 -- l_final_date := to_date(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
48 l_final_date := FND_DATE.STRING_TO_DATE(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
49
50 ELSIF ( l_time_uom = 'MI')
51 THEN
52 l_ss := l_curr_ss;
53 l_mi := l_curr_mi + l_time_value;
54 IF (l_mi > 60)
55 THEN
56 l_hh := l_curr_hh + floor(l_mi/60);
57 l_mi := l_mi - (floor(l_mi/60)*60);
58 ELSE
59 l_hh := l_curr_hh;
60 END IF;
61
62 IF (l_hh > 24)
63 THEN
64 l_curr_date := to_char((l_start_date + floor(l_hh/24)), 'dd-mon-yyyy');
65 l_hh := l_hh - (floor(l_hh/24)*24);
66 ELSE
67 l_curr_date := to_char(l_start_date, 'dd-mon-yyyy');
68 END IF;
69
70 l_curr_date := l_curr_date || ' '||l_hh||':'||l_mi||':'||l_ss;
71 -- l_final_date := to_date(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
72 l_final_date := FND_DATE.STRING_TO_DATE(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
73
74 ELSIF ( l_time_uom = 'SS')
75 THEN
76
77 l_ss := l_curr_ss + l_time_value;
78 IF (l_ss > 60)
79 THEN
80 l_mi := l_curr_mi + floor(l_ss/60);
81 l_ss := l_ss - (floor(l_ss/60)*60);
82 ELSE
83 l_mi := l_curr_mi;
84 END IF;
85 IF (l_mi > 60)
86 THEN
87 l_hh := l_curr_hh + floor(l_mi/60);
88 l_mi := l_mi - (floor(l_mi/60)*60);
89 ELSE
90 l_hh := l_curr_hh;
91 END IF;
92
93 IF (l_hh > 24)
94 THEN
95 l_curr_date := to_char((l_start_date + floor(l_curr_date/24)), 'dd-mon-yyyy');
96 l_hh := l_hh - (floor(l_curr_date/24)*24);
97 ELSE
98 l_curr_date := to_char(l_start_date,'dd-mon-yyyy');
99 END IF;
100
101 l_curr_date := l_curr_date || ' '||l_hh||':'||l_mi||':'||l_ss;
102 -- l_final_date := to_date(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
103 l_final_date := FND_DATE.STRING_TO_DATE(l_curr_date, 'dd-mon-yyyy hh24:mi:ss');
104
105 ELSIF ( l_time_uom = 'DAYS' )
106 THEN
107 l_final_date := l_start_date + l_time_value;
108
109 ELSIF ( l_time_uom = 'WEEKS')
110 THEN
111 l_final_date := l_start_date + (l_time_value * 7);
112
113 ELSIF ( l_time_uom = 'MONTHS' )
114 THEN
115 l_final_date := ADD_MONTHS(l_start_date, l_time_value);
116
117 END IF;
118
119 END ADD_DATES;
120
121 END IEU_UWQ_UTIL;
122