DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_OPER_INST_PVT

Source


1 PACKAGE BODY OKC_OPER_INST_PVT AS
2 /* $Header: OKCCCOPB.pls 120.0 2005/05/25 23:06:44 appldev noship $ */
3 
4 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6   ---------------------------------------------------------------------------
7   -- GLOBAL VARIABLES
8   ---------------------------------------------------------------------------
9   /*
10   G_APP_NAME		 CONSTANT VARCHAR2(3)   :=  OKC_API.G_APP_NAME;
11   G_NO_PARENT_RECORD CONSTANT	VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
12   G_UNEXPECTED_ERROR CONSTANT	VARCHAR2(200) := 'OKC_CONTRACTS_UNEXPECTED_ERROR';
13   G_PARENT_TABLE_TOKEN	CONSTANT VARCHAR2(200) := OKC_API.G_PARENT_TABLE_TOKEN;
14   G_CHILD_TABLE_TOKEN	CONSTANT VARCHAR2(200) := OKC_API.G_CHILD_TABLE_TOKEN;
15   G_SQLERRM_TOKEN	 CONSTANT	VARCHAR2(200) := 'SQLerrm';
16   G_SQLCODE_TOKEN	 CONSTANT	VARCHAR2(200) := 'SQLcode';
17   G_REQUIRED_VALUE       CONSTANT VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
18   G_INVALID_VALUE        CONSTANT VARCHAR2(200) := OKC_API.G_INVALID_VALUE;
19   G_COL_NAME_TOKEN       CONSTANT VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
20   G_TABLE_TOKEN      CONSTANT VARCHAR2(200) := OKC_API.G_CHILD_TABLE_TOKEN;
21   G_EXCEPTION_HALT_VALIDATION exception;
22   NO_CONTRACT_FOUND exception;
23   G_NO_UPDATE_ALLOWED_EXCEPTION exception;
24   G_NO_UPDATE_ALLOWED CONSTANT VARCHAR2(200) := 'OKC_NO_UPDATE_ALLOWED';
25   G_EXCEPTION_HALT_PROCESS exception;
26   */
27   ---------------------------------------------------------------------------
28 
29   PROCEDURE Create_Class_Operation (
30     p_api_version                  IN NUMBER,
31     p_init_msg_list                IN VARCHAR2 ,
32     x_return_status                OUT NOCOPY VARCHAR2,
33     x_msg_count                    OUT NOCOPY NUMBER,
34     x_msg_data                     OUT NOCOPY VARCHAR2,
35     p_copv_rec                     IN  OKC_COP_PVT.copv_rec_type,
36     x_copv_rec                     OUT NOCOPY  OKC_COP_PVT.copv_rec_type) IS
37 
38     l_copv_rec		OKC_COP_PVT.copv_rec_type := p_copv_rec;
39   BEGIN
40     -- initialize return status
41     x_return_status := OKC_API.G_RET_STS_SUCCESS;
42 
43        OKC_COP_PVT.Insert_Row(
44 	       p_api_version	=> p_api_version,
45 	       p_init_msg_list	=> p_init_msg_list,
46             x_return_status 	=> x_return_status,
47             x_msg_count     	=> x_msg_count,
48             x_msg_data      	=> x_msg_data,
49             p_copv_rec		=> l_copv_rec,
50             x_copv_rec		=> x_copv_rec);
51 
52   END Create_Class_Operation;
53 
54   PROCEDURE Create_Class_Operation (
55     p_api_version                  IN NUMBER,
56     p_init_msg_list                IN VARCHAR2 ,
57     x_return_status                OUT NOCOPY VARCHAR2,
58     x_msg_count                    OUT NOCOPY NUMBER,
59     x_msg_data                     OUT NOCOPY VARCHAR2,
60     p_copv_tbl                     IN  OKC_COP_PVT.copv_tbl_type,
61     x_copv_tbl                     OUT NOCOPY  OKC_COP_PVT.copv_tbl_type) IS
62 
63   BEGIN
64 
65     OKC_COP_PVT.Insert_Row(
66 	 p_api_version		=> p_api_version,
67 	 p_init_msg_list	=> p_init_msg_list,
68       x_return_status 	=> x_return_status,
69       x_msg_count     	=> x_msg_count,
70       x_msg_data      	=> x_msg_data,
71       p_copv_tbl		=> p_copv_tbl,
72       x_copv_tbl		=> x_copv_tbl);
73 
74   END Create_Class_Operation;
75 
76   PROCEDURE Update_Class_Operation (
77     p_api_version                  IN NUMBER,
78     p_init_msg_list                IN VARCHAR2 ,
79     x_return_status                OUT NOCOPY VARCHAR2,
80     x_msg_count                    OUT NOCOPY NUMBER,
81     x_msg_data                     OUT NOCOPY VARCHAR2,
82     p_copv_rec                     IN OKC_COP_PVT.copv_rec_type,
83     x_copv_rec                     OUT NOCOPY OKC_COP_PVT.copv_rec_type) IS
84 
85   BEGIN
86 
87     OKC_COP_PVT.Update_Row(
88 	 p_api_version			=> p_api_version,
89 	 p_init_msg_list		=> p_init_msg_list,
90       x_return_status 		=> x_return_status,
91       x_msg_count     		=> x_msg_count,
92       x_msg_data      		=> x_msg_data,
93       p_copv_rec			=> p_copv_rec,
94       x_copv_rec			=> x_copv_rec);
95 
96   END Update_Class_Operation;
97 
98   PROCEDURE Update_Class_Operation (
99     p_api_version                  IN NUMBER,
100     p_init_msg_list                IN VARCHAR2 ,
101     x_return_status                OUT NOCOPY VARCHAR2,
102     x_msg_count                    OUT NOCOPY NUMBER,
103     x_msg_data                     OUT NOCOPY VARCHAR2,
104     p_copv_tbl                     IN OKC_COP_PVT.copv_tbl_type,
105     x_copv_tbl                     OUT NOCOPY OKC_COP_PVT.copv_tbl_type) IS
106 
107   BEGIN
108 
109     OKC_COP_PVT.Update_Row(
110 	 p_api_version			=> p_api_version,
111 	 p_init_msg_list		=> p_init_msg_list,
112       x_return_status 		=> x_return_status,
113       x_msg_count     		=> x_msg_count,
114       x_msg_data      		=> x_msg_data,
115       p_copv_tbl			=> p_copv_tbl,
116       x_copv_tbl			=> x_copv_tbl);
117 
118   END Update_Class_Operation;
119 
120   PROCEDURE Delete_Class_Operation (
121     p_api_version                  IN NUMBER,
122     p_init_msg_list                IN VARCHAR2 ,
123     x_return_status                OUT NOCOPY VARCHAR2,
124     x_msg_count                    OUT NOCOPY NUMBER,
125     x_msg_data                     OUT NOCOPY VARCHAR2,
126     p_copv_rec                     IN OKC_COP_PVT.copv_rec_type) IS
127 
128   BEGIN
129        OKC_COP_PVT.Delete_Row(
130 	 		p_api_version		=> p_api_version,
131 	 		p_init_msg_list	=> p_init_msg_list,
132       		x_return_status 	=> x_return_status,
133       		x_msg_count     	=> x_msg_count,
134       		x_msg_data      	=> x_msg_data,
135       		p_copv_rec		=> p_copv_rec);
136 
137   END Delete_Class_Operation;
138 
139   PROCEDURE Delete_Class_Operation (
140     p_api_version                  IN NUMBER,
141     p_init_msg_list                IN VARCHAR2 ,
142     x_return_status                OUT NOCOPY VARCHAR2,
143     x_msg_count                    OUT NOCOPY NUMBER,
144     x_msg_data                     OUT NOCOPY VARCHAR2,
145     p_copv_tbl                     IN OKC_COP_PVT.copv_tbl_type) IS
146 
147   BEGIN
148 
149     OKC_COP_PVT.Delete_Row(
150 	 p_api_version		=> p_api_version,
151 	 p_init_msg_list	=> p_init_msg_list,
152       x_return_status 	=> x_return_status,
153       x_msg_count     	=> x_msg_count,
154       x_msg_data      	=> x_msg_data,
155       p_copv_tbl		=> p_copv_tbl);
156 
157   END Delete_Class_Operation;
158 
159   PROCEDURE Lock_Class_Operation (
160     p_api_version                  IN NUMBER,
161     p_init_msg_list                IN VARCHAR2 ,
162     x_return_status                OUT NOCOPY VARCHAR2,
163     x_msg_count                    OUT NOCOPY NUMBER,
164     x_msg_data                     OUT NOCOPY VARCHAR2,
165     p_copv_rec                     IN OKC_COP_PVT.copv_rec_type) IS
166 
167   BEGIN
168 
169     OKC_COP_PVT.Lock_Row(
170 	 p_api_version		=> p_api_version,
171 	 p_init_msg_list	=> p_init_msg_list,
172       x_return_status 	=> x_return_status,
173       x_msg_count     	=> x_msg_count,
174       x_msg_data      	=> x_msg_data,
175       p_copv_rec		=> p_copv_rec);
176 
177   END Lock_Class_Operation;
178 
179   PROCEDURE Lock_Class_Operation(
180     p_api_version                  IN NUMBER,
181     p_init_msg_list                IN VARCHAR2 ,
182     x_return_status                OUT NOCOPY VARCHAR2,
183     x_msg_count                    OUT NOCOPY NUMBER,
184     x_msg_data                     OUT NOCOPY VARCHAR2,
185     p_copv_tbl                     IN OKC_COP_PVT.copv_tbl_type) IS
186 
187   BEGIN
188 
189     OKC_COP_PVT.Lock_Row(
190 	 p_api_version		=> p_api_version,
191 	 p_init_msg_list	=> p_init_msg_list,
192       x_return_status 	=> x_return_status,
193       x_msg_count     	=> x_msg_count,
194       x_msg_data      	=> x_msg_data,
195       p_copv_tbl		=> p_copv_tbl);
196 
197   END Lock_Class_Operation;
198 
199   PROCEDURE Validate_Class_Operation (
200     p_api_version                  IN NUMBER,
201     p_init_msg_list                IN VARCHAR2 ,
202     x_return_status                OUT NOCOPY VARCHAR2,
203     x_msg_count                    OUT NOCOPY NUMBER,
204     x_msg_data                     OUT NOCOPY VARCHAR2,
205     p_copv_rec                     IN OKC_COP_PVT.copv_rec_type) IS
206 
207   BEGIN
208 
209     OKC_COP_PVT.Validate_Row(
210 	 p_api_version		=> p_api_version,
211 	 p_init_msg_list	=> p_init_msg_list,
212       x_return_status 	=> x_return_status,
213       x_msg_count     	=> x_msg_count,
214       x_msg_data      	=> x_msg_data,
215       p_copv_rec		=> p_copv_rec);
216 
217   END Validate_Class_Operation;
218 
219   PROCEDURE Validate_Class_Operation (
220     p_api_version                  IN NUMBER,
221     p_init_msg_list                IN VARCHAR2 ,
222     x_return_status                OUT NOCOPY VARCHAR2,
223     x_msg_count                    OUT NOCOPY NUMBER,
224     x_msg_data                     OUT NOCOPY VARCHAR2,
225     p_copv_tbl                     IN OKC_COP_PVT.copv_tbl_type) IS
226 
227   BEGIN
228 
229     OKC_COP_PVT.Validate_Row(
230 	 p_api_version		=> p_api_version,
231 	 p_init_msg_list	=> p_init_msg_list,
232       x_return_status 	=> x_return_status,
233       x_msg_count     	=> x_msg_count,
234       x_msg_data      	=> x_msg_data,
235       p_copv_tbl		=> p_copv_tbl);
236 
237   END Validate_Class_Operation;
238 
239   PROCEDURE Create_Operation_Instance (
240     p_api_version                  IN NUMBER,
241     p_init_msg_list                IN VARCHAR2 ,
242     x_return_status                OUT NOCOPY VARCHAR2,
243     x_msg_count                    OUT NOCOPY NUMBER,
244     x_msg_data                     OUT NOCOPY VARCHAR2,
245     p_oiev_rec                     IN  OKC_OIE_PVT.oiev_rec_type,
246     x_oiev_rec                     OUT NOCOPY  OKC_OIE_PVT.oiev_rec_type) IS
247 
248     l_oiev_rec		OKC_OIE_PVT.oiev_rec_type := p_oiev_rec;
249   BEGIN
250     -- initialize return status
251     x_return_status := OKC_API.G_RET_STS_SUCCESS;
252 
253        OKC_OIE_PVT.Insert_Row(
254 	       p_api_version	=> p_api_version,
255 	       p_init_msg_list	=> p_init_msg_list,
256             x_return_status 	=> x_return_status,
257             x_msg_count     	=> x_msg_count,
258             x_msg_data      	=> x_msg_data,
259             p_oiev_rec		=> l_oiev_rec,
260             x_oiev_rec		=> x_oiev_rec);
261 
262   END Create_Operation_Instance;
263 
264   PROCEDURE Create_Operation_Instance (
265     p_api_version                  IN NUMBER,
266     p_init_msg_list                IN VARCHAR2 ,
267     x_return_status                OUT NOCOPY VARCHAR2,
268     x_msg_count                    OUT NOCOPY NUMBER,
269     x_msg_data                     OUT NOCOPY VARCHAR2,
270     p_oiev_tbl                     IN  OKC_OIE_PVT.oiev_tbl_type,
271     x_oiev_tbl                     OUT NOCOPY  OKC_OIE_PVT.oiev_tbl_type) IS
272 
273   BEGIN
274 
275     OKC_OIE_PVT.Insert_Row(
276 	 p_api_version		=> p_api_version,
277 	 p_init_msg_list	=> p_init_msg_list,
278       x_return_status 	=> x_return_status,
279       x_msg_count     	=> x_msg_count,
280       x_msg_data      	=> x_msg_data,
281       p_oiev_tbl		=> p_oiev_tbl,
282       x_oiev_tbl		=> x_oiev_tbl);
283 
284   END Create_Operation_Instance;
285 
286   PROCEDURE Update_Operation_Instance (
287     p_api_version                  IN NUMBER,
288     p_init_msg_list                IN VARCHAR2 ,
289     x_return_status                OUT NOCOPY VARCHAR2,
290     x_msg_count                    OUT NOCOPY NUMBER,
291     x_msg_data                     OUT NOCOPY VARCHAR2,
292     p_oiev_rec                     IN OKC_OIE_PVT.oiev_rec_type,
293     x_oiev_rec                     OUT NOCOPY OKC_OIE_PVT.oiev_rec_type) IS
294 
295   BEGIN
296 
297     OKC_OIE_PVT.Update_Row(
298 	 p_api_version			=> p_api_version,
299 	 p_init_msg_list		=> p_init_msg_list,
300       x_return_status 		=> x_return_status,
301       x_msg_count     		=> x_msg_count,
302       x_msg_data      		=> x_msg_data,
303       p_oiev_rec			=> p_oiev_rec,
304       x_oiev_rec			=> x_oiev_rec);
305 
306   END Update_Operation_Instance;
307 
308   PROCEDURE Update_Operation_Instance (
309     p_api_version                  IN NUMBER,
310     p_init_msg_list                IN VARCHAR2 ,
311     x_return_status                OUT NOCOPY VARCHAR2,
312     x_msg_count                    OUT NOCOPY NUMBER,
313     x_msg_data                     OUT NOCOPY VARCHAR2,
314     p_oiev_tbl                     IN OKC_OIE_PVT.oiev_tbl_type,
315     x_oiev_tbl                     OUT NOCOPY OKC_OIE_PVT.oiev_tbl_type) IS
316 
317   BEGIN
318 
319     OKC_OIE_PVT.Update_Row(
320 	 p_api_version			=> p_api_version,
321 	 p_init_msg_list		=> p_init_msg_list,
322       x_return_status 		=> x_return_status,
323       x_msg_count     		=> x_msg_count,
324       x_msg_data      		=> x_msg_data,
325       p_oiev_tbl			=> p_oiev_tbl,
326       x_oiev_tbl			=> x_oiev_tbl);
327 
328   END Update_Operation_Instance;
329 
330   PROCEDURE Delete_Operation_Instance (
331     p_api_version                  IN NUMBER,
332     p_init_msg_list                IN VARCHAR2 ,
333     x_return_status                OUT NOCOPY VARCHAR2,
334     x_msg_count                    OUT NOCOPY NUMBER,
335     x_msg_data                     OUT NOCOPY VARCHAR2,
336     p_oiev_rec                     IN OKC_OIE_PVT.oiev_rec_type) IS
337 
338     l_olev_tbl 			   OKC_OPER_INST_PUB.olev_tbl_type;
339     l_mrdv_tbl                     OKC_MRD_PVT.mrdv_tbl_type;
340     i 				   NUMBER := 0;
341     j 			           NUMBER := 0;
342 
343     Cursor ole_csr Is
344 		 SELECT id
345 		 FROM okc_operation_lines
346 		 WHERE oie_id = p_oiev_rec.id;
347 
348     Cursor ole1_csr Is
349 		 SELECT id
350 		 FROM okc_masschange_req_dtls
351 		 WHERE oie_id = p_oiev_rec.id;
352   BEGIN
353           x_return_status := OKC_API.G_RET_STS_SUCCESS;
354 	  --
355 	  -- Delete all children (operation lines) before deleting instance
356 	  --
357 	  FOR ole_rec IN ole_csr
358 	  LOOP
359 		 i := i + 1;
360            l_olev_tbl(i).ID := ole_rec.ID;
361 	  END LOOP;
362 
363           If (i > 0) Then
364             OKC_OPER_INST_PUB.Delete_Operation_Line (
365 	         p_api_version		=> p_api_version,
366 	         p_init_msg_list	     => p_init_msg_list,
367               x_return_status 	=> x_return_status,
368               x_msg_count     	=> x_msg_count,
369               x_msg_data      	=> x_msg_data,
370               p_olev_tbl		     => l_olev_tbl);
371 	    End if;
372 
373 
374         --
375 	-- Delete all children (masschange) before deleting instance
376 	--
377 
378         If (x_return_status = OKC_API.G_RET_STS_SUCCESS) Then
379            FOR oie_rec IN ole1_csr
380            LOOP
381 	       j := j + 1;
382                l_mrdv_tbl(j).ID := oie_rec.ID;
383 	   END LOOP;
384 
385            If (j > 0) Then
386                -- call procedure in complex API
387 
388                OKC_OPER_INST_PUB.Delete_Masschange_Dtls (
389 	           p_api_version		=> p_api_version,
390 	           p_init_msg_list	     => p_init_msg_list,
391                 x_return_status 	=> x_return_status,
392                 x_msg_count     	=> x_msg_count,
393                 x_msg_data      	=> x_msg_data,
394                 p_mrdv_tbl		     => l_mrdv_tbl);
395 	   End if;
396         End If;
397 
398 
399 	If (x_return_status = OKC_API.G_RET_STS_SUCCESS) Then
400               OKC_OIE_PVT.Delete_Row(
401 	 	p_api_version		=> p_api_version,
402 	 	p_init_msg_list	=> p_init_msg_list,
403       		x_return_status 	=> x_return_status,
404       		x_msg_count     	=> x_msg_count,
405       		x_msg_data      	=> x_msg_data,
406       		p_oiev_rec		=> p_oiev_rec);
407         End If;
408   END Delete_Operation_Instance;
409 
410   PROCEDURE Delete_Operation_Instance (
411     p_api_version                  IN NUMBER,
412     p_init_msg_list                IN VARCHAR2 ,
413     x_return_status                OUT NOCOPY VARCHAR2,
414     x_msg_count                    OUT NOCOPY NUMBER,
415     x_msg_data                     OUT NOCOPY VARCHAR2,
416     p_oiev_tbl                     IN OKC_OIE_PVT.oiev_tbl_type) IS
417 
418   BEGIN
419 
420     OKC_OIE_PVT.Delete_Row(
421 	 p_api_version		=> p_api_version,
422 	 p_init_msg_list	=> p_init_msg_list,
423       x_return_status 	=> x_return_status,
424       x_msg_count     	=> x_msg_count,
425       x_msg_data      	=> x_msg_data,
426       p_oiev_tbl		=> p_oiev_tbl);
427 
428   END Delete_Operation_Instance;
429 
430   PROCEDURE Lock_Operation_Instance (
431     p_api_version                  IN NUMBER,
432     p_init_msg_list                IN VARCHAR2 ,
433     x_return_status                OUT NOCOPY VARCHAR2,
434     x_msg_count                    OUT NOCOPY NUMBER,
435     x_msg_data                     OUT NOCOPY VARCHAR2,
436     p_oiev_rec                     IN OKC_OIE_PVT.oiev_rec_type) IS
437 
438   BEGIN
439 
440     OKC_OIE_PVT.Lock_Row(
441 	 p_api_version		=> p_api_version,
442 	 p_init_msg_list	=> p_init_msg_list,
443       x_return_status 	=> x_return_status,
444       x_msg_count     	=> x_msg_count,
445       x_msg_data      	=> x_msg_data,
446       p_oiev_rec		=> p_oiev_rec);
447 
448   END Lock_Operation_Instance;
449 
450   PROCEDURE Lock_Operation_Instance(
451     p_api_version                  IN NUMBER,
452     p_init_msg_list                IN VARCHAR2 ,
453     x_return_status                OUT NOCOPY VARCHAR2,
454     x_msg_count                    OUT NOCOPY NUMBER,
455     x_msg_data                     OUT NOCOPY VARCHAR2,
456     p_oiev_tbl                     IN OKC_OIE_PVT.oiev_tbl_type) IS
457 
458   BEGIN
459 
460     OKC_OIE_PVT.Lock_Row(
461 	 p_api_version		=> p_api_version,
462 	 p_init_msg_list	=> p_init_msg_list,
463       x_return_status 	=> x_return_status,
464       x_msg_count     	=> x_msg_count,
465       x_msg_data      	=> x_msg_data,
466       p_oiev_tbl		=> p_oiev_tbl);
467 
468   END Lock_Operation_Instance;
469 
470   PROCEDURE Validate_Operation_Instance (
471     p_api_version                  IN NUMBER,
472     p_init_msg_list                IN VARCHAR2 ,
473     x_return_status                OUT NOCOPY VARCHAR2,
474     x_msg_count                    OUT NOCOPY NUMBER,
475     x_msg_data                     OUT NOCOPY VARCHAR2,
476     p_oiev_rec                     IN OKC_OIE_PVT.oiev_rec_type) IS
477 
478   BEGIN
479 
480     OKC_OIE_PVT.Validate_Row(
481 	 p_api_version		=> p_api_version,
482 	 p_init_msg_list	=> p_init_msg_list,
483       x_return_status 	=> x_return_status,
484       x_msg_count     	=> x_msg_count,
485       x_msg_data      	=> x_msg_data,
486       p_oiev_rec		=> p_oiev_rec);
487 
488   END Validate_Operation_Instance;
489 
490   PROCEDURE Validate_Operation_Instance (
491     p_api_version                  IN NUMBER,
492     p_init_msg_list                IN VARCHAR2 ,
493     x_return_status                OUT NOCOPY VARCHAR2,
494     x_msg_count                    OUT NOCOPY NUMBER,
495     x_msg_data                     OUT NOCOPY VARCHAR2,
496     p_oiev_tbl                     IN OKC_OIE_PVT.oiev_tbl_type) IS
497 
498   BEGIN
499 
500     OKC_OIE_PVT.Validate_Row(
501 	 p_api_version		=> p_api_version,
502 	 p_init_msg_list	=> p_init_msg_list,
503       x_return_status 	=> x_return_status,
504       x_msg_count     	=> x_msg_count,
505       x_msg_data      	=> x_msg_data,
506       p_oiev_tbl		=> p_oiev_tbl);
507 
508   END Validate_Operation_Instance;
509 
510   PROCEDURE Create_Operation_Line (
511     p_api_version                  IN NUMBER,
512     p_init_msg_list                IN VARCHAR2 ,
513     x_return_status                OUT NOCOPY VARCHAR2,
514     x_msg_count                    OUT NOCOPY NUMBER,
515     x_msg_data                     OUT NOCOPY VARCHAR2,
516     p_olev_rec                     IN  OKC_OLE_PVT.olev_rec_type,
517     x_olev_rec                     OUT NOCOPY  OKC_OLE_PVT.olev_rec_type) IS
518 
519     l_olev_rec		OKC_OLE_PVT.olev_rec_type := p_olev_rec;
520   BEGIN
521     -- initialize return status
522     x_return_status := OKC_API.G_RET_STS_SUCCESS;
523 
524        OKC_OLE_PVT.Insert_Row(
525 	       p_api_version	=> p_api_version,
526 	       p_init_msg_list	=> p_init_msg_list,
527             x_return_status 	=> x_return_status,
528             x_msg_count     	=> x_msg_count,
529             x_msg_data      	=> x_msg_data,
530             p_olev_rec		=> l_olev_rec,
531             x_olev_rec		=> x_olev_rec);
532 
533   END Create_Operation_Line;
534 
535   PROCEDURE Create_Operation_Line (
536     p_api_version                  IN NUMBER,
537     p_init_msg_list                IN VARCHAR2 ,
538     x_return_status                OUT NOCOPY VARCHAR2,
539     x_msg_count                    OUT NOCOPY NUMBER,
540     x_msg_data                     OUT NOCOPY VARCHAR2,
541     p_olev_tbl                     IN  OKC_OLE_PVT.olev_tbl_type,
542     x_olev_tbl                     OUT NOCOPY  OKC_OLE_PVT.olev_tbl_type) IS
543 
544   BEGIN
545 
546     OKC_OLE_PVT.Insert_Row(
547 	 p_api_version		=> p_api_version,
548 	 p_init_msg_list	=> p_init_msg_list,
549       x_return_status 	=> x_return_status,
550       x_msg_count     	=> x_msg_count,
551       x_msg_data      	=> x_msg_data,
552       p_olev_tbl		=> p_olev_tbl,
553       x_olev_tbl		=> x_olev_tbl);
554 
555   END Create_Operation_Line;
556 
557   PROCEDURE Update_Operation_Line (
558     p_api_version                  IN NUMBER,
559     p_init_msg_list                IN VARCHAR2 ,
560     x_return_status                OUT NOCOPY VARCHAR2,
561     x_msg_count                    OUT NOCOPY NUMBER,
562     x_msg_data                     OUT NOCOPY VARCHAR2,
563     p_olev_rec                     IN OKC_OLE_PVT.olev_rec_type,
564     x_olev_rec                     OUT NOCOPY OKC_OLE_PVT.olev_rec_type) IS
565 
566   BEGIN
567 
568     OKC_OLE_PVT.Update_Row(
569 	 p_api_version			=> p_api_version,
570 	 p_init_msg_list		=> p_init_msg_list,
571       x_return_status 		=> x_return_status,
572       x_msg_count     		=> x_msg_count,
573       x_msg_data      		=> x_msg_data,
574       p_olev_rec			=> p_olev_rec,
575       x_olev_rec			=> x_olev_rec);
576 
577   END Update_Operation_Line;
578 
579   PROCEDURE Update_Operation_Line (
580     p_api_version                  IN NUMBER,
581     p_init_msg_list                IN VARCHAR2 ,
582     x_return_status                OUT NOCOPY VARCHAR2,
583     x_msg_count                    OUT NOCOPY NUMBER,
584     x_msg_data                     OUT NOCOPY VARCHAR2,
585     p_olev_tbl                     IN OKC_OLE_PVT.olev_tbl_type,
586     x_olev_tbl                     OUT NOCOPY OKC_OLE_PVT.olev_tbl_type) IS
587 
588   BEGIN
589 
590     OKC_OLE_PVT.Update_Row(
591 	 p_api_version			=> p_api_version,
592 	 p_init_msg_list		=> p_init_msg_list,
593       x_return_status 		=> x_return_status,
594       x_msg_count     		=> x_msg_count,
595       x_msg_data      		=> x_msg_data,
596       p_olev_tbl			=> p_olev_tbl,
597       x_olev_tbl			=> x_olev_tbl);
598 
599   END Update_Operation_Line;
600 
601   PROCEDURE Delete_Operation_Line (
602     p_api_version                  IN NUMBER,
603     p_init_msg_list                IN VARCHAR2 ,
604     x_return_status                OUT NOCOPY VARCHAR2,
605     x_msg_count                    OUT NOCOPY NUMBER,
606     x_msg_data                     OUT NOCOPY VARCHAR2,
607     p_olev_rec                     IN OKC_OLE_PVT.olev_rec_type) IS
608 
609     l_mrdv_tbl                     OKC_MRD_PVT.mrdv_tbl_type;
610     j 				   NUMBER := 0;
611 
612     Cursor ole_csr Is
613 		SELECT object_chr_id, subject_chr_id, object_cle_id, subject_cle_id
614 		FROM okc_operation_lines
615 		WHERE id = p_olev_rec.ID
616 		AND active_yn = 'Y';
617 
618    Cursor ole1_csr Is
619 		 SELECT id
620 		 FROM okc_masschange_req_dtls
621 		 WHERE ole_id = p_olev_rec.ID;
622 
623   BEGIN
624 	 --
625          -- clear renewal links before deleting operation line entry
626 	 -- If object line id is null, clear header's date_renewed
627 	 -- If object line id is not null, clear line's date_renewed
628 	 --
629 	 FOR ole_rec IN ole_csr
630 	 LOOP
631 		If (ole_rec.object_cle_id is not null) Then
632 		    UPDATE okc_k_lines_b
633 		    SET date_renewed = null
634 		    WHERE id = ole_rec.object_cle_id;
635 		Elsif (ole_rec.object_chr_id is not null AND
636 			  ole_rec.subject_cle_id is null) Then
637 		    UPDATE okc_k_headers_b
638 		    SET date_renewed = null
639 		    WHERE id = ole_rec.object_chr_id;
640 		End If;
641 	 END LOOP;
642 
643         x_return_status := OKC_API.G_RET_STS_SUCCESS;
644 
645         --
646 	-- Delete all children (masschange) before deleting operation line
647 	--
648 
649         FOR oie_rec IN ole1_csr
650 	  LOOP
651 	     j := j + 1;
652              l_mrdv_tbl(j).ID := oie_rec.ID;
653 	  END LOOP;
654 
655         If (j > 0) Then
656             -- call procedure in complex API
657 
658             OKC_OPER_INST_PUB.Delete_Masschange_Dtls (
659 	        p_api_version		=> p_api_version,
660 	        p_init_msg_list	     => p_init_msg_list,
661                 x_return_status 	=> x_return_status,
662                 x_msg_count     	=> x_msg_count,
663                 x_msg_data      	=> x_msg_data,
664                 p_mrdv_tbl		     => l_mrdv_tbl);
665 	 End if;
666 
667          If (x_return_status = OKC_API.G_RET_STS_SUCCESS) Then
668 
669             OKC_OLE_PVT.Delete_Row(
670 	 	p_api_version		=> p_api_version,
671 	 	p_init_msg_list	=> p_init_msg_list,
672       		x_return_status 	=> x_return_status,
673       		x_msg_count     	=> x_msg_count,
674       		x_msg_data      	=> x_msg_data,
675       		p_olev_rec		=> p_olev_rec);
676          End If;
677   END Delete_Operation_Line;
678 
679   PROCEDURE Delete_Operation_Line (
680     p_api_version                  IN NUMBER,
681     p_init_msg_list                IN VARCHAR2 ,
682     x_return_status                OUT NOCOPY VARCHAR2,
683     x_msg_count                    OUT NOCOPY NUMBER,
684     x_msg_data                     OUT NOCOPY VARCHAR2,
685     p_olev_tbl                     IN OKC_OLE_PVT.olev_tbl_type) IS
686 
687   BEGIN
688 
689     OKC_OLE_PVT.Delete_Row(
690 	 p_api_version		=> p_api_version,
691 	 p_init_msg_list	=> p_init_msg_list,
692       x_return_status 	=> x_return_status,
693       x_msg_count     	=> x_msg_count,
694       x_msg_data      	=> x_msg_data,
695       p_olev_tbl		=> p_olev_tbl);
696 
697   END Delete_Operation_Line;
698 
699   PROCEDURE Lock_Operation_Line (
700     p_api_version                  IN NUMBER,
701     p_init_msg_list                IN VARCHAR2 ,
702     x_return_status                OUT NOCOPY VARCHAR2,
703     x_msg_count                    OUT NOCOPY NUMBER,
704     x_msg_data                     OUT NOCOPY VARCHAR2,
705     p_olev_rec                     IN OKC_OLE_PVT.olev_rec_type) IS
706 
707   BEGIN
708 
709     OKC_OLE_PVT.Lock_Row(
710 	 p_api_version		=> p_api_version,
711 	 p_init_msg_list	=> p_init_msg_list,
712       x_return_status 	=> x_return_status,
713       x_msg_count     	=> x_msg_count,
714       x_msg_data      	=> x_msg_data,
715       p_olev_rec		=> p_olev_rec);
716 
717   END Lock_Operation_Line;
718 
719   PROCEDURE Lock_Operation_Line(
720     p_api_version                  IN NUMBER,
721     p_init_msg_list                IN VARCHAR2 ,
722     x_return_status                OUT NOCOPY VARCHAR2,
723     x_msg_count                    OUT NOCOPY NUMBER,
724     x_msg_data                     OUT NOCOPY VARCHAR2,
725     p_olev_tbl                     IN OKC_OLE_PVT.olev_tbl_type) IS
726 
727   BEGIN
728 
729     OKC_OLE_PVT.Lock_Row(
730 	 p_api_version		=> p_api_version,
731 	 p_init_msg_list	=> p_init_msg_list,
732       x_return_status 	=> x_return_status,
733       x_msg_count     	=> x_msg_count,
734       x_msg_data      	=> x_msg_data,
735       p_olev_tbl		=> p_olev_tbl);
736 
737   END Lock_Operation_Line;
738 
739   PROCEDURE Validate_Operation_Line (
740     p_api_version                  IN NUMBER,
741     p_init_msg_list                IN VARCHAR2 ,
742     x_return_status                OUT NOCOPY VARCHAR2,
743     x_msg_count                    OUT NOCOPY NUMBER,
744     x_msg_data                     OUT NOCOPY VARCHAR2,
745     p_olev_rec                     IN OKC_OLE_PVT.olev_rec_type) IS
746 
747   BEGIN
748 
749     OKC_OLE_PVT.Validate_Row(
750 	 p_api_version		=> p_api_version,
751 	 p_init_msg_list	=> p_init_msg_list,
752       x_return_status 	=> x_return_status,
753       x_msg_count     	=> x_msg_count,
754       x_msg_data      	=> x_msg_data,
755       p_olev_rec		=> p_olev_rec);
756 
757   END Validate_Operation_Line;
758 
759   PROCEDURE Validate_Operation_Line (
760     p_api_version                  IN NUMBER,
761     p_init_msg_list                IN VARCHAR2 ,
762     x_return_status                OUT NOCOPY VARCHAR2,
763     x_msg_count                    OUT NOCOPY NUMBER,
764     x_msg_data                     OUT NOCOPY VARCHAR2,
765     p_olev_tbl                     IN OKC_OLE_PVT.olev_tbl_type) IS
766 
767   BEGIN
768 
769     OKC_OLE_PVT.Validate_Row(
770 	 p_api_version		=> p_api_version,
771 	 p_init_msg_list	=> p_init_msg_list,
772       x_return_status 	=> x_return_status,
773       x_msg_count     	=> x_msg_count,
774       x_msg_data      	=> x_msg_data,
775       p_olev_tbl		=> p_olev_tbl);
776 
777   END Validate_Operation_Line;
778 
779   PROCEDURE Create_Masschange_Dtls  (
780     p_api_version                  IN NUMBER,
781     p_init_msg_list                IN VARCHAR2 ,
782     x_return_status                OUT NOCOPY VARCHAR2,
783     x_msg_count                    OUT NOCOPY NUMBER,
784     x_msg_data                     OUT NOCOPY VARCHAR2,
785     p_mrdv_rec                     IN  OKC_MRD_PVT.mrdv_rec_type,
786     x_mrdv_rec                     OUT NOCOPY  OKC_MRD_PVT.mrdv_rec_type) IS
787 
788     l_mrdv_rec		OKC_MRD_PVT.mrdv_rec_type := p_mrdv_rec;
789   BEGIN
790     -- initialize return status
791     x_return_status := OKC_API.G_RET_STS_SUCCESS;
792 
793        OKC_MRD_PVT.Insert_Row(
794 	    p_api_version	=> p_api_version,
795 	    p_init_msg_list	=> p_init_msg_list,
796             x_return_status 	=> x_return_status,
797             x_msg_count     	=> x_msg_count,
798             x_msg_data      	=> x_msg_data,
799             p_mrdv_rec		=> l_mrdv_rec,
800             x_mrdv_rec		=> x_mrdv_rec);
801 
802   END Create_Masschange_Dtls;
803 
804   PROCEDURE Create_Masschange_Dtls (
805     p_api_version                  IN NUMBER,
806     p_init_msg_list                IN VARCHAR2 ,
807     x_return_status                OUT NOCOPY VARCHAR2,
808     x_msg_count                    OUT NOCOPY NUMBER,
809     x_msg_data                     OUT NOCOPY VARCHAR2,
810     p_mrdv_tbl                     IN  OKC_MRD_PVT.mrdv_tbl_type,
811     x_mrdv_tbl                     OUT NOCOPY  OKC_MRD_PVT.mrdv_tbl_type) IS
812 
813   BEGIN
814 
815     OKC_MRD_PVT.Insert_Row(
816       p_api_version	=> p_api_version,
817       p_init_msg_list	=> p_init_msg_list,
818       x_return_status 	=> x_return_status,
819       x_msg_count     	=> x_msg_count,
820       x_msg_data      	=> x_msg_data,
821       p_mrdv_tbl	=> p_mrdv_tbl,
822       x_mrdv_tbl	=> x_mrdv_tbl);
823 
824   END Create_Masschange_Dtls;
825 
826   PROCEDURE Update_Masschange_Dtls (
827     p_api_version                  IN NUMBER,
828     p_init_msg_list                IN VARCHAR2 ,
829     x_return_status                OUT NOCOPY VARCHAR2,
830     x_msg_count                    OUT NOCOPY NUMBER,
831     x_msg_data                     OUT NOCOPY VARCHAR2,
832     p_mrdv_rec                     IN OKC_MRD_PVT.mrdv_rec_type,
833     x_mrdv_rec                     OUT NOCOPY OKC_MRD_PVT.mrdv_rec_type) IS
834 
835   BEGIN
836 
837     OKC_MRD_PVT.Update_Row(
838       p_api_version		=> p_api_version,
839       p_init_msg_list		=> p_init_msg_list,
840       x_return_status 		=> x_return_status,
841       x_msg_count     		=> x_msg_count,
842       x_msg_data      		=> x_msg_data,
843       p_mrdv_rec		=> p_mrdv_rec,
844       x_mrdv_rec		=> x_mrdv_rec);
845 
846   END Update_Masschange_Dtls;
847 
848   PROCEDURE Update_Masschange_Dtls (
849     p_api_version                  IN NUMBER,
850     p_init_msg_list                IN VARCHAR2 ,
851     x_return_status                OUT NOCOPY VARCHAR2,
852     x_msg_count                    OUT NOCOPY NUMBER,
853     x_msg_data                     OUT NOCOPY VARCHAR2,
854     p_mrdv_tbl                     IN OKC_MRD_PVT.mrdv_tbl_type,
855     x_mrdv_tbl                     OUT NOCOPY OKC_MRD_PVT.mrdv_tbl_type) IS
856 
857   BEGIN
858 
859     OKC_MRD_PVT.Update_Row(
860       p_api_version		=> p_api_version,
861       p_init_msg_list		=> p_init_msg_list,
862       x_return_status 		=> x_return_status,
863       x_msg_count     		=> x_msg_count,
864       x_msg_data      		=> x_msg_data,
865       p_mrdv_tbl		=> p_mrdv_tbl,
866       x_mrdv_tbl		=> x_mrdv_tbl);
867 
868   END Update_Masschange_Dtls;
869 
870   PROCEDURE Delete_Masschange_Dtls (
871     p_api_version                  IN NUMBER,
872     p_init_msg_list                IN VARCHAR2 ,
873     x_return_status                OUT NOCOPY VARCHAR2,
874     x_msg_count                    OUT NOCOPY NUMBER,
875     x_msg_data                     OUT NOCOPY VARCHAR2,
876     p_mrdv_rec                     IN OKC_MRD_PVT.mrdv_rec_type) IS
877 
878   BEGIN
879        OKC_MRD_PVT.Delete_Row(
880 	 	p_api_version		=> p_api_version,
881 	 	p_init_msg_list		=> p_init_msg_list,
882       		x_return_status 	=> x_return_status,
883       		x_msg_count     	=> x_msg_count,
884       		x_msg_data      	=> x_msg_data,
885       		p_mrdv_rec		=> p_mrdv_rec);
886 
887   END Delete_Masschange_Dtls;
888 
889   PROCEDURE Delete_Masschange_Dtls (
890     p_api_version                  IN NUMBER,
891     p_init_msg_list                IN VARCHAR2 ,
892     x_return_status                OUT NOCOPY VARCHAR2,
893     x_msg_count                    OUT NOCOPY NUMBER,
894     x_msg_data                     OUT NOCOPY VARCHAR2,
895     p_mrdv_tbl                     IN OKC_MRD_PVT.mrdv_tbl_type) IS
896 
897   BEGIN
898 
899     OKC_MRD_PVT.Delete_Row(
900       p_api_version	=> p_api_version,
901       p_init_msg_list	=> p_init_msg_list,
902       x_return_status 	=> x_return_status,
903       x_msg_count     	=> x_msg_count,
904       x_msg_data      	=> x_msg_data,
905       p_mrdv_tbl	=> p_mrdv_tbl);
906 
907   END Delete_Masschange_Dtls;
908 
909   PROCEDURE Lock_Masschange_Dtls (
910     p_api_version                  IN NUMBER,
911     p_init_msg_list                IN VARCHAR2 ,
912     x_return_status                OUT NOCOPY VARCHAR2,
913     x_msg_count                    OUT NOCOPY NUMBER,
914     x_msg_data                     OUT NOCOPY VARCHAR2,
915     p_mrdv_rec                     IN OKC_MRD_PVT.mrdv_rec_type) IS
916 
917   BEGIN
918 
919     OKC_MRD_PVT.Lock_Row(
920       p_api_version	=> p_api_version,
921       p_init_msg_list	=> p_init_msg_list,
922       x_return_status 	=> x_return_status,
923       x_msg_count     	=> x_msg_count,
924       x_msg_data      	=> x_msg_data,
925       p_mrdv_rec	=> p_mrdv_rec);
926 
927   END Lock_Masschange_Dtls;
928 
929   PROCEDURE Lock_Masschange_Dtls (
930     p_api_version                  IN NUMBER,
931     p_init_msg_list                IN VARCHAR2 ,
932     x_return_status                OUT NOCOPY VARCHAR2,
933     x_msg_count                    OUT NOCOPY NUMBER,
934     x_msg_data                     OUT NOCOPY VARCHAR2,
935     p_mrdv_tbl                     IN OKC_MRD_PVT.mrdv_tbl_type) IS
936 
937   BEGIN
938 
939     OKC_MRD_PVT.Lock_Row(
940       p_api_version	=> p_api_version,
941       p_init_msg_list	=> p_init_msg_list,
942       x_return_status 	=> x_return_status,
943       x_msg_count     	=> x_msg_count,
944       x_msg_data      	=> x_msg_data,
945       p_mrdv_tbl	=> p_mrdv_tbl);
946 
947   END Lock_Masschange_Dtls;
948 
949   PROCEDURE Validate_Masschange_Dtls (
950     p_api_version                  IN NUMBER,
951     p_init_msg_list                IN VARCHAR2 ,
952     x_return_status                OUT NOCOPY VARCHAR2,
953     x_msg_count                    OUT NOCOPY NUMBER,
954     x_msg_data                     OUT NOCOPY VARCHAR2,
955     p_mrdv_rec                     IN OKC_MRD_PVT.mrdv_rec_type) IS
956 
957   BEGIN
958 
959     OKC_MRD_PVT.Validate_Row(
960       p_api_version	=> p_api_version,
961       p_init_msg_list	=> p_init_msg_list,
962       x_return_status 	=> x_return_status,
963       x_msg_count     	=> x_msg_count,
964       x_msg_data      	=> x_msg_data,
965       p_mrdv_rec	=> p_mrdv_rec);
966 
967   END Validate_Masschange_Dtls;
968 
969   PROCEDURE Validate_Masschange_Dtls (
970     p_api_version                  IN NUMBER,
971     p_init_msg_list                IN VARCHAR2 ,
972     x_return_status                OUT NOCOPY VARCHAR2,
973     x_msg_count                    OUT NOCOPY NUMBER,
974     x_msg_data                     OUT NOCOPY VARCHAR2,
975     p_mrdv_tbl                     IN OKC_MRD_PVT.mrdv_tbl_type) IS
976 
977   BEGIN
978 
979     OKC_MRD_PVT.Validate_Row(
980       p_api_version	=> p_api_version,
981       p_init_msg_list	=> p_init_msg_list,
982       x_return_status 	=> x_return_status,
983       x_msg_count     	=> x_msg_count,
984       x_msg_data      	=> x_msg_data,
985       p_mrdv_tbl	=> p_mrdv_tbl);
986 
987   END Validate_Masschange_Dtls;
988 END OKC_OPER_INST_PVT;