1 PACKAGE BODY AHL_FMP_MR_HEADER_PVT AS
2 /* $Header: AHLVMRHB.pls 120.9.12020000.2 2012/12/13 05:03:22 shnatu ship $ */
3
4 G_PKG_NAME VARCHAR2(30):='AHL_FMP_MR_HEADER_PVT';
5 G_APPLN_USAGE VARCHAR2(30):=RTRIM(LTRIM(FND_PROFILE.VALUE('AHL_APPLN_USAGE')));
6 G_DEBUG VARCHAR2(1) :=AHL_DEBUG_PUB.is_log_enabled;
7
8 PROCEDURE DEFAULT_MISSING_ATTRIBS
9 (p_x_mr_header_rec IN OUT NOCOPY AHL_FMP_MR_HEADER_PVT.MR_HEADER_REC)
10 AS
11 CURSOR CurHeaderDet(c_mr_header_id NUMBER) IS
12 SELECT MR_HEADER_ID,
13 OBJECT_VERSION_NUMBER,
14 LAST_UPDATE_DATE,
15 LAST_UPDATED_BY,
16 CREATION_DATE,
17 CREATED_BY,
18 LAST_UPDATE_LOGIN,
19 TITLE,
20 VERSION_NUMBER,
21 -- pdoki, Following attrs are obsoleted after SBE Project, Start.
22 PRECEDING_MR_HEADER_ID,
23 PRECEDING_MR_TITLE,
24 PRECEDING_MR_REVISION,
25 -- pdoki, SBE Project End.
26 CATEGORY_CODE,
27 CATEGORY,
28 SERVICE_TYPE_CODE,
29 SERVICE_TYPE,
30 MR_STATUS_CODE,
31 STATUS,
32 IMPLEMENT_STATUS_CODE,
33 IMPLEMENT_STATUS,
34 REPETITIVE_FLAG,
35 REPETITIVE,
36 SHOW_REPETITIVE_CODE,
37 SHOW_REPETITIVE,
38 WHICHEVER_FIRST_CODE,
39 WHICHEVER_FIRST,
40 COPY_ACCOMPLISHMENT_FLAG,
41 COPY_ACCOMPLISHMENT,
42 PROGRAM_TYPE_CODE,
43 PROGRAM_TYPE,
44 PROGRAM_SUBTYPE_CODE,
45 PROGRAM_SUBTYPE,
46 EFFECTIVE_FROM,
47 EFFECTIVE_TO,
48 REVISION,
49 DESCRIPTION,
50 COMMENTS,
51 SERVICE_REQUEST_TEMPLATE_ID,
52 TYPE_CODE,
53 TYPE,
54 DOWN_TIME,
55 --CHANDANK, 29-Sep-2010, added supplier warranty Name and ID for supplier warranty project
56 WARRANTY_TEMPLATE_ID,
57 WARRANTY_TEMPLATE_NAME,
58 UOM_CODE,
59 UOM,
60 SPACE_CATEGORY_CODE,
61 SPACE_CATEGORY,
62 --sareepar service category rank
63 SERVICE_CATEGORY_RANK,
64 BILLING_ITEM_ID,
65 BILLING_ORG_ID,
66 BILLING_ITEM,
67 QA_INSPECTION_TYPE_CODE,
68 QA_INSPECTION_TYPE,
69 ATTRIBUTE_CATEGORY,
70 ATTRIBUTE1,
71 ATTRIBUTE2,
72 ATTRIBUTE3,
73 ATTRIBUTE4,
74 ATTRIBUTE5,
75 ATTRIBUTE6,
76 ATTRIBUTE7,
77 ATTRIBUTE8,
78 ATTRIBUTE9,
79 ATTRIBUTE10,
80 ATTRIBUTE11,
81 ATTRIBUTE12,
82 ATTRIBUTE13,
83 ATTRIBUTE14,
84 ATTRIBUTE15,
85 APPLICATION_USG_CODE,
86 AUTO_SIGNOFF_FLAG,
87 COPY_INIT_ACCOMPL_FLAG,
88 COPY_DEFERRALS_FLAG
89 FROM AHL_MR_HEADERS_V
90 WHERE MR_HEADER_ID=c_mr_header_id;
91
92 l_MR_header_rec CurHeaderDet%ROWTYPE;
93 BEGIN
94 IF G_DEBUG='Y' THEN
95 AHL_DEBUG_PUB.enable_debug;
96 END IF;
97
98 OPEN CurHeaderDet(p_x_mr_header_rec.mr_header_id);
99 FETCH CurHeaderDet INTO l_mr_header_rec;
100 CLOSE CurHeaderDet;
101
102 IF p_x_mr_header_rec.OBJECT_VERSION_NUMBER= FND_API.G_MISS_NUM
103 THEN
104 p_x_mr_header_rec.OBJECT_VERSION_NUMBER:=NULL;
105 ELSE
106 p_x_mr_header_rec.OBJECT_VERSION_NUMBER:=l_mr_header_rec.OBJECT_VERSION_NUMBER;
107 END IF;
108
109 IF p_x_mr_header_rec.TITLE= FND_API.G_MISS_CHAR
110 THEN
111 p_x_mr_header_rec.TITLE:=NULL;
112 ELSIF p_x_mr_header_rec.TITLE IS NULL
113 THEN
114 p_x_mr_header_rec.TITLE:=l_mr_header_rec.TITLE;
115 END IF;
116
117 IF p_x_mr_header_rec.REVISION= FND_API.G_MISS_CHAR
118 THEN
119 p_x_mr_header_rec.REVISION:=NULL;
120 ELSIF p_x_mr_header_rec.REVISION IS NULL
121 THEN
122 p_x_mr_header_rec.REVISION:=l_mr_header_Rec.REVISION;
123 END IF;
124 IF p_x_mr_header_rec.VERSION_NUMBER= FND_API.G_MISS_NUM
125 THEN
126 p_x_mr_header_rec.VERSION_NUMBER:=NULL;
127 ELSIF p_x_mr_header_rec.VERSION_NUMBER IS NULL
128 THEN
129 p_x_mr_header_rec.VERSION_NUMBER:=l_mr_header_Rec.VERSION_NUMBER;
130 END IF;
131
132 IF p_x_mr_header_rec.CATEGORY_CODE= FND_API.G_MISS_CHAR
133 THEN
134 p_x_mr_header_rec.CATEGORY_CODE:=NULL;
135 ELSIF p_x_mr_header_rec.CATEGORY_CODE IS NULL
136 THEN
137 p_x_mr_header_rec.CATEGORY_CODE
138 :=l_mr_header_Rec.CATEGORY_CODE;
139 END IF;
140 IF p_x_mr_header_rec.CATEGORY= FND_API.G_MISS_CHAR
141 THEN
142 p_x_mr_header_rec.CATEGORY:=NULL;
143 ELSIF p_x_mr_header_rec.CATEGORY IS NULL
144 THEN
145 p_x_mr_header_rec.CATEGORY
146 :=l_mr_header_Rec.CATEGORY;
147 END IF;
148
149 IF p_x_mr_header_rec.PROGRAM_TYPE_CODE= FND_API.G_MISS_CHAR
150 THEN
151 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=NULL;
152 ELSIF p_x_mr_header_rec.PROGRAM_TYPE_CODE IS NULL
153 THEN
154 p_x_mr_header_rec.PROGRAM_TYPE_CODE
155 :=l_mr_header_Rec.PROGRAM_TYPE_CODE;
156 END IF;
157 IF p_x_mr_header_rec.PROGRAM_TYPE= FND_API.G_MISS_CHAR
158 THEN
159 p_x_mr_header_rec.PROGRAM_TYPE:=NULL;
160 ELSIF p_x_mr_header_rec.PROGRAM_TYPE IS NULL
161 THEN
162 p_x_mr_header_rec.PROGRAM_TYPE
163 :=l_mr_header_Rec.PROGRAM_TYPE;
164 END IF;
165
166 IF p_x_mr_header_rec.PROGRAM_SUBTYPE= FND_API.G_MISS_CHAR
167 THEN
168 p_x_mr_header_rec.PROGRAM_SUBTYPE:=NULL;
169 ELSIF p_x_mr_header_rec.PROGRAM_SUBTYPE IS NULL
170 THEN
171 p_x_mr_header_rec.PROGRAM_SUBTYPE:=
172 l_mr_header_Rec.PROGRAM_SUBTYPE;
173 END IF;
174
175 IF p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE= FND_API.G_MISS_CHAR
176 THEN
177 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=NULL;
178 ELSIF p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE IS NULL
179 THEN
180 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=l_mr_header_Rec.PROGRAM_SUBTYPE_CODE;
181 END IF;
182
183
184 IF p_x_mr_header_rec.SERVICE_TYPE_CODE= FND_API.G_MISS_CHAR
185 THEN
186 p_x_mr_header_rec.SERVICE_TYPE_CODE:=NULL;
187 ELSIF p_x_mr_header_rec.SERVICE_TYPE_CODE IS NULL
188 THEN
189 p_x_mr_header_rec.SERVICE_TYPE_CODE:=l_mr_header_Rec.SERVICE_TYPE_CODE;
190 END IF;
191 IF p_x_mr_header_rec.SERVICE_TYPE= FND_API.G_MISS_CHAR
192 THEN
193 p_x_mr_header_rec.SERVICE_TYPE:=NULL;
194 ELSIF p_x_mr_header_rec.SERVICE_TYPE IS NULL
195 THEN
196 p_x_mr_header_rec.SERVICE_TYPE:=l_mr_header_Rec.SERVICE_TYPE;
197 END IF;
198
199 IF p_x_mr_header_rec.MR_STATUS_CODE= FND_API.G_MISS_CHAR
200 THEN
201 p_x_mr_header_rec.MR_STATUS_CODE:=NULL;
202 ELSIF p_x_mr_header_rec.MR_STATUS_CODE IS NULL
203 THEN
204 p_x_mr_header_rec.MR_STATUS_CODE:=l_mr_header_Rec.MR_STATUS_CODE;
205 END IF;
206 IF p_x_mr_header_rec.IMPLEMENT_STATUS_CODE= FND_API.G_MISS_CHAR
207 THEN
208 p_x_mr_header_rec.IMPLEMENT_STATUS_CODE:=NULL;
209 ELSIF p_x_mr_header_rec.IMPLEMENT_STATUS_CODE IS NULL
210 THEN
211 p_x_mr_header_rec.IMPLEMENT_STATUS_CODE:=l_mr_header_Rec.IMPLEMENT_STATUS_CODE;
212 END IF;
213 IF p_x_mr_header_rec.IMPLEMENT_STATUS= FND_API.G_MISS_CHAR
214 THEN
215 p_x_mr_header_rec.IMPLEMENT_STATUS:=NULL;
216 ELSIF p_x_mr_header_rec.IMPLEMENT_STATUS IS NULL
217 THEN
218 p_x_mr_header_rec.IMPLEMENT_STATUS
219 :=l_mr_header_Rec.IMPLEMENT_STATUS;
220 END IF;
221 IF p_x_mr_header_rec.EFFECTIVE_FROM=FND_API.G_MISS_DATE
222 THEN
223 p_x_mr_header_rec.EFFECTIVE_FROM:=NULL;
224 ELSIF p_x_mr_header_rec.EFFECTIVE_FROM IS NULL
225 THEN
226 p_x_mr_header_rec.EFFECTIVE_FROM:=l_mr_header_Rec.EFFECTIVE_FROM;
227 END IF;
228 IF p_x_mr_header_rec.EFFECTIVE_TO=FND_API.G_MISS_DATE
229 THEN
230 p_x_mr_header_rec.EFFECTIVE_TO:=NULL;
231 ELSIF p_x_mr_header_rec.EFFECTIVE_TO IS NULL
232 THEN
233 p_x_mr_header_rec.EFFECTIVE_TO:=l_mr_header_Rec.EFFECTIVE_TO;
234 END IF;
235 IF p_x_mr_header_rec.REPETITIVE_FLAG= FND_API.G_MISS_CHAR
236 THEN
237 p_x_mr_header_rec.REPETITIVE_FLAG:=NULL;
238 ELSIF p_x_mr_header_rec.REPETITIVE_FLAG IS NULL
239 THEN
240 p_x_mr_header_rec.REPETITIVE_FLAG:=l_mr_header_Rec.REPETITIVE_FLAG;
241 END IF;
242 IF p_x_mr_header_rec.REPETITIVE= FND_API.G_MISS_CHAR
243 THEN
244 p_x_mr_header_rec.REPETITIVE:=NULL;
245 ELSIF p_x_mr_header_rec.REPETITIVE IS NULL
246 THEN
247 p_x_mr_header_rec.REPETITIVE:=l_mr_header_Rec.REPETITIVE;
248 END IF;
249
250 IF p_x_mr_header_rec.SHOW_REPETITIVE_CODE= FND_API.G_MISS_CHAR
251 THEN
252 p_x_mr_header_rec.SHOW_REPETITIVE_CODE:=NULL;
253 ELSIF p_x_mr_header_rec.SHOW_REPETITIVE_CODE IS NULL
254 THEN
255 p_x_mr_header_rec.SHOW_REPETITIVE_CODE:=l_mr_header_Rec.SHOW_REPETITIVE_CODE;
256 END IF;
257
258 IF p_x_mr_header_rec.SHOW_REPETITIVE= FND_API.G_MISS_CHAR
259 THEN
260 p_x_mr_header_rec.SHOW_REPETITIVE:=NULL;
261 ELSIF p_x_mr_header_rec.SHOW_REPETITIVE IS NULL
262 THEN
263 p_x_mr_header_rec.SHOW_REPETITIVE:=l_mr_header_Rec.SHOW_REPETITIVE;
264 END IF;
265 IF p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG= FND_API.G_MISS_CHAR
266 THEN
267 p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG:=NULL;
268 ELSIF p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG IS NULL
269 THEN
270 p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG:=l_mr_header_Rec.COPY_ACCOMPLISHMENT_FLAG;
271 END IF;
272
273 IF p_x_mr_header_rec.COPY_ACCOMPLISHMENT= FND_API.G_MISS_CHAR
274 THEN
275 p_x_mr_header_rec.COPY_ACCOMPLISHMENT:=NULL;
276 ELSIF p_x_mr_header_rec.COPY_ACCOMPLISHMENT IS NULL
277 THEN
278 p_x_mr_header_rec.COPY_ACCOMPLISHMENT:=l_mr_header_Rec.COPY_ACCOMPLISHMENT;
279 END IF;
280
281 IF p_x_mr_header_rec.WHICHEVER_FIRST_CODE= FND_API.G_MISS_CHAR
282 THEN
283 p_x_mr_header_rec.WHICHEVER_FIRST_CODE:=NULL;
284 ELSIF p_x_mr_header_rec.WHICHEVER_FIRST_CODE IS NULL
285 THEN
286 p_x_mr_header_rec.WHICHEVER_FIRST_CODE:=l_mr_header_Rec.WHICHEVER_FIRST_CODE;
287 END IF;
288
289 IF p_x_mr_header_rec.WHICHEVER_FIRST= FND_API.G_MISS_CHAR
290 THEN
291 p_x_mr_header_rec.WHICHEVER_FIRST:=NULL;
292 ELSIF p_x_mr_header_rec.WHICHEVER_FIRST IS NULL
293 THEN
294 p_x_mr_header_rec.WHICHEVER_FIRST:=l_mr_header_Rec.WHICHEVER_FIRST;
295 END IF;
296
297 -- pdoki, Following attrs are obsoleted after SBE Project, Start.
298 IF p_x_mr_header_rec.PRECEDING_MR_HEADER_ID= FND_API.G_MISS_NUM
299 THEN
300 p_x_mr_header_rec.PRECEDING_MR_HEADER_ID:=NULL;
301 ELSIF p_x_mr_header_rec.PRECEDING_MR_HEADER_ID IS NULL
302 THEN
303 p_x_mr_header_rec.PRECEDING_MR_HEADER_ID:=l_mr_header_Rec.PRECEDING_MR_HEADER_ID;
304 END IF;
305
306 IF p_x_mr_header_rec.PRECEDING_MR_TITLE= FND_API.G_MISS_CHAR
307 THEN
308 p_x_mr_header_rec.PRECEDING_MR_TITLE:=NULL;
309 ELSIF p_x_mr_header_rec.PRECEDING_MR_TITLE IS NULL
310 THEN
311 p_x_mr_header_rec.PRECEDING_MR_TITLE:=l_mr_header_Rec.PRECEDING_MR_TITLE;
312 END IF;
313
314 IF p_x_mr_header_rec.PRECEDING_MR_REVISION= FND_API.G_MISS_CHAR
315 THEN
316 p_x_mr_header_rec.PRECEDING_MR_REVISION:=NULL;
317 ELSIF p_x_mr_header_rec.PRECEDING_MR_REVISION IS NULL
318 THEN
319 p_x_mr_header_rec.PRECEDING_MR_REVISION:=l_mr_header_Rec.PRECEDING_MR_REVISION;
320 END IF;
321 -- pdoki, SBE Project, End.
322
323 IF p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID= FND_API.G_MISS_NUM
324 THEN
325 p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID:=NULL;
326 ELSIF p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID IS NULL
327 THEN
328 p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID:=l_mr_header_Rec.SERVICE_REQUEST_TEMPLATE_ID;
329 END IF;
330
331 IF p_x_mr_header_rec.DOWN_TIME= FND_API.G_MISS_NUM
332 THEN
333 p_x_mr_header_rec.DOWN_TIME:=NULL;
334 ELSIF p_x_mr_header_rec.DOWN_TIME IS NULL
335 THEN
336 p_x_mr_header_rec.DOWN_TIME:=l_mr_header_Rec.DOWN_TIME;
337 END IF;
338
339 --CHANDANK, 29-Sep-2010, added supplier warranty name and ID for supplier warranty project
340 IF p_x_mr_header_rec.WARRANTY_TEMPLATE_ID= FND_API.G_MISS_NUM
341 THEN
342 p_x_mr_header_rec.WARRANTY_TEMPLATE_ID:=NULL;
343 ELSIF p_x_mr_header_rec.WARRANTY_TEMPLATE_ID IS NULL
344 THEN
345 p_x_mr_header_rec.WARRANTY_TEMPLATE_ID:=l_mr_header_Rec.WARRANTY_TEMPLATE_ID;
346 END IF;
347
348 IF p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME= FND_API.G_MISS_CHAR
349 THEN
350 p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME:=NULL;
351 ELSIF p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME IS NULL
352 THEN
353 p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME:=l_mr_header_Rec.WARRANTY_TEMPLATE_NAME;
354 END IF;
355 --CHANDANK changes ends for supplier warranty project
356
357 IF p_x_mr_header_rec.TYPE_CODE= FND_API.G_MISS_CHAR
358 THEN
359 p_x_mr_header_rec.TYPE_CODE:=NULL;
360 ELSIF p_x_mr_header_rec.TYPE_CODE IS NULL
361 THEN
362 p_x_mr_header_rec.TYPE_CODE:=l_mr_header_Rec.TYPE_CODE;
363 END IF;
364
365 IF p_x_mr_header_rec.AUTO_SIGNOFF_FLAG= FND_API.G_MISS_CHAR
366 THEN
367 p_x_mr_header_rec.AUTO_SIGNOFF_FLAG:=NULL;
368 ELSIF p_x_mr_header_rec.AUTO_SIGNOFF_FLAG IS NULL
369 THEN
370 p_x_mr_header_rec.AUTO_SIGNOFF_FLAG:=l_mr_header_Rec.AUTO_SIGNOFF_FLAG;
371 END IF;
372
373 IF p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG= FND_API.G_MISS_CHAR
374 THEN
375 p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG:=NULL;
376 ELSIF p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG IS NULL
377 THEN
378 p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG:=l_mr_header_Rec.COPY_INIT_ACCOMPL_FLAG;
379 END IF;
380
381 IF p_x_mr_header_rec.COPY_DEFERRALS_FLAG= FND_API.G_MISS_CHAR
382 THEN
383 p_x_mr_header_rec.COPY_DEFERRALS_FLAG:=NULL;
384 ELSIF p_x_mr_header_rec.COPY_DEFERRALS_FLAG IS NULL
385 THEN
386 p_x_mr_header_rec.COPY_DEFERRALS_FLAG:=l_mr_header_Rec.COPY_DEFERRALS_FLAG;
387 END IF;
388
389 IF p_x_mr_header_rec.UOM_CODE= FND_API.G_MISS_CHAR
390 THEN
391 p_x_mr_header_rec.UOM_CODE:=NULL;
392 ELSIF p_x_mr_header_rec.UOM_CODE IS NULL
393 THEN
394 p_x_mr_header_rec.UOM_CODE:=l_mr_header_Rec.UOM_CODE;
395 END IF;
396
397 IF p_x_mr_header_rec.DESCRIPTION= FND_API.G_MISS_CHAR
398 THEN
399 p_x_mr_header_rec.DESCRIPTION:=NULL;
400 ELSIF p_x_mr_header_rec.DESCRIPTION IS NULL
401 THEN
402 p_x_mr_header_rec.DESCRIPTION:=l_mr_header_Rec.DESCRIPTION;
403 END IF;
404 IF p_x_mr_header_rec.COMMENTS= FND_API.G_MISS_CHAR
405 THEN
406 p_x_mr_header_rec.COMMENTS:=NULL;
407 ELSIF p_x_mr_header_rec.COMMENTS IS NULL
408 THEN
409 p_x_mr_header_rec.COMMENTS:=l_mr_header_Rec.COMMENTS;
410 END IF;
411 IF p_x_mr_header_rec.ATTRIBUTE_CATEGORY= FND_API.G_MISS_CHAR
412 THEN
413 p_x_mr_header_rec.ATTRIBUTE_CATEGORY:=NULL;
414 ELSIF p_x_mr_header_rec.ATTRIBUTE_CATEGORY IS NULL
415 THEN
416 p_x_mr_header_rec.ATTRIBUTE_CATEGORY:=l_mr_header_Rec.ATTRIBUTE_CATEGORY;
417 END IF;
418
419 IF p_x_mr_header_rec.ATTRIBUTE1= FND_API.G_MISS_CHAR
420 THEN
421 p_x_mr_header_rec.ATTRIBUTE1:=NULL;
422 ELSIF p_x_mr_header_rec.ATTRIBUTE1 IS NULL
423 THEN
424 p_x_mr_header_rec.ATTRIBUTE1:=l_mr_header_Rec.ATTRIBUTE1;
425 END IF;
426
427 IF p_x_mr_header_rec.ATTRIBUTE2= FND_API.G_MISS_CHAR
428 THEN
429 p_x_mr_header_rec.ATTRIBUTE2:=NULL;
430 ELSIF p_x_mr_header_rec.ATTRIBUTE2 IS NULL
431 THEN
432 p_x_mr_header_rec.ATTRIBUTE2:=l_mr_header_Rec.ATTRIBUTE2;
433 END IF;
434
435 IF p_x_mr_header_rec.ATTRIBUTE3= FND_API.G_MISS_CHAR
436 THEN
437 p_x_mr_header_rec.ATTRIBUTE3:=NULL;
438 ELSIF p_x_mr_header_rec.ATTRIBUTE3 IS NULL
439 THEN
440 p_x_mr_header_rec.ATTRIBUTE3:=l_mr_header_Rec.ATTRIBUTE3;
441 END IF;
442
443 IF p_x_mr_header_rec.ATTRIBUTE4= FND_API.G_MISS_CHAR
444 THEN
445 p_x_mr_header_rec.ATTRIBUTE4:=NULL;
446 ELSIF p_x_mr_header_rec.ATTRIBUTE4 IS NULL
447 THEN
448 p_x_mr_header_rec.ATTRIBUTE4:=l_mr_header_Rec.ATTRIBUTE4;
449 END IF;
450
451 IF p_x_mr_header_rec.ATTRIBUTE5= FND_API.G_MISS_CHAR
452 THEN
453 p_x_mr_header_rec.ATTRIBUTE5:=NULL;
454 ELSIF p_x_mr_header_rec.ATTRIBUTE5 IS NULL
455 THEN
456 p_x_mr_header_rec.ATTRIBUTE5:=l_mr_header_Rec.ATTRIBUTE5;
457 END IF;
458
459 IF p_x_mr_header_rec.ATTRIBUTE6= FND_API.G_MISS_CHAR
460 THEN
461 p_x_mr_header_rec.ATTRIBUTE6:=NULL;
462 ELSIF p_x_mr_header_rec.ATTRIBUTE6 IS NULL
463 THEN
464 p_x_mr_header_rec.ATTRIBUTE6:=l_mr_header_Rec.ATTRIBUTE6;
465 END IF;
466
467 IF p_x_mr_header_rec.ATTRIBUTE7= FND_API.G_MISS_CHAR
468 THEN
469 p_x_mr_header_rec.ATTRIBUTE7:=NULL;
470 ELSIF p_x_mr_header_rec.ATTRIBUTE7 IS NULL
471 THEN
472 p_x_mr_header_rec.ATTRIBUTE7 :=l_mr_header_Rec.ATTRIBUTE7;
473 END IF;
474
475 IF p_x_mr_header_rec.ATTRIBUTE8= FND_API.G_MISS_CHAR
476 THEN
477 p_x_mr_header_rec.ATTRIBUTE8:=NULL;
478 ELSIF p_x_mr_header_rec.ATTRIBUTE8 IS NULL
479 THEN
480 p_x_mr_header_rec.ATTRIBUTE8:=l_mr_header_Rec.ATTRIBUTE8;
481 END IF;
482
483 IF p_x_mr_header_rec.ATTRIBUTE9= FND_API.G_MISS_CHAR
484 THEN
485 p_x_mr_header_rec.ATTRIBUTE9:=NULL;
486 ELSIF p_x_mr_header_rec.ATTRIBUTE9 IS NULL
487 THEN
488 p_x_mr_header_rec.ATTRIBUTE9:=l_mr_header_Rec.ATTRIBUTE9;
489 END IF;
490
491 IF p_x_mr_header_rec.ATTRIBUTE10= FND_API.G_MISS_CHAR
492 THEN
493 p_x_mr_header_rec.ATTRIBUTE10:=NULL;
494 ELSIF p_x_mr_header_rec.ATTRIBUTE10 IS NULL
495 THEN
496 p_x_mr_header_rec.ATTRIBUTE10:=l_mr_header_Rec.ATTRIBUTE10;
497 END IF;
498 IF p_x_mr_header_rec.ATTRIBUTE11= FND_API.G_MISS_CHAR
499 THEN
500 p_x_mr_header_rec.ATTRIBUTE11:=NULL;
501 ELSIF p_x_mr_header_rec.ATTRIBUTE11 IS NULL
502 THEN
503 p_x_mr_header_rec.ATTRIBUTE11:=l_mr_header_Rec.ATTRIBUTE11;
504 END IF;
505
506 IF p_x_mr_header_rec.ATTRIBUTE12= FND_API.G_MISS_CHAR
507 THEN
508 p_x_mr_header_rec.ATTRIBUTE12:=NULL;
509 ELSIF p_x_mr_header_rec.ATTRIBUTE12 IS NULL
510 THEN
511 p_x_mr_header_rec.ATTRIBUTE12:=l_mr_header_Rec.ATTRIBUTE12;
512 END IF;
513
514 IF p_x_mr_header_rec.ATTRIBUTE13= FND_API.G_MISS_CHAR
515 THEN
516 p_x_mr_header_rec.ATTRIBUTE13:=NULL;
517 ELSIF p_x_mr_header_rec.ATTRIBUTE13 IS NULL
518 THEN
519 p_x_mr_header_rec.ATTRIBUTE13:=l_mr_header_Rec.ATTRIBUTE13;
520 END IF;
521
522 IF p_x_mr_header_rec.ATTRIBUTE14= FND_API.G_MISS_CHAR
523 THEN
524 p_x_mr_header_rec.ATTRIBUTE14:=NULL;
525 ELSIF p_x_mr_header_rec.ATTRIBUTE14 IS NULL
526 THEN
527 p_x_mr_header_rec.ATTRIBUTE14
528 :=l_mr_header_Rec.ATTRIBUTE14;
529 END IF;
530
531 IF p_x_mr_header_rec.ATTRIBUTE15= FND_API.G_MISS_CHAR
532 THEN
533 p_x_mr_header_rec.ATTRIBUTE15:=NULL;
534 ELSIF p_x_mr_header_rec.ATTRIBUTE15 IS NULL
535 THEN
536 p_x_mr_header_rec.ATTRIBUTE15:=l_mr_header_Rec.ATTRIBUTE15;
537 END IF;
538
539
540 --Billing Item
541 IF p_x_mr_header_rec.billing_item= FND_API.G_MISS_CHAR
542 THEN
543 p_x_mr_header_rec.billing_item:=NULL;
544 ELSIF p_x_mr_header_rec.billing_item IS NULL
545 THEN
546 p_x_mr_header_rec.billing_item:=l_mr_header_Rec.billing_item;
547 END IF;
548 --Billing Item Id
549 IF p_x_mr_header_rec.billing_item_id= FND_API.G_MISS_NUM
550 THEN
551 p_x_mr_header_rec.billing_item_id:=NULL;
552 ELSIF p_x_mr_header_rec.billing_item_id IS NULL
553 THEN
554 p_x_mr_header_rec.billing_item_id:=l_mr_header_Rec.billing_item_id;
555 END IF;
556
557 --qa_inspection_type
558 IF p_x_mr_header_rec.qa_inspection_type= FND_API.G_MISS_CHAR
559 THEN
560 p_x_mr_header_rec.qa_inspection_type:=NULL;
561 ELSIF p_x_mr_header_rec.qa_inspection_type IS NULL
562 THEN
563 p_x_mr_header_rec.qa_inspection_type:=l_mr_header_Rec.qa_inspection_type;
564 END IF;
565
566 IF p_x_mr_header_rec.qa_inspection_type_code= FND_API.G_MISS_CHAR
567 THEN
568 p_x_mr_header_rec.qa_inspection_type_code:=NULL;
569 ELSIF p_x_mr_header_rec.qa_inspection_type_code IS NULL
570 THEN
571 p_x_mr_header_rec.qa_inspection_type_code:=l_mr_header_Rec.qa_inspection_type_code;
572 END IF;
573
574 --space_category_code
575 IF p_x_mr_header_rec.space_category_code= FND_API.G_MISS_CHAR
576 THEN
577 p_x_mr_header_rec.space_category_code:=NULL;
578 ELSIF p_x_mr_header_rec.space_category_code IS NULL
579 THEN
580 p_x_mr_header_rec.space_category_code:=l_mr_header_Rec.space_category_code;
581 END IF;
582
583 IF p_x_mr_header_rec.space_category= FND_API.G_MISS_CHAR
584 THEN
585 p_x_mr_header_rec.space_category:=NULL;
586 ELSIF p_x_mr_header_rec.space_category IS NULL
587 THEN
588 p_x_mr_header_rec.space_category:=l_mr_header_Rec.space_category;
589 END IF;
590
591 --sareepar service category rank
592 IF p_x_mr_header_rec.service_category_rank= FND_API.G_MISS_NUM
593 THEN
594 p_x_mr_header_rec.service_category_rank:=NULL;
595 ELSIF p_x_mr_header_rec.service_category_rank IS NULL
596 THEN
597 p_x_mr_header_rec.service_category_rank:=l_mr_header_Rec.service_category_rank;
598 END IF;
599 END;
600
601
602 PROCEDURE CHECK_LOOKUP_CODE
603 (
604 x_return_status OUT NOCOPY VARCHAR2,
605 p_lookup_code IN VARCHAR2,
606 p_lookup_TYPE IN VARCHAR2
607 )
608 as
609 CURSOR get_lookup_type_code(c_lookup_code VARCHAR2,c_lookup_type VARCHAR2)
610 IS
611 SELECT lookup_code
612 FROM FND_LOOKUP_VALUES_VL
613 WHERE lookup_code = c_lookup_code
614 AND lookup_type = c_lookup_type
615 AND sysdate between nvl(start_date_active,sysdate)
616 AND nvl(end_date_active,sysdate)
617 AND enabled_flag = 'Y';
618
619 l_lookup_code VARCHAR2(30):=null;
620 begin
621 OPEN get_lookup_type_code(p_lookup_code,p_lookup_type);
622 FETCH get_lookup_type_code INTO l_lookup_code;
623 IF get_lookup_type_code%NOTFOUND
624 THEN
625 x_return_Status:= FND_API.G_RET_STS_UNEXP_ERROR;
626 END IF;
627 CLOSE get_lookup_type_code;
628 end;
629
630 --sareepar service category
631 --Validates if service actegory code is a number convertible string
632 PROCEDURE VALIDATE_SERVICE_CATEGORY_CODE
633 (
634 x_return_status OUT NOCOPY VARCHAR2,
635 p_space_category_code IN VARCHAR2
636 )
637 as
638 p_service_category_rank number;
639 begin
640 p_service_category_rank := to_number(p_space_category_code);
641 EXCEPTION
642 WHEN VALUE_ERROR THEN
643 x_return_Status:= FND_API.G_RET_STS_UNEXP_ERROR;
644 end;
645
646 PROCEDURE TRANSLATE_VALUE_ID
647 (
648 x_return_status OUT NOCOPY VARCHAR2,
649 p_x_mr_header_rec IN OUT NOCOPY AHL_FMP_MR_HEADER_PVT.MR_HEADER_REC
650 )
651 as
652 CURSOR get_lookup_meaning_to_code(c_lookup_type VARCHAR2,c_meaning VARCHAR2)
653 IS
654 SELECT lookup_code
655 FROM FND_LOOKUP_VALUES_VL
656 WHERE lookup_type= c_lookup_type
657 AND upper(meaning) =upper(c_meaning)
658 AND sysdate between nvl(start_date_active,sysdate) and nvl(end_date_active,sysdate);
659
660 CURSOR get_mr_title(c_mr_header_id NUMBER)
661 IS
662 SELECT title,object_version_number
663 FROM AHL_MR_HEADERS_APP_V
664 WHERE mr_header_id= c_mr_header_id;
665
666 CURSOR get_mr_header(c_title VARCHAR2)
667 IS
668 SELECT mr_header_id,title,object_version_number
669 FROM AHL_MR_HEADERS_APP_V
670 WHERE UPPER(TITLE)=UPPER(LTRIM(RTRIM(c_title)))
671 AND trunc(nvl(effective_to,sysdate+1)) >trunc(sysdate);
672
673 CURSOR get_titlecount(c_title VARCHAR2)
674 IS
675 SELECT COUNT(*)
676 FROM AHL_MR_HEADERS_APP_V
677 WHERE UPPER(TITLE)=UPPER(c_title)
678 AND trunc(nvl(effective_to,sysdate+1)) >trunc(sysdate);
679
680 CURSOR get_prec_mrheader_info(c_mr_header_id NUMBER)
681 IS
682 SELECT mr_header_id,title,object_version_number,revision
683 FROM AHL_MR_HEADERS_APP_V
684 WHERE MR_HEADER_ID=C_MR_HEADER_ID
685 AND trunc(nvl(effective_to,sysdate+1)) >trunc(sysdate);
686
687 CURSOR get_mrItemId(c_billing_item VARCHAR2)
688 IS
689 --AMSRINIV. Bug 4916286. Removing 'upper' to improve performance.
690
691 SELECT inventory_item_id
692 FROM mtl_system_items_kfv
693 WHERE STOCK_ENABLED_FLAG='N'
694 AND MTL_TRANSACTIONS_ENABLED_FLAG='N'
695 AND concatenated_segments= ltrim(rtrim(c_billing_item))
696 and rownum <2;
697
698 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
699 CURSOR get_warranty_template_id(c_warranty_template_name VARCHAR2)
700 IS
701 SELECT warranty_template_id
702 FROM AHL_WARRANTY_TEMPLATES_B
703 WHERE ENABLED_FLAG='Y'
704 AND upper(name) = upper(ltrim(rtrim(c_warranty_template_name)))
705 and rownum <2;
706 --CHANDANK changes ends for supplier warranty
707
708 /*SELECT inventory_item_id
709 FROM mtl_system_items_kfv
710 WHERE STOCK_ENABLED_FLAG='N'
711 AND MTL_TRANSACTIONS_ENABLED_FLAG='N'
712 AND upper(concatenated_segments)= upper(ltrim(rtrim(c_billing_item)))
713 and rownum <2;*/
714
715 CURSOR get_qainspection_type_code(p_qa_inspection_type_desc VARCHAR2)
716 IS
717 SELECT short_code
718 FROM qa_char_value_lookups_v
719 WHERE char_id = 87
720 AND upper(description) = upper(ltrim(rtrim(p_qa_inspection_type_desc)));
721
722 l_prec_mr_info get_prec_mrheader_info%rowtype;
723
724 l_check_impl_status NUMBER;
725 l_title VARCHAR2(255);
726 l_title_counter NUMBER:=0;
727 l_lookup_code VARCHAR2(30);
728 l_api_name CONSTANT VARCHAR2(30) := 'TRANSLATE_VALUE_ID';
729 l_api_version CONSTANT NUMBER := 1.0;
730 l_num_rec NUMBER;
731 l_msg_count NUMBER;
732 l_msg_data VARCHAR2(2000);
733 l_return_status VARCHAR2(1);
734 l_init_msg_list VARCHAR2(10):=FND_API.G_TRUE;
735 l_mrItemId NUMBER:=0;
736 l_lookup_var varchar2(1);
737 l_object_version_number NUMBER;
738 l_check_flag VARCHAR2(1):='Y';
739 l_program_type_code_ind VARCHAR2(1):='N';
740
741 --kasridha - Changes for SBE - Loops and chains
742 l_loop_chain_count NUMBER := 0;
743
744 BEGIN
745
746 IF G_DEBUG='Y' THEN
747 AHL_DEBUG_PUB.enable_debug;
748 AHL_DEBUG_PUB.debug('Trans TYPE CODE '||p_x_mr_header_rec.TYPE_CODE,'+HEADERS+');
749 END IF;
750
751 x_return_status:=FND_API.G_RET_STS_SUCCESS;
752
753 IF p_x_mr_header_rec.PROGRAM_TYPE IS NULL OR p_x_mr_header_rec.PROGRAM_TYPE=FND_API.G_MISS_CHAR
754 THEN
755 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PROGTYPE_NULL');
756 FND_MSG_PUB.ADD;
757 l_check_flag:='N';
758 END IF;
759
760
761 IF l_check_flag='Y'
762 THEN
763 OPEN get_lookup_meaning_to_code('AHL_FMP_MR_PROGRAM_TYPE',p_x_mr_header_rec.PROGRAM_TYPE);
764 FETCH get_lookup_meaning_to_code INTO l_lookup_code;
765 IF get_lookup_meaning_to_code%NOTFOUND
766 THEN
767 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PROGTYPE_INVALID');
768 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.PROGRAM_TYPE,false);
769 FND_MSG_PUB.ADD;
770 l_check_flag:='N';
771 ELSE
772 l_program_type_code_ind:='N';
773 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=l_lookup_code;
774 l_check_flag:='Y';
775 END IF;
776
777 CLOSE get_lookup_meaning_to_code;
778 END IF;
779
780
781 -- Program Sub type
782
783 IF (p_x_mr_header_rec.PROGRAM_SUBTYPE IS NULL OR
784 p_x_mr_header_rec.PROGRAM_SUBTYPE=FND_API.G_MISS_CHAR)
785 THEN
786 p_x_mr_header_rec.PROGRAM_SUBTYPE := FND_API.G_MISS_CHAR; --pdoki modified for Bug 9679216
787 ELSE
788 IF l_check_flag='Y'
789 THEN
790
791 OPEN get_lookup_meaning_to_code('AHL_FMP_MR_PROGRAM_SUBTYPE',
792 p_x_mr_header_rec.PROGRAM_SUBTYPE);
793 FETCH get_lookup_meaning_to_code INTO l_lookup_code;
794
795 IF get_lookup_meaning_to_code%NOTFOUND
796 THEN
797 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PROGSUBTYPE_INVALID');
798 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE,false);
799 FND_MSG_PUB.ADD;
800 ELSE
801 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=l_lookup_code;
802 END IF;
803
804 CLOSE get_lookup_meaning_to_code;
805 END IF;
806 END IF;
807
808
809 --Billing Item Id
810
811
812 IF (p_x_mr_header_rec.BILLING_ITEM IS NULL OR p_x_mr_header_rec.BILLING_ITEM=FND_API.G_MISS_CHAR)
813 THEN
814 p_x_mr_header_rec.BILLING_ITEM:=FND_API.G_MISS_CHAR;
815 ELSE
816 IF l_check_flag='Y'
817 THEN
818
819 OPEN get_mrItemId(p_x_mr_header_rec.BILLING_ITEM);
820 FETCH get_mrItemId INTO p_x_mr_header_rec.BILLING_ITEM_ID;
821
822 IF get_mrItemId%NOTFOUND
823 THEN
824 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_INVALID_BITEM');
825 FND_MESSAGE.SET_TOKEN('BILLING_ITEM',p_x_mr_header_rec.BILLING_ITEM,false);
826 FND_MSG_PUB.ADD;
827 END IF;
828
829 CLOSE get_mrItemId;
830 END IF;
831 END IF;
832 --Implent Status and QA INSPECTION TYPE
833 --Chack for the Valid QAInspection Type
834
835 IF (p_x_mr_header_rec.QA_INSPECTION_TYPE IS NULL
836 OR p_x_mr_header_rec.QA_INSPECTION_TYPE=FND_API.G_MISS_CHAR)
837 THEN
838 p_x_mr_header_rec.QA_INSPECTION_TYPE:=FND_API.G_MISS_CHAR;
839 ELSE
840 IF l_check_flag='Y'
841 THEN
842
843 OPEN get_qainspection_type_code(p_x_mr_header_rec.QA_INSPECTION_TYPE);
844 FETCH get_qainspection_type_code INTO p_x_mr_header_rec.QA_INSPECTION_TYPE_CODE;
845
846 IF get_qainspection_type_code%NOTFOUND
847 THEN
848 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_QA_INSP');
849 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.QA_INSPECTION_TYPE,false);
850 FND_MSG_PUB.ADD;
851 /* Commented the Qa inspection type depedency on IMPLEMENTAT_STATUS_CODE as per ER#3822674
852 ELSE
853 IF p_x_mr_header_rec.IMPLEMENT_STATUS_CODE IS NOT NULL
854 OR p_x_mr_header_rec.IMPLEMENT_STATUS_CODE <>FND_API.G_MISS_CHAR
855 THEN
856 IF p_x_mr_header_rec.IMPLEMENT_STATUS_CODE = 'OPTIONAL_DO_NOT_IMPLEMENT'
857 AND (p_x_mr_header_rec.qa_inspection_type IS NOT NULL
858 OR p_x_mr_header_rec.qa_inspection_type <>FND_API.G_MISS_CHAR)
859 THEN
860 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_IMPL_QA');
861 FND_MSG_PUB.ADD;
862 END IF;
863 End if;
864 */
865
866 END IF;
867 CLOSE get_qainspection_type_code;
868 END IF;
869 END IF;
870
871 -- IF PROGRAM TYPE IS NON-ROUTINE THEN IMPLMENTATION STATUS HAS TO BE OPTIONAL DO NOT IMPLEMENT
872
873 IF p_x_mr_header_rec.PROGRAM_TYPE_CODE= 'NON-ROUTINE' AND
874 p_x_mr_header_rec.IMPLEMENT_STATUS_CODE <> 'OPTIONAL_DO_NOT_IMPLEMENT'
875 THEN
876 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_IMPL_AND_PROGRAM_TYPE');
877 FND_MSG_PUB.ADD;
878 END IF;
879
880 -- pdoki Commented for Auto Visit Forecasting Enhancement, Start.
881 /*IF p_x_mr_header_rec.implement_status_code <> 'OPTIONAL_DO_NOT_IMPLEMENT' AND
882 p_x_mr_header_rec.dml_operation='U'
883 THEN
884 Select count(*) INTO l_check_impl_status
885 From AHL_MR_HEADERS_B
886 WHERE Implement_status_code = 'OPTIONAL_DO_NOT_IMPLEMENT'
887 AND MR_HEADER_ID=p_x_mr_header_rec.MR_HEADER_ID;
888 IF nvl(l_check_impl_status,0) >0
889 THEN
890 l_check_impl_status:=0;
891
892 Select count(*) INTO l_check_impl_status
893 From AHL_MR_VISIT_TYPES
894 WHERE MR_HEADER_ID=p_x_mr_header_rec.MR_HEADER_ID;
895
896 IF nvl(l_check_impl_status,0) >0
897 THEN
898 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_VTYPE_EXIST');
899 FND_MSG_PUB.ADD;
900 -- Cannot modify if implementation status from unplanned/optional do not implement to some thing else if visit types are defined.
901 END IF;
902 END IF;
903 END IF; */
904 -- pdoki Commented for Auto Visit Forecasting Enhancement, End.
905
906
907 -- Preceding MR_header_id
908
909 -- pdoki, Following attrs are obsoleted after SBE Project, Start.
910 IF p_x_mr_header_rec.PRECEDING_MR_TITLE IS NOT NULL AND p_x_mr_header_rec.PRECEDING_MR_TITLE<>FND_API.G_MISS_CHAR
911 THEN
912 OPEN get_titlecount(p_x_mr_header_rec.PRECEDING_MR_TITLE);
913 FETCH get_titlecount INTO l_title_counter;
914 Close get_titlecount;
915
916 IF nvl(l_title_counter,0)=0
917 THEN
918 IF G_DEBUG='Y' THEN
919 AHL_DEBUG_PUB.debug( 'PRECEDING MR_TITLE COUNTER');
920 END IF;
921 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_ID_INVALID');
922 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.PRECEDING_MR_TITLE,false);
923 FND_MSG_PUB.ADD;
924 ELSIF nvl(l_title_counter,0)=1
925 THEN
926 OPEN get_mr_header(p_x_mr_header_rec.PRECEDING_MR_TITLE);
927
928 FETCH get_mr_header INTO p_x_mr_header_rec.PRECEDING_MR_HEADER_ID,l_title,l_object_version_number;
929
930 IF get_mr_header%NOTFOUND
931 THEN
932 IF G_DEBUG='Y' THEN
933 AHL_DEBUG_PUB.debug(' Preceding MRHEADER_ID NOT FOUND2','+HEADERS+');
934 END IF;
935 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_ID_INVALID');
936 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.PRECEDING_MR_TITLE,false);
937 FND_MSG_PUB.ADD;
938 END IF;
939 Close get_mr_header;
940 ELSIF NVL(l_title_counter,0)>1
941 THEN
942 OPEN get_prec_mrheader_info(p_x_mr_header_rec.PRECEDING_MR_HEADER_ID);
943 FETCH get_prec_mrheader_info INTO l_prec_mr_info;
944
945 IF G_DEBUG='Y' THEN
946 AHL_DEBUG_PUB.debug( 'PRECEDING .. MR>1 '||p_x_mr_header_rec.PRECEDING_MR_HEADER_ID,'+HEADERS+');
947 END IF;
948
949 IF get_prec_mrheader_info%NOTFOUND
950 THEN
951 IF G_DEBUG='Y' THEN
952 AHL_DEBUG_PUB.debug('Preceding mr title err','+HEADERS+');
953 END IF;
954
955 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_ID_INVALID');
956 FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_header_rec.PRECEDING_MR_TITLE,false);
957 FND_MSG_PUB.ADD;
958
959 ELSIF (l_prec_mr_info.title<>p_x_mr_header_rec.PRECEDING_MR_TITLE
960 and l_prec_mr_info.REVISION<>p_x_mr_header_rec.PRECEDING_MR_REVISION)
961 THEN
962 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PREC_MR_ID_SELECT_LOV');
963 FND_MSG_PUB.ADD;
964 END IF;
965
966 Close get_prec_mrheader_info;
967 ELSIF NVL(l_title_counter,0)=0
968 THEN
969 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_ID_INVALID');
970 FND_MSG_PUB.ADD;
971 END IF;
972 END IF;
973 -- pdoki, SBE Project, End.
974
975 IF p_x_mr_header_rec.DML_OPERATION='U'
976 THEN
977
978 IF p_x_mr_header_rec.version_number=FND_API.G_MISS_NUM OR
979 p_x_mr_header_rec.version_number IS NULL
980 THEN
981 select version_number into p_x_mr_header_rec.version_number
982 from AHL_MR_HEADERS_APP_V
983 where mr_header_id=p_x_mr_header_rec.mr_header_id;
984 END IF;
985
986 END IF;
987
988 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
989 IF (p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME IS NULL OR p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME=FND_API.G_MISS_CHAR)
990 THEN
991 p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME:=FND_API.G_MISS_CHAR;
992 ELSE
993 IF l_check_flag='Y'
994 THEN
995
996 OPEN get_warranty_template_id(p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME);
997 FETCH get_warranty_template_id INTO p_x_mr_header_rec.WARRANTY_TEMPLATE_ID;
998
999 IF get_warranty_template_id%NOTFOUND
1000 THEN
1001 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_INVALID_TEMPL');
1002 FND_MESSAGE.SET_TOKEN('WARRANTY_TEMPLATE_NAME',p_x_mr_header_rec.WARRANTY_TEMPLATE_NAME,false);
1003 FND_MSG_PUB.ADD;
1004 END IF;
1005
1006 CLOSE get_warranty_template_id;
1007 END IF;
1008 END IF;
1009 --CHANDANK changes ends for supplier warranty project
1010 --Kasridha Changes for SBE - Loops and chains Begins
1011
1012 /* If user tries to change the MR in the middle of a chain or MR part of a loop
1013 to unplanned, error should be thrown that user cannot modify as relations
1014 exist.
1015 */
1016
1017 IF p_x_mr_header_rec.implement_status_code = 'OPTIONAL_DO_NOT_IMPLEMENT' AND
1018 p_x_mr_header_rec.dml_operation='U'
1019 THEN
1020 SELECT COUNT(*) INTO l_loop_chain_count FROM ahl_mr_loop_chain_relns WHERE mr_header_id = p_x_mr_header_rec.mr_header_id AND (relationship_code = 'LOOP' OR (relationship_code ='CHAIN' AND sequence_number <> 1)) ;
1021
1022 IF l_loop_chain_count > 0 THEN
1023 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_LPCH_IMPL_EXIST');
1024 FND_MSG_PUB.ADD;
1025
1026 END IF;
1027
1028 END IF;
1029 /*
1030 If the user tries to change the repetitive flag to No when updating the MR, error should be displayed.
1031 */
1032 IF p_x_mr_header_rec.REPETITIVE_FLAG = 'N' AND
1033 p_x_mr_header_rec.dml_operation='U'
1034 THEN
1035 SELECT COUNT(*) INTO l_loop_chain_count FROM ahl_mr_loop_chain_relns WHERE mr_header_id = p_x_mr_header_rec.mr_header_id;
1036
1037 IF l_loop_chain_count > 0 THEN
1038 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_LPCH_REPT_EXIST');
1039 FND_MSG_PUB.ADD;
1040
1041 END IF;
1042
1043 END IF;
1044 --Kasridha Changes for SBE - Loops and chains Ends
1045 END;
1046
1047 -- Start of Validate
1048 PROCEDURE VALIDATE_MR_TYPE
1049 (
1050 x_return_status OUT NOCOPY VARCHAR2,
1051 p_mr_header_rec IN AHL_FMP_MR_HEADER_PVT.MR_HEADER_REC
1052 )
1053 as
1054 Cursor GetMrdet(C_MR_HEADER_ID NUMBER)
1055 IS
1056 SELECT * FROM AHL_MR_HEADERS_APP_V
1057 WHERE MR_HEADER_ID=C_MR_HEADER_ID;
1058 l_mr_rec GetMrdet%rowtype;
1059 l_counter NUMBER:=0;
1060 BEGIN
1061 x_return_status:=FND_API.G_RET_STS_SUCCESS;
1062
1063 IF p_mr_header_rec.MR_HEADER_ID IS NOT NULL OR p_mr_header_rec.MR_HEADER_ID<>FND_API.G_MISS_NUM
1064 THEN
1065
1066
1067 OPEN GetMrDet(p_mr_header_rec.MR_HEADER_ID);
1068 FETCH GetMrDet into l_mr_rec;
1069 IF GetMrDet%NOTFOUND
1070 THEN
1071 FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
1072 FND_MSG_PUB.ADD;
1073 ELSE
1074
1075 IF p_mr_header_rec.TYPE_CODE<>l_mr_rec.type_code
1076 THEN
1077 SELECT COUNT(*) INTO l_counter
1078 FROM AHL_MR_RELATIONSHIPS
1079 WHERE MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID
1080 AND RELATIONSHIP_CODE = 'PARENT';
1081 IF l_counter >0
1082 THEN
1083 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_REL_SHOULDNOT_EXIST');
1084 FND_MSG_PUB.ADD;
1085 END IF;
1086
1087 SELECT COUNT(*) INTO l_counter
1088 FROM AHL_MR_EFFECTIVITIES
1089 WHERE MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID
1090 AND ((PROGRAM_DURATION IS NOT NULL OR PROGRAM_DURATION_UOM_CODE IS NOT NULL)
1091 AND THRESHOLD_DATE IS NOT NULL);
1092
1093
1094 IF l_counter >0
1095 THEN
1096 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_EFF_SHOULDNOT_EXIST');
1097 FND_MSG_PUB.ADD;
1098 END IF;
1099
1100 SELECT COUNT(B.MR_INTERVAL_ID) INTO l_counter
1101 FROM AHL_MR_EFFECTIVITIES A,AHL_MR_INTERVALS B
1102 WHERE A.MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID
1103 AND A.MR_EFFECTIVITY_ID=B.MR_EFFECTIVITY_ID;
1104
1105 IF l_counter >0
1106 THEN
1107 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_INT_SHOULDNOT_EXIST');
1108 FND_MSG_PUB.ADD;
1109 END IF;
1110 END IF;
1111
1112 IF p_mr_header_rec.TYPE_CODE='PROGRAM' and l_mr_rec.type_code='ACTIVITY'
1113 THEN
1114 SELECT COUNT(*) INTO l_counter
1115 FROM AHL_MR_ROUTES
1116 WHERE MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID;
1117
1118 IF l_counter >0
1119 THEN
1120 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_ROUTS_SHOULDNOT_EXIST');
1121 FND_MSG_PUB.ADD;
1122 END IF;
1123
1124 SELECT COUNT(*) INTO l_counter
1125 FROM AHL_MR_ACTIONS_B
1126 WHERE MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID;
1127 IF l_counter >0
1128 THEN
1129 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_ACTNS_SHOULDNOT_EXIST');
1130 FND_MSG_PUB.ADD;
1131 END IF;
1132
1133 SELECT COUNT(*) INTO l_counter
1134 FROM AHL_DOC_TITLE_ASSOS_B
1135 WHERE ASO_OBJECT_ID=p_mr_header_rec.MR_HEADER_ID
1136 AND ASO_OBJECT_TYPE_CODE='MR';
1137
1138 IF l_counter >0
1139 THEN
1140 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_DOC_SHOULDNOT_EXIST');
1141 FND_MSG_PUB.ADD;
1142 END IF;
1143 END IF;
1144 END IF;
1145 CLOSE GetMrDet;
1146 END IF;
1147 END;
1148
1149
1150 PROCEDURE VALIDATE_MR_HEADER
1151 (
1152 x_return_status OUT NOCOPY VARCHAR2,
1153 p_mr_header_rec IN AHL_FMP_MR_HEADER_PVT.MR_HEADER_REC
1154 )
1155 as
1156
1157 CURSOR get_lookup_meaning_to_code(c_lookup_type VARCHAR2,c_meaning VARCHAR2)
1158 IS
1159 SELECT lookup_code
1160 FROM FND_LOOKUP_VALUES_VL
1161 WHERE lookup_type= c_lookup_type
1162 AND upper(meaning) =upper(c_meaning)
1163 AND sysdate between start_date_active
1164 AND nvl(end_date_active,sysdate);
1165
1166 CURSOR get_mr_title(c_mr_header_id number)
1167 IS
1168 SELECT title,object_version_number
1169 FROM AHL_MR_HEADERS_APP_V
1170 WHERE mr_header_id= c_mr_header_id;
1171
1172 CURSOR
1173 check_prog_subtype(C_PROGRAM_TYPE_CODE VARCHAR2,C_PROGRAM_SUBTYPE_CODE VARCHAR2)
1174 IS
1175 SELECT count(*)
1176 FROM AHL_PROG_TYPE_SUBTYPES
1177 WHERE
1178 PROGRAM_TYPE_CODE =C_PROGRAM_TYPE_CODE AND
1179 PROGRAM_SUBTYPE_CODE=C_PROGRAM_SUBTYPE_CODE;
1180
1181 --Super user cannot edit these fields
1182 CURSOR get_super_non_edit(c_mr_header_id number)
1183 IS
1184 --AMSRINIV.Bug 4916286. Tuning below commented query for improving performance
1185 SELECT
1186 mr.implement_status_code,
1187 mr.repetitive_flag,
1188 mr.show_repetitive_code,
1189 mr.whichever_first_code,
1190 mr.effective_from,
1191 mr.copy_accomplishment_flag,
1192 mr.type_code,
1193 mtl.concatenated_segments billing_item,
1194 mr.billing_item_id,
1195 mr.qa_inspection_type qa_inspection_type_code,
1196 qa.description qa_inspection_type,
1197 mr.space_category_code,
1198 mr.down_time,
1199 mr.uom_code
1200 FROM
1201 ahl_mr_headers_b mr,
1202 qa_char_value_lookups qa,
1203 mtl_system_items_kfv mtl
1204 WHERE
1205 mr_header_id= c_mr_header_id AND
1206 qa.short_code(+) = mr.qa_inspection_type AND
1207 qa.char_id(+) = 87 AND
1208 mtl.inventory_item_id(+) = mr.billing_item_id AND
1209 mtl.organization_id(+) = mr.billing_org_id AND
1210 mr.application_usg_code =
1211 RTRIM(LTRIM(fnd_profile.value('AHL_APPLN_USAGE')));
1212
1213 /*SELECT IMPLEMENT_STATUS_CODE,
1214 REPETITIVE_FLAG,
1215 SHOW_REPETITIVE_CODE,
1216 WHICHEVER_FIRST_CODE,
1217 EFFECTIVE_FROM,
1218 COPY_ACCOMPLISHMENT_FLAG,
1219 TYPE_CODE,
1220 BILLING_ITEM,
1221 BILLING_ITEM_ID,
1222 QA_INSPECTION_TYPE_CODE,
1223 QA_INSPECTION_TYPE,
1224 SPACE_CATEGORY_CODE,
1225 DOWN_TIME,
1226 UOM_CODE
1227 FROM AHL_MR_HEADERS_V
1228 WHERE mr_header_id= c_mr_header_id;*/
1229
1230 l_rec get_super_non_edit%rowtype;
1231
1232 Cursor GetHeaderInfo(C_MR_HEADER_ID NUMBER)
1233 IS
1234 SELECT MR_HEADER_ID,
1235 TITLE,
1236 VERSION_NUMBER,
1237 MR_STATUS_CODE,
1238 EFFECTIVE_FROM
1239 FROM AHL_MR_HEADERS_APP_V
1240 WHERE MR_HEADER_ID=C_MR_HEADER_ID
1241 AND object_version_number=p_mr_header_rec.object_Version_number;
1242
1243 l_mr_rec GetHeaderInfo%ROWTYPE;
1244
1245
1246 Cursor GetHeaderInfo1(C_TITLE VARCHAR2,C_VERSION_NUMBER NUMBER)
1247 IS
1248 SELECT MR_HEADER_ID,TITLE,VERSION_NUMBER,MR_STATUS_CODE,EFFECTIVE_FROM
1249 FROM AHL_MR_HEADERS_APP_V
1250 WHERE upper(TITLE)=upper(C_TITLE)
1251 and version_number=c_version_number-1;
1252
1253 l_mr_rec1 GetHeaderInfo1%ROWTYPE;
1254
1255 l_title VARCHAR2(255);
1256 l_object_version_number NUMBER;
1257 l_lookup_code VARCHAR2(30);
1258 l_appln_code VARCHAR2(80);
1259 l_msg_count NUMBER;
1260 l_msg_data1 VARCHAR2(2000);
1261 l_return_status VARCHAR2(1);
1262 l_mr_header_rec AHL_FMP_MR_HEADER_PVT.mr_header_Rec:=p_mr_header_rec;
1263 l_lookup_var varchar2(1);
1264 l_title_counter NUMBER:=0;
1265 l_check_flag VARCHAR2(1):='Y';
1266 l_counter number:=0;
1267 l_prev_ver_date DATE;
1268
1269 -- Tamal [MEL/CDL] -- Begin changes
1270 CURSOR check_route_mo_proc
1271 (
1272 c_mr_header_id number
1273 )
1274 IS
1275 select 'x'
1276 from ahl_mr_routes mrr, ahl_routes_b rm
1277 where mrr.route_id = rm.route_id and
1278 nvl(rm.route_type_code, 'X') not in ('M_PROC','O_PROC') and
1279 mrr.mr_header_id = c_mr_header_id;
1280
1281 CURSOR check_eff_exists
1282 (
1283 c_mr_header_id number
1284 )
1285 IS
1286 select 'x'
1287 from ahl_mr_effectivities
1288 where mr_header_id = c_mr_header_id;
1289
1290 l_dummy_char varchar2(1);
1291 l_old_prog_type varchar2(30);
1292 -- Tamal [MEL/CDL] -- End changes
1293
1294 -- pdoki added for SBE Project, Start.
1295 CURSOR check_accom_triggers_exists
1296 (
1297 c_mr_header_id number
1298 )
1299 IS
1300 select 'x'
1301 from ahl_mr_relationships
1302 where relationship_code <> 'PARENT'
1303 and (mr_header_id = c_mr_header_id
1304 or related_mr_header_id = c_mr_header_id);
1305
1306 CURSOR check_sb_rules_exists
1307 (
1308 c_mr_header_id number
1309 )
1310 IS
1311 select 'x'
1312 from AHL_SB_POSITION_RULES
1313 where mr_header_id = c_mr_header_id;
1314 -- pdoki added for SBE Project, End.
1315
1316 --sukhwsin::Complex Assembly Maintenance Changes - starts
1317 CURSOR CHECK_GROUP_MR(c_mr_header_id NUMBER)
1318 IS
1319 select 'x'
1320 from AHL_MR_RELATIONSHIPS
1321 where relationship_code = 'PARENT'
1322 and (MR_HEADER_ID=c_mr_header_id or RELATED_MR_HEADER_ID=c_mr_header_id);
1323
1324 CURSOR CHK_MR_IN_LOOP_OR_CHAIN (c_mr_header_id NUMBER, c_relationship_code VARCHAR2)
1325 IS
1326 select 'x'
1327 from AHL_MR_LOOP_CHAIN_RELNS
1328 where MR_HEADER_ID= c_mr_header_id
1329 and relationship_code = c_relationship_code;
1330 --sukhwsin::Complex Assembly Maintenance Changes - ends
1331
1332 -- pdoki added for Auto Visit Forecasting Project, Start.
1333 -- Cursor to get visit types count for an MR
1334 CURSOR Get_Visit_Type_Count(c_mr_header_id NUMBER)
1335 IS
1336 SELECT COUNT(*)
1337 FROM AHL_MR_VISIT_TYPES
1338 WHERE mr_header_id = c_mr_header_id;
1339
1340 l_count NUMBER;
1341 l_old_impl_status AHL_MR_HEADERS_B.implement_status_code%TYPE;
1342 -- pdoki added for Auto Visit Forecasting Project, End.
1343
1344 BEGIN
1345 x_return_status:=FND_API.G_RET_STS_SUCCESS;
1346
1347 IF G_DEBUG='Y' THEN
1348 AHL_DEBUG_PUB.enable_debug;
1349 AHL_DEBUG_PUB.debug('Application Usage code:'||G_APPLN_USAGE);
1350 AHL_DEBUG_PUB.debug('TYPE CODE '||p_mr_header_rec.TYPE_CODE,'+HEADERS+');
1351 END IF;
1352
1353 IF G_APPLN_USAGE IS NULL
1354 THEN
1355 FND_MESSAGE.SET_NAME('AHL','AHL_COM_APP_PRFL_UNDEF');
1356 FND_MSG_PUB.ADD;
1357 RETURN;
1358 END IF;
1359
1360 IF p_mr_header_rec.PROGRAM_TYPE_CODE IS NULL OR
1361 p_mr_header_rec.PROGRAM_TYPE_CODE=FND_API.G_MISS_CHAR
1362 THEN
1363 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PROGTYPE_NULL');
1364 FND_MSG_PUB.ADD;
1365 l_check_flag:='N';
1366 END IF;
1367
1368 IF p_mr_header_rec.AUTO_SIGNOFF_FLAG<>'Y' AND
1369 nvl(p_mr_header_rec.AUTO_SIGNOFF_FLAG,'N')<>'N'
1370 THEN
1371 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_AUTOSIGNOFF_INVALID');
1372 FND_MSG_PUB.ADD;
1373 l_check_flag:='N';
1374 END IF;
1375
1376
1377 IF G_APPLN_USAGE='PM'
1378 THEN
1379 IF p_mr_header_rec.TYPE_CODE IS NULL OR p_mr_header_rec.TYPE_CODE=FND_API.G_MISS_CHAR
1380 THEN
1381 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TYPE_CODE_NULL');
1382 FND_MSG_PUB.ADD;
1383 l_check_flag:='N';
1384 END IF;
1385 END IF;
1386
1387
1388 IF p_mr_header_Rec.PROGRAM_SUBTYPE_CODE IS NULL OR p_mr_header_Rec.PROGRAM_SUBTYPE_CODE=FND_API.G_MISS_char
1389 THEN
1390 l_check_flag:='N';
1391 END IF;
1392
1393 IF l_check_flag='Y'
1394 THEN
1395 OPEN check_prog_subtype(p_mr_header_rec.PROGRAM_TYPE_CODE,p_mr_header_rec.PROGRAM_SUBTYPE_CODE);
1396 FETCH check_prog_subtype INTO l_counter;
1397 IF check_prog_subtype%FOUND and l_counter=0
1398 THEN
1399 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PROGTYPESUBTYPE_INV');
1400 FND_MESSAGE.SET_TOKEN('FIELD1',p_mr_header_rec.PROGRAM_SUBTYPE_CODE,false);
1401 FND_MESSAGE.SET_TOKEN('FIELD2',p_mr_header_rec.PROGRAM_TYPE_CODE,false);
1402 FND_MSG_PUB.ADD;
1403 END IF;
1404 CLOSE check_prog_subtype;
1405 END IF;
1406
1407 -- Service Type
1408 IF G_APPLN_USAGE<>'PM'
1409 THEN
1410
1411 IF p_mr_header_rec.service_type_code IS NOT NULL OR p_mr_header_rec.service_type_code<>FND_API.G_MISS_CHAR
1412 THEN
1413
1414 CHECK_LOOKUP_CODE
1415 (
1416 x_return_status =>l_return_status,
1417 p_lookup_code =>p_mr_header_rec.service_type_code,
1418 p_lookup_TYPE =>'AHL_FMP_MR_SERVICE_TYPE'
1419 );
1420 IF l_return_status<>'S'
1421 THEN
1422 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_SERVICE_INVALID');
1423 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.service_type_code,false);
1424 FND_MSG_PUB.ADD;
1425 END IF;
1426 END IF;
1427
1428 ELSIF G_APPLN_USAGE<>'PM'
1429 THEN
1430 CHECK_LOOKUP_CODE
1431 (
1432 x_return_status => l_return_status,
1433 p_lookup_code => p_mr_header_rec.uom_code,
1434 p_lookup_TYPE =>'AHL_FMP_PM_DOWNTIME_UOM'
1435 );
1436 IF l_return_status<>'S'
1437 THEN
1438 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_UOM_CODE_INV');
1439 FND_MSG_PUB.ADD;
1440 END IF;
1441 END IF;
1442
1443 -- Implement Status
1444
1445
1446 CHECK_LOOKUP_CODE
1447 (
1448 x_return_status =>l_return_status,
1449 p_lookup_code =>p_mr_header_rec.implement_status_code,
1450 p_lookup_TYPE =>'AHL_FMP_MR_IMPLEMENT_STATUS'
1451 );
1452 IF l_return_status<>'S'
1453 THEN
1454 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_IMPLMNTSTAT_INVALID');
1455 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.implement_status_code,false);
1456 FND_MSG_PUB.ADD;
1457 END IF;
1458
1459 -- Qa Inspection type and autosignoff
1460
1461 IF p_mr_header_rec.AUTO_SIGNOFF_FLAG='Y'
1462 THEN
1463
1464 IF p_mr_header_rec.QA_INSPECTION_TYPE IS NOT NULL
1465 and p_mr_header_rec.QA_INSPECTION_TYPE <>FND_API.G_MISS_CHAR
1466 THEN
1467 IF G_DEBUG='Y' THEN
1468 AHL_DEBUG_PUB.debug('Error at AHL_FMP_AUTSIGNOFF_QA_INV');
1469 END IF;
1470 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_AUTSIGNOFF_QA_INV');
1471 FND_MSG_PUB.ADD;
1472 END IF;
1473 END IF;
1474
1475
1476 /*
1477 -- This validation removed based on er 2972124/3822674
1478 IF p_mr_header_rec.implement_status_code IS NOT NULL
1479 and p_mr_header_rec.implement_status_code <>FND_API.G_MISS_CHAR
1480 THEN
1481 IF p_mr_header_rec.implement_status_code = 'OPTIONAL_DO_NOT_IMPLEMENT'
1482 AND (p_mr_header_rec.qa_inspection_type IS NOT NULL
1483 AND p_mr_header_rec.qa_inspection_type <>FND_API.G_MISS_CHAR)
1484 THEN
1485 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_IMPL_QA');
1486 FND_MSG_PUB.ADD;
1487 END IF;
1488 END IF;
1489 */
1490 -- Repetitive Flag
1491 CHECK_LOOKUP_CODE
1492 (
1493 x_return_status =>l_return_status,
1494 p_lookup_code =>p_mr_header_rec.repetitive_flag,
1495 p_lookup_TYPE =>'AHL_YES_NO_TYPE'
1496 );
1497
1498 IF l_return_status<>'S'
1499 THEN
1500 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_REPETITIVE_INVALID');
1501 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.repetitive_flag,false);
1502 FND_MSG_PUB.ADD;
1503 ELSE
1504 IF p_mr_header_rec.repetitive_flag ='N'
1505 and (p_mr_header_rec.SHOW_REPETITIVE_CODE IS NOT NULL OR p_mr_header_rec.SHOW_REPETITIVE_CODE<>FND_API.G_MISS_CHAR)
1506 THEN
1507 IF p_mr_header_rec.SHOW_REPETITIVE_CODE<>'NEXT'
1508 THEN
1509 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_REPITITVE_NO');
1510 FND_MSG_PUB.ADD;
1511 END IF;
1512 END IF;
1513
1514 if p_mr_header_rec.dml_operation<>'C'
1515 then
1516
1517 IF p_mr_header_rec.SUPERUSER_ROLE<>'Y'
1518 THEN
1519
1520 AHL_FMP_COMMON_PVT.validate_mr_interval_threshold
1521 (
1522 x_return_status=>l_return_status,
1523 x_msg_data=>l_msg_data1,
1524 p_mr_header_id=>p_mr_header_rec.mr_header_id,
1525 p_repetitive_flag=>p_mr_header_rec.repetitive_flag
1526 );
1527
1528 IF l_return_Status<>FND_API.G_RET_STS_SUCCESS
1529 THEN
1530 FND_MESSAGE.SET_NAME('AHL',l_msg_data1);
1531 FND_MSG_PUB.ADD;
1532 END IF;
1533 END IF;
1534 end if;
1535 END IF;
1536
1537 -- Whichever_first_code
1538 CHECK_LOOKUP_CODE
1539 (
1540 x_return_status =>l_return_status,
1541 p_lookup_code =>p_mr_header_rec.whichever_first_code,
1542 p_lookup_TYPE =>'AHL_FMP_THRESHOLD_FIRST'
1543 );
1544
1545 IF l_return_status<>'S'
1546 THEN
1547 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_WHICHEVER_INVALID');
1548 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.whichever_first_code,false);
1549 FND_MSG_PUB.ADD;
1550 END IF;
1551
1552 --Space Category
1553
1554 IF p_mr_header_rec.space_category_code is not null or p_mr_header_rec.space_category_code<>fnd_api.g_miss_char
1555 THEN
1556 CHECK_LOOKUP_CODE
1557 (
1558 x_return_status =>l_return_status,
1559 p_lookup_code =>p_mr_header_rec.space_category_code,
1560 p_lookup_TYPE =>'AHL_LTP_SPACE_CATEGORY'
1561 );
1562
1563 IF l_return_status<>'S'
1564 THEN
1565 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_VISIT_CATEGORY');
1566 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.space_category_code,false);
1567 FND_MSG_PUB.ADD;
1568 END IF;
1569
1570 --sareepar service category
1571 VALIDATE_SERVICE_CATEGORY_CODE
1572 (
1573 x_return_status =>l_return_status,
1574 p_space_category_code =>p_mr_header_rec.space_category_code
1575 );
1576
1577 AHL_DEBUG_PUB.debug('RETURN STATUS '||l_return_status,'+ERRORS+');
1578
1579 IF l_return_status<>'S'
1580 THEN
1581 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_INVALID_SERV_CAT_RANK');
1582 FND_MESSAGE.SET_TOKEN('CODE',p_mr_header_rec.space_category_code,false);
1583 FND_MSG_PUB.ADD;
1584
1585 END IF;
1586 END IF;
1587
1588
1589
1590
1591
1592 -- Effective From Validate Of Date
1593 IF l_mr_header_rec.MR_STATUS_CODE='DRAFT' -- AND nvl(l_mr_header_rec.SUPERUSER_ROLE,'N')='N'
1594 THEN
1595 IF p_mr_header_rec.effective_from is null or p_mr_header_rec.effective_from=fnd_api.g_miss_date
1596 THEN
1597 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_EFFECTIVE_FROM_NULL');
1598 FND_MSG_PUB.ADD;
1599 ELSIF TRUNC(p_mr_header_rec.effective_from)<TRUNC(SYSDATE)
1600 THEN
1601 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_EFFE_FROM_INVALID');
1602 FND_MSG_PUB.ADD;
1603 END IF;
1604 END IF;
1605 IF P_MR_HEADER_REC.DML_OPERATION='U'
1606 THEN
1607 IF l_mr_header_rec.MR_STATUS_CODE='DRAFT' -- AND nvl(l_mr_header_rec.SUPERUSER_ROLE,'N')='N'
1608 THEN
1609 open GetHeaderInfo(P_MR_HEADER_REC.mr_header_id);
1610 fetch GetHeaderInfo into l_mr_rec;
1611 close GetHeaderInfo;
1612
1613 if l_mr_rec.version_number>1
1614 then
1615 open GetHeaderInfo1(l_mr_rec.TITLE,l_mr_rec.VERSION_NUMBER);
1616 fetch GetHeaderInfo1 into l_mr_rec1;
1617 IF GetHeaderInfo1%FOUND
1618 THEN
1619
1620 IF trunc(l_mr_Rec.effective_from) < trunc(l_mr_Rec1.effective_from)
1621 THEN
1622 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_ST_DATE_LESSER');
1623 FND_MESSAGE.SET_TOKEN('FIELD',l_mr_Rec.effective_from,false);
1624 FND_MSG_PUB.ADD;
1625 END IF;
1626 END IF;
1627 close GetHeaderInfo1;
1628 end if;
1629 end if;
1630 END IF;
1631 -- Super User
1632 IF G_DEBUG='Y'
1633 THEN
1634 AHL_DEBUG_PUB.debug('superusermode is ...:'||l_MR_HEADER_REC.SUPERUSER_ROLE);
1635 AHL_DEBUG_PUB.debug('billing item :'||nvl(l_MR_HEADER_REC.BILLING_ITEM,'X'));
1636 AHL_DEBUG_PUB.debug('billing item :'||nvl(l_REC.BILLING_ITEM,'X'));
1637 AHL_DEBUG_PUB.debug('billing item :'||nvl(p_mr_header_rec.mr_header_id,0));
1638 END IF;
1639 IF l_mr_header_rec.MR_STATUS_CODE='COMPLETE' AND nvl(l_mr_header_rec.SUPERUSER_ROLE,'N')='N'
1640 THEN
1641 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_INVALID_EDIT');
1642 FND_MSG_PUB.ADD;
1643 ELSIF l_mr_header_rec.MR_STATUS_CODE='COMPLETE' AND l_mr_header_rec.SUPERUSER_ROLE='Y'
1644 THEN
1645
1646
1647 OPEN get_super_non_edit(p_mr_header_rec.MR_HEADER_ID);
1648 FETCH get_super_non_edit INTO l_rec;
1649 IF G_DEBUG='Y'
1650 THEN
1651 AHL_DEBUG_PUB.debug(l_rec.REPETITIVE_FLAG ||'---'||(p_mr_header_rec.REPETITIVE_FLAG));
1652 AHL_DEBUG_PUB.debug(l_rec.SHOW_REPETITIVE_CODE||'---'|| (p_mr_header_rec.SHOW_REPETITIVE_CODE));
1653 AHL_DEBUG_PUB.debug(l_rec.WHICHEVER_FIRST_CODE||'---'|| (p_mr_header_rec.WHICHEVER_FIRST_CODE));
1654 AHL_DEBUG_PUB.debug(l_rec.EFFECTIVE_FROM||'---'||(p_mr_header_rec.EFFECTIVE_FROM));
1655 AHL_DEBUG_PUB.debug(l_rec.BILLING_ITEM_ID||'---'||(p_mr_header_rec.BILLING_ITEM_ID));
1656 AHL_DEBUG_PUB.debug(l_rec.BILLING_ITEM);
1657 AHL_DEBUG_PUB.debug(l_rec.qa_inspection_type_code||'---'||(p_mr_header_rec.qa_inspection_type_code));
1658 AHL_DEBUG_PUB.debug(l_rec.space_category_code||'---'||(P_mr_header_rec.space_category_code));
1659 AHL_DEBUG_PUB.debug(l_rec.DOWN_TIME||'---'||(p_mr_header_rec.DOWN_TIME));
1660 AHL_DEBUG_PUB.debug(l_rec.UOM_CODE||'---'||(p_mr_header_rec.uom_code));
1661 END IF;
1662
1663 IF nvl(l_rec.REPETITIVE_FLAG,'X') <> nvl(p_mr_header_rec.REPETITIVE_FLAG,'X')
1664 or nvl(l_rec.SHOW_REPETITIVE_CODE,'X')<> nvl(p_mr_header_rec.SHOW_REPETITIVE_CODE,'X')
1665 or nvl(l_rec.WHICHEVER_FIRST_CODE,'X')<> nvl(p_mr_header_rec.WHICHEVER_FIRST_CODE,'X')
1666 or trunc(l_rec.EFFECTIVE_FROM)<>trunc(p_mr_header_rec.EFFECTIVE_FROM)
1667 or nvl(l_rec.BILLING_ITEM_ID,0)<>nvl(p_mr_header_rec.BILLING_ITEM_ID,0)
1668 or nvl(l_rec.qa_inspection_type_code,'X')<>nvl(p_mr_header_rec.qa_inspection_type_code,'X')
1669 or nvl(l_rec.space_category_code,'X')<>nvl(P_mr_header_rec.space_category_code,'X')
1670 or NVL(l_rec.DOWN_TIME,0)<>NVL(p_mr_header_rec.DOWN_TIME,0)
1671 or nvl(l_rec.UOM_CODE,'X')<>nvl(p_mr_header_rec.uom_code,'X')
1672 THEN
1673 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_SUPER_NONEDIT_COLS');
1674 FND_MSG_PUB.ADD;
1675 AHL_DEBUG_PUB.debug('SUPERUSER NONEDIT:'||L_MR_HEADER_REC.SUPERUSER_ROLE);
1676 l_check_flag:='N';
1677 END IF;
1678 CLOSE get_super_non_edit;
1679 END IF;
1680
1681 -- Validating null items
1682
1683 IF p_mr_header_rec.SHOW_REPETITIVE_CODE IS NULL OR p_mr_header_rec.SHOW_REPETITIVE_CODE=FND_API.G_MISS_char
1684 THEN
1685 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_REPETITIVE_INVALID');
1686 FND_MSG_PUB.ADD;
1687 END IF;
1688
1689 IF p_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG IS NULL
1690 OR p_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG=FND_API.G_MISS_CHAR
1691 THEN
1692 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_ACCMPLSHMNT_NULL');
1693 FND_MSG_PUB.ADD;
1694 END IF;
1695 -- Validating category. Kasridha - Bug#10245217
1696 IF p_mr_header_rec.CATEGORY_CODE IS NULL
1697 OR p_mr_header_rec.CATEGORY_CODE=FND_API.G_MISS_CHAR
1698 THEN
1699 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_CATEGORY_NULL');
1700 FND_MSG_PUB.ADD;
1701 ELSE
1702 CHECK_LOOKUP_CODE
1703 (
1704 x_return_status =>l_return_status,
1705 p_lookup_code =>p_mr_header_rec.CATEGORY_CODE,
1706 p_lookup_TYPE =>'AHL_FMP_MR_CATEGORY'
1707 );
1708 IF l_return_status<>'S'
1709 THEN
1710 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_CATEGORY_INVALID');
1711 FND_MESSAGE.SET_TOKEN('FIELD',p_mr_header_rec.CATEGORY_CODE);
1712 FND_MSG_PUB.ADD;
1713 END IF;
1714 END IF;
1715
1716 IF G_APPLN_USAGE='PM'
1717 THEN
1718 IF p_mr_header_rec.TYPE_CODE IS NULL
1719 OR p_mr_header_rec.TYPE_CODE=FND_API.G_MISS_CHAR
1720 THEN
1721 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_TYPECODE_NULL');
1722 FND_MSG_PUB.ADD;
1723 ELSE
1724 CHECK_LOOKUP_CODE
1725 (
1726 x_return_status =>l_return_status,
1727 p_lookup_code =>p_mr_header_rec.type_code,
1728 p_lookup_TYPE =>'AHL_FMP_MR_TYPE'
1729 );
1730 IF l_return_status<>'S'
1731 THEN
1732 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_TYPE_CODE_INVALID');
1733 FND_MSG_PUB.ADD;
1734 END IF;
1735 END IF;
1736
1737
1738 IF NVL(p_mr_header_rec.TYPE_CODE,'X')='PROGRAM'
1739 and NVL(p_mr_header_rec.DOWN_TIME,0)>0
1740 THEN
1741 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_DOWNTIME_ZERO');
1742 FND_MSG_PUB.ADD;
1743 ELSIF NVL(p_mr_header_rec.TYPE_CODE,'X')<>'PROGRAM'
1744 and NVL(p_mr_header_rec.DOWN_TIME,0)=0
1745 THEN
1746 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_DOWNTIME_NO_Z');
1747 FND_MSG_PUB.ADD;
1748 END IF;
1749
1750 IF NVL(p_mr_header_rec.TYPE_CODE,'X')='PROGRAM'
1751 and NVL(p_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID,0)>0
1752 THEN
1753 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_SRVREQ_TEMPLT');
1754 FND_MSG_PUB.ADD;
1755 END IF;
1756
1757 IF p_mr_header_rec.DML_OPERATION='U'
1758 THEN
1759 AHL_DEBUG_PUB.debug('Error.Before calling validate mr_type :'||L_MR_HEADER_REC.SUPERUSER_ROLE);
1760 VALIDATE_MR_TYPE
1761 (
1762 x_return_status =>x_return_Status,
1763 p_mr_header_rec =>l_mr_header_rec
1764 );
1765
1766 END IF;
1767 else
1768 IF (p_mr_header_rec.DOWN_TIME IS NOT NULL AND
1769 p_mr_header_rec.DOWN_TIME<>FND_API.G_MISS_NUM)
1770 AND p_mr_header_rec.DOWN_TIME <=0
1771 THEN
1772 -- FOR CMRO MODE
1773 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_DOWNTIME_NO_Z');
1774 FND_MSG_PUB.ADD;
1775 END IF;
1776
1777 END IF;
1778
1779 -- Tamal [MEL/CDL] -- Begin changes
1780 IF (p_mr_header_rec.dml_operation <> 'D')
1781 THEN
1782 IF (p_mr_header_rec.program_type_code = 'MO_PROC' AND p_mr_header_rec.implement_status_code <> 'OPTIONAL_DO_NOT_IMPLEMENT')
1783 THEN
1784 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_MR_MOPROC_IMPL_INV');
1785 -- Maintenance Requirements of (M) and (O) procedure program type must be unplanned.
1786 FND_MSG_PUB.ADD;
1787 END IF;
1788 END IF;
1789 -- Tamal [MEL/CDL] -- End changes
1790
1791 -- DML Operation Create
1792
1793 IF p_mr_header_rec.dml_operation='C' THEN
1794 IF p_mr_header_rec.title is null or p_mr_header_rec.title=fnd_api.g_miss_char
1795 THEN
1796 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TITLE_NULL');
1797 FND_MSG_PUB.ADD;
1798 ELSIF p_mr_header_rec.title is not null or p_mr_header_rec.title<>fnd_api.g_miss_char
1799 THEN
1800
1801 -- Title Should not Repeat in Create mode
1802
1803 SELECT COUNT(*) INTO l_title_counter
1804 FROM AHL_MR_HEADERS_APP_V
1805 WHERE upper(ltrim(rtrim(TITLE)))=upper(ltrim(rtrim(l_mr_header_rec.title)));
1806 IF l_title_counter >0 then
1807 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TITLE_INVALID');
1808 FND_MSG_PUB.ADD;
1809 END IF;
1810 END IF;
1811
1812 ELSIF p_mr_header_rec.dml_operation<>'U' THEN
1813 IF p_mr_header_rec.title is null or p_mr_header_rec.title=fnd_api.g_miss_char
1814 THEN
1815 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TITLE_NULL');
1816 FND_MSG_PUB.ADD;
1817 END IF;
1818 -- pdoki, Following attr is obsoleted after SBE Project, Start.
1819 IF p_mr_header_rec.PRECEDING_MR_HEADER_ID=p_mr_header_rec.MR_HEADER_ID
1820 THEN
1821 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_ID_INVALID');
1822 FND_MSG_PUB.ADD;
1823 END IF;
1824 -- pdoki, SBE Project, End.
1825
1826 IF p_mr_header_rec.mr_header_id is null or p_mr_header_rec.mr_header_id=fnd_api.g_miss_num
1827 THEN
1828 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_NULL');
1829 FND_MSG_PUB.ADD;
1830 END IF;
1831
1832 IF p_mr_header_rec.SERVICE_TYPE_CODE IS NULL OR p_mr_header_rec.SERVICE_TYPE_CODE=FND_API.G_MISS_char
1833 THEN
1834 IF G_APPLN_USAGE<>'PM'
1835 THEN
1836 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_SERVICE_NULL');
1837 FND_MSG_PUB.ADD;
1838 END IF;
1839 ELSE
1840 OPEN get_mr_title(p_mr_header_rec.mr_header_id);
1841 FETCH get_mr_title INTO l_title,l_object_version_number;
1842
1843 IF get_mr_title%NOTFOUND
1844 THEN
1845 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_INVALID');
1846 FND_MSG_PUB.ADD;
1847 END IF;
1848
1849 IF p_mr_header_rec.object_version_number <> l_object_version_number or l_object_version_number is null or l_object_version_number=fnd_api.g_miss_num
1850 THEN
1851 FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
1852 FND_MSG_PUB.ADD;
1853 END IF;
1854 IF p_mr_header_rec.title <> l_title
1855 THEN
1856 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TITLE_NOT_EDITABLE');
1857 FND_MSG_PUB.ADD;
1858 END IF;
1859 CLOSE get_mr_title;
1860 END IF;
1861 END IF;
1862
1863 -- Tamal [MEL/CDL] -- Begin changes
1864 IF (p_mr_header_rec.dml_operation = 'U')
1865 THEN
1866 IF (p_mr_header_rec.program_type_code='MO_PROC')
1867 THEN
1868 OPEN check_route_mo_proc(p_mr_header_rec.mr_header_id);
1869 FETCH check_route_mo_proc INTO l_dummy_char;
1870 IF (check_route_mo_proc%FOUND)
1871 THEN
1872 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_MR_TYPE_ROUTE_INV');
1873 -- Cannot modify program type to (M) and (O) procedure since routes of non (M), (O) procedure type are already associated.
1874 FND_MSG_PUB.ADD;
1875 END IF;
1876 CLOSE check_route_mo_proc;
1877 END IF;
1878
1879 SELECT program_type_code INTO l_old_prog_type FROM ahl_mr_headers_b WHERE mr_header_id = p_mr_header_rec.mr_header_id;
1880 IF (l_old_prog_type <> p_mr_header_rec.program_type_code AND 'MO_PROC' IN (l_old_prog_type, p_mr_header_rec.program_type_code))
1881 THEN
1882 OPEN check_eff_exists(p_mr_header_rec.mr_header_id);
1883 FETCH check_eff_exists INTO l_dummy_char;
1884 IF (check_eff_exists%FOUND)
1885 THEN
1886 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_MR_TYPE_EFF_INV');
1887 -- Cannot modify program type to / from(M) and (O) procedure since effectivities already exist.
1888 FND_MSG_PUB.ADD;
1889 END IF;
1890 CLOSE check_eff_exists;
1891 END IF;
1892 END IF;
1893 -- Tamal [MEL/CDL] -- End changes
1894
1895 -- pdoki added for SBE Project, Start.
1896 IF (p_mr_header_rec.dml_operation = 'U')
1897 THEN
1898 IF (p_mr_header_rec.implement_status_code='OPTIONAL_DO_NOT_IMPLEMENT')
1899 THEN
1900 OPEN check_accom_triggers_exists(p_mr_header_rec.mr_header_id);
1901 FETCH check_accom_triggers_exists INTO l_dummy_char;
1902 IF (check_accom_triggers_exists%FOUND)
1903 THEN
1904 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_ACCOM_TRGRS_EXISTS');
1905 -- Cannot modify Implement Status to Unplanned since Accomplishment Triggers are associated.
1906 FND_MSG_PUB.ADD;
1907 END IF;
1908 CLOSE check_accom_triggers_exists;
1909 END IF;
1910
1911
1912 SELECT program_type_code INTO l_old_prog_type FROM ahl_mr_headers_b WHERE mr_header_id = p_mr_header_rec.mr_header_id;
1913 IF (l_old_prog_type = 'SERV_BLTN' AND l_old_prog_type <> p_mr_header_rec.program_type_code)
1914 THEN
1915 OPEN check_sb_rules_exists(p_mr_header_rec.mr_header_id);
1916 FETCH check_sb_rules_exists INTO l_dummy_char;
1917 IF (check_sb_rules_exists%FOUND)
1918 THEN
1919 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_SB_RULES_EXISTS');
1920 -- Cannot modify program type from Service Bulletin since Service Bulletin Rules are defined..It can be modified only after deleting associated rules.
1921 FND_MSG_PUB.ADD;
1922 END IF;
1923 CLOSE check_sb_rules_exists;
1924 END IF;
1925 END IF;
1926 -- pdoki added for SBE Project, End.
1927
1928 --sukhwsin::Complex Assembly Maintenance Changes - Starts
1929 --In case Implement Status code is going to be changed to Soft Limit... then check whether this MR is a part of any relationship.
1930 --If yes then Raise Error.
1931 IF (p_mr_header_rec.dml_operation = 'U' AND p_mr_header_rec.implement_status_code='SOFT_LIMIT') THEN
1932 l_dummy_char := NULL;
1933 --Check if MR is a part of Accomplishment Trigger.
1934 OPEN check_accom_triggers_exists(p_mr_header_rec.mr_header_id);
1935 FETCH check_accom_triggers_exists INTO l_dummy_char;
1936 IF (check_accom_triggers_exists%FOUND)
1937 THEN
1938 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_ACM_TRG_EXIST');
1939 -- Cannot modify Implement Status to Soft Limit since Accomplishment Triggers are associated.
1940 FND_MSG_PUB.ADD;
1941 END IF;
1942 CLOSE check_accom_triggers_exists;
1943
1944 IF (l_dummy_char IS NULL) THEN
1945 --Check If Parent-Child Relationship Exist for MR
1946 OPEN check_group_mr(p_mr_header_rec.mr_header_id);
1947 FETCH check_group_mr INTO l_dummy_char;
1948 IF (check_group_mr%FOUND) THEN
1949 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_REL_EXIST');
1950 --Cannot modify Implement Status to Soft Limit since this Maintenance Requirement is a part of relationship.
1951 FND_MSG_PUB.ADD;
1952 END IF;
1953 CLOSE check_group_mr;
1954 END IF;
1955
1956 IF (l_dummy_char IS NULL) THEN
1957 --Check If Chain Exist for MR
1958 OPEN chk_mr_in_loop_or_chain(p_mr_header_rec.mr_header_id, 'CHAIN');
1959 FETCH chk_mr_in_loop_or_chain INTO l_dummy_char;
1960 IF (chk_mr_in_loop_or_chain%FOUND) THEN
1961 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_CHAIN_EXIST');
1962 --Cannot modify Implement Status to Soft Limit since this Maintenance Requirement is a part of Chain.
1963 FND_MSG_PUB.ADD;
1964 END IF;
1965 CLOSE chk_mr_in_loop_or_chain;
1966 END IF;
1967
1968 IF (l_dummy_char IS NULL) THEN
1969 --Check If Loop Exist for MR
1970 OPEN chk_mr_in_loop_or_chain(p_mr_header_rec.mr_header_id, 'LOOP');
1971 FETCH chk_mr_in_loop_or_chain INTO l_dummy_char;
1972 IF (chk_mr_in_loop_or_chain%FOUND) THEN
1973 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_LOOP_EXIST');
1974 --Cannot modify Implement Status to Soft Limit since this Maintenance Requirement is a part of Loop.
1975 FND_MSG_PUB.ADD;
1976 END IF;
1977 CLOSE chk_mr_in_loop_or_chain;
1978 END IF;
1979
1980 END IF;
1981 --sukhwsin::Complex Assembly Maintenance Changes - Ends
1982
1983 -- pdoki added for Auto Visit Forecasting Project, Start.
1984 IF (p_mr_header_rec.dml_operation = 'U') THEN
1985 SELECT implement_status_code INTO l_old_impl_status FROM ahl_mr_headers_b WHERE mr_header_id = p_mr_header_rec.mr_header_id;
1986 IF (l_old_impl_status = 'OPTIONAL_DO_NOT_IMPLEMENT' AND l_old_impl_status <> p_mr_header_rec.implement_status_code)
1987 THEN
1988
1989 OPEN Get_Visit_Type_Count(p_mr_header_rec.mr_header_id);
1990 FETCH Get_Visit_Type_Count INTO l_count;
1991 IF (Get_Visit_Type_Count%FOUND)
1992 THEN
1993 IF l_count > 1 THEN
1994 FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_VST_TYPES_EXISTS');
1995 -- Cannot modify Unplanned Maintenance Requirement to Planned if more than one Visit Type Exists.
1996 FND_MSG_PUB.ADD;
1997 END IF;
1998
1999 END IF;
2000 CLOSE Get_Visit_Type_Count;
2001 END IF;
2002 END IF;
2003 -- pdoki added for Auto Visit Forecasting Project, End.
2004
2005 l_msg_count := FND_MSG_PUB.count_msg;
2006
2007 IF l_msg_count > 0
2008 THEN
2009 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2010 END IF;
2011
2012 END;
2013
2014 -- pdoki, Following Proc is obsoleted after SBE Project, Start.
2015 PROCEDURE CHECK_CYCLIC_ASSOCIATION
2016 (
2017 p_api_version IN NUMBER:=1.0,
2018 p_init_msg_list IN VARCHAR2:= FND_API.G_TRUE ,
2019 p_validation_level IN NUMBER:= FND_API.G_VALID_LEVEL_FULL,
2020 x_return_status OUT NOCOPY VARCHAR2,
2021 x_msg_count OUT NOCOPY NUMBER,
2022 x_msg_data OUT NOCOPY VARCHAR2,
2023 P_MR_HEADER_ID IN NUMBER,
2024 P_PREC_HEADER_ID IN NUMBER,
2025 P_RELATED_MR_TITLE IN VARCHAR2
2026 )
2027 AS
2028 l_cyclic_loop EXCEPTION;
2029 pragma EXCEPTION_INIT(l_cyclic_loop,-1436);
2030 l_counter NUMBER;
2031 BEGIN
2032 x_return_status:=FND_API.G_RET_STS_SUCCESS;
2033
2034 SELECT COUNT(*) INTO l_counter
2035 FROM AHL_MR_HEADERS_B
2036 WHERE APPLICATION_USG_CODE=G_APPLN_USAGE
2037 START WITH MR_HEADER_ID=P_MR_HEADER_ID
2038 CONNECT BY PRIOR MR_HEADER_ID=PRECEDING_MR_HEADER_ID;
2039
2040 EXCEPTION
2041 WHEN l_cyclic_loop THEN
2042 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_PREC_MR_H_ID_CYCLIC');
2043 FND_MESSAGE.SET_TOKEN('FIELD',P_RELATED_MR_TITLE,false);
2044 FND_MSG_PUB.ADD;
2045 x_return_status := FND_API.G_RET_STS_ERROR;
2046 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2047 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2048 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2049 p_count => x_msg_count,
2050 p_data => x_msg_data);
2051
2052 WHEN FND_API.G_EXC_ERROR THEN
2053 x_return_status := FND_API.G_RET_STS_ERROR;
2054 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2055 p_count => x_msg_count,
2056 p_data => X_msg_data);
2057 WHEN OTHERS THEN
2058 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2059 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2060 THEN
2061 fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_MR_ASSOCIATIONS_PVT',
2062 p_procedure_name => 'CHECK_CYCLIC_ASSOCIATION',
2063 p_error_text => SUBSTR(SQLERRM,1,240));
2064 END IF;
2065 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2066 p_count => x_msg_count,
2067 p_data => X_msg_data);
2068 END;
2069 -- pdoki, SBE Project, End.
2070
2071
2072 PROCEDURE CREATE_MR_HEADER
2073 (
2074 p_api_version IN NUMBER:=1.0,
2075 p_init_msg_list IN VARCHAR2:=FND_API.G_FALSE,
2076 p_commit IN VARCHAR2:= FND_API.G_FALSE,
2077 p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
2078 p_default IN VARCHAR2:= FND_API.G_FALSE ,
2079 p_module_type IN VARCHAR2:=NULL,
2080 x_return_status OUT NOCOPY VARCHAR2,
2081 x_msg_count OUT NOCOPY NUMBER,
2082 x_msg_data OUT NOCOPY VARCHAR2,
2083 p_x_mr_header_rec IN OUT NOCOPY mr_header_Rec
2084 )
2085 as
2086 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_MR_HEADER';
2087 l_api_version CONSTANT NUMBER := 1.0;
2088 l_num_rec NUMBER;
2089 l_msg_count NUMBER;
2090 l_msg_data VARCHAR2(2000);
2091 l_return_status VARCHAR2(1);
2092 l_init_msg_list VARCHAR2(10):=FND_API.G_TRUE;
2093 l_commit VARCHAR2(1):= FND_API.G_FALSE;
2094 l_mr_header_id number:=0;
2095 l_rowid varchar2(30);
2096 BEGIN
2097 SAVEPOINT CREATE_MR_HEADER_PVT;
2098
2099 -- Initialize message list if p_init_msg_list is set to TRUE.
2100
2101 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2102 p_api_version,
2103 l_api_name,G_PKG_NAME)
2104 THEN
2105 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2106 END IF;
2107
2108
2109 IF FND_API.to_boolean(l_init_msg_list) THEN
2110 FND_MSG_PUB.initialize;
2111 END IF;
2112
2113
2114 x_return_status:=FND_API.G_RET_STS_SUCCESS;
2115
2116
2117 IF G_DEBUG='Y' THEN
2118 AHL_DEBUG_PUB.enable_debug;
2119 END IF;
2120
2121
2122 IF p_module_type = 'JSP' THEN
2123 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=NULL;
2124 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=NULL;
2125 p_x_mr_header_rec.BILLING_ITEM_ID:=NULL;
2126 p_x_mr_header_rec.QA_INSPECTION_TYPE_CODE:=NULL;
2127 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=NULL;
2128 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=NULL;
2129 p_x_mr_header_rec.PRECEDING_MR_HEADER_ID:=NULL;
2130 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
2131 p_x_mr_header_rec.WARRANTY_TEMPLATE_ID:=NULL;
2132 END IF;
2133 AHL_DEBUG_PUB.debug('p_x_mr_header_rec.billing_item_id :'||p_x_mr_header_rec.billing_item_id);
2134 -- Debug info.
2135
2136 IF G_DEBUG='Y' THEN
2137 AHL_DEBUG_PUB.debug( 'AHL_FMP_MR_HEADERS_PVT.','+CREATE_MR_HEADER+');
2138 END IF;
2139
2140 IF FND_API.to_boolean(p_default)
2141 THEN
2142 DEFAULT_MISSING_ATTRIBS
2143 (
2144 p_x_mr_header_rec =>p_x_mr_header_rec
2145 );
2146 END IF;
2147
2148
2149 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL )
2150 THEN
2151 TRANSLATE_VALUE_ID
2152 (
2153 x_return_status =>x_return_Status,
2154 p_x_mr_header_rec =>p_x_mr_header_rec);
2155 END IF;
2156
2157 l_msg_count := FND_MSG_PUB.count_msg;
2158 IF l_msg_count > 0
2159 THEN
2160 x_msg_count := l_msg_count;
2161 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2162 RAISE FND_API.G_EXC_ERROR;
2163 END IF;
2164
2165 IF p_x_mr_header_rec.DML_OPERATION='C'
2166 THEN
2167 p_x_mr_header_rec.mr_status_code:='DRAFT';
2168 p_x_mr_header_rec.VERSION_NUMBER:=1;
2169 p_x_mr_header_rec.copy_accomplishment_flag:='N';
2170 END IF;
2171
2172 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL )
2173 THEN
2174 VALIDATE_MR_HEADER
2175 (
2176 x_return_status =>x_return_Status,
2177 p_mr_header_rec =>p_x_mr_header_rec);
2178 END IF;
2179
2180 l_msg_count := FND_MSG_PUB.count_msg;
2181
2182 IF l_msg_count > 0
2183 THEN
2184 x_msg_count := l_msg_count;
2185 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2186 RAISE FND_API.G_EXC_ERROR;
2187 --sareepar added service category rank
2188 else
2189 p_x_mr_header_rec.service_category_rank := to_number(p_x_mr_header_rec.space_category_code);
2190 END IF;
2191
2192
2193 -- insert process goes here
2194 /*
2195 IF p_x_mr_header_rec.EFFECTIVE_FROM is null or p_x_mr_header_rec.EFFECTIVE_FROM=FND_API.G_MISS_DATE
2196 THEN
2197 p_x_mr_header_rec.EFFECTIVE_FROM:=sysdate;
2198 END IF;
2199 */
2200 select AHL_MR_HEADERS_B_S.NEXTVAL INTO p_x_mr_header_rec.mr_header_id from dual;
2201
2202
2203 /*
2204 IF p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG IS NULL OR p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG=FND_API.G_MISS_char
2205 THEN
2206 p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG:='N';
2207 END IF;
2208 */
2209 AHL_MR_HEADERS_PKG.INSERT_ROW (
2210 X_MR_HEADER_ID =>p_x_mr_header_rec.mr_header_id,
2211 X_OBJECT_VERSION_NUMBER =>1,
2212 X_TITLE =>p_x_mr_header_rec.TITLE,
2213 X_VERSION_NUMBER =>1,
2214 X_EFFECTIVE_FROM =>p_x_mr_header_rec.EFFECTIVE_FROM,
2215 X_EFFECTIVE_TO =>NULL,
2216 X_REVISION =>p_x_mr_header_rec.REVISION,
2217 X_CATEGORY_CODE =>p_x_mr_header_rec.CATEGORY_CODE,
2218 X_SERVICE_TYPE_CODE =>p_x_mr_header_rec.SERVICE_TYPE_CODE,
2219 X_MR_STATUS_CODE =>p_x_mr_header_rec.MR_STATUS_CODE,
2220 X_IMPLEMENT_STATUS_CODE =>p_x_mr_header_rec.IMPLEMENT_STATUS_CODE,
2221 X_REPETITIVE_FLAG =>p_x_mr_header_rec.REPETITIVE_FLAG,
2222 X_SHOW_REPETITIVE_CODE =>p_x_mr_header_rec.SHOW_REPETITIVE_CODE,
2223 X_WHICHEVER_FIRST_CODE =>p_x_mr_header_rec.WHICHEVER_FIRST_CODE,
2224 X_COPY_ACCOMPLISHMENT_FLAG =>nvl(p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG,'N'),
2225 X_PROGRAM_TYPE_CODE =>p_x_mr_header_rec.PROGRAM_TYPE_CODE ,
2226 X_PROGRAM_SUBTYPE_CODE =>p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE,
2227 X_ATTRIBUTE_CATEGORY =>p_x_mr_header_rec.ATTRIBUTE_CATEGORY,
2228 X_PRECEDING_MR_HEADER_ID =>p_x_mr_header_rec.PRECEDING_MR_HEADER_ID,
2229 X_SERVICE_REQUEST_TEMPLATE_ID =>p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID,
2230 X_TYPE_CODE =>p_x_mr_header_rec.TYPE_CODE,
2231 X_DOWN_TIME =>p_x_mr_header_rec.DOWN_TIME,
2232 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
2233 X_WARRANTY_TEMPLATE_ID =>p_x_mr_header_rec.WARRANTY_TEMPLATE_ID,
2234 X_UOM_CODE =>p_x_mr_header_rec.UOM_CODE,
2235 X_DESCRIPTION =>p_x_mr_header_rec.DESCRIPTION,
2236 X_COMMENTS =>p_x_mr_header_rec.COMMENTS,
2237 X_SPACE_CATEGORY_CODE =>p_x_mr_header_rec.SPACE_CATEGORY_CODE,
2238 --sareepar SERVICE CATEGORY RANK
2239 X_SERVICE_CATEGORY_RANK =>p_x_mr_header_rec.SERVICE_CATEGORY_RANK,
2240 X_QA_INSPECTION_TYPE_CODE =>p_x_mr_header_rec.QA_INSPECTION_TYPE_CODE,
2241 X_BILLING_ITEM_ID =>p_x_mr_header_rec.BILLING_ITEM_ID,
2242 X_AUTO_SIGNOFF_FLAG =>nvl(p_x_mr_header_rec.AUTO_SIGNOFF_FLAG,'N'),
2243 X_COPY_INIT_ACCOMPL_FLAG =>nvl(p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG,'N'),
2244 X_COPY_DEFERRALS_FLAG =>nvl(p_x_mr_header_rec.COPY_DEFERRALS_FLAG,'N'),
2245 X_ATTRIBUTE1 =>p_x_mr_header_rec.ATTRIBUTE1,
2246 X_ATTRIBUTE2 =>p_x_mr_header_rec.ATTRIBUTE2,
2247 X_ATTRIBUTE3 =>p_x_mr_header_rec.ATTRIBUTE3,
2248 X_ATTRIBUTE4 =>p_x_mr_header_rec.ATTRIBUTE4,
2249 X_ATTRIBUTE5 =>p_x_mr_header_rec.ATTRIBUTE5,
2250 X_ATTRIBUTE6 =>p_x_mr_header_rec.ATTRIBUTE6,
2251 X_ATTRIBUTE7 =>p_x_mr_header_rec.ATTRIBUTE7,
2252 X_ATTRIBUTE8 =>p_x_mr_header_rec.ATTRIBUTE8,
2253 X_ATTRIBUTE9 =>p_x_mr_header_rec.ATTRIBUTE9,
2254 X_ATTRIBUTE10 =>p_x_mr_header_rec.ATTRIBUTE10,
2255 X_ATTRIBUTE11 =>p_x_mr_header_rec.ATTRIBUTE11,
2256 X_ATTRIBUTE12 =>p_x_mr_header_rec.ATTRIBUTE12,
2257 X_ATTRIBUTE13 =>p_x_mr_header_rec.ATTRIBUTE13,
2258 X_ATTRIBUTE14 =>p_x_mr_header_rec.ATTRIBUTE14,
2259 X_ATTRIBUTE15 =>p_x_mr_header_rec.ATTRIBUTE15,
2260 X_CREATION_DATE =>sysdate,
2261 X_CREATED_BY =>fnd_global.user_id,
2262 X_LAST_UPDATE_DATE =>sysdate,
2263 X_LAST_UPDATED_BY =>fnd_global.user_id,
2264 X_LAST_UPDATE_LOGIN =>fnd_global.user_id);
2265
2266 IF FND_API.TO_BOOLEAN(p_commit) THEN
2267 COMMIT;
2268 END IF;
2269
2270 IF G_DEBUG='Y' THEN
2271 AHL_DEBUG_PUB.disable_debug;
2272 END IF;
2273
2274 EXCEPTION
2275 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2276 ROLLBACK TO CREATE_MR_HEADER_PVT;
2277 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2278 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2279 p_count => x_msg_count,
2280 p_data => x_msg_data);
2281 IF G_DEBUG='Y' THEN
2282 AHL_DEBUG_PUB.disable_debug;
2283 END IF;
2284 WHEN FND_API.G_EXC_ERROR THEN
2285 ROLLBACK TO CREATE_MR_HEADER_PVT;
2286 X_return_status := FND_API.G_RET_STS_ERROR;
2287 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2288 p_count => x_msg_count,
2289 p_data => X_msg_data);
2290 IF G_DEBUG='Y' THEN
2291 AHL_DEBUG_PUB.disable_debug;
2292 END IF;
2293
2294 WHEN OTHERS THEN
2295 ROLLBACK TO CREATE_MR_HEADER_PVT;
2296 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2297 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2298 THEN
2299 fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_FMP_MR_HEADER_PVT',
2300 p_procedure_name => 'CREATE_MR_HEADER',
2301 p_error_text => SUBSTR(SQLERRM,1,240));
2302
2303 END IF;
2304 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2305 p_count => x_msg_count,
2306 p_data => X_msg_data);
2307 IF G_DEBUG='Y' THEN
2308 AHL_DEBUG_PUB.disable_debug;
2309 END IF;
2310 END;
2311
2312
2313 PROCEDURE UPDATE_MR_HEADER
2314 (
2315 p_api_version IN NUMBER:=1.0,
2316 p_init_msg_list IN VARCHAR2:=FND_API.G_FALSE,
2317 p_commit IN VARCHAR2:= FND_API.G_FALSE,
2318 p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
2319 p_default IN VARCHAR2:= FND_API.G_FALSE ,
2320 p_module_type IN VARCHAR2:=NULL,
2321 x_return_status OUT NOCOPY VARCHAR2,
2322 x_msg_count OUT NOCOPY NUMBER,
2323 x_msg_data OUT NOCOPY VARCHAR2,
2324 p_x_mr_header_rec IN OUT NOCOPY MR_HEADER_REC)
2325 as
2326 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_MR_HEADER';
2327 l_api_version CONSTANT NUMBER := 1.0;
2328 l_num_rec NUMBER;
2329 l_msg_count NUMBER;
2330 l_msg_data VARCHAR2(2000);
2331 l_return_status VARCHAR2(1);
2332 l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
2333 BEGIN
2334 SAVEPOINT UPDATE_MR_HEADER_PVT;
2335
2336 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2337 p_api_version,
2338 l_api_name,G_PKG_NAME) THEN
2339 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2340 END IF;
2341
2342 IF FND_API.to_boolean(p_init_msg_list)
2343 THEN
2344 FND_MSG_PUB.initialize;
2345 END IF;
2346
2347
2348 x_return_status:=FND_API.G_RET_STS_SUCCESS;
2349
2350 IF G_DEBUG='Y' THEN
2351 AHL_DEBUG_PUB.enable_debug;
2352 AHL_DEBUG_PUB.debug('Service Category CODE:'||p_x_mr_header_Rec.SPACE_CATEGORY_CODE);
2353 AHL_DEBUG_PUB.debug('Service Category MEANING :'||p_x_mr_header_Rec.SPACE_CATEGORY);
2354 END IF;
2355 --11.5.10 public API change.
2356 IF p_x_mr_header_rec.mr_header_id IS NULL THEN
2357 -- Function to convert mr_title,mr_version_number to id
2358 AHL_FMP_COMMON_PVT.mr_title_version_to_id(
2359 p_mr_title => p_x_mr_header_rec.title,
2360 p_mr_version_number => p_x_mr_header_rec.version_number,
2361 x_mr_header_id => p_x_mr_header_rec.mr_header_id,
2362 x_return_status => x_return_status
2363 );
2364
2365 IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2366 IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
2367 fnd_log.string
2368 (
2369 fnd_log.level_error,
2370 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||':',
2371 'Title,version to id conversion failed.....'
2372 );
2373 END IF;
2374 RAISE FND_API.G_EXC_ERROR;
2375 END IF;
2376 END IF;
2377
2378 IF FND_API.to_boolean( p_default )
2379 THEN
2380 DEFAULT_MISSING_ATTRIBS
2381 (
2382 p_x_mr_header_rec =>p_x_mr_header_rec
2383 );
2384 END IF;
2385
2386 -- Set lov id to null if module is jsp
2387
2388 IF p_module_type = 'JSP'
2389 and (p_x_mr_header_rec.MR_Status_code='DRAFT' OR
2390 p_x_mr_header_rec.MR_Status_code='APPROVAL_REJECTED')
2391 THEN
2392 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=NULL;
2393 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=NULL;
2394 p_x_mr_header_rec.BILLING_ITEM_ID:=NULL;
2395 p_x_mr_header_rec.QA_INSPECTION_TYPE_CODE:=NULL;
2396 p_x_mr_header_rec.PROGRAM_TYPE_CODE:=NULL;
2397 p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE:=NULL;
2398 p_x_mr_header_rec.PRECEDING_MR_HEADER_ID:=NULL;
2399 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
2400 p_x_mr_header_rec.WARRANTY_TEMPLATE_ID:=NULL;
2401 END IF;
2402
2403 IF p_x_mr_header_rec.DML_OPERATION='U' and p_x_mr_header_rec.MR_STATUS_CODE='APPROVAL_REJECTED'
2404 THEN
2405 p_x_mr_header_rec.mr_status_code:='DRAFT';
2406 END IF;
2407
2408 -- Convert Value to id.
2409
2410 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL )
2411 THEN
2412
2413 TRANSLATE_VALUE_ID
2414 (
2415 x_return_status =>x_return_Status,
2416 p_x_mr_header_rec =>p_x_mr_header_rec);
2417 END IF;
2418
2419 l_msg_count := FND_MSG_PUB.count_msg;
2420
2421 IF l_msg_count > 0
2422 THEN
2423 x_msg_count := l_msg_count;
2424 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2425 RAISE FND_API.G_EXC_ERROR;
2426 END IF;
2427
2428
2429
2430 IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL )
2431 THEN
2432
2433 VALIDATE_MR_HEADER
2434 (
2435 x_return_status =>x_return_Status,
2436 p_mr_header_rec =>p_x_mr_header_rec
2437 );
2438
2439 END IF;
2440
2441 l_msg_count := FND_MSG_PUB.count_msg;
2442
2443 IF l_msg_count > 0
2444 THEN
2445 x_msg_count := l_msg_count;
2446 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2447 RAISE FND_API.G_EXC_ERROR;
2448 --sareepar added service category rank
2449 else
2450 p_x_mr_header_rec.service_category_rank := to_number(p_x_mr_header_rec.space_category_code);
2451 END IF;
2452
2453
2454 AHL_MR_HEADERS_PKG.UPDATE_ROW (
2455 X_MR_HEADER_ID =>p_x_mr_header_rec.mr_header_id,
2456 X_OBJECT_VERSION_NUMBER =>p_x_mr_header_rec.object_version_number,
2457 X_CATEGORY_CODE =>p_x_mr_header_rec.CATEGORY_CODE,
2458 X_SERVICE_TYPE_CODE =>p_x_mr_header_rec.SERVICE_TYPE_CODE,
2459 X_MR_STATUS_CODE =>p_x_mr_header_rec.MR_STATUS_CODE,
2460 X_IMPLEMENT_STATUS_CODE =>p_x_mr_header_rec.IMPLEMENT_STATUS_CODE,
2461 X_REPETITIVE_FLAG =>p_x_mr_header_rec.REPETITIVE_FLAG,
2462 X_SHOW_REPETITIVE_CODE =>p_x_mr_header_rec.SHOW_REPETITIVE_CODE,
2463 X_WHICHEVER_FIRST_CODE =>p_x_mr_header_rec.WHICHEVER_FIRST_CODE,
2464 X_COPY_ACCOMPLISHMENT_FLAG =>p_x_mr_header_rec.COPY_ACCOMPLISHMENT_FLAG,
2465 X_PROGRAM_TYPE_CODE =>p_x_mr_header_rec.PROGRAM_TYPE_CODE ,
2466 X_PROGRAM_SUBTYPE_CODE =>p_x_mr_header_rec.PROGRAM_SUBTYPE_CODE,
2467 X_EFFECTIVE_FROM =>p_x_mr_header_rec.EFFECTIVE_FROM,
2468 X_EFFECTIVE_TO =>NVL(p_x_mr_header_rec.EFFECTIVE_TO,NULL),
2469 X_REVISION =>p_x_mr_header_rec.REVISION,
2470 X_ATTRIBUTE_CATEGORY =>p_x_mr_header_rec.ATTRIBUTE_CATEGORY,
2471 X_ATTRIBUTE1 =>p_x_mr_header_rec.ATTRIBUTE1,
2472 X_ATTRIBUTE2 =>p_x_mr_header_rec.ATTRIBUTE2,
2473 X_ATTRIBUTE3 =>p_x_mr_header_rec.ATTRIBUTE3,
2474 X_ATTRIBUTE4 =>p_x_mr_header_rec.ATTRIBUTE4,
2475 X_ATTRIBUTE5 =>p_x_mr_header_rec.ATTRIBUTE5,
2476 X_ATTRIBUTE6 =>p_x_mr_header_rec.ATTRIBUTE6,
2477 X_ATTRIBUTE7 =>p_x_mr_header_rec.ATTRIBUTE7,
2478 X_ATTRIBUTE8 =>p_x_mr_header_rec.ATTRIBUTE8,
2479 X_ATTRIBUTE9 =>p_x_mr_header_rec.ATTRIBUTE9,
2480 X_ATTRIBUTE10 =>p_x_mr_header_rec.ATTRIBUTE10,
2481 X_ATTRIBUTE11 =>p_x_mr_header_rec.ATTRIBUTE11,
2482 X_ATTRIBUTE12 =>p_x_mr_header_rec.ATTRIBUTE12,
2483 X_ATTRIBUTE13 =>p_x_mr_header_rec.ATTRIBUTE13,
2484 X_ATTRIBUTE14 =>p_x_mr_header_rec.ATTRIBUTE14,
2485 X_ATTRIBUTE15 =>p_x_mr_header_rec.ATTRIBUTE15,
2486 X_TITLE =>p_x_mr_header_rec.TITLE,
2487 X_VERSION_NUMBER =>p_x_mr_header_rec.VERSION_NUMBER,
2488 -- pdoki, Preceding MR Header ID is obsoleted after SBE Project.
2489 X_PRECEDING_MR_HEADER_ID =>p_x_mr_header_rec.PRECEDING_MR_HEADER_ID,
2490 X_SERVICE_REQUEST_TEMPLATE_ID =>p_x_mr_header_rec.SERVICE_REQUEST_TEMPLATE_ID,
2491 X_TYPE_CODE =>p_x_mr_header_rec.TYPE_CODE,
2492 X_DOWN_TIME =>p_x_mr_header_rec.DOWN_TIME,
2493 --CHANDANK, 29-Sep-2010, added supplier warranty ID for supplier warranty project
2494 X_WARRANTY_TEMPLATE_ID =>p_x_mr_header_rec.WARRANTY_TEMPLATE_ID,
2495 X_UOM_CODE =>p_x_mr_header_rec.UOM_CODE,
2496 X_DESCRIPTION =>p_x_mr_header_rec.DESCRIPTION,
2497 X_COMMENTS =>p_x_mr_header_rec.COMMENTS,
2498 X_SPACE_CATEGORY_CODE =>p_x_mr_header_rec.SPACE_CATEGORY_CODE,
2499 --sareepar SERVICE CATEGORY RANK
2500 X_SERVICE_CATEGORY_RANK =>p_x_mr_header_rec.SERVICE_CATEGORY_RANK,
2501 X_QA_INSPECTION_TYPE_CODE =>p_x_mr_header_rec.QA_INSPECTION_TYPE_CODE,
2502 X_BILLING_ITEM_ID =>p_x_mr_header_rec.BILLING_ITEM_ID,
2503 X_AUTO_SIGNOFF_FLAG =>p_x_mr_header_rec.AUTO_SIGNOFF_FLAG,
2504 X_COPY_INIT_ACCOMPL_FLAG =>p_x_mr_header_rec.COPY_INIT_ACCOMPL_FLAG,
2505 X_COPY_DEFERRALS_FLAG =>p_x_mr_header_rec.COPY_DEFERRALS_FLAG,
2506 X_LAST_UPDATE_DATE =>sysdate,
2507 X_LAST_UPDATED_BY =>fnd_global.user_id,
2508 X_LAST_UPDATE_LOGIN =>fnd_global.user_id);
2509
2510 l_msg_count := FND_MSG_PUB.count_msg;
2511 IF l_msg_count > 0 THEN
2512 X_msg_count := l_msg_count;
2513 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2514 RAISE FND_API.G_EXC_ERROR;
2515 END IF;
2516
2517 -- pdoki, Following Proc call is obsoleted after SBE Project, Start.
2518 -- Check For Cycli Association
2519
2520 IF (p_x_mr_header_rec.PRECEDING_MR_HEADER_ID IS NOT NULL OR p_x_mr_header_rec.PRECEDING_MR_HEADER_ID<>fnd_api.g_miss_num) and p_x_mr_header_rec.dml_operation<>'D'
2521 THEN
2522 CHECK_CYCLIC_ASSOCIATION
2523 (
2524 p_api_version,
2525 p_init_msg_list,
2526 p_validation_level,
2527 x_return_status,
2528 x_msg_count,
2529 x_msg_data,
2530 p_x_mr_header_rec.MR_HEADER_ID,
2531 p_x_mr_header_rec.PRECEDING_MR_HEADER_ID,
2532 p_x_mr_header_rec.PRECEDING_MR_TITLE
2533 );
2534 END IF;
2535
2536 l_msg_count := FND_MSG_PUB.count_msg;
2537 IF l_msg_count > 0 THEN
2538 X_msg_count := l_msg_count;
2539 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2540 RAISE FND_API.G_EXC_ERROR;
2541 END IF;
2542 -- pdoki, SBE Project, End.
2543
2544
2545 IF FND_API.TO_BOOLEAN(p_commit) THEN
2546 COMMIT;
2547 END IF;
2548 -- Debug info
2549
2550 -- AHL_DEBUG_PUB.debug( 'End of Private api UPDATE_MR_HEADER','+MR_header+');
2551
2552 -- Check if API is called in debug mode. If yes, disable debug.
2553
2554 IF G_DEBUG='Y' THEN
2555 AHL_DEBUG_PUB.disable_debug;
2556 END IF;
2557
2558 EXCEPTION
2559
2560 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2561 ROLLBACK TO UPDATE_MR_HEADER_PVT;
2562 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2563 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2564 p_count => x_msg_count,
2565 p_data => x_msg_data);
2566 IF G_DEBUG='Y' THEN
2567 AHL_DEBUG_PUB.disable_debug;
2568 END IF;
2569
2570 WHEN FND_API.G_EXC_ERROR THEN
2571 ROLLBACK TO UPDATE_MR_HEADER_PVT;
2572 X_return_status := FND_API.G_RET_STS_ERROR;
2573 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2574 p_count => x_msg_count,
2575 p_data => X_msg_data);
2576 IF G_DEBUG='Y' THEN
2577 AHL_DEBUG_PUB.disable_debug;
2578 END IF;
2579 WHEN OTHERS THEN
2580 ROLLBACK TO UPDATE_MR_HEADER_PVT;
2581 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2582 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2583 THEN
2584 fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
2585 p_procedure_name =>l_api_name,
2586 p_error_text => SUBSTR(SQLERRM,1,240));
2587 END IF;
2588 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2589 p_count => x_msg_count,
2590 p_data => X_msg_data);
2591 IF G_DEBUG='Y' THEN
2592 AHL_DEBUG_PUB.disable_debug;
2593 END IF;
2594 END;
2595
2596 PROCEDURE VALIDATE_DEL_MR_HEADER
2597 (
2598 p_mr_header_id IN NUMBER,
2599 p_object_version_number IN NUMBER,
2600 x_return_status OUT NOCOPY VARCHAR2
2601 )
2602 As
2603 L_ERR_FLAG NUMBER(2);
2604 L_RETURN_STATUS VARCHAR2(1):='S';
2605 CURSOR GetHeaderDet(C_MR_HEADER_ID NUMBER,C_OBJECT_VERSION_NUMBER NUMBER)
2606 IS
2607 --AMSRINIV.Bug 4916286. Tuning below commented query for improving performance
2608 SELECT
2609 mr_status_code
2610 FROM
2611 ahl_mr_headers_b
2612 WHERE
2613 application_usg_code = RTRIM(LTRIM(fnd_profile.value('AHL_APPLN_USAGE'))) AND
2614 mr_header_id=C_MR_HEADER_ID AND
2615 object_version_number=C_OBJECT_VERSION_NUMBER;
2616
2617 /*SELECT MR_STATUS_CODE
2618 FROM AHL_MR_HEADERS_V
2619 WHERE MR_HEADER_ID=C_MR_HEADER_ID
2620 AND OBJECT_VERSION_NUMBER=C_OBJECT_VERSION_NUMBER;*/
2621 l_rec GetHeaderDet%rowtype;
2622 l_appln_code VARCHAR2(30);
2623 BEGIN
2624
2625 IF G_APPLN_USAGE IS NULL
2626 THEN
2627 FND_MESSAGE.SET_NAME('AHL','AHL_COM_APP_PRFL_UNDEF');
2628 FND_MSG_PUB.ADD;
2629 RETURN;
2630 END IF;
2631
2632 IF P_MR_HEADER_ID IS NULL OR P_MR_HEADER_ID=FND_API.G_MISS_NUM
2633 THEN
2634 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_NULL');
2635 FND_MSG_PUB.ADD;
2636 L_ERR_FLAG:=1;
2637 END IF;
2638
2639 IF P_OBJECT_VERSION_NUMBER IS NULL OR P_OBJECT_VERSION_NUMBER=FND_API.G_MISS_NUM
2640 THEN
2641 FND_MESSAGE.SET_NAME('AHL','AHL_COM_OBJECT_VERS_NUM_NULL');
2642 FND_MSG_PUB.ADD;
2643 L_ERR_FLAG:=1;
2644 END IF;
2645
2646 IF L_ERR_FLAG=1
2647 THEN
2648 RETURN;
2649 END IF;
2650 Open GetHeaderDet(P_MR_HEADER_ID,P_OBJECT_VERSION_NUMBER);
2651 Fetch GetHeaderDet into l_rec;
2652 If GetHeaderDet%NotFound Then
2653 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_INVALID');
2654 FND_MSG_PUB.ADD;
2655 Elsif GetHeaderDet%Found and (l_rec.mr_status_code<>'DRAFT' AND
2656 l_rec.mr_status_code<>'APPROVAL_REJECTED')
2657 Then
2658 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_INVALID_MR_STATUS');
2659 FND_MSG_PUB.ADD;
2660 End if;
2661 Close GetHeaderDet;
2662 END;
2663 --
2664
2665 PROCEDURE DELETE_MR_HEADER
2666 (
2667 p_api_version IN NUMBER:=1.0,
2668 p_init_msg_list IN VARCHAR2:=FND_API.G_FALSE,
2669 p_commit IN VARCHAR2:= FND_API.G_FALSE,
2670 p_validation_level IN NUMBER:=FND_API.G_VALID_LEVEL_FULL,
2671 p_default IN VARCHAR2:= FND_API.G_FALSE ,
2672 p_module_type IN VARCHAR2:=NULL,
2673 x_return_status OUT NOCOPY VARCHAR2,
2674 x_msg_count OUT NOCOPY NUMBER,
2675 x_msg_data OUT NOCOPY VARCHAR2,
2676 p_mr_header_id IN NUMBER,
2677 p_object_version_number IN NUMBER)
2678 as
2679 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_MR_HEADER';
2680 l_api_version CONSTANT NUMBER := 1.0;
2681 l_num_rec NUMBER;
2682 l_msg_count NUMBER;
2683 l_msg_data VARCHAR2(2000);
2684 l_return_status VARCHAR2(1);
2685 l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
2686 Cursor CurGetRoutes(c_mr_header_id number)
2687 Is
2688 Select * from ahl_mr_Routes
2689 Where mr_header_id=c_mr_header_id;
2690 l_mr_route_rec CurGetRoutes%rowtype;
2691
2692 Cursor curGetMrEffects(c_mr_header_id number)
2693 Is
2694 Select * from ahl_mr_Effectivities
2695 Where mr_header_id=c_mr_header_id;
2696 L_MR_EFFECT_REC curGetMrEffects%ROWTYPE;
2697
2698 Cursor curGetMrEffDetls(c_mr_effectivity_id number)
2699 Is
2700 Select * from ahl_mr_effectivity_dtls
2701 Where mr_effectivity_id=c_mr_effectivity_id;
2702
2703 Cursor curGetMrEffIntervals(c_mr_effectivity_id number)
2704 Is
2705 Select * from ahl_mr_intervals
2706 Where mr_effectivity_id=c_mr_effectivity_id;
2707
2708 Cursor curGetMrdocAssociations(c_mr_header_id number)
2709 Is
2710 Select * from AHL_DOC_TITLE_ASSOS_B
2711 Where ASO_OBJECT_ID=C_MR_HEADER_ID
2712 And ASO_OBJECT_TYPE_CODE='MR';
2713 l_mr_doc_rec curGetMrdocAssociations%rowtype;
2714
2715 --Changes for SBE - Loop/Chain Relns Begins
2716 CURSOR get_mr_loop_chain_relns(p_mr_header_id_csr NUMBER)
2717 IS
2718 SELECT * FROM ahl_mr_loop_chain_relns WHERE
2719 mr_relationship_id IN
2720 (SELECT mr_relationship_id
2721 FROM ahl_mr_loop_chain_relns
2722 WHERE mr_header_id = p_mr_header_id_csr
2723 AND mr_relationship_id <> start_mr_relationship_id
2724 );
2725
2726 l_seq_count NUMBER;
2727 --Changes for SBE - Loop/Chain Relns Ends
2728
2729 -- sansatpa - Changes for NR Analysis - MR Org removal Begins
2730 CURSOR get_mr_title(c_mr_header_id NUMBER)
2731 IS
2732 SELECT title
2733 FROM AHL_MR_HEADERS_B
2734 WHERE mr_header_id= c_mr_header_id;
2735
2736 l_mr_title varchar2(80);
2737 -- sansatpa - Changes for NR Analysis - MR Org removal Ends
2738
2739 l_program_type varchar2(30);
2740
2741
2742 BEGIN
2743 SAVEPOINT DELETE_MR_HEADER_PVT;
2744
2745 IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2746 p_api_version,
2747 l_api_name,G_PKG_NAME) THEN
2748 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2749 END IF;
2750
2751 IF FND_API.to_boolean(P_init_msg_list)
2752 THEN
2753 FND_MSG_PUB.initialize;
2754 END IF;
2755
2756
2757 x_return_status:=FND_API.G_RET_STS_SUCCESS;
2758
2759 IF G_DEBUG='Y' THEN
2760 AHL_DEBUG_PUB.enable_debug;
2761 END IF;
2762
2763 -- Debug info.
2764 IF G_DEBUG='Y' THEN
2765 AHL_DEBUG_PUB.debug( 'AHL_FMP_MR_HEADERS_PVT.','+DELETE_MR_HEADER+');
2766 END IF;
2767
2768 -- IF (p_validation_level = FND_API.G_VALID_LEVEL_FULL )
2769 -- THEN
2770 VALIDATE_DEL_MR_HEADER
2771 (
2772 p_mr_header_id =>p_mr_header_id,
2773 p_object_version_number =>p_object_version_number,
2774 x_return_status =>L_return_Status
2775 );
2776
2777 l_msg_count := FND_MSG_PUB.count_msg;
2778 IF l_msg_count > 0
2779 THEN
2780 x_msg_count := l_msg_count;
2781 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2782 RAISE FND_API.G_EXC_ERROR;
2783 END IF;
2784
2785 -- END IF;
2786
2787 Open CurGetRoutes(p_mr_header_id);
2788 Loop
2789 fetch CurGetRoutes into l_mr_route_rec;
2790 if CurGetRoutes%NotFound
2791 Then
2792 Exit;
2793 else
2794 Delete AHL_MR_ROUTE_SEQUENCES
2795 WHERE MR_ROUTE_ID=l_mr_route_rec.mr_route_id or
2796 RELATED_MR_ROUTE_ID=l_mr_route_rec.mr_route_id;
2797
2798 Delete AHL_MR_ROUTES
2799 WHERE MR_ROUTE_ID=l_mr_route_rec.mr_route_id;
2800 End if;
2801 End loop;
2802 Close CurGetRoutes;
2803
2804 Open CurGetMrEffects(p_mr_header_id);
2805 Loop
2806 Fetch CurGetMrEffects into l_mr_effect_Rec;
2807 If CurGetMrEffects%NotFound
2808 Then
2809 Exit;
2810 Else
2811 Delete AHL_MR_EFFECTIVITY_DTLS
2812 Where MR_effectivity_id=l_mr_effect_rec.MR_EFFECTIVITY_ID;
2813
2814 Delete AHL_MR_INTERVALS
2815 Where MR_effectivity_id=l_mr_effect_rec.mr_effectivity_id;
2816 Delete AHL_MR_EFFECTIVITIES
2817 Where mr_effectivity_id=l_mr_effect_rec.mr_effectivity_id;
2818 End if;
2819
2820 End loop;
2821 Close CurGetMrEffects;
2822
2823 Open curGetMrdocAssociations(p_mr_header_id);
2824 loop
2825 Fetch curGetMrdocAssociations into l_mr_doc_rec;
2826 If curGetMrdocAssociations%Found
2827 Then
2828 Delete from AHL_DOC_TITLE_ASSOS_TL
2829 Where DOC_TITLE_ASSO_ID = l_mr_doc_rec.DOC_TITLE_ASSO_ID;
2830
2831 Delete from AHL_DOC_TITLE_ASSOS_B
2832 Where DOC_TITLE_ASSO_ID = l_mr_doc_rec.DOC_TITLE_ASSO_ID;
2833 Elsif curGetMrdocAssociations%NotFound
2834 Then
2835 Exit;
2836 End if;
2837 End loop;
2838 Close curGetMrdocAssociations;
2839
2840 Delete AHL_MR_RELATIONSHIPS
2841 Where mr_header_id=p_mr_header_id
2842 or RELATED_MR_HEADER_ID=P_MR_HEADER_ID;
2843
2844 -- Changes for SBE Begin: Delete the relation from MR loop/chain relationships table
2845
2846 DELETE FROM AHL_MR_LOOP_CHAIN_RELNS
2847 WHERE
2848 start_mr_relationship_id IN
2849 (SELECT mr_relationship_id
2850 FROM ahl_mr_loop_chain_relns
2851 WHERE mr_header_id = P_MR_HEADER_ID
2852 );
2853
2854 FOR l_mr_loop_chain_rel_rec IN get_mr_loop_chain_relns(P_MR_HEADER_ID)
2855 LOOP
2856 SELECT COUNT(sequence_number) INTO l_seq_count FROM ahl_mr_loop_chain_relns WHERE sequence_number = l_mr_loop_chain_rel_rec.sequence_number AND start_mr_relationship_id = l_mr_loop_chain_rel_rec.start_mr_relationship_id;
2857
2858 IF l_seq_count <= 1 THEN
2859 DELETE FROM ahl_mr_loop_chain_relns WHERE start_mr_relationship_id = l_mr_loop_chain_rel_rec.start_mr_relationship_id;
2860
2861 ELSE
2862 DELETE FROM ahl_mr_loop_chain_relns WHERE mr_relationship_id = l_mr_loop_chain_rel_rec.mr_relationship_id;
2863 END IF;
2864 END LOOP;
2865
2866 -- Changes for SBE - Loop/Chain Relns Ends
2867
2868
2869 -- pdoki added for SBE Project, Start.
2870 -- Deletes the SB Rules associated to an MR
2871 select program_type_code
2872 into l_program_type
2873 from ahl_mr_headers_b
2874 where mr_header_id = p_mr_header_id;
2875
2876 IF l_program_type = 'SERV_BLTN' THEN
2877
2878 AHL_SB_RULES_PVT.Delete_Rules_For_MR
2879 (
2880 p_api_version => 1.0,
2881 p_commit => FND_API.G_FALSE,
2882 p_mr_header_id => p_mr_header_id,
2883 x_return_status => x_return_status,
2884 x_msg_count => x_msg_count,
2885 x_msg_data => x_msg_data
2886 );
2887 END IF;
2888 -- pdoki added for SBE Project, End.
2889
2890
2891 -- sansatpa - Changes for NR Analysis - MR Orgs Deletion -- Begins
2892
2893 OPEN get_mr_title(p_mr_header_id);
2894 FETCH get_mr_title INTO l_mr_title;
2895
2896 IF get_mr_title%NOTFOUND
2897 THEN
2898 FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_INVALID');
2899 FND_MSG_PUB.ADD;
2900 Else
2901 Delete from AHL_MR_ORGANIZATIONS
2902 Where MR_TITLE = l_mr_title;
2903 End if;
2904 close get_mr_title;
2905
2906 -- sansatpa - Changes for NR Analysis - MR Orgs Deletion -- Ends
2907
2908
2909 l_msg_count := FND_MSG_PUB.count_msg;
2910 IF l_msg_count > 0 OR x_return_status <> FND_API.G_RET_STS_SUCCESS
2911 THEN
2912 x_msg_count := l_msg_count;
2913 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2914 RAISE FND_API.G_EXC_ERROR;
2915 END IF;
2916
2917 AHL_MR_HEADERS_PKG.DELETE_ROW
2918 (
2919 X_MR_HEADER_ID =>p_mr_header_id
2920 );
2921
2922 l_msg_count := FND_MSG_PUB.count_msg;
2923 IF l_msg_count > 0 THEN
2924 X_msg_count := l_msg_count;
2925 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2926 RAISE FND_API.G_EXC_ERROR;
2927 END IF;
2928
2929 IF G_DEBUG='Y' THEN
2930 AHL_DEBUG_PUB.disable_debug;
2931 END IF;
2932
2933 IF FND_API.TO_BOOLEAN(p_commit) THEN
2934 COMMIT;
2935 END IF;
2936 EXCEPTION
2937 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2938 ROLLBACK TO DELETE_MR_HEADER_PVT;
2939 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2940 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2941 p_count => x_msg_count,
2942 p_data => x_msg_data);
2943 IF G_DEBUG='Y' THEN
2944 AHL_DEBUG_PUB.disable_debug;
2945 END IF;
2946
2947 WHEN FND_API.G_EXC_ERROR THEN
2948 ROLLBACK TO DELETE_MR_HEADER_PVT;
2949 X_return_status := FND_API.G_RET_STS_ERROR;
2950 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2951 p_count => x_msg_count,
2952 p_data => X_msg_data);
2953 IF G_DEBUG='Y' THEN
2954 AHL_DEBUG_PUB.disable_debug;
2955 END IF;
2956
2957 WHEN OTHERS THEN
2958 ROLLBACK TO DELETE_MR_HEADER_PVT;
2959 X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2960 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2961 THEN
2962 fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
2963 p_procedure_name =>l_api_name,
2964 p_error_text => SUBSTR(SQLERRM,1,240));
2965 END IF;
2966 FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2967 p_count => x_msg_count,
2968 p_data => X_msg_data);
2969 IF G_DEBUG='Y' THEN
2970 AHL_DEBUG_PUB.disable_debug;
2971 END IF;
2972
2973 END DELETE_MR_HEADER;
2974
2975 END AHL_FMP_MR_HEADER_PVT;