DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMW_EVALUATIONS_PKG

Source


1 PACKAGE BODY AMW_EVALUATIONS_PKG as
2 /*$Header: amwevalb.pls 115.8 2004/01/27 02:05:13 kosriniv noship $*/
3 
4 
5 G_PKG_NAME CONSTANT VARCHAR2(30):= 'AMW_EVALUATIONS_PKG';
6 G_FILE_NAME CONSTANT VARCHAR2(12) := 'amwevalb.pls';
7 G_USER_ID NUMBER := FND_GLOBAL.USER_ID;
8 G_LOGIN_ID NUMBER := FND_GLOBAL.CONC_LOGIN_ID;
9 
10 
11 procedure insert_row (
12  p_EVALUATION_SET_ID               IN NUMBER,
13  p_EVALUATION_OBJECT_NAME          IN VARCHAR2,
14  p_EVALUATION_CONTEXT              IN VARCHAR2,
15  p_EVALUATION_TYPE                 IN VARCHAR2,
16  -- 12.31.2003 tsho: for bug 3326347, don't convert varchar2 to date
17  -- p_DATE_EVALUATED                  IN VARCHAR2,
18  p_DATE_EVALUATED                  IN DATE,
19  p_PK1_VALUE                       IN VARCHAR2,
20  p_PK2_VALUE                       IN VARCHAR2,
21  p_PK3_VALUE                       IN VARCHAR2,
22  p_PK4_VALUE                       IN VARCHAR2,
23  p_PK5_VALUE                       IN VARCHAR2,
24  p_ENTERED_BY_ID                   IN NUMBER,
25  p_EXECUTED_BY_ID                  IN NUMBER,
26  p_COMMENTS			   IN VARCHAR2,
27  p_DES_EFF			   IN VARCHAR2,
28  p_OP_EFF			   IN VARCHAR2,
29  p_OV_EFF			   IN VARCHAR2,
30  p_PGMODE			   IN VARCHAR2,
31  p_EVALUATION_ID		   IN NUMBER,
32  p_commit		           in varchar2 := FND_API.G_FALSE,
33  p_validation_level		   IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
34  p_init_msg_list		   IN VARCHAR2 := FND_API.G_FALSE,
35  x_return_status		   out nocopy varchar2,
36  x_msg_count			   out nocopy number,
37  x_msg_data			   out nocopy varchar2,
38  p_EVALUATION_SET_STATUS_CODE          IN VARCHAR2
39 ) is
40 
41   L_API_NAME CONSTANT VARCHAR2(30) := 'insert_row';
42   l_evaluation_id number;
43 
44   begin
45   x_return_status := FND_API.G_RET_STS_SUCCESS;
46   IF FND_API.to_Boolean( p_init_msg_list )  THEN
47      FND_MSG_PUB.initialize;
48   END IF;
49   IF FND_GLOBAL.User_Id IS NULL THEN
50     AMW_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
51     RAISE FND_API.G_EXC_ERROR;
52   END IF;
53 
54 
55 if p_PGMODE = 'CR' then
56 
57 /*****************************************************************************/
58 /********************************CODE FOR CREATE******************************/
59 /*****************************************************************************/
60 
61 insert into amw_evaluations_b (
62  EVALUATION_ID,
63  EVALUATION_SET_ID,
64  EVALUATION_OBJECT_NAME,
65  EVALUATION_CONTEXT,
66  EVALUATION_TYPE,
67  DATE_EVALUATED,
68  PK1_VALUE,
69  PK2_VALUE,
70  ENTERED_BY_ID,
71  EXECUTED_BY_ID,
72  LAST_UPDATE_DATE,
73  LAST_UPDATED_BY,
74  CREATION_DATE,
75  CREATED_BY,
76  LAST_UPDATE_LOGIN,
77  OBJECT_VERSION_NUMBER,
78  EVALUATION_SET_STATUS_CODE
79 )
80 values
81 (
82 AMW_EVALUATION_ID_S.nextval,
83 p_EVALUATION_SET_ID,
84 p_EVALUATION_OBJECT_NAME,
85 p_EVALUATION_CONTEXT,
86 p_EVALUATION_TYPE,
87 -- to_date(p_DATE_EVALUATED, 'DD-MON-YYYY HH24:MI:SS'),
88 -- to_date(p_DATE_EVALUATED),
89 -- 12.31.2003 tsho: for bug 3326347, don't convert varchar2 to date
90 --to_date(p_DATE_EVALUATED, 'DD/MM/YYYY'),
91 p_DATE_EVALUATED,
92 p_PK1_VALUE,
93 p_PK2_VALUE,
94 p_ENTERED_BY_ID,
95 p_EXECUTED_BY_ID,
96 sysdate,
97 G_USER_ID,
98 sysdate,
99 G_USER_ID,
100 G_LOGIN_ID,
101 1,
102 p_EVALUATION_SET_STATUS_CODE
103 )returning EVALUATION_ID into l_evaluation_id;
104 
105 
106  insert into AMW_EVALUATIONS_TL (
107  EVALUATION_ID,
108  COMMENTS,
109  LANGUAGE,
110  SOURCE_LANG,
111  LAST_UPDATE_DATE,
112  LAST_UPDATED_BY,
113  CREATION_DATE,
114  CREATED_BY,
115  LAST_UPDATE_LOGIN,
116  OBJECT_VERSION_NUMBER
117  )	select
118 	l_evaluation_id,
119 	p_comments,
120 	L.LANGUAGE_CODE,
121 	userenv('LANG'),
122 	sysdate,
123 	G_USER_ID,
124 	sysdate,
125 	G_USER_ID,
126 	G_LOGIN_ID,
127 	1
128 	from FND_LANGUAGES L
129 	where L.INSTALLED_FLAG in ('I', 'B')
130 	and not exists
131 		(select NULL
132 		 from AMW_EVALUATIONS_TL T
133 		 where T.EVALUATION_ID = l_evaluation_id
134 		 and T.LANGUAGE = L.LANGUAGE_CODE);
135 
136 
137 if p_EVALUATION_OBJECT_NAME = 'PROCEDURE_CONTROL' then
138 	insert into amw_evaluations_details (
139 	 EVALUATION_ID,
140 	 EVALUATION_COMPONENT,
144 	 CREATED_BY,
141 	 LAST_UPDATE_DATE,
142 	 LAST_UPDATED_BY,
143 	 CREATION_DATE,
145 	 LAST_UPDATE_LOGIN,
146 	 EVALUATION_CONCLUSION )
147 	 values
148 	 (
149 	 l_evaluation_id,
150 	 'DESIGN_EFFECTIVENESS',
151 	 sysdate,
152 	 G_USER_ID,
153 	 sysdate,
154 	 G_USER_ID,
155 	 G_LOGIN_ID,
156 	 p_DES_EFF
157 	 );
158 	insert into amw_evaluations_details (
159 	 EVALUATION_ID,
160 	 EVALUATION_COMPONENT,
161 	 LAST_UPDATE_DATE,
162 	 LAST_UPDATED_BY,
163 	 CREATION_DATE,
164 	 CREATED_BY,
165 	 LAST_UPDATE_LOGIN,
166 	 EVALUATION_CONCLUSION )
167 	 values
168 	 (
169 	 l_evaluation_id,
173 	 sysdate,
170 	 'OPERATING_EFFECTIVENESS',
171 	 sysdate,
172 	 G_USER_ID,
174 	 G_USER_ID,
175 	 G_LOGIN_ID,
176 	 p_OP_EFF
177 	 );
178 end if;
182 	 EVALUATION_COMPONENT,
179 if p_EVALUATION_OBJECT_NAME = 'PROCEDURE' then
180 	insert into amw_evaluations_details (
181 	 EVALUATION_ID,
183 	 LAST_UPDATE_DATE,
184 	 LAST_UPDATED_BY,
185 	 CREATION_DATE,
186 	 CREATED_BY,
187 	 LAST_UPDATE_LOGIN,
188 	 EVALUATION_CONCLUSION )
189 	 values
190 	 (
191 	 l_evaluation_id,
192 	 'OVERALL_EFFECTIVENESS',
193 	 sysdate,
194 	 G_USER_ID,
195 	 sysdate,
196 	 G_USER_ID,
197 	 G_LOGIN_ID,
198 	 p_OV_EFF
199 	 );
200 end if;
201 if p_EVALUATION_OBJECT_NAME = 'ASSESSMENT_COMPONENT' OR p_EVALUATION_OBJECT_NAME = 'ASSESSMENT' then
202 	insert into amw_evaluations_details (
203 	 EVALUATION_ID,
204 	 EVALUATION_COMPONENT,
205 	 LAST_UPDATE_DATE,
206 	 LAST_UPDATED_BY,
207 	 CREATION_DATE,
208 	 CREATED_BY,
209 	 LAST_UPDATE_LOGIN,
210 	 EVALUATION_CONCLUSION )
211 	 values
215 	 sysdate,
212 	 (
213 	 l_evaluation_id,
214 	 'CONCLUSION',
216 	 G_USER_ID,
217 	 sysdate,
218 	 G_USER_ID,
219 	 G_LOGIN_ID,
220 	 p_OV_EFF
221 	 );
222 end if;
223 
224 else -- p_PGMODE = 'CR'
225 
226 /*****************************************************************************/
227 /********************************CODE FOR UPDATE******************************/
228 /*****************************************************************************/
229 
230 update amw_evaluations_b set
231 -- DATE_EVALUATED = to_date(p_DATE_EVALUATED, 'DD-MON-YYYY HH24:MI:SS'),
232 -- DATE_EVALUATED = to_date(p_DATE_EVALUATED),
233 -- 12.31.2003 tsho: for bug 3326347, don't convert varchar2 to date
234 -- DATE_EVALUATED = to_date(p_DATE_EVALUATED,'DD/MM/YYYY'),
235  DATE_EVALUATED = p_DATE_EVALUATED,
236  ENTERED_BY_ID = p_ENTERED_BY_ID,
237  EXECUTED_BY_ID = p_EXECUTED_BY_ID,
238  LAST_UPDATE_DATE = sysdate,
239  LAST_UPDATED_BY = G_USER_ID,
240  CREATION_DATE = sysdate,
241  CREATED_BY = G_USER_ID,
242  LAST_UPDATE_LOGIN = G_LOGIN_ID,
243  OBJECT_VERSION_NUMBER = (OBJECT_VERSION_NUMBER + 1),
244  EVALUATION_SET_STATUS_CODE = p_EVALUATION_SET_STATUS_CODE
245  where EVALUATION_ID = p_EVALUATION_ID;
246 
247 
248 update AMW_EVALUATIONS_TL set
249  COMMENTS = p_comments,
250  LAST_UPDATE_DATE = sysdate,
251  LAST_UPDATED_BY = G_USER_ID,
252  CREATION_DATE = sysdate,
253  CREATED_BY = G_USER_ID,
254  LAST_UPDATE_LOGIN = G_LOGIN_ID,
255  OBJECT_VERSION_NUMBER = (OBJECT_VERSION_NUMBER + 1)
256  where evaluation_id = p_EVALUATION_ID;
257 
258 
259 if p_EVALUATION_OBJECT_NAME = 'PROCEDURE_CONTROL' then
260 
261 	update amw_evaluations_details set
262 	 EVALUATION_CONCLUSION = p_DES_EFF,
263 	 LAST_UPDATE_DATE = sysdate,
264 	 LAST_UPDATED_BY = G_USER_ID,
265 	 CREATION_DATE = sysdate,
266 	 CREATED_BY = G_USER_ID,
267 	 LAST_UPDATE_LOGIN = G_LOGIN_ID
268 	 where evaluation_id = p_evaluation_id
269 	 and EVALUATION_COMPONENT = 'DESIGN_EFFECTIVENESS';
270 
271 
272 	update amw_evaluations_details set
273 	 EVALUATION_CONCLUSION = p_OP_EFF,
274 	 LAST_UPDATE_DATE = sysdate,
275 	 LAST_UPDATED_BY = G_USER_ID,
276 	 CREATION_DATE = sysdate,
277 	 CREATED_BY = G_USER_ID,
278 	 LAST_UPDATE_LOGIN = G_LOGIN_ID
279 	 where evaluation_id = p_evaluation_id
280 	 and EVALUATION_COMPONENT = 'OPERATING_EFFECTIVENESS';
281 end if;
282 
283 if p_EVALUATION_OBJECT_NAME = 'PROCEDURE' then
284 
285 	update amw_evaluations_details set
286 	 EVALUATION_CONCLUSION = p_OV_EFF,
287 	 LAST_UPDATE_DATE = sysdate,
288 	 LAST_UPDATED_BY = G_USER_ID,
289 	 CREATION_DATE = sysdate,
290 	 CREATED_BY = G_USER_ID,
291 	 LAST_UPDATE_LOGIN = G_LOGIN_ID
292 	 where evaluation_id = p_evaluation_id
293 	 and EVALUATION_COMPONENT = 'OVERALL_EFFECTIVENESS';
294 
295 end if;
296 
297 
298 if p_EVALUATION_OBJECT_NAME = 'ASSESSMENT_COMPONENT' OR p_EVALUATION_OBJECT_NAME = 'ASSESSMENT' then
299 
300 	update amw_evaluations_details set
301 	 EVALUATION_CONCLUSION = p_OV_EFF,
302 	 LAST_UPDATE_DATE = sysdate,
303 	 LAST_UPDATED_BY = G_USER_ID,
304 	 CREATION_DATE = sysdate,
305 	 CREATED_BY = G_USER_ID,
306 	 LAST_UPDATE_LOGIN = G_LOGIN_ID
307 	 where evaluation_id = p_evaluation_id
308 	 and EVALUATION_COMPONENT = 'CONCLUSION';
309 
310 end if;
311 
312 end if; -- p_PGMODE = 'UP'
313 
314 
315 exception
316   WHEN FND_API.G_EXC_ERROR THEN
317      ROLLBACK;
318      x_return_status := FND_API.G_RET_STS_ERROR;
319      FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
320 
321   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
322      ROLLBACK;
323      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
324      FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data => x_msg_data);
325 
326   WHEN OTHERS THEN
327      ROLLBACK;
328      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
329      IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
330      THEN
331         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
332      END IF;
333      FND_MSG_PUB.Count_And_Get (p_encoded => FND_API.G_FALSE,p_count => x_msg_count,p_data  => x_msg_data);
334 
335 end insert_row;
336 
337 
338 function get_op_effectiveness(p_evaluation_id IN NUMBER) return varchar2 IS
339 l_ev_conl varchar2(1);
340 begin
341 	select evaluation_conclusion
342 	into l_ev_conl
343 	from amw_evaluations_details
344 	where evaluation_id = p_evaluation_id
345 	and evaluation_component = 'OPERATING_EFFECTIVENESS';
346 
347 	RETURN AMW_Utility_PVT.get_lookup_meaning('AMW_PASS_FAIL', l_ev_conl);
348 end get_op_effectiveness;
349 
350 
351 function get_des_effectiveness(p_evaluation_id IN NUMBER) return varchar2 IS
352 l_ev_conl varchar2(1);
353 begin
354 	select evaluation_conclusion
355 	into l_ev_conl
356 	from amw_evaluations_details
357 	where evaluation_id = p_evaluation_id
358 	and evaluation_component = 'DESIGN_EFFECTIVENESS';
359 
360 	RETURN AMW_Utility_PVT.get_lookup_meaning('AMW_PASS_FAIL', l_ev_conl);
361 end get_des_effectiveness;
362 
363 function get_op_effectiveness_code(p_evaluation_id IN NUMBER) return varchar2 IS
364 l_ev_conl varchar2(1);
365 begin
366 	select evaluation_conclusion
367 	into l_ev_conl
368 	from amw_evaluations_details
369 	where evaluation_id = p_evaluation_id
370 	and evaluation_component = 'OPERATING_EFFECTIVENESS';
371 
372 	RETURN l_ev_conl;
373 end get_op_effectiveness_code;
374 
375 
379 	select evaluation_conclusion
376 function get_des_effectiveness_code(p_evaluation_id IN NUMBER) return varchar2 IS
377 l_ev_conl varchar2(1);
378 begin
380 	into l_ev_conl
381 	from amw_evaluations_details
382 	where evaluation_id = p_evaluation_id
383 	and evaluation_component = 'DESIGN_EFFECTIVENESS';
384 
385 	RETURN l_ev_conl;
386 end get_des_effectiveness_code;
387 
388 function get_line_conclusion(p_evaluation_id IN NUMBER) return varchar2 IS
389 l_ev_conl varchar2(1);
390 begin
391 	select evaluation_conclusion
392 	into l_ev_conl
393 	from amw_evaluations_details
394 	where evaluation_id = p_evaluation_id
395 	and evaluation_component = 'LINE_CONCLUSION';
396 
397 	RETURN AMW_Utility_PVT.get_lookup_meaning('AMW_EVALUATION_CONCLUSION', l_ev_conl);
398 end get_line_conclusion;
399 
400 function get_line_conclusion_code(p_evaluation_id IN NUMBER) return varchar2 IS
401 l_ev_conl varchar2(1);
402 begin
403 	select evaluation_conclusion
404 	into l_ev_conl
405 	from amw_evaluations_details
406 	where evaluation_id = p_evaluation_id
407 	and evaluation_component = 'LINE_COMPONENT';
408 
409 	RETURN l_ev_conl;
410 end get_line_conclusion_code;
411 
412 
413 function isEvalOwnerOrExecutor(p_evaluation_id IN NUMBER, p_user_id IN NUMBER) return varchar2 IS
414 n     number;
415 BEGIN
416    select count(*)
417    into n
418    from  amw_evaluations_vl
419    where evaluation_id = p_evaluation_id
420    and   (executed_by_id = p_user_id or entered_by_id = p_user_id);
421 
422    if n > 0 then
423        return 'Y';
424    else
425        return 'N';
426    end if;
427 end isEvalOwnerOrExecutor;
428 
429 
430 function isEvalExecutorOfAssessment(p_assessment_id IN NUMBER, p_user_id IN NUMBER, p_eval_context IN VARCHAR2) return varchar2 IS
431 n     number;
432 BEGIN
433    select count(*)
434    into n
435    from  amw_evaluations_vl
436    where executed_by_id = p_user_id
437     and evaluation_object_name = 'ASSESSMENT'
438     and evaluation_type = '1'
439     and evaluation_context = p_eval_context
440     and pk1_value = p_assessment_id;
441 
442    if n > 0 then
443        return 'Y';
444    else
445        return 'N';
446    end if;
447 end isEvalExecutorOfAssessment;
448 
449 procedure ADD_LANGUAGE
450 is
451 begin
452   delete from AMW_EVALUATIONS_TL T
453   where not exists
454     (select NULL
455     from AMW_EVALUATIONS_B B
456     where B.EVALUATION_ID = T.EVALUATION_ID
457     );
458 
459   update AMW_EVALUATIONS_TL T set (
460       COMMENTS
461     ) = (select
462       B.COMMENTS
463     from AMW_EVALUATIONS_TL B
464     where B.EVALUATION_ID = T.EVALUATION_ID
465     and B.LANGUAGE = T.SOURCE_LANG)
466   where (
467       T.EVALUATION_ID,
468       T.LANGUAGE
469   ) in (select
470       SUBT.EVALUATION_ID,
471       SUBT.LANGUAGE
472     from AMW_EVALUATIONS_TL SUBB, AMW_EVALUATIONS_TL SUBT
473     where SUBB.EVALUATION_ID = SUBT.EVALUATION_ID
474     and SUBB.LANGUAGE = SUBT.SOURCE_LANG
475     and (SUBB.COMMENTS <> SUBT.COMMENTS
476       or (SUBB.COMMENTS is null and SUBT.COMMENTS is not null)
477       or (SUBB.COMMENTS is not null and SUBT.COMMENTS is null)
478   ));
479 
480   insert into AMW_EVALUATIONS_TL (
481     EVALUATION_ID,
482     COMMENTS,
483     LAST_UPDATE_DATE,
484     LAST_UPDATED_BY,
485     CREATION_DATE,
486     CREATED_BY,
487     LAST_UPDATE_LOGIN,
488     SECURITY_GROUP_ID,
489     OBJECT_VERSION_NUMBER,
490     LANGUAGE,
491     SOURCE_LANG
492   ) select
493     B.EVALUATION_ID,
494     B.COMMENTS,
495     B.LAST_UPDATE_DATE,
496     B.LAST_UPDATED_BY,
497     B.CREATION_DATE,
498     B.CREATED_BY,
499     B.LAST_UPDATE_LOGIN,
500     B.SECURITY_GROUP_ID,
501     B.OBJECT_VERSION_NUMBER,
502     L.LANGUAGE_CODE,
503     B.SOURCE_LANG
504   from AMW_EVALUATIONS_TL B, FND_LANGUAGES L
505   where L.INSTALLED_FLAG in ('I', 'B')
506   and B.LANGUAGE = userenv('LANG')
507   and not exists
508     (select NULL
509     from AMW_EVALUATIONS_TL T
510     where T.EVALUATION_ID = B.EVALUATION_ID
511     and T.LANGUAGE = L.LANGUAGE_CODE);
512 end ADD_LANGUAGE;
513 
514 
515 end AMW_EVALUATIONS_PKG;