DBA Data[Home] [Help]

PACKAGE BODY: APPS.JTS_CONFIG_VERSION_FLOW_PVT

Source


1 PACKAGE BODY JTS_CONFIG_VERSION_FLOW_PVT as
2 /* $Header: jtsvcvfb.pls 115.4 2002/04/10 18:10:19 pkm ship    $ */
3 
4 
5 -- --------------------------------------------------------------------
6 -- Package name     : JTS_CONFIG_VERSION_FLOW_PVT
7 -- Purpose          : Setup Summary Data.
8 -- History          : 22-Feb-02  Sung Ha Huh  Created.
9 -- NOTE             :
10 -- --------------------------------------------------------------------
11 
12 -- Precondition: Complete Flag for all the parents have been set
13 --  		 UPDATE_COMPLETE_FLAGS have been called
14 FUNCTION GET_PERCENT_COMPLETE(p_api_version	IN  NUMBER,
15    			      p_version_id	IN  NUMBER) RETURN NUMBER IS
16   l_completed	NUMBER := 0;
17   l_total	NUMBER := 0;
18 BEGIN
19 
20   SELECT 	COUNT(*)
21   INTO		l_completed
22   FROM	  	jts_config_version_flows vf,
23 	        jts_setup_flows_b sf
24   WHERE		version_id = p_version_id
25   AND		complete_flag = 'Y'
26   AND		sf.flow_id = vf.flow_id
27   AND		sf.has_child_flag = 'N';
28 
29   SELECT 	COUNT(*)
30   INTO		l_total
31   FROM	  	jts_config_version_flows vf,
32 	        jts_setup_flows_b sf
33   WHERE		version_id = p_version_id
34   AND		sf.flow_id = vf.flow_id
35   AND		sf.has_child_flag = 'N';
36 
37   IF l_total = 0 THEN
38      return 0;
39   END IF;
40   return ROUND(l_completed*100/l_total);
41 
42 EXCEPTION
43    WHEN OTHERS THEN
44 	APP_EXCEPTION.RAISE_EXCEPTION;
45 END GET_PERCENT_COMPLETE;
46 
47 -- Updates last_update_date, last_updated_by of a subflow and its -- parent up to one level below the root
48 PROCEDURE UPDATE_FLOW_DETAILS(p_api_version	IN Number,
49    			p_version_id		IN NUMBER,
50 			p_flow_id		IN NUMBER,
51 			p_complete_flag 	IN VARCHAR2) IS
52    l_api_version   CONSTANT NUMBER        := 1.0;
53    l_api_name      CONSTANT VARCHAR2 (30) := 'UPDATE_FLOW_DETAILS';
54    l_flow_id	   JTS_SETUP_FLOWS_B.flow_id%TYPE;
55    l_parent_id	   JTS_SETUP_FLOWS_B.parent_id%TYPE;
56 BEGIN
57 
58    IF NOT fnd_api.compatible_api_call ( l_api_version,
59                                         p_api_version,
60                                         l_api_name,
61                                         G_PKG_NAME
62                                       )
63    THEN
64       RAISE fnd_api.g_exc_unexpected_error;
65    END IF;
66 
67    --propagate the changes up the root for last update fields
68    UPDATE jts_config_version_flows
69    SET    complete_flag = p_complete_flag,
70 	  last_updated_by =  FND_GLOBAL.user_id,
71 	  last_update_login = FND_GLOBAL.user_id,
72 	  last_update_date = sysdate
73    WHERE  version_id = p_version_id
74    AND    flow_id = p_flow_id;
75 
76    l_flow_id := JTS_SETUP_FLOW_PVT.GET_PARENT_FLOW_ID(p_flow_id);
77 
78 -- Propagate last_update information up to the parent right below the root level
79    WHILE (l_flow_id IS NOT NULL) LOOP
80       l_parent_id := JTS_SETUP_FLOW_PVT.GET_PARENT_FLOW_ID(l_flow_id);
81       IF (l_parent_id IS NOT NULL) THEN --not at root level yet
82       	 UPDATE jts_config_version_flows
83       	 SET    last_updated_by =  FND_GLOBAL.user_id,
84 	  	last_update_login = FND_GLOBAL.user_id,
85 		last_update_date = sysdate
86       	 WHERE  version_id = p_version_id
87       	 AND    flow_id = l_flow_id;
88       END IF;
89       l_flow_id := l_parent_id;
90    END LOOP;
91 
92    COMMIT;
93 
94 EXCEPTION
95    WHEN OTHERS THEN
96 	APP_EXCEPTION.RAISE_EXCEPTION;
97 END UPDATE_FLOW_DETAILS;
98 
99 -- Creates Setup Summary data by getting the flow hiearchy
100 -- and inserting with the appropriate flow_id
101 PROCEDURE CREATE_VERSION_FLOWS(p_api_version	IN  NUMBER,
102    				p_version_id	IN  NUMBER,
103 				p_flow_hiearchy IN  JTS_SETUP_FLOW_PVT.Setup_Flow_Tbl_Type)
104 IS
105    l_api_version   	CONSTANT NUMBER        := 1.0;
106    l_api_name      CONSTANT VARCHAR2 (30) := 'CREATE_VERSION_FLOWS';
107 BEGIN
108 
109    IF NOT fnd_api.compatible_api_call ( l_api_version,
110                                         p_api_version,
111                                         l_api_name,
112                                         G_PKG_NAME
113                                       )
114    THEN
115       RAISE fnd_api.g_exc_unexpected_error;
116    END IF;
117 
118    FOR I IN 1..p_flow_hiearchy.count LOOP
119       INSERT INTO jts_config_version_flows(
120       	version_id,
121       	flow_id,
122       	complete_flag,
123 	object_version_number,
124       	creation_date,
125       	created_by,
126       	last_update_date,
127       	last_updated_by,
128       	last_update_login)
129       VALUES(
130       	p_version_id,
131       	p_flow_hiearchy(I).flow_id,
132       	'N',
133 	1,
134       	sysdate,
135     	FND_GLOBAL.user_id, --created_by
136     	sysdate,
137     	FND_GLOBAL.user_id,
138     	FND_GLOBAL.user_id
139       );
140    END LOOP;
141 
142 EXCEPTION
143    WHEN OTHERS THEN
144 	APP_EXCEPTION.RAISE_EXCEPTION;
145 END CREATE_VERSION_FLOWS;
146 
147 --Deletes from jts_config_version_flows
148 PROCEDURE DELETE_VERSION_FLOWS(p_api_version	IN  Number,
149    				p_version_id 	IN  NUMBER) IS
150    l_api_version   CONSTANT NUMBER        := 1.0;
151    l_api_name      CONSTANT VARCHAR2 (30) := 'DELETE_VERSION_FLOWS';
152 BEGIN
153 
154    IF NOT fnd_api.compatible_api_call ( l_api_version,
155                                         p_api_version,
156                                         l_api_name,
157                                         G_PKG_NAME
158                                       )
159    THEN
160       RAISE fnd_api.g_exc_unexpected_error;
161    END IF;
162 
163    DELETE FROM jts_config_version_flows
164    WHERE  version_id = p_version_id;
165 
166 EXCEPTION
167    WHEN NO_DATA_FOUND THEN
168 	NULL;
169    WHEN OTHERS THEN
170 	APP_EXCEPTION.RAISE_EXCEPTION;
171 END DELETE_VERSION_FLOWS;
172 
173 -- Deletes all records from jts_config_version_flows where
174 -- version_id exists for p_config_id in versions table
175 PROCEDURE DELETE_CONFIG_VERSION_FLOWS(p_api_version	IN  Number,
176    					p_config_id 	IN  NUMBER) IS
177    l_api_version   CONSTANT NUMBER        := 1.0;
178    l_api_name      CONSTANT VARCHAR2 (30) := 'DELETE_CONFIG_VERSION_FLOWS';
179    versions_csr    JTS_CONFIG_UTIL_PVT.Versions_Csr_Type;
180    l_version_id	   JTS_CONFIG_VERSION_FLOWS.version_id%TYPE;
181 BEGIN
182 
183    IF NOT fnd_api.compatible_api_call ( l_api_version,
184                                         p_api_version,
185                                         l_api_name,
186                                         G_PKG_NAME
187                                       )
188    THEN
189       RAISE fnd_api.g_exc_unexpected_error;
190    END IF;
191 
192    JTS_CONFIG_UTIL_PVT.GET_VERSIONS_CURSOR(p_api_version,
193 					   p_config_id,
194 					   versions_csr);
195    LOOP
196      FETCH versions_csr INTO l_version_id;
197      EXIT WHEN versions_csr%NOTFOUND;
198 
199      DELETE FROM jts_config_version_flows
200      WHERE  version_id = l_version_id;
201    END LOOP;
202 
203    CLOSE versions_csr;
204 
205 EXCEPTION
206    WHEN NO_DATA_FOUND THEN
207 	NULL;
208    WHEN OTHERS THEN
209 	APP_EXCEPTION.RAISE_EXCEPTION;
210 END DELETE_CONFIG_VERSION_FLOWS;
211 
212 -- Gets all the version flows
213 PROCEDURE GET_VERSION_FLOWS(p_api_version	IN  Number,
214    		p_version_id	IN  NUMBER,
215 		p_flow_tbl	OUT NOCOPY Version_Flow_Tbl_Type) IS
216    l_api_version   CONSTANT NUMBER        := 1.0;
217    l_api_name      CONSTANT VARCHAR2 (30) := 'GET_VERSION_FLOWS';
218    i		   NUMBER := 1;
219 CURSOR vflows_csr IS
220 	SELECT 	 version_id, flow_id, v.complete_flag,
221 		 v.creation_date, v.created_by, v.last_update_date, v.last_updated_by, v.last_update_login,
222 		 u1.user_name, u2.user_name
223 	FROM 	 jts_config_version_flows v,
224 		 fnd_user u1,
225 		 fnd_user u2
226 	WHERE	 version_id = p_version_id
227 	AND	 u1.user_id (+) = v.created_by
228 	AND	 u2.user_id (+) = v.last_updated_by
229 	ORDER BY flow_id;
230 BEGIN
231 
232    IF NOT fnd_api.compatible_api_call ( l_api_version,
233                                         p_api_version,
234                                         l_api_name,
235                                         G_PKG_NAME
236                                       )
237    THEN
238       RAISE fnd_api.g_exc_unexpected_error;
239    END IF;
240 
241    OPEN vflows_csr;
242    i:=1;
243    LOOP
244      FETCH vflows_csr
245      INTO  p_flow_tbl(i).version_id,
246            p_flow_tbl(i).flow_id,
247            p_flow_tbl(i).complete_flag,
248            p_flow_tbl(i).creation_date,
249            p_flow_tbl(i).created_by,
250            p_flow_tbl(i).last_update_date,
251            p_flow_tbl(i).last_updated_by,
252            p_flow_tbl(i).last_update_login,
253            p_flow_tbl(i).created_by_name,
254            p_flow_tbl(i).last_updated_by_name;
255      EXIT WHEN vflows_csr%NOTFOUND;
256 
257      i := i+1;
258    END LOOP;
259 
260    CLOSE vflows_csr;
261 
262 EXCEPTION
263    WHEN OTHERS THEN
264 	APP_EXCEPTION.RAISE_EXCEPTION;
265 END GET_VERSION_FLOWS;
266 
267 
268 END JTS_CONFIG_VERSION_FLOW_PVT;