DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_COPY_CONTRACT_PUB

Source


1 Package body OKC_COPY_CONTRACT_PUB AS
2 /*$Header: OKCPCPYB.pls 120.3 2008/01/18 13:27:48 vgujarat ship $*/
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   G_API_VERSION          CONSTANT NUMBER := 1;
6   G_SCOPE		 CONSTANT varchar2(4) := '_PUB';
7   G_INIT_MSG_LIST        CONSTANT VARCHAR2(10) := OKC_API.G_FALSE;
8 
9 
10  FUNCTION is_copy_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2 ) RETURN BOOLEAN IS
11  BEGIN
12    RETURN(OKC_COPY_CONTRACT_PVT.is_copy_allowed(p_chr_id,p_sts_code));
13  END is_copy_allowed;
14 
15  FUNCTION is_subcontract_allowed(p_chr_id IN NUMBER,p_sts_code IN VARCHAR2) RETURN BOOLEAN IS
16  BEGIN
17    RETURN(OKC_COPY_CONTRACT_PVT.is_subcontract_allowed(p_chr_id,p_sts_code));
18  END is_subcontract_allowed;
19 
20  FUNCTION update_target_contract(p_chr_id IN NUMBER) RETURN BOOLEAN IS
21  BEGIN
22    RETURN(OKC_COPY_CONTRACT_PVT.update_target_contract(p_chr_id));
23  END update_target_contract;
24 
25  PROCEDURE derive_line_style(p_old_lse_id     IN  NUMBER,
26                               p_old_jtot_code  IN  VARCHAR2,
27                               p_new_subclass   IN  VARCHAR2,
28                               p_new_parent_lse IN  NUMBER,
29                               x_new_lse_count  OUT NOCOPY NUMBER,
30                               x_new_lse_ids    OUT NOCOPY VARCHAR2) IS
31  BEGIN
32   OKC_COPY_CONTRACT_PVT.derive_line_style(
33                p_old_lse_id      => p_old_lse_id,
34                p_old_jtot_code   => p_old_jtot_code,
35                p_new_subclass    => p_new_subclass,
36                p_new_parent_lse  => p_new_parent_lse,
37                x_new_lse_count   => x_new_lse_count,
38                x_new_lse_ids     => x_new_lse_ids);
39  END derive_line_style;
40 
41  PROCEDURE copy_components(
42     p_api_version                  IN NUMBER,
43     p_init_msg_list                IN VARCHAR2,
44     x_return_status                OUT NOCOPY VARCHAR2,
45     x_msg_count                    OUT NOCOPY NUMBER,
46     x_msg_data                     OUT NOCOPY VARCHAR2,
47     p_from_chr_id                  IN NUMBER,
48     p_to_chr_id	          	   IN NUMBER,
49     p_contract_number		        IN VARCHAR2,
50     p_contract_number_modifier     IN VARCHAR2,
51     p_to_template_yn			   IN VARCHAR2 ,
52     p_copy_reference			   IN VARCHAR2 ,
53     p_copy_line_party_yn              IN VARCHAR2,
54     p_scs_code                     IN VARCHAR2,
55     p_intent                       IN VARCHAR2,
56     p_prospect                     IN VARCHAR2,
57     p_components_tbl			   IN api_components_tbl,
58     p_lines_tbl				   IN api_lines_tbl,
59     x_chr_id                       OUT NOCOPY NUMBER,
60     p_concurrent_request           IN VARCHAR2 DEFAULT 'N',
61     p_include_cancelled_lines      IN VARCHAR2 DEFAULT 'Y',
62     p_include_terminated_lines      IN VARCHAR2 DEFAULT 'Y') IS
63 --Bug 2950549 - Added the parameter p_concurrent_request
64 
65     l_api_name     CONSTANT VARCHAR2(30) := 'COPY_COMPONENTS';
66     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
67   BEGIN
68     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
69                                               G_PKG_NAME,
70                                               p_init_msg_list,
71                                               G_API_VERSION,
72                                               p_api_version,
73                                               G_SCOPE,
74                                               x_return_status);
75     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
76       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
77     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
78       RAISE OKC_API.G_EXCEPTION_ERROR;
79     END IF;
80 
81     OKC_COPY_CONTRACT_PVT.copy_components(
82 	   p_api_version		=> p_api_version,
83            p_init_msg_list		=> g_init_msg_list,
84            x_return_status 		=> x_return_status,
85            x_msg_count     		=> x_msg_count,
86            x_msg_data      		=> x_msg_data,
87            p_from_chr_id			=> p_from_chr_id,
88            p_to_chr_id			=> p_to_chr_id,
89            p_contract_number		=> p_contract_number,
90            p_contract_number_modifier	=> p_contract_number_modifier,
91 		 p_to_template_yn        => p_to_template_yn,
92 		 p_copy_reference        => p_copy_reference,
93            p_copy_line_party_yn    => p_copy_line_party_yn,
94            p_scs_code              => p_scs_code,
95            p_intent                => p_intent,
96            p_prospect              => p_prospect,
97 		 p_components_tbl       => p_components_tbl,
98 		 p_lines_tbl             => p_lines_tbl,
99          x_chr_id			=> x_chr_id,
100 		 p_concurrent_request => p_concurrent_request,
101 	   p_include_cancelled_lines  => p_include_cancelled_lines,
102 	   p_include_terminated_lines => p_include_terminated_lines);
103     -- added p_concurrent request parameter for Bug 2950549
104 
105     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
106       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
107     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
108       RAISE OKC_API.G_EXCEPTION_ERROR;
109     END IF;
110     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
111   EXCEPTION
112      WHEN OKC_API.G_EXCEPTION_ERROR THEN
113        x_return_status := OKC_API.HANDLE_EXCEPTIONS
114        (substr(l_api_name,1,26),
115         G_PKG_NAME,
116         'OKC_API.G_RET_STS_ERROR',
117         x_msg_count,
118         x_msg_data,
119         G_SCOPE);
120 	-- Resetting the global transaction id.
121 	okc_cvm_pvt.g_trans_id := 'XXX';
122      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
123        x_return_status := OKC_API.HANDLE_EXCEPTIONS
124        (substr(l_api_name,1,26),
125         G_PKG_NAME,
126         'OKC_API.G_RET_STS_UNEXP_ERROR',
127         x_msg_count,
128         x_msg_data,
129         G_SCOPE);
130 	-- Resetting the global transaction id.
131 	okc_cvm_pvt.g_trans_id := 'XXX';
132      WHEN OTHERS THEN
133       -- store SQL error message on message stack for caller
134       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
135        x_return_status := OKC_API.HANDLE_EXCEPTIONS
136        (substr(l_api_name,1,26),
137         G_PKG_NAME,
138         'OTHERS',
139         x_msg_count,
140         x_msg_data,
141         G_SCOPE);
142 	-- Resetting the global transaction id.
143 	okc_cvm_pvt.g_trans_id := 'XXX';
144 
145   END copy_components;
146 
147   PROCEDURE copy_contract(
148     p_api_version                  IN NUMBER,
149     p_init_msg_list                IN VARCHAR2 ,
150     x_return_status                OUT NOCOPY VARCHAR2,
151     x_msg_count                    OUT NOCOPY NUMBER,
152     x_msg_data                     OUT NOCOPY VARCHAR2,
153     p_commit        			IN VARCHAR2 ,
154     p_chr_id                       IN NUMBER,
155     p_contract_number		     IN VARCHAR2,
156     p_contract_number_modifier     IN VARCHAR2,
157     p_to_template_yn		     IN VARCHAR2 ,
158     p_renew_ref_yn                 IN VARCHAR2,
159     p_copy_from_history_yn         IN VARCHAR2 ,
160     p_from_version_number          IN NUMBER  ,
161     p_copy_latest_articles         IN VARCHAR2 ,
162     p_calling_mode                 IN VARCHAR2 ,
163     x_chr_id                       OUT NOCOPY NUMBER) IS
164 
165     l_api_name           CONSTANT VARCHAR2(30) := 'COPY_CONTRACT';
166     l_return_status      VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
167   BEGIN
168 
169     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
170                                               G_PKG_NAME,
171                                               p_init_msg_list,
172                                               G_API_VERSION,
173                                               p_api_version,
174                                               G_SCOPE,
175                                               x_return_status);
176     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
177       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
178     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
179       RAISE OKC_API.G_EXCEPTION_ERROR;
180     END IF;
181 
182     OKC_COPY_CONTRACT_PVT.copy_contract(
183 	   p_api_version		=> p_api_version,
184            p_init_msg_list		=> g_init_msg_list,
185            x_return_status 		=> x_return_status,
186            x_msg_count     		=> x_msg_count,
187            x_msg_data      		=> x_msg_data,
188            p_commit			     => p_commit,
189            p_chr_id			     => p_chr_id,
190            p_contract_number		=> p_contract_number,
191            p_contract_number_modifier	=> p_contract_number_modifier,
192 	      p_to_template_yn             => p_to_template_yn,
193            p_renew_ref_yn               => p_renew_ref_yn,
194            p_copy_lines_yn              => 'Y',
195 	      p_copy_from_history_yn       => p_copy_from_history_yn,
196 	      p_from_version_number        => p_from_version_number,
197 		 p_copy_latest_articles       => p_copy_latest_articles,
198 		 p_calling_mode           => p_calling_mode,
199            x_chr_id			          => x_chr_id);
200 
201 
202     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
203       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
204     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
205       RAISE OKC_API.G_EXCEPTION_ERROR;
206     END IF;
207 
208     IF p_commit = 'T' THEN
209       commit;
210     END IF;
211 
212     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
213 
214   EXCEPTION
215      WHEN OKC_API.G_EXCEPTION_ERROR THEN
216        x_return_status := OKC_API.HANDLE_EXCEPTIONS
217        (substr(l_api_name,1,26),
218         G_PKG_NAME,
219         'OKC_API.G_RET_STS_ERROR',
220         x_msg_count,
221         x_msg_data,
222         G_SCOPE);
223      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
224        x_return_status := OKC_API.HANDLE_EXCEPTIONS
225        (substr(l_api_name,1,26),
226         G_PKG_NAME,
227         'OKC_API.G_RET_STS_UNEXP_ERROR',
228         x_msg_count,
229         x_msg_data,
230         G_SCOPE);
231      WHEN OTHERS THEN
232       -- store SQL error message on message stack for caller
233       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
234        x_return_status := OKC_API.HANDLE_EXCEPTIONS
235        (substr(l_api_name,1,26),
236         G_PKG_NAME,
237         'OTHERS',
238         x_msg_count,
239         x_msg_data,
240         G_SCOPE);
241 
242   END copy_contract;
243 
244   PROCEDURE copy_contract(
245     p_api_version                  IN NUMBER,
246     p_init_msg_list                IN VARCHAR2 ,
247     x_return_status                OUT NOCOPY VARCHAR2,
248     x_msg_count                    OUT NOCOPY NUMBER,
249     x_msg_data                     OUT NOCOPY VARCHAR2,
250     p_commit        			IN VARCHAR2 ,
251     p_chr_id                       IN NUMBER,
252     p_contract_number		     IN VARCHAR2,
253     p_contract_number_modifier     IN VARCHAR2,
254     p_to_template_yn			IN VARCHAR2 ,
255     p_renew_ref_yn                 IN VARCHAR2,
256     p_copy_lines_yn                IN VARCHAR2,
257     p_override_org		          IN VARCHAR2 ,
258     p_copy_from_history_yn         IN VARCHAR2 ,
259     p_from_version_number          IN NUMBER ,
260     p_copy_latest_articles         IN VARCHAR2 ,
261     p_calling_mode                 IN VARCHAR2 ,
262     x_chr_id                       OUT NOCOPY NUMBER) IS
263 
264     l_api_name     CONSTANT VARCHAR2(30) := 'COPY_CONTRACT';
265     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
266   BEGIN
267     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
268                                               G_PKG_NAME,
269                                               p_init_msg_list,
270                                               G_API_VERSION,
271                                               p_api_version,
272                                               G_SCOPE,
273                                               x_return_status);
274     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
275       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
276     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
277       RAISE OKC_API.G_EXCEPTION_ERROR;
278     END IF;
279 
280     OKC_COPY_CONTRACT_PVT.copy_contract(
281 	   p_api_version		=> p_api_version,
282            p_init_msg_list		=> g_init_msg_list,
283            x_return_status 		=> x_return_status,
284            x_msg_count     		=> x_msg_count,
285            x_msg_data      		=> x_msg_data,
286            p_commit			=> p_commit,
287            p_chr_id			=> p_chr_id,
288            p_contract_number		=> p_contract_number,
289            p_contract_number_modifier	=> p_contract_number_modifier,
290     	   p_to_template_yn             => p_to_template_yn,
291            p_renew_ref_yn               => p_renew_ref_yn,
292            p_copy_lines_yn              => p_copy_lines_yn,
293            p_override_org               => p_override_org,
294            p_copy_from_history_yn       => p_copy_from_history_yn,
295            p_from_version_number        => p_from_version_number,
296  	   p_copy_latest_articles       => p_copy_latest_articles,
297            p_calling_mode               => p_calling_mode,
298            x_chr_id			=> x_chr_id);
299 
300     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
301       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
302     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
303       RAISE OKC_API.G_EXCEPTION_ERROR;
304     END IF;
305 
306     IF p_commit = 'T' THEN
307       commit;
308     END IF;
309 
310     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
311 
312   EXCEPTION
313      WHEN OKC_API.G_EXCEPTION_ERROR THEN
314        x_return_status := OKC_API.HANDLE_EXCEPTIONS
315        (substr(l_api_name,1,26),
316         G_PKG_NAME,
317         'OKC_API.G_RET_STS_ERROR',
318         x_msg_count,
319         x_msg_data,
320         G_SCOPE);
321      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
322        x_return_status := OKC_API.HANDLE_EXCEPTIONS
323        (substr(l_api_name,1,26),
324         G_PKG_NAME,
325         'OKC_API.G_RET_STS_UNEXP_ERROR',
326         x_msg_count,
327         x_msg_data,
328         G_SCOPE);
329      WHEN OTHERS THEN
330       -- store SQL error message on message stack for caller
331       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
332        x_return_status := OKC_API.HANDLE_EXCEPTIONS
333        (substr(l_api_name,1,26),
334         G_PKG_NAME,
335         'OTHERS',
336         x_msg_count,
337         x_msg_data,
338         G_SCOPE);
339 
340   END copy_contract;
341 
342 
343   -- Added additional parameter p_change_status to check if the
344   -- line status need to be retaned.
345 
346   PROCEDURE copy_contract_lines(
347     p_api_version                  IN NUMBER,
348     p_init_msg_list                IN VARCHAR2 ,
349     x_return_status                OUT NOCOPY VARCHAR2,
350     x_msg_count                    OUT NOCOPY NUMBER,
351     x_msg_data                     OUT NOCOPY VARCHAR2,
352     p_from_cle_id                  IN NUMBER,
353     p_to_cle_id                    IN NUMBER ,
354     p_to_chr_id                    IN NUMBER ,
355     p_to_template_yn			   IN VARCHAR2 ,
356     p_copy_reference               IN VARCHAR2,
357     p_copy_line_party_yn           IN VARCHAR2,
358     p_renew_ref_yn                 IN VARCHAR2,
359     x_cle_id		           OUT NOCOPY NUMBER,
360     p_change_status		          IN VARCHAR2)
361 
362     IS
363 
364   BEGIN
365 
366   --- LLC Added an additional flag parameter, p_change_status, to decide
367   --- whether to allow change of status of sublines of the topline
368   ---  during update service
369 
370     OKC_COPY_CONTRACT_PVT.copy_contract_lines(
371 	   p_api_version	=> p_api_version,
372            p_init_msg_list	=> p_init_msg_list,
373            x_return_status 	=> x_return_status,
374            x_msg_count     	=> x_msg_count,
375            x_msg_data      	=> x_msg_data,
376            p_from_cle_id	=> p_from_cle_id,
377 	      p_to_chr_id 		=> p_to_chr_id,
378 	      p_to_cle_id 		=> p_to_cle_id,
379 		 p_to_template_yn        => p_to_template_yn,
380            p_copy_reference      => p_copy_reference,
381            p_copy_line_party_yn  => p_copy_line_party_yn,
382            p_renew_ref_yn          => p_renew_ref_yn,
383            x_cle_id		=> x_cle_id,
384 	      p_change_status      => p_change_status);
385 
386   EXCEPTION
387     WHEN OTHERS THEN
388       -- store SQL error message on message stack for caller
389       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
390       -- notify caller of an UNEXPECTED error
391       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
392 
393   END copy_contract_lines;
394 
395   PROCEDURE copy_rules(
396     p_api_version                  IN NUMBER,
397     p_init_msg_list                IN VARCHAR2 ,
398     x_return_status                OUT NOCOPY VARCHAR2,
399     x_msg_count                    OUT NOCOPY NUMBER,
400     x_msg_data                     OUT NOCOPY VARCHAR2,
401     p_rgp_id                  	   IN NUMBER,
402     p_cle_id                       IN NUMBER ,
403     p_chr_id                       IN NUMBER ,
404     p_to_template_yn			IN VARCHAR2,
405     x_rgp_id		           OUT NOCOPY NUMBER) IS
406 
407     l_api_name     CONSTANT VARCHAR2(30) := 'COPY_RULES';
408     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
409   BEGIN
410     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
411                                               G_PKG_NAME,
412                                               p_init_msg_list,
413                                               G_API_VERSION,
414                                               p_api_version,
415                                               G_SCOPE,
416                                               x_return_status);
417     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
418       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
419     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
420       RAISE OKC_API.G_EXCEPTION_ERROR;
421     END IF;
422 
423     OKC_COPY_CONTRACT_PVT.copy_rules(
424            p_api_version		=> p_api_version,
425            p_init_msg_list		=> g_init_msg_list,
426            x_return_status 	=> x_return_status,
427            x_msg_count     	=> x_msg_count,
428            x_msg_data      	=> x_msg_data,
429            p_rgp_id			=> p_rgp_id,
430            p_cle_id			=> p_cle_id,
431            p_chr_id			=> p_chr_id,
432    	   p_to_template_yn      => p_to_template_yn,
433            x_rgp_id			=> x_rgp_id);
434 
435     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
436       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
437     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
438       RAISE OKC_API.G_EXCEPTION_ERROR;
439     END IF;
440 
441     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
442 
443   EXCEPTION
444      WHEN OKC_API.G_EXCEPTION_ERROR THEN
445        x_return_status := OKC_API.HANDLE_EXCEPTIONS
446        (substr(l_api_name,1,26),
447         G_PKG_NAME,
448         'OKC_API.G_RET_STS_ERROR',
449         x_msg_count,
450         x_msg_data,
451         G_SCOPE);
452      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
453        x_return_status := OKC_API.HANDLE_EXCEPTIONS
454        (substr(l_api_name,1,26),
455         G_PKG_NAME,
456         'OKC_API.G_RET_STS_UNEXP_ERROR',
457         x_msg_count,
458         x_msg_data,
459         G_SCOPE);
460      WHEN OTHERS THEN
461       -- store SQL error message on message stack for caller
462       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
463        x_return_status := OKC_API.HANDLE_EXCEPTIONS
464        (substr(l_api_name,1,26),
465         G_PKG_NAME,
466         'OTHERS',
467         x_msg_count,
468         x_msg_data,
469         G_SCOPE);
470 
471   END copy_rules;
472 
473   PROCEDURE copy_party_roles(
474     p_api_version                  IN NUMBER,
475     p_init_msg_list                IN VARCHAR2 ,
476     x_return_status                OUT NOCOPY VARCHAR2,
477     x_msg_count                    OUT NOCOPY NUMBER,
478     x_msg_data                     OUT NOCOPY VARCHAR2,
479     p_cpl_id                  	   IN NUMBER,
480     p_cle_id                       IN NUMBER ,
481     p_chr_id                       IN NUMBER ,
482     P_rle_code                     IN VARCHAR2,
483     x_cpl_id	            	   OUT NOCOPY NUMBER) IS
484     l_api_name     		   CONSTANT VARCHAR2(30) := 'COPY_PARTY_ROLES';
485     l_return_status         	   VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
486   BEGIN
487     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
488                                               G_PKG_NAME,
489                                               p_init_msg_list,
490                                               G_API_VERSION,
491                                               p_api_version,
492                                               G_SCOPE,
493                                               x_return_status);
494     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
495       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
496     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
497       RAISE OKC_API.G_EXCEPTION_ERROR;
498     END IF;
499 
500     OKC_COPY_CONTRACT_PVT.copy_party_roles(
501     		p_api_version           => p_api_version,
502     		p_init_msg_list         => g_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_cpl_id                => p_cpl_id,
507     		p_cle_id                => p_cle_id,
508     		p_chr_id                => p_chr_id,
509     		p_rle_code              => p_rle_code,
510     		x_cpl_id		=> x_cpl_id);
511 
512 
513     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
514       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
515     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
516       RAISE OKC_API.G_EXCEPTION_ERROR;
517     END IF;
518 
519     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
520 
521   EXCEPTION
522      WHEN OKC_API.G_EXCEPTION_ERROR THEN
523        x_return_status := OKC_API.HANDLE_EXCEPTIONS
524        (substr(l_api_name,1,26),
525         G_PKG_NAME,
526         'OKC_API.G_RET_STS_ERROR',
527         x_msg_count,
528         x_msg_data,
529         G_SCOPE);
530      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
531        x_return_status := OKC_API.HANDLE_EXCEPTIONS
532        (substr(l_api_name,1,26),
533         G_PKG_NAME,
534         'OKC_API.G_RET_STS_UNEXP_ERROR',
535         x_msg_count,
536         x_msg_data,
537         G_SCOPE);
538      WHEN OTHERS THEN
539       -- store SQL error message on message stack for caller
540       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
541        x_return_status := OKC_API.HANDLE_EXCEPTIONS
542        (substr(l_api_name,1,26),
543         G_PKG_NAME,
544         'OTHERS',
545         x_msg_count,
546         x_msg_data,
547         G_SCOPE);
548 
549   END copy_party_roles;
550 
551   PROCEDURE copy_articles(
552     p_api_version                  IN NUMBER,
553     p_init_msg_list                IN VARCHAR2 ,
554     x_return_status                OUT NOCOPY VARCHAR2,
555     x_msg_count                    OUT NOCOPY NUMBER,
556     x_msg_data                     OUT NOCOPY VARCHAR2,
557     p_cat_id                  	IN NUMBER,
558     p_cle_id                       IN NUMBER ,
559     p_chr_id                       IN NUMBER ,
560     p_sav_sav_release		     IN VARCHAR2 ,
561     x_cat_id		           	OUT NOCOPY NUMBER) IS
562 
563 
564     l_api_name     			CONSTANT VARCHAR2(30) := 'COPY_ARTICLES';
565     l_return_status           VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
566   BEGIN
567     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
568                                               G_PKG_NAME,
569                                               p_init_msg_list,
570                                               G_API_VERSION,
571                                               p_api_version,
572                                               G_SCOPE,
573                                               x_return_status);
574     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
575       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
576     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
577       RAISE OKC_API.G_EXCEPTION_ERROR;
578     END IF;
579 
580     OKC_COPY_CONTRACT_PVT.copy_articles(
581           p_api_version		=> p_api_version,
582           p_init_msg_list	=> g_init_msg_list,
583           x_return_status 	=> x_return_status,
584           x_msg_count     	=> x_msg_count,
585           x_msg_data      	=> x_msg_data,
586           p_cat_id              => p_cat_id,
587     	  p_cle_id              => p_cle_id,
588     	  p_chr_id              => p_chr_id,
589     	  p_sav_sav_release     => p_sav_sav_release,
590     	  x_cat_id		=> x_cat_id);
591 
592     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
593       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
594     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
595       RAISE OKC_API.G_EXCEPTION_ERROR;
596     END IF;
597 
598     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
599 
600   EXCEPTION
601      WHEN OKC_API.G_EXCEPTION_ERROR THEN
602        x_return_status := OKC_API.HANDLE_EXCEPTIONS
603        (substr(l_api_name,1,26),
604         G_PKG_NAME,
605         'OKC_API.G_RET_STS_ERROR',
606         x_msg_count,
607         x_msg_data,
608         G_SCOPE);
609      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
610        x_return_status := OKC_API.HANDLE_EXCEPTIONS
611        (substr(l_api_name,1,26),
612         G_PKG_NAME,
613         'OKC_API.G_RET_STS_UNEXP_ERROR',
614         x_msg_count,
615         x_msg_data,
616         G_SCOPE);
617      WHEN OTHERS THEN
618       -- store SQL error message on message stack for caller
619       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
620        x_return_status := OKC_API.HANDLE_EXCEPTIONS
621        (substr(l_api_name,1,26),
622         G_PKG_NAME,
623         'OTHERS',
624         x_msg_count,
625         x_msg_data,
626         G_SCOPE);
627 
628   END copy_articles;
629 
630   PROCEDURE copy_latest_articles(
631     p_api_version                  IN NUMBER,
632     p_init_msg_list                IN VARCHAR2 ,
633     x_return_status                OUT NOCOPY VARCHAR2,
634     x_msg_count                    OUT NOCOPY NUMBER,
635     x_msg_data                     OUT NOCOPY VARCHAR2,
636     p_cat_id                  	IN NUMBER,
637     p_cle_id                       IN NUMBER ,
638     p_chr_id                       IN NUMBER ,
639     x_cat_id		           	OUT NOCOPY NUMBER) IS
640 
641 
642     l_api_name     		   CONSTANT VARCHAR2(30) := 'COPY_LATEST_ARTICLES';
643     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
644   BEGIN
645     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
646                                               G_PKG_NAME,
647                                               p_init_msg_list,
648                                               G_API_VERSION,
649                                               p_api_version,
650                                               G_SCOPE,
651                                               x_return_status);
652     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
653       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
654     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
655       RAISE OKC_API.G_EXCEPTION_ERROR;
656     END IF;
657 
658     OKC_COPY_CONTRACT_PVT.copy_latest_articles(
659           p_api_version		=> p_api_version,
660           p_init_msg_list	=> g_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_cat_id            => p_cat_id,
665     	     p_cle_id            => p_cle_id,
666     	     p_chr_id            => p_chr_id,
667     	     x_cat_id			=> x_cat_id);
668 
669     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
670       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
671     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
672       RAISE OKC_API.G_EXCEPTION_ERROR;
673     END IF;
674 
675     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
676 
677   EXCEPTION
678      WHEN OKC_API.G_EXCEPTION_ERROR THEN
679        x_return_status := OKC_API.HANDLE_EXCEPTIONS
680        (substr(l_api_name,1,26),
681         G_PKG_NAME,
682         'OKC_API.G_RET_STS_ERROR',
683         x_msg_count,
684         x_msg_data,
685         G_SCOPE);
686      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
687        x_return_status := OKC_API.HANDLE_EXCEPTIONS
688        (substr(l_api_name,1,26),
689         G_PKG_NAME,
690         'OKC_API.G_RET_STS_UNEXP_ERROR',
691         x_msg_count,
692         x_msg_data,
693         G_SCOPE);
694      WHEN OTHERS THEN
695       -- store SQL error message on message stack for caller
696       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
697        x_return_status := OKC_API.HANDLE_EXCEPTIONS
698        (substr(l_api_name,1,26),
699         G_PKG_NAME,
700         'OTHERS',
701         x_msg_count,
702         x_msg_data,
703         G_SCOPE);
704 
705   END copy_latest_articles;
706 
707 -- Bug 2950549 - Added this procedure Copy_concurrent
708    PROCEDURE copy_concurrent(errbuf out NOCOPY VARCHAR2,
709 					    retcode out NOCOPY NUMBER,
710 					    p_id in NUMBER,
711                      	    p_from_chr_id IN NUMBER,
712 					    p_to_chr_id IN NUMBER,
713 				         p_contract_number IN VARCHAR2,
714 				         p_contract_number_modifier IN VARCHAR2,
715 				         p_to_template_yn IN VARCHAR2,
716 				         p_copy_reference IN VARCHAR2,
717 				         p_copy_line_party_yn IN VARCHAR2,
718 				         p_scs_code IN VARCHAR2,
719 				         p_intent   IN VARCHAR2,
720 				         p_prospect IN VARCHAR2,
721                              p_copy_entire_k_yn IN VARCHAR2, /* hkamdar R12 copy project*/
722 			     p_include_cancelled_lines IN VARCHAR2,
723 			     p_include_terminated_lines IN VARCHAR2) IS
724  BEGIN
725 OKC_COPY_CONTRACT_PVT.copy_concurrent(errbuf, retcode, p_id, p_from_chr_id,
726 p_to_chr_id,p_contract_number, p_contract_number_modifier,p_to_template_yn,
727 p_copy_reference,p_copy_line_party_yn,p_scs_code,p_intent,p_prospect,p_copy_entire_k_yn,p_include_cancelled_lines => p_include_cancelled_lines,p_include_terminated_lines => p_include_terminated_lines);-- hkamdar R12 copy project
728 
729  END copy_concurrent;
730 -- Bug 2950549 - End of the procedure
731 
732 -- IKON ER 3819893
733 
734  PROCEDURE UPDATE_TEMPLATE_CONTRACT (p_api_version   IN NUMBER,
735                                      p_init_msg_list IN VARCHAR2,
736                                      p_chr_id        IN NUMBER,
737                                      p_start_date    IN DATE,
738                                      p_end_date      IN DATE,
739                                      x_msg_count     OUT  NOCOPY  NUMBER,
740                                      x_msg_data      OUT   NOCOPY VARCHAR2,
741                                      x_return_status OUT   NOCOPY VARCHAR2) IS
742 
743     l_api_name     CONSTANT VARCHAR2(30) := 'UPDATE_TEMPLATE_CONTRACT';
744     l_return_status         VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
745 
746   BEGIN
747   --  errorout_ad ('INSIDE ####');
748     l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
749                                               G_PKG_NAME,
750                                               p_init_msg_list,
751                                               G_API_VERSION,
752                                               p_api_version,
753                                               G_SCOPE,
754                                               x_return_status);
755     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
756       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
757     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
758       RAISE OKC_API.G_EXCEPTION_ERROR;
759     END IF;
760 
761     OKC_COPY_CONTRACT_PVT.UPDATE_TEMPLATE_CONTRACT(p_api_version   => p_api_version,
762 				                   p_chr_id        => p_chr_id,
763 				                   p_start_date    => p_start_date,
764 				                   p_end_date      => p_end_date,
765 				                   x_msg_count     => x_msg_count,
766 				                   x_msg_data      => x_msg_data,
767                                                    x_return_status => x_return_status);
768 
769     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
770        RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
771     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
772        RAISE OKC_API.G_EXCEPTION_ERROR;
773     END IF;
774 
775     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
776 
777   EXCEPTION
778      WHEN OKC_API.G_EXCEPTION_ERROR THEN
779        x_return_status := OKC_API.HANDLE_EXCEPTIONS
780        (substr(l_api_name,1,26),
781         G_PKG_NAME,
782         'OKC_API.G_RET_STS_ERROR',
783         x_msg_count,
784         x_msg_data,
785         G_SCOPE);
786      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
787        x_return_status := OKC_API.HANDLE_EXCEPTIONS
788        (substr(l_api_name,1,26),
789         G_PKG_NAME,
790         'OKC_API.G_RET_STS_UNEXP_ERROR',
791         x_msg_count,
792         x_msg_data,
793         G_SCOPE);
794      WHEN OTHERS THEN
795       -- store SQL error message on message stack for caller
796       OKC_API.set_message(G_APP_NAME, G_UNEXPECTED_ERROR,G_SQLCODE_TOKEN,SQLCODE,G_SQLERRM_TOKEN,SQLERRM);
797        x_return_status := OKC_API.HANDLE_EXCEPTIONS
798        (substr(l_api_name,1,26),
799         G_PKG_NAME,
800         'OTHERS',
801         x_msg_count,
802         x_msg_data,
803         G_SCOPE);
804 
805   END  UPDATE_TEMPLATE_CONTRACT;
806 
807 END OKC_COPY_CONTRACT_PUB;