[Home] [Help]
PACKAGE BODY: APPS.OKL_VP_ASSOCIATIONS_PVT
Source
1 PACKAGE BODY OKL_VP_ASSOCIATIONS_PVT AS
2 /* $Header: OKLRVASB.pls 120.12 2006/07/11 10:07:18 dkagrawa noship $ */
3
4 G_LA_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_LA_ASSOC_DATES_MSMTCH';
5 G_LC_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_LC_ASSOC_DATES_MSMTCH';
6 G_ET_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_ET_ASSOC_DATES_MSMTCH';
7 G_FP_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_FP_ASSOC_DATES_MSMTCH';
8 G_IT_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_IT_ASSOC_DATES_MSMTCH';
9 G_IC_ASSOC_DATE_MISMATCH CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'OKL_VN_IC_ASSOC_DATES_MSMTCH';
10 G_AGRMNT_MSG_TOKEN CONSTANT fnd_new_messages.message_name%TYPE DEFAULT 'AGRMNT';
11
12 --------------------------------------------------------
13 -- Validations for the associations
14 --------------------------------------------------------
15 PROCEDURE validate_uniqueness(
16 x_return_status OUT NOCOPY VARCHAR2
17 ,p_vasv_rec IN vasv_rec_type
18 )IS
19
20 -- cursor to check uniqueness for lease contract templates
21 CURSOR c_is_uniq_csr IS
22 SELECT chr.contract_number
23 FROM okl_vp_associations assoc
24 ,okc_k_headers_b chr
25 WHERE assoc.chr_id = p_vasv_rec.chr_id
26 AND assoc.assoc_object_id = chr.id
27 AND chr.scs_code = 'LEASE'
28 AND assoc.assoc_object_id = p_vasv_rec.assoc_object_id
29 AND assoc.assoc_object_type_code = p_vasv_rec.assoc_object_type_code
30 AND (assoc.id <> p_vasv_rec.id OR p_vasv_rec.id = OKL_API.G_MISS_NUM or p_vasv_rec.id IS NULL)
31 AND (
32 (trunc(p_vasv_rec.start_date) BETWEEN trunc(assoc.start_date) AND trunc(nvl(assoc.end_date,okl_api.g_miss_date))) OR
33 (trunc(assoc.start_date) BETWEEN trunc(p_vasv_rec.start_date) AND trunc(nvl(p_vasv_rec.end_date,okl_api.g_miss_date)))
34 );
35 lv_contract_number okc_k_headers_b.contract_number%TYPE;
36 BEGIN
37 x_return_status := OKL_API.G_RET_STS_SUCCESS;
38 IF(p_vasv_rec.assoc_object_type_code = 'LC_TEMPLATE')THEN
39 OPEN c_is_uniq_csr;
40 LOOP
41 FETCH c_is_uniq_csr INTO lv_contract_number;
42 EXIT WHEN (c_is_uniq_csr%NOTFOUND OR lv_contract_number IS NOT NULL);
43 END LOOP;
44 CLOSE c_is_uniq_csr;
45 IF(lv_contract_number IS NOT NULL)THEN
46 okl_api.set_message(p_app_name => OKL_API.G_APP_NAME
47 ,p_msg_name => 'OKL_VN_DUPLICATE_LCT'
48 ,p_token1 => 'CONTRACT_TEMPLATE'
49 ,p_token1_value => lv_contract_number
50 );
51 x_return_status := OKL_API.G_RET_STS_ERROR;
52 END IF;
53 END IF;
54 END validate_uniqueness;
55
56 PROCEDURE validate_vp_associations_dates (
57 x_return_status OUT NOCOPY VARCHAR2,
58 p_vasv_rec IN vasv_rec_type
59 ) IS
60 l_api_name VARCHAR2(30) := 'VALIDATE_VP_ASSOCIATIONS_DATES';
61 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
62
63 CURSOR lc_dates_csr (p_object_id IN NUMBER) IS
64 SELECT start_date, end_date
65 FROM okc_k_headers_b
66 WHERE id = p_object_id
67 AND scs_code = 'LEASE'
68 AND template_yn= 'Y';
69
70 l_start_date DATE;
71 l_end_date DATE;
72 l_pa_end_date DATE;
73
74
75 -- abindal start --
76 --lease application template --
77 CURSOR la_dates_csr (p_object_id IN NUMBER, p_version_number IN NUMBER) IS
78 SELECT valid_from,
79 valid_to
80 FROM okl_leaseapp_templ_versions_v
81 WHERE leaseapp_template_id = p_object_id
82 AND version_status = 'ACTIVE'
83 AND version_number = p_version_number;
84 -- abindal end --
85
86 l_parent_object_id NUMBER;
87
88 CURSOR get_creq_type_csr(cp_crs_id okl_vp_change_requests.id%TYPE)IS
89 SELECT change_type_code
90 ,chr_id
91 FROM okl_vp_change_requests
92 WHERE id = cp_crs_id;
93 cv_get_creq_type get_creq_type_csr%ROWTYPE;
94
95 CURSOR c_get_khr_id (cp_crs_id okl_vp_change_requests.id%TYPE)IS
96 SELECT id
97 FROM okl_k_headers
98 WHERE crs_id = cp_crs_id;
99
100 CURSOR c_get_parent_dt_csr(cp_chr_id okc_k_headers_b.id%TYPE)IS
101 SELECT start_date
102 ,end_date
103 ,contract_number
104 FROM okc_k_headers_b
105 WHERE id = cp_chr_id;
106
107 lv_parent_start_date okc_k_headers_b.start_date%TYPE;
108 lv_parent_end_date okc_k_headers_b.end_date%TYPE;
109 lv_contract_number okc_k_headers_b.contract_number%TYPE;
110 lv_message_name fnd_new_messages.message_name%TYPE;
111
112 BEGIN
113 x_return_status := l_return_status;
114
115 -- first determine the parent object id
116 IF(p_vasv_rec.chr_id IS NOT NULL AND p_vasv_rec.chr_id <> OKL_API.G_MISS_NUM)THEN
117 l_parent_object_id := p_vasv_rec.chr_id;
118 ELSIF(p_vasv_rec.crs_id IS NOT NULL AND p_vasv_rec.crs_id <> OKL_API.G_MISS_NUM)THEN
119 -- this implies that crs_id is provided, which means we are validating against an
120 -- association type of change request. determine the chr_id from this crs_id
121 OPEN get_creq_type_csr(p_vasv_rec.crs_id); FETCH get_creq_type_csr INTO cv_get_creq_type;
122 CLOSE get_creq_type_csr;
123 IF('AGREEMENT' = cv_get_creq_type.change_type_code)THEN
124 OPEN c_get_khr_id(p_vasv_rec.crs_id); FETCH c_get_khr_id INTO l_parent_object_id;
125 CLOSE c_get_khr_id;
126 ELSE
127 -- association type of change request
128 l_parent_object_id := cv_get_creq_type.chr_id;
129 END IF;
130 END IF;
131
132 -- validate if the object effective dates are within the agreement effective dates
133 IF(l_parent_object_id IS NOT NULL)THEN
134 OPEN c_get_parent_dt_csr(l_parent_object_id);
135 FETCH c_get_parent_dt_csr INTO lv_parent_start_date,lv_parent_end_date,lv_contract_number;
136 CLOSE c_get_parent_dt_csr;
137 IF((TRUNC(p_vasv_rec.start_date) < TRUNC(lv_parent_start_date))
138 OR(TRUNC(NVL(p_vasv_rec.end_date, okl_accounting_util.g_final_date)) > TRUNC(NVL(lv_parent_end_date,okl_accounting_util.g_final_date)))
139 )THEN
140 IF(p_vasv_rec.assoc_object_type_code = 'LC_TEMPLATE')THEN
141 lv_message_name := G_LC_ASSOC_DATE_MISMATCH;
142 ELSIF(p_vasv_rec.assoc_object_type_code = 'LA_TEMPLATE')THEN
143 lv_message_name := G_LA_ASSOC_DATE_MISMATCH;
144 ELSIF(p_vasv_rec.assoc_object_type_code = 'LA_EOT_VALUES')THEN
145 lv_message_name := G_ET_ASSOC_DATE_MISMATCH;
146 ELSIF(p_vasv_rec.assoc_object_type_code = 'LA_FINANCIAL_PRODUCT')THEN
147 lv_message_name := G_FP_ASSOC_DATE_MISMATCH;
148 ELSIF(p_vasv_rec.assoc_object_type_code = 'LA_ITEMS')THEN
149 lv_message_name := G_IT_ASSOC_DATE_MISMATCH;
150 ELSIF(p_vasv_rec.assoc_object_type_code = 'LA_ITEM_CATEGORIES')THEN
151 lv_message_name := G_IC_ASSOC_DATE_MISMATCH;
152 END IF;
153 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME, p_msg_name => lv_message_name);
154 x_return_status := OKL_API.G_RET_STS_ERROR;
155 RAISE G_EXCEPTION_HALT_VALIDATION;
156 END IF;
157 END IF;
158
159 -- Validate association dates --
160 IF (p_vasv_rec.assoc_object_type_code = 'LC_TEMPLATE' ) THEN
161 -- abindal Changed chr_id to assoc_object_id --
162 -- OPEN lc_dates_csr (p_vasv_rec.chr_id);
163 OPEN lc_dates_csr (p_vasv_rec.assoc_object_id);
164 FETCH lc_dates_csr INTO l_start_date, l_end_date;
165 CLOSE lc_dates_csr;
166
167 l_pa_end_date := NVL(p_vasv_rec.end_date, l_end_date);
168
169 IF (p_vasv_rec.start_date < l_start_date OR p_vasv_rec.start_date > l_end_date) OR
170 (l_pa_end_date < l_start_date OR l_pa_end_date > l_end_date) THEN
171 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
172 p_msg_name => 'OKL_VP_ASSOC_INV_DATES'
173 );
174 x_return_status := OKL_API.G_RET_STS_ERROR;
175 RAISE G_EXCEPTION_HALT_VALIDATION;
176 END IF;
177 END IF;
178
179 -- abindal start --
180 IF (p_vasv_rec.assoc_object_type_code = 'LA_TEMPLATE' ) THEN
181 OPEN la_dates_csr (p_vasv_rec.assoc_object_id, p_vasv_rec.assoc_object_version);
182 FETCH la_dates_csr INTO l_start_date, l_end_date;
183 CLOSE la_dates_csr;
184
185 l_pa_end_date := NVL(p_vasv_rec.end_date, l_end_date);
186
187 IF (p_vasv_rec.start_date < l_start_date OR p_vasv_rec.start_date > l_end_date) OR
188 (l_pa_end_date < l_start_date OR l_pa_end_date > l_end_date) THEN
189 OKL_API.SET_MESSAGE(p_app_name => OKL_API.G_APP_NAME,
190 p_msg_name => 'OKL_VP_ASSOC_INV_DATES'
191 );
192 x_return_status := OKL_API.G_RET_STS_ERROR;
193 RAISE G_EXCEPTION_HALT_VALIDATION;
194 END IF;
195 END IF;
196 -- abindal end --
197
198 EXCEPTION
199 WHEN G_EXCEPTION_HALT_VALIDATION THEN
200 NULL;
201 WHEN OTHERS THEN
202 OKL_API.SET_MESSAGE( p_app_name => OKL_API.G_APP_NAME
203 ,p_msg_name => G_UNEXPECTED_ERROR
204 ,p_token1 => G_SQLCODE_TOKEN
205 ,p_token1_value => SQLCODE
206 ,p_token2 => G_SQLERRM_TOKEN
207 ,p_token2_value => SQLERRM);
208 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
209 END validate_vp_associations_dates;
210
211 PROCEDURE validate_object_version (
212 x_return_status OUT NOCOPY VARCHAR2,
213 p_vasv_rec IN vasv_rec_type
214 ) IS
215 l_api_name VARCHAR2(30) := 'VALIDATE_OBJECT_VERSION';
216 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
217
218 BEGIN
219 x_return_status := l_return_status;
220
221 -- Validate object version for lease applicaiton--
222
223 EXCEPTION
224 WHEN G_EXCEPTION_HALT_VALIDATION THEN
225 NULL;
226 WHEN OTHERS THEN
227 OKL_API.SET_MESSAGE( p_app_name => OKL_API.G_APP_NAME
228 ,p_msg_name => G_UNEXPECTED_ERROR
229 ,p_token1 => G_SQLCODE_TOKEN
230 ,p_token1_value => SQLCODE
231 ,p_token2 => G_SQLERRM_TOKEN
232 ,p_token2_value => SQLERRM);
233 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
234 END validate_object_version;
235
236 PROCEDURE create_vp_associations(
237 p_api_version IN NUMBER,
238 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
239 x_return_status OUT NOCOPY VARCHAR2,
240 x_msg_count OUT NOCOPY NUMBER,
241 x_msg_data OUT NOCOPY VARCHAR2,
242 p_vasv_rec IN vasv_rec_type,
243 x_vasv_rec OUT NOCOPY vasv_rec_type
244 ) IS
245 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VP_ASSOCIATIONS';
246 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
247 l_exist VARCHAR2(1);
248 -- abindal start --
249 l_dummy VARCHAR2(1);
250 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
251 -- l_application_type OKL_LEASEAPP_TEMPLATES_V.APPLICATION_TYPE%TYPE;
252 l_credit_class OKL_LEASEAPP_TMPLS.CUST_CREDIT_CLASSIFICATION%TYPE;
253 l_credit_purpose OKL_LEASEAPP_TMPLS.CREDIT_REVIEW_PURPOSE%TYPE;
254 -- l_sic_code OKL_LEASEAPP_TEMPLATES_V.APPLICATION_TYPE%TYPE;
255 l_sic_code OKL_LEASEAPP_TMPLS.INDUSTRY_CODE%TYPE;
256 l_agrmnt_name OKC_K_HEADERS_B.CONTRACT_NUMBER%TYPE;
257 /* Manu 31-Aug-2005 Remove REFERENCE_NUMBER column */
258 -- l_appl_temp_name OKL_LEASEAPP_TEMPLATES_V.REFERENCE_NUMBER%TYPE;
259 l_appl_temp_name OKL_LEASEAPP_TMPLS.NAME%TYPE;
260 lv_change_type_code okl_vp_change_requests.change_type_code%TYPE;
261 -- abindal end --
262
263 CURSOR check_duplicate_csr (p_chr_id NUMBER, p_assoc_obj_id NUMBER, p_start_date DATE, p_end_date DATE) IS
264 SELECT '1'
265 FROM okl_vp_associations
266 WHERE chr_id = p_chr_id
267 AND assoc_object_id = p_assoc_obj_id
268 AND start_date <= p_start_date
269 AND nvl(end_date,sysdate) >= nvl(p_end_date,sysdate);
270
271 CURSOR check_duplicate_csr1 (p_crs_id NUMBER, p_assoc_obj_id NUMBER, p_start_date DATE, p_end_date DATE) IS
272 SELECT '1'
273 FROM okl_vp_associations
274 WHERE crs_id = p_crs_id
275 AND assoc_object_id = p_assoc_obj_id
276 AND start_date <= p_start_date
277 AND nvl(end_date,sysdate) >= nvl(p_end_date,sysdate);
278
279 -- abindal start --
280 CURSOR get_la_rec(cp_assoc_id IN NUMBER) IS
281 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
282 SELECT -- application_type,
283 cust_credit_classification,
284 credit_review_purpose,
285 -- Change sic_code to industry_code
286 -- sic_code,
287 industry_code,
288 /* Manu 31-Aug-2005 Remove REFERENCE_NUMBER column */
289 -- reference_number
290 name
291 FROM OKL_LEASEAPP_TMPLS
292 WHERE id = cp_assoc_id;
293
294 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
295 CURSOR get_la_assoc_chr_rec(cp_chr_id IN NUMBER, -- cp_appl_type IN VARCHAR2,
296 cp_credit_class IN VARCHAR2, cp_credit_review IN VARCHAR2, cp_sic_code IN VARCHAR2)IS
297 SELECT 'X'
298 FROM OKL_LEASEAPP_TMPLS lat,
299 okl_vp_associations_v vpa
300 WHERE lat.id = vpa.assoc_object_id
301 AND vpa.assoc_object_type_code = 'LA_TEMPLATE'
302 AND vpa.chr_id = cp_chr_id
303 AND lat.cust_credit_classification = cp_credit_class
304 AND lat.credit_review_purpose = cp_credit_review
305 AND (lat.industry_code = cp_sic_code OR cp_sic_code IS NULL);
306
307 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
308 CURSOR get_la_assoc_crs_rec(cp_crs_id IN NUMBER, -- cp_appl_type IN VARCHAR2,
309 cp_credit_class IN VARCHAR2, cp_credit_review IN VARCHAR2, cp_sic_code IN VARCHAR2)IS
310 SELECT 'X'
311 FROM OKL_LEASEAPP_TMPLS lat,
312 okl_vp_associations_v vpa
313 WHERE lat.id = vpa.assoc_object_id
314 AND vpa.assoc_object_type_code = 'LA_TEMPLATE'
315 AND vpa.crs_id = cp_crs_id
316 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
317 -- AND lat.application_type = cp_appl_type
318 AND lat.cust_credit_classification = cp_credit_class
319 AND lat.credit_review_purpose = cp_credit_review
320 -- Manu 01-Sep-2005 Change sic_code to industry_code
321 -- AND lat.sic_code = cp_sic_code;
322 AND lat.industry_code = cp_sic_code;
323
324 CURSOR get_agrmnt_name(cp_chr_id IN NUMBER) IS
325 SELECT contract_number
326 FROM OKC_K_HEADERS_B
327 WHERE id = cp_chr_id;
328
329 CURSOR c_get_creq_info(cp_crs_id okl_vp_change_requests.id%TYPE) IS
330 SELECT change_type_code
331 FROM okl_vp_change_requests
332 WHERE id = cp_crs_id;
333
334 CURSOR c_get_agr_number(cp_crs_id okl_vp_change_requests.id%TYPE)IS
335 SELECT chr.contract_number
336 FROM okc_k_headers_b chr,
337 okl_k_headers khr
338 WHERE chr.id = khr.id
339 AND khr.crs_id = cp_crs_id;
340
341 CURSOR get_agreement_name(cp_crs_id IN NUMBER) IS
342 SELECT contract_number
343 FROM OKC_K_HEADERS_B okc,
344 OKL_VP_CHANGE_REQUESTS chr
345 WHERE chr.id = cp_crs_id
346 AND okc.id = chr.chr_id;
347 -- abindal end --
348
349 CURSOR c_chk_lat_dates(cp_chr_id okc_k_headers_b.id%TYPE
350 ,cp_object_id okl_vp_associations.assoc_object_id%TYPE
351 ,cp_start_date okl_vp_associations.start_date%TYPE
352 ,cp_end_date okl_vp_associations.end_date%TYPE)IS
353 SELECT 'X'
354 FROM okl_vp_associations
355 WHERE chr_id = cp_chr_id
356 AND assoc_object_id = cp_object_id
357 AND ((trunc(start_date) BETWEEN trunc(cp_start_date) AND trunc(NVL(cp_end_date,okl_accounting_util.g_final_date))) OR
358 (trunc(cp_start_date) BETWEEN trunc(start_date) AND TRUNC(NVL(end_date,okl_accounting_util.g_final_date))));
359
360 CURSOR c_chk_lat_dates1(cp_crs_id okl_vp_change_requests.id%TYPE
361 ,cp_object_id okl_vp_associations.assoc_object_id%TYPE
362 ,cp_start_date okl_vp_associations.start_date%TYPE
363 ,cp_end_date okl_vp_associations.end_date%TYPE)IS
364 SELECT 'X'
365 FROM okl_vp_associations
366 WHERE crs_id = cp_crs_id
367 AND assoc_object_id = cp_object_id
368 AND ((trunc(start_date) BETWEEN trunc(cp_start_date) AND trunc(NVL(cp_end_date,okl_accounting_util.g_final_date))) OR
369 (trunc(cp_start_date) BETWEEN trunc(start_date) AND TRUNC(NVL(end_date,okl_accounting_util.g_final_date))));
370
371 BEGIN
372
373 x_return_status := l_return_status;
374 -- Call start_activity to create savepoint, check compatibility
375 -- and initialize message list
376 l_return_status := OKL_API.START_ACTIVITY (l_api_name
377 ,p_init_msg_list
378 ,'_PVT'
379 ,x_return_status);
380
381 -- Check if activity started successfully
382 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
383 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
384 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
385 RAISE OKL_API.G_EXCEPTION_ERROR;
386 END IF;
387
388 -- Make sure either chr_id or crs_id is populated--
389 IF(p_vasv_rec.chr_id = OKL_API.G_MISS_NUM OR p_vasv_rec.chr_id IS NULL) AND
390 (p_vasv_rec.crs_id = OKL_API.G_MISS_NUM OR p_vasv_rec.crs_id IS NULL) THEN
391 OKL_API.set_message(OKL_API.G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'chr_id or crs_id');
392 x_return_status := OKL_API.G_RET_STS_ERROR;
393 RAISE OKL_API.G_EXCEPTION_ERROR;
394 END IF;
395
396 -- abindal start --
397 OPEN get_la_rec(p_vasv_rec.assoc_object_id);
398
399 -- Manu 02-Sep-2005 remove references to APPLICATION_TYPE
400 FETCH get_la_rec INTO l_credit_class, l_credit_purpose, l_sic_code, l_appl_temp_name;
401 CLOSE get_la_rec;
402
403 IF (p_vasv_rec.chr_id IS NOT NULL AND p_vasv_rec.chr_id <> OKL_API.G_MISS_NUM) THEN
404 IF('LA_TEMPLATE' = p_vasv_rec.assoc_object_type_code)THEN
405 l_dummy := null;
406 OPEN c_chk_lat_dates (p_vasv_rec.chr_id, p_vasv_rec.assoc_object_id, p_vasv_rec.start_date, p_vasv_rec.end_date);
407 FETCH c_chk_lat_dates INTO l_dummy;
408 CLOSE c_chk_lat_dates;
409
410 IF (l_dummy IS NOT NULL) THEN
411 OPEN get_agrmnt_name(p_vasv_rec.chr_id);
412 FETCH get_agrmnt_name INTO l_agrmnt_name;
413 CLOSE get_agrmnt_name;
414
415 OKL_API.SET_MESSAGE(OKL_API.G_APP_NAME,
416 'OKL_VP_LAT_VERSION_DATES_ERR',
417 'APP_TEMPLATE',
418 l_appl_temp_name,
419 'AGR_NUMBER',
420 l_agrmnt_name
421 );
422 x_return_status := OKL_API.G_RET_STS_ERROR;
423 RAISE OKL_API.G_EXCEPTION_ERROR;
424 END IF;
425 END IF;
426 END IF;
427
428 IF (p_vasv_rec.crs_id IS NOT NULL AND p_vasv_rec.crs_id <> OKL_API.G_MISS_NUM) THEN
429 IF('LA_TEMPLATE' = p_vasv_rec.assoc_object_type_code)THEN
430 OPEN c_get_creq_info (p_vasv_rec.crs_id);
431 FETCH c_get_creq_info INTO lv_change_type_code;
432 CLOSE c_get_creq_info;
433 -- for AGREEMENT type of change request, the context agreement needs to be derived
434 IF('AGREEMENT' = lv_change_type_code)THEN
435 OPEN c_get_agr_number(p_vasv_rec.crs_id);
436 FETCH c_get_agr_number INTO l_agrmnt_name;
437 CLOSE c_get_agr_number;
438 ELSIF('ASSOCIATION' = lv_change_type_code)THEN
439 -- for ASSOCIATION type of change request, the chr_id in the okl_vp_change_requests table is as good
440 OPEN get_agreement_name(p_vasv_rec.crs_id);
441 FETCH get_agreement_name INTO l_agrmnt_name;
442 CLOSE get_agreement_name;
443 END IF;
444 l_dummy := null;
445 OPEN c_chk_lat_dates1 (p_vasv_rec.crs_id, p_vasv_rec.assoc_object_id, p_vasv_rec.start_date, p_vasv_rec.end_date);
446 FETCH c_chk_lat_dates1 INTO l_dummy;
447 CLOSE c_chk_lat_dates1;
448
449 IF (l_dummy IS NOT NULL) THEN
450 OKL_API.SET_MESSAGE( OKL_API.G_APP_NAME,
451 'OKL_VP_LAT_VERSION_DATES_ERR',
452 'APP_TEMPLATE',
453 l_appl_temp_name,
454 'AGR_NUMBER',
455 l_agrmnt_name
456 );
457 x_return_status := OKL_API.G_RET_STS_ERROR;
458 RAISE OKL_API.G_EXCEPTION_ERROR;
459 END IF;
460 END IF;
461 END IF;
462 -- abindal end --
463
464 -- sjalasut, added uniqueness check for Lease Contract Template. A Lease Contract Template instance cannot exist on the Program Agreement
465 -- more than once for given effective dates
466 validate_uniqueness(x_return_status => x_return_status, p_vasv_rec => p_vasv_rec);
467 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
468 l_return_status := x_return_status;
469 RAISE OKL_API.G_EXCEPTION_ERROR;
470 END IF;
471
472 OKL_VAS_PVT.insert_row(p_api_version,
473 p_init_msg_list,
474 x_return_status,
475 x_msg_count,
476 x_msg_data,
477 p_vasv_rec,
478 x_vasv_rec);
479
480 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
481 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
482 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
483 raise OKL_API.G_EXCEPTION_ERROR;
484 End If;
485
486 validate_vp_associations_dates(x_return_status, x_vasv_rec);
487 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
488 l_return_status := x_return_status;
489 RAISE OKL_API.G_EXCEPTION_ERROR;
490 END IF;
491 validate_object_version(x_return_status, x_vasv_rec);
492 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
493 l_return_status := x_return_status;
494 RAISE OKL_API.G_EXCEPTION_ERROR;
495 END IF;
496
497 x_return_status := l_return_status;
498
499 /* Manu 29-Jun-2005 Begin */
500 IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
501 OKL_VENDOR_PROGRAM_PVT.passed_to_incomplete(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_program_id => p_vasv_rec.chr_id
507 );
508 END IF;
509 /* Manu 29-Jun-2005 END */
510
511 OKL_API.END_ACTIVITY (x_msg_count
512 ,x_msg_data );
513
514 EXCEPTION
515 WHEN OKL_API.G_EXCEPTION_ERROR THEN
516 x_return_status := OKL_API.HANDLE_EXCEPTIONS
517 (l_api_name,
518 G_PKG_NAME,
519 'OKL_API.G_RET_STS_ERROR',
520 x_msg_count,
521 x_msg_data,
522 '_PVT');
523 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
524 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
525 (l_api_name,
526 G_PKG_NAME,
527 'OKL_API.G_RET_STS_UNEXP_ERROR',
528 x_msg_count,
529 x_msg_data,
530 '_PVT');
531 WHEN OTHERS THEN
532 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
533 (l_api_name,
534 G_PKG_NAME,
535 'OTHERS',
536 x_msg_count,
537 x_msg_data,
538 '_PVT');
539 END create_vp_associations;
540
541 PROCEDURE create_vp_associations(
542 p_api_version IN NUMBER,
543 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
544 x_return_status OUT NOCOPY VARCHAR2,
545 x_msg_count OUT NOCOPY NUMBER,
546 x_msg_data OUT NOCOPY VARCHAR2,
547 p_vasv_tbl IN vasv_tbl_type,
548 x_vasv_tbl OUT NOCOPY vasv_tbl_type
549 ) IS
550 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_VP_ASSOCIATIONS';
551 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
552 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
553 i NUMBER;
554 BEGIN
555
556 If p_vasv_tbl.COUNT > 0 Then
557 i := p_vasv_tbl.FIRST;
558 LOOP
559 -- call procedure in complex API for a record
560 create_vp_associations(p_api_version,
561 p_init_msg_list,
562 x_return_status,
563 x_msg_count,
564 x_msg_data,
565 p_vasv_tbl(i),
566 x_vasv_tbl(i));
567 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
568 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
569 l_overall_status := x_return_status;
570 End If;
571 End If;
572
573 EXIT WHEN (i = p_vasv_tbl.LAST);
574 i := p_vasv_tbl.NEXT(i);
575 END LOOP;
576
577 -- return overall status
578 x_return_status := l_overall_status;
579 End If;
580
581 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
582 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
583 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
584 raise OKL_API.G_EXCEPTION_ERROR;
585 End If;
586
587 EXCEPTION
588 WHEN OKL_API.G_EXCEPTION_ERROR THEN
589 x_return_status := OKL_API.HANDLE_EXCEPTIONS
590 (l_api_name,
591 G_PKG_NAME,
592 'OKL_API.G_RET_STS_ERROR',
593 x_msg_count,
594 x_msg_data,
595 '_PVT');
596 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
597 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
598 (l_api_name,
599 G_PKG_NAME,
600 'OKL_API.G_RET_STS_UNEXP_ERROR',
601 x_msg_count,
602 x_msg_data,
603 '_PVT');
604 WHEN OTHERS THEN
605 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
606 (l_api_name,
607 G_PKG_NAME,
608 'OTHERS',
609 x_msg_count,
610 x_msg_data,
611 '_PVT');
612 END create_vp_associations;
613
614 PROCEDURE lock_vp_associations(
615 p_api_version IN NUMBER,
616 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
617 x_return_status OUT NOCOPY VARCHAR2,
618 x_msg_count OUT NOCOPY NUMBER,
619 x_msg_data OUT NOCOPY VARCHAR2,
620 p_vasv_rec IN vasv_rec_type
621 ) IS
622 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_VP_ASSOCIATIONS';
623 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
624 BEGIN
625 x_return_status := l_return_status;
626 -- Call start_activity to create savepoint, check compatibility
627 -- and initialize message list
628 l_return_status := OKL_API.START_ACTIVITY (l_api_name
629 ,p_init_msg_list
630 ,'_PVT'
631 ,x_return_status);
632 -- Check if activity started successfully
633 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
634 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
635 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
636 RAISE OKL_API.G_EXCEPTION_ERROR;
637 END IF;
638
639 OKL_VAS_PVT.lock_row(p_api_version,
640 p_init_msg_list,
641 x_return_status,
642 x_msg_count,
643 x_msg_data,
644 p_vasv_rec);
645
646 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
647 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
648 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
649 raise OKL_API.G_EXCEPTION_ERROR;
650 End If;
651
652 OKL_API.END_ACTIVITY (x_msg_count
653 ,x_msg_data );
654
655 EXCEPTION
656 WHEN OKL_API.G_EXCEPTION_ERROR THEN
657 x_return_status := OKL_API.HANDLE_EXCEPTIONS
658 (l_api_name,
659 G_PKG_NAME,
660 'OKL_API.G_RET_STS_ERROR',
661 x_msg_count,
662 x_msg_data,
663 '_PVT');
664 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
665 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
666 (l_api_name,
667 G_PKG_NAME,
668 'OKL_API.G_RET_STS_UNEXP_ERROR',
669 x_msg_count,
670 x_msg_data,
671 '_PVT');
672 WHEN OTHERS THEN
673 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
674 (l_api_name,
675 G_PKG_NAME,
676 'OTHERS',
677 x_msg_count,
678 x_msg_data,
679 '_PVT');
680 END lock_vp_associations;
681
682 PROCEDURE lock_vp_associations(
683 p_api_version IN NUMBER,
684 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
685 x_return_status OUT NOCOPY VARCHAR2,
686 x_msg_count OUT NOCOPY NUMBER,
687 x_msg_data OUT NOCOPY VARCHAR2,
688 p_vasv_tbl IN vasv_tbl_type
689 ) IS
690 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_VP_ASSOCIATIONS';
691 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
692 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
693 i NUMBER;
694 BEGIN
695
696 If p_vasv_tbl.COUNT > 0 Then
697 i := p_vasv_tbl.FIRST;
698 LOOP
699 -- call procedure in complex API for a record
700 lock_vp_associations(p_api_version,
701 p_init_msg_list,
702 x_return_status,
703 x_msg_count,
704 x_msg_data,
705 p_vasv_tbl(i));
706 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
707 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
708 l_overall_status := x_return_status;
709 End If;
710 End If;
711
712 EXIT WHEN (i = p_vasv_tbl.LAST);
713 i := p_vasv_tbl.NEXT(i);
714 END LOOP;
715
716 -- return overall status
717 x_return_status := l_overall_status;
718 End If;
719
720 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
721 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
722 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
723 raise OKL_API.G_EXCEPTION_ERROR;
724 End If;
725
726 EXCEPTION
727 WHEN OKL_API.G_EXCEPTION_ERROR THEN
728 x_return_status := OKL_API.HANDLE_EXCEPTIONS
729 (l_api_name,
730 G_PKG_NAME,
731 'OKL_API.G_RET_STS_ERROR',
732 x_msg_count,
733 x_msg_data,
734 '_PVT');
735 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
736 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
737 (l_api_name,
738 G_PKG_NAME,
739 'OKL_API.G_RET_STS_UNEXP_ERROR',
740 x_msg_count,
741 x_msg_data,
742 '_PVT');
743 WHEN OTHERS THEN
744 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
745 (l_api_name,
746 G_PKG_NAME,
747 'OTHERS',
748 x_msg_count,
749 x_msg_data,
750 '_PVT');
751 END lock_vp_associations;
752
753 PROCEDURE delete_vp_associations(
754 p_api_version IN NUMBER,
755 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
756 x_return_status OUT NOCOPY VARCHAR2,
757 x_msg_count OUT NOCOPY NUMBER,
758 x_msg_data OUT NOCOPY VARCHAR2,
759 p_vasv_rec IN vasv_rec_type
760 ) IS
761 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_VP_ASSOCIATIONS';
762 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
763 l_chr_id OKL_VP_ASSOCIATIONS.CHR_ID%TYPE;
764
765
766 CURSOR cur_get_chr_id IS
767 SELECT chr_id
768 FROM okl_vp_associations
769 WHERE id = p_vasv_rec.id;
770
771 BEGIN
772 x_return_status := l_return_status;
773 -- Call start_activity to create savepoint, check compatibility
774 -- and initialize message list
775 l_return_status := OKL_API.START_ACTIVITY (l_api_name
776 ,p_init_msg_list
777 ,'_PVT'
778 ,x_return_status);
779 -- Check if activity started successfully
780 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
781 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
782 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
783 RAISE OKL_API.G_EXCEPTION_ERROR;
784 END IF;
785
786
787 /* Manu 29-Jun-2005 Begin */
788 OPEN cur_get_chr_id;
789 FETCH cur_get_chr_id INTO l_chr_id;
790 CLOSE cur_get_chr_id;
791 /* Manu 29-Jun-2005 END */
792
793
794 OKL_VAS_PVT.delete_row(p_api_version,
795 p_init_msg_list,
796 x_return_status,
797 x_msg_count,
798 x_msg_data,
799 p_vasv_rec);
800
801 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
802 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
803 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
804 raise OKL_API.G_EXCEPTION_ERROR;
805 End If;
806
807
808 /* Manu 29-Jun-2005 Begin */
809 IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
810 OKL_VENDOR_PROGRAM_PVT.passed_to_incomplete(p_api_version => p_api_version
811 ,p_init_msg_list => p_init_msg_list
812 ,x_return_status => x_return_status
813 ,x_msg_count => x_msg_count
814 ,x_msg_data => x_msg_data
815 ,p_program_id => l_chr_id
816 );
817 END IF;
818 /* Manu 29-Jun-2005 END */
819
820 OKL_API.END_ACTIVITY (x_msg_count
821 ,x_msg_data );
822
823 EXCEPTION
824 WHEN OKL_API.G_EXCEPTION_ERROR THEN
825 x_return_status := OKL_API.HANDLE_EXCEPTIONS
826 (l_api_name,
827 G_PKG_NAME,
828 'OKL_API.G_RET_STS_ERROR',
829 x_msg_count,
830 x_msg_data,
831 '_PVT');
832 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
833 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
834 (l_api_name,
835 G_PKG_NAME,
836 'OKL_API.G_RET_STS_UNEXP_ERROR',
837 x_msg_count,
838 x_msg_data,
839 '_PVT');
840 WHEN OTHERS THEN
841 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
842 (l_api_name,
843 G_PKG_NAME,
844 'OTHERS',
845 x_msg_count,
846 x_msg_data,
847 '_PVT');
848 END delete_vp_associations;
849
850 PROCEDURE delete_vp_associations(
851 p_api_version IN NUMBER,
852 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
853 x_return_status OUT NOCOPY VARCHAR2,
854 x_msg_count OUT NOCOPY NUMBER,
855 x_msg_data OUT NOCOPY VARCHAR2,
856 p_vasv_tbl IN vasv_tbl_type
857 ) IS
858 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_VP_ASSOCIATIONS';
859 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
860 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
861 i NUMBER;
862 BEGIN
863
864 If p_vasv_tbl.COUNT > 0 Then
865 i := p_vasv_tbl.FIRST;
866 LOOP
867 -- call procedure in complex API for a record
868 delete_vp_associations(p_api_version,
869 p_init_msg_list,
870 x_return_status,
871 x_msg_count,
872 x_msg_data,
873 p_vasv_tbl(i));
874 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
875 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
876 l_overall_status := x_return_status;
877 End If;
878 End If;
879
880 EXIT WHEN (i = p_vasv_tbl.LAST);
881 i := p_vasv_tbl.NEXT(i);
882 END LOOP;
883
884 -- return overall status
885 x_return_status := l_overall_status;
886 End If;
887
888 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
889 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
890 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
891 raise OKL_API.G_EXCEPTION_ERROR;
892 End If;
893
894 EXCEPTION
895 WHEN OKL_API.G_EXCEPTION_ERROR THEN
896 x_return_status := OKL_API.HANDLE_EXCEPTIONS
897 (l_api_name,
898 G_PKG_NAME,
899 'OKL_API.G_RET_STS_ERROR',
900 x_msg_count,
901 x_msg_data,
902 '_PVT');
903 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
904 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
905 (l_api_name,
906 G_PKG_NAME,
907 'OKL_API.G_RET_STS_UNEXP_ERROR',
908 x_msg_count,
909 x_msg_data,
910 '_PVT');
911 WHEN OTHERS THEN
912 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
913 (l_api_name,
914 G_PKG_NAME,
915 'OTHERS',
916 x_msg_count,
917 x_msg_data,
918 '_PVT');
919 END delete_vp_associations;
920
921 PROCEDURE update_vp_associations(
922 p_api_version IN NUMBER,
923 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
924 x_return_status OUT NOCOPY VARCHAR2,
925 x_msg_count OUT NOCOPY NUMBER,
926 x_msg_data OUT NOCOPY VARCHAR2,
927 p_vasv_rec IN vasv_rec_type,
928 x_vasv_rec OUT NOCOPY vasv_rec_type
929 ) IS
930 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_VP_ASSOCIATIONS';
931 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
932 l_vasv_rec vasv_rec_type;
933 BEGIN
934 x_return_status := l_return_status;
935 -- Call start_activity to create savepoint, check compatibility
936 -- and initialize message list
937 l_return_status := OKL_API.START_ACTIVITY (l_api_name
938 ,p_init_msg_list
939 ,'_PVT'
940 ,x_return_status);
941 -- Check if activity started successfully
942 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
943 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
944 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
945 RAISE OKL_API.G_EXCEPTION_ERROR;
946 END IF;
947
948 -- sjalasut, added uniqueness check for Lease Contract Template. A Lease Contract Template instance cannot exist on the Program Agreement
949 -- more than once for given effective dates
950 validate_uniqueness(x_return_status => x_return_status, p_vasv_rec => p_vasv_rec);
951 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
952 l_return_status := x_return_status;
953 RAISE OKL_API.G_EXCEPTION_ERROR;
954 END IF;
955
956 -- need to pass G_MISS_.. to the required fields with null values
957 -- to avoid errors from TAPIs--
958 l_vasv_rec := p_vasv_rec;
959
960 if (l_vasv_rec.chr_id is null) then
961 l_vasv_rec.chr_id := OKL_API.G_MISS_NUM;
962 end if;
963 if (l_vasv_rec.crs_id is null) then
964 l_vasv_rec.crs_id := OKL_API.G_MISS_NUM;
965 end if;
966 if (l_vasv_rec.object_version_number is null) then
967 l_vasv_rec.object_version_number := OKL_API.G_MISS_NUM;
968 end if;
969 if (l_vasv_rec.assoc_object_type_code is null) then
970 l_vasv_rec.assoc_object_type_code := OKL_API.G_MISS_CHAR;
971 end if;
972 if (l_vasv_rec.start_date is null) then
973 l_vasv_rec.start_date := OKL_API.G_MISS_DATE;
974 end if;
975 if (l_vasv_rec.assoc_object_id is null) then
976 l_vasv_rec.assoc_object_id := OKL_API.G_MISS_NUM;
977 end if;
978 if (l_vasv_rec.created_by is null) then
979 l_vasv_rec.created_by := OKL_API.G_MISS_NUM;
980 end if;
981 if (l_vasv_rec.creation_date is null) then
982 l_vasv_rec.creation_date := OKL_API.G_MISS_DATE;
983 end if;
984 if (l_vasv_rec.last_updated_by is null) then
985 l_vasv_rec.last_updated_by := OKL_API.G_MISS_NUM;
986 end if;
987 if (l_vasv_rec.last_update_date is null) then
988 l_vasv_rec.last_update_date := OKL_API.G_MISS_DATE;
989 end if;
990
991 OKL_VAS_PVT.update_row(p_api_version,
992 p_init_msg_list,
993 x_return_status,
994 x_msg_count,
995 x_msg_data,
996 l_vasv_rec,
997 x_vasv_rec);
998
999 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1000 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1001 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1002 raise OKL_API.G_EXCEPTION_ERROR;
1003 End If;
1004
1005 validate_vp_associations_dates(x_return_status, x_vasv_rec);
1006
1007 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1008 l_return_status := x_return_status;
1009 RAISE OKL_API.G_EXCEPTION_ERROR;
1010 END IF;
1011
1012 validate_object_version(x_return_status, x_vasv_rec);
1013
1014 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1015 l_return_status := x_return_status;
1016 RAISE OKL_API.G_EXCEPTION_ERROR;
1017 END IF;
1018
1019 /* Manu 29-Jun-2005 Begin */
1020 IF (x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
1021 OKL_VENDOR_PROGRAM_PVT.passed_to_incomplete(p_api_version => p_api_version
1022 ,p_init_msg_list => p_init_msg_list
1023 ,x_return_status => x_return_status
1024 ,x_msg_count => x_msg_count
1025 ,x_msg_data => x_msg_data
1026 ,p_program_id => l_vasv_rec.chr_id
1027 );
1028 END IF;
1029 /* Manu 29-Jun-2005 END */
1030
1031 OKL_API.END_ACTIVITY (x_msg_count
1032 ,x_msg_data );
1033
1034 EXCEPTION
1035 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1036 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1037 (l_api_name,
1038 G_PKG_NAME,
1039 'OKL_API.G_RET_STS_ERROR',
1040 x_msg_count,
1041 x_msg_data,
1042 '_PVT');
1043 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1044 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1045 (l_api_name,
1046 G_PKG_NAME,
1047 'OKL_API.G_RET_STS_UNEXP_ERROR',
1048 x_msg_count,
1049 x_msg_data,
1050 '_PVT');
1051 WHEN OTHERS THEN
1052 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1053 (l_api_name,
1054 G_PKG_NAME,
1055 'OTHERS',
1056 x_msg_count,
1057 x_msg_data,
1058 '_PVT');
1059 END update_vp_associations;
1060
1061 PROCEDURE update_vp_associations(
1062 p_api_version IN NUMBER,
1063 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1064 x_return_status OUT NOCOPY VARCHAR2,
1065 x_msg_count OUT NOCOPY NUMBER,
1066 x_msg_data OUT NOCOPY VARCHAR2,
1067 p_vasv_tbl IN vasv_tbl_type,
1068 x_vasv_tbl OUT NOCOPY vasv_tbl_type
1069 ) IS
1070 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_VP_ASSOCIATIONS';
1071 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1072 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1073 i NUMBER;
1074
1075 BEGIN
1076
1077 If p_vasv_tbl.COUNT > 0 Then
1078 i := p_vasv_tbl.FIRST;
1079 LOOP
1080 -- call procedure in complex API for a record
1081 update_vp_associations(p_api_version,
1082 p_init_msg_list,
1083 x_return_status,
1084 x_msg_count,
1085 x_msg_data,
1086 p_vasv_tbl(i),
1087 x_vasv_tbl(i));
1088 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
1089 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
1090 l_overall_status := x_return_status;
1091 End If;
1092 End If;
1093
1094 EXIT WHEN (i = p_vasv_tbl.LAST);
1095 i := p_vasv_tbl.NEXT(i);
1096 END LOOP;
1097
1098 -- return overall status
1099 x_return_status := l_overall_status;
1100 End If;
1101
1102 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1103 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1104 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1105 raise OKL_API.G_EXCEPTION_ERROR;
1106 End If;
1107
1108 EXCEPTION
1109 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1110 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1111 (l_api_name,
1112 G_PKG_NAME,
1113 'OKL_API.G_RET_STS_ERROR',
1114 x_msg_count,
1115 x_msg_data,
1116 '_PVT');
1117 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1118 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1119 (l_api_name,
1120 G_PKG_NAME,
1121 'OKL_API.G_RET_STS_UNEXP_ERROR',
1122 x_msg_count,
1123 x_msg_data,
1124 '_PVT');
1125 WHEN OTHERS THEN
1126 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1127 (l_api_name,
1128 G_PKG_NAME,
1129 'OTHERS',
1130 x_msg_count,
1131 x_msg_data,
1132 '_PVT');
1133 END update_vp_associations;
1134
1135 PROCEDURE validate_vp_associations(
1136 p_api_version IN NUMBER,
1137 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1138 x_return_status OUT NOCOPY VARCHAR2,
1139 x_msg_count OUT NOCOPY NUMBER,
1140 x_msg_data OUT NOCOPY VARCHAR2,
1141 p_vasv_rec IN vasv_rec_type
1142 ) IS
1143 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_VP_ASSOCIATIONS';
1144 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1145
1146 --
1147 BEGIN
1148 x_return_status := l_return_status;
1149 -- Call start_activity to create savepoint, check compatibility
1150 -- and initialize message list
1151 l_return_status := OKL_API.START_ACTIVITY (l_api_name
1152 ,p_init_msg_list
1153 ,'_PVT'
1154 ,x_return_status);
1155 -- Check if activity started successfully
1156 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1157 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1158 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1159 RAISE OKL_API.G_EXCEPTION_ERROR;
1160 END IF;
1161
1162 -- Validate the record before column level validation
1163 validate_vp_associations_dates(x_return_status, p_vasv_rec);
1164
1165 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1166 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1167 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1168 raise OKL_API.G_EXCEPTION_ERROR;
1169 End If;
1170
1171 -- Validate LA unique combination --
1172
1173
1174
1175 OKL_VAS_PVT.validate_row(p_api_version,
1176 p_init_msg_list,
1177 x_return_status,
1178 x_msg_count,
1179 x_msg_data,
1180 p_vasv_rec);
1181
1182 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1183 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1184 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1185 raise OKL_API.G_EXCEPTION_ERROR;
1186 End If;
1187
1188 OKL_API.END_ACTIVITY (x_msg_count
1189 ,x_msg_data );
1190
1191 EXCEPTION
1192 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1193 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1194 (l_api_name,
1195 G_PKG_NAME,
1196 'OKL_API.G_RET_STS_ERROR',
1197 x_msg_count,
1198 x_msg_data,
1199 '_PVT');
1200 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1201 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1202 (l_api_name,
1203 G_PKG_NAME,
1204 'OKL_API.G_RET_STS_UNEXP_ERROR',
1205 x_msg_count,
1206 x_msg_data,
1207 '_PVT');
1208 WHEN OTHERS THEN
1209 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1210 (l_api_name,
1211 G_PKG_NAME,
1212 'OTHERS',
1213 x_msg_count,
1214 x_msg_data,
1215 '_PVT');
1216 END validate_vp_associations;
1217
1218 PROCEDURE validate_vp_associations(
1219 p_api_version IN NUMBER,
1220 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1221 x_return_status OUT NOCOPY VARCHAR2,
1222 x_msg_count OUT NOCOPY NUMBER,
1223 x_msg_data OUT NOCOPY VARCHAR2,
1224 p_vasv_tbl IN vasv_tbl_type
1225 ) IS
1226 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_VP_ASSOCIATIONS';
1227 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1228 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1229 i NUMBER;
1230 BEGIN
1231
1232 If p_vasv_tbl.COUNT > 0 Then
1233 i := p_vasv_tbl.FIRST;
1234 LOOP
1235 -- call procedure in complex API for a record
1236 validate_vp_associations(p_api_version,
1237 p_init_msg_list,
1238 x_return_status,
1239 x_msg_count,
1240 x_msg_data,
1241 p_vasv_tbl(i));
1242 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
1243 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
1244 l_overall_status := x_return_status;
1245 End If;
1246 End If;
1247
1248 EXIT WHEN (i = p_vasv_tbl.LAST);
1249 i := p_vasv_tbl.NEXT(i);
1250 END LOOP;
1251
1252 -- return overall status
1253 x_return_status := l_overall_status;
1254 End If;
1255
1256 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1257 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1258 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1259 raise OKL_API.G_EXCEPTION_ERROR;
1260 End If;
1261
1262 EXCEPTION
1263 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1264 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1265 (l_api_name,
1266 G_PKG_NAME,
1267 'OKL_API.G_RET_STS_ERROR',
1268 x_msg_count,
1269 x_msg_data,
1270 '_PVT');
1271 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1272 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1273 (l_api_name,
1274 G_PKG_NAME,
1275 'OKL_API.G_RET_STS_UNEXP_ERROR',
1276 x_msg_count,
1277 x_msg_data,
1278 '_PVT');
1279 WHEN OTHERS THEN
1280 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1281 (l_api_name,
1282 G_PKG_NAME,
1283 'OTHERS',
1284 x_msg_count,
1285 x_msg_data,
1286 '_PVT');
1287 END validate_vp_associations;
1288
1289
1290 PROCEDURE copy_vp_associations(
1291 p_api_version IN NUMBER,
1292 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1293 x_return_status OUT NOCOPY VARCHAR2,
1294 x_msg_count OUT NOCOPY NUMBER,
1295 x_msg_data OUT NOCOPY VARCHAR2,
1296 p_vasv_rec IN vasv_rec_type,
1297 x_vasv_rec OUT NOCOPY vasv_rec_type
1298 ) IS
1299 l_api_name CONSTANT VARCHAR2(30) := 'COPY_VP_ASSOCIATIONS';
1300 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1301
1302 --get the vp to be copied--
1303 CURSOR copy_vp_assoc_csr (p_id NUMBER) IS
1304 SELECT start_date,
1305 end_date,
1306 description,
1307 assoc_object_type_code,
1308 assoc_object_id,
1309 assoc_object_version
1310 FROM okl_vp_associations
1311 WHERE id = p_id;
1312
1313 l_vasv_rec vasv_rec_type;
1314 BEGIN
1315 x_return_status := l_return_status;
1316 -- Call start_activity to create savepoint, check compatibility
1317 -- and initialize message list
1318 l_return_status := OKL_API.START_ACTIVITY (l_api_name
1319 ,p_init_msg_list
1320 ,'_PVT'
1321 ,x_return_status);
1322 -- Check if activity started successfully
1323 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1324 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1325 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1326 RAISE OKL_API.G_EXCEPTION_ERROR;
1327 END IF;
1328
1329 OPEN copy_vp_assoc_csr (p_vasv_rec.id);
1330 FETCH copy_vp_assoc_csr INTO l_vasv_rec.start_date,
1331 l_vasv_rec.end_date,
1332 l_vasv_rec.description,
1333 l_vasv_rec.assoc_object_type_code,
1334 l_vasv_rec.assoc_object_id,
1335 l_vasv_rec.assoc_object_version;
1336 CLOSE copy_vp_assoc_csr;
1337
1338 l_vasv_rec.chr_id := p_vasv_rec.chr_id;
1339 OKL_VAS_PVT.insert_row(p_api_version,
1340 p_init_msg_list,
1341 x_return_status,
1342 x_msg_count,
1343 x_msg_data,
1344 l_vasv_rec,
1345 x_vasv_rec);
1346
1347 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1348 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1349 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1350 raise OKL_API.G_EXCEPTION_ERROR;
1351 End If;
1352
1353 OKL_API.END_ACTIVITY (x_msg_count
1354 ,x_msg_data );
1355
1356 EXCEPTION
1357 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1358 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1359 (l_api_name,
1360 G_PKG_NAME,
1361 'OKL_API.G_RET_STS_ERROR',
1362 x_msg_count,
1363 x_msg_data,
1364 '_PVT');
1365 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1366 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1367 (l_api_name,
1368 G_PKG_NAME,
1369 'OKL_API.G_RET_STS_UNEXP_ERROR',
1370 x_msg_count,
1371 x_msg_data,
1372 '_PVT');
1373 WHEN OTHERS THEN
1374 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1375 (l_api_name,
1376 G_PKG_NAME,
1377 'OTHERS',
1378 x_msg_count,
1379 x_msg_data,
1380 '_PVT');
1381 END copy_vp_associations;
1382
1383 -- Copy associations for normal agreement copy or crs (of type 'Agreement') copy--
1384 PROCEDURE copy_vp_associations(
1385 p_api_version IN NUMBER,
1386 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1387 x_return_status OUT NOCOPY VARCHAR2,
1388 x_msg_count OUT NOCOPY NUMBER,
1389 x_msg_data OUT NOCOPY VARCHAR2,
1390 p_vasv_tbl IN vasv_tbl_type,
1391 x_vasv_tbl OUT NOCOPY vasv_tbl_type
1392 ) IS
1393 l_api_name CONSTANT VARCHAR2(30) := 'COPY_VP_ASSOCIATIONS';
1394 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1395 l_overall_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1396 i NUMBER;
1397 BEGIN
1398
1399 If p_vasv_tbl.COUNT > 0 Then
1400 i := p_vasv_tbl.FIRST;
1401 LOOP
1402 -- call procedure in complex API for a record
1403 copy_vp_associations(p_api_version,
1404 p_init_msg_list,
1405 x_return_status,
1406 x_msg_count,
1407 x_msg_data,
1408 p_vasv_tbl(i),
1409 x_vasv_tbl(i));
1410 If x_return_status <> OKL_API.G_RET_STS_SUCCESS Then
1411 If l_overall_status <> OKL_API.G_RET_STS_UNEXP_ERROR Then
1412 l_overall_status := x_return_status;
1413 End If;
1414 End If;
1415
1416 EXIT WHEN (i = p_vasv_tbl.LAST);
1417 i := p_vasv_tbl.NEXT(i);
1418 END LOOP;
1419
1420 -- return overall status
1421 x_return_status := l_overall_status;
1422 End If;
1423
1424 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1425 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1426 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1427 raise OKL_API.G_EXCEPTION_ERROR;
1428 End If;
1429
1430 EXCEPTION
1431 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1432 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1433 (l_api_name,
1434 G_PKG_NAME,
1435 'OKL_API.G_RET_STS_ERROR',
1436 x_msg_count,
1437 x_msg_data,
1438 '_PVT');
1439 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1440 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1441 (l_api_name,
1442 G_PKG_NAME,
1443 'OKL_API.G_RET_STS_UNEXP_ERROR',
1444 x_msg_count,
1445 x_msg_data,
1446 '_PVT');
1447 WHEN OTHERS THEN
1448 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1449 (l_api_name,
1450 G_PKG_NAME,
1451 'OTHERS',
1452 x_msg_count,
1453 x_msg_data,
1454 '_PVT');
1455 END copy_vp_associations;
1456
1457 -- Copy associations from crs call --crs of type 'Associations'--
1458 PROCEDURE copy_crs_associations(
1459 p_api_version IN NUMBER,
1460 p_init_msg_list IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
1461 x_return_status OUT NOCOPY VARCHAR2,
1462 x_msg_count OUT NOCOPY NUMBER,
1463 x_msg_data OUT NOCOPY VARCHAR2,
1464 p_chr_id IN NUMBER,
1465 p_crs_id IN NUMBER
1466 ) IS
1467 l_api_name CONSTANT VARCHAR2(30) := 'COPY_CRS_ASSOCIATIONS';
1468 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1469
1470 --get the vp to be copied--
1471 CURSOR copy_vp_assoc_csr (p_chr_id NUMBER) IS
1472 SELECT start_date,
1473 end_date,
1474 description,
1475 assoc_object_type_code,
1476 assoc_object_id,
1477 assoc_object_version
1478 FROM okl_vp_associations
1479 WHERE chr_id = p_chr_id
1480 AND crs_id IS NULL;
1481
1482 l_vasv_tbl vasv_tbl_type;
1483 xl_vasv_tbl vasv_tbl_type;
1484 l_vasv_rec vasv_rec_type;
1485 i NUMBER;
1486 BEGIN
1487 x_return_status := l_return_status;
1488 -- Call start_activity to create savepoint, check compatibility
1489 -- and initialize message list
1490 l_return_status := OKL_API.START_ACTIVITY (l_api_name
1491 ,p_init_msg_list
1492 ,'_PVT'
1493 ,x_return_status);
1494 -- Check if activity started successfully
1495 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1496 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1497 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1498 RAISE OKL_API.G_EXCEPTION_ERROR;
1499 END IF;
1500
1501 OPEN copy_vp_assoc_csr (p_chr_id);
1502 LOOP
1503 FETCH copy_vp_assoc_csr INTO l_vasv_rec.start_date,
1504 l_vasv_rec.end_date,
1505 l_vasv_rec.description,
1506 l_vasv_rec.assoc_object_type_code,
1507 l_vasv_rec.assoc_object_id,
1508 l_vasv_rec.assoc_object_version;
1509 EXIT WHEN copy_vp_assoc_csr%NOTFOUND;
1510 i := copy_vp_assoc_csr%RowCount;
1511 l_vasv_rec.crs_id := p_crs_id;
1512 l_vasv_tbl(i) := l_vasv_rec;
1513 END LOOP;
1514 CLOSE copy_vp_assoc_csr;
1515
1516 IF (l_vasv_tbl.count <> 0) THEN
1517 OKL_VAS_PVT.insert_row(
1518 p_api_version => p_api_version,
1519 p_init_msg_list => p_init_msg_list,
1520 x_return_status => x_return_status,
1521 x_msg_count => x_msg_count,
1522 x_msg_data => x_msg_data,
1523 p_vasv_tbl => l_vasv_tbl,
1524 x_vasv_tbl => xl_vasv_tbl
1525 );
1526 END IF;
1527
1528 If x_return_status = OKL_API.G_RET_STS_UNEXP_ERROR Then
1529 raise OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1530 Elsif x_return_status = OKL_API.G_RET_STS_ERROR Then
1531 raise OKL_API.G_EXCEPTION_ERROR;
1532 End If;
1533
1534 OKL_API.END_ACTIVITY (x_msg_count
1535 ,x_msg_data );
1536
1537 EXCEPTION
1538 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1539 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1540 (l_api_name,
1541 G_PKG_NAME,
1542 'OKL_API.G_RET_STS_ERROR',
1543 x_msg_count,
1544 x_msg_data,
1545 '_PVT');
1546 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1547 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1548 (l_api_name,
1549 G_PKG_NAME,
1550 'OKL_API.G_RET_STS_UNEXP_ERROR',
1551 x_msg_count,
1552 x_msg_data,
1553 '_PVT');
1554 WHEN OTHERS THEN
1555 x_return_status :=OKL_API.HANDLE_EXCEPTIONS
1556 (l_api_name,
1557 G_PKG_NAME,
1558 'OTHERS',
1559 x_msg_count,
1560 x_msg_data,
1561 '_PVT');
1562 END copy_crs_associations;
1563
1564
1565
1566 END OKL_VP_ASSOCIATIONS_PVT;