[Home] [Help]
PACKAGE BODY: APPS.OKL_TBO_PVT
Source
1 PACKAGE BODY OKL_TBO_PVT AS
2 /* $Header: OKLSTBOB.pls 120.1 2006/07/11 10:32:00 dkagrawa noship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6 PROCEDURE load_error_tbl (
7 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9
10 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
12 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
13 BEGIN
14 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
15 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
16 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
17 -- automatically increments the index by 1, (making it 2), however, when the GET function
18 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
19 -- message 2. To circumvent this problem, check the amount of messages and compensate.
20 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
21 -- will only update the index variable when 1 and only 1 message is on the stack.
22 IF (last_msg_idx = 1) THEN
23 l_msg_idx := FND_MSG_PUB.G_FIRST;
24 END IF;
25 LOOP
26 fnd_msg_pub.get(
27 p_msg_index => l_msg_idx,
28 p_encoded => fnd_api.g_false,
29 p_data => px_error_rec.msg_data,
30 p_msg_index_out => px_error_rec.msg_count);
31 px_error_tbl(j) := px_error_rec;
32 j := j + 1;
33 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
34 END LOOP;
35 END load_error_tbl;
36 ---------------------------------------------------------------------------
37 -- FUNCTION find_highest_exception
38 ---------------------------------------------------------------------------
39 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
40 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
41 FUNCTION find_highest_exception(
42 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
43 ) RETURN VARCHAR2 IS
44 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
45 i INTEGER := 1;
46 BEGIN
47 IF (p_error_tbl.COUNT > 0) THEN
48 i := p_error_tbl.FIRST;
49 LOOP
50 IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
51 IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52 l_return_status := p_error_tbl(i).error_type;
53 END IF;
54 END IF;
55 EXIT WHEN (i = p_error_tbl.LAST);
56 i := p_error_tbl.NEXT(i);
57 END LOOP;
58 END IF;
59 RETURN(l_return_status);
60 END find_highest_exception;
61 ---------------------------------------------------------------------------
62 -- FUNCTION get_seq_id
63 ---------------------------------------------------------------------------
64 FUNCTION get_seq_id RETURN NUMBER IS
65 BEGIN
66 RETURN(okc_p_util.raw_to_number(sys_guid()));
67 END get_seq_id;
68
69 ---------------------------------------------------------------------------
70 -- PROCEDURE qc
71 ---------------------------------------------------------------------------
72 PROCEDURE qc IS
73 BEGIN
74 null;
75 END qc;
76
77 ---------------------------------------------------------------------------
78 -- PROCEDURE change_version
79 ---------------------------------------------------------------------------
80 PROCEDURE change_version IS
81 BEGIN
82 null;
83 END change_version;
84
85 ---------------------------------------------------------------------------
86 -- PROCEDURE api_copy
87 ---------------------------------------------------------------------------
88 PROCEDURE api_copy IS
89 BEGIN
90 null;
91 END api_copy;
92
93 ---------------------------------------------------------------------------
94 -- FUNCTION get_rec for: OKL_TAX_BASIS_OVERRIDE_V
95 ---------------------------------------------------------------------------
96 FUNCTION get_rec (
97 p_tbov_rec IN tbov_rec_type,
98 x_no_data_found OUT NOCOPY BOOLEAN
99 ) RETURN tbov_rec_type IS
100 CURSOR okl_tbov_pk_csr (p_org_id IN NUMBER,
101 p_try_id IN NUMBER) IS
102 SELECT
103 TRY_ID,
104 ORG_ID,
105 FMA_ID,
106 PROGRAM_ID,
107 REQUEST_ID,
108 PROGRAM_APPLICATION_ID,
109 PROGRAM_UPDATE_DATE,
110 ATTRIBUTE_CATEGORY,
111 ATTRIBUTE1,
112 ATTRIBUTE2,
113 ATTRIBUTE3,
114 ATTRIBUTE4,
115 ATTRIBUTE5,
116 ATTRIBUTE6,
117 ATTRIBUTE7,
118 ATTRIBUTE8,
119 ATTRIBUTE9,
120 ATTRIBUTE10,
121 ATTRIBUTE11,
122 ATTRIBUTE12,
123 ATTRIBUTE13,
124 ATTRIBUTE14,
125 ATTRIBUTE15,
126 CREATED_BY,
127 CREATION_DATE,
128 LAST_UPDATED_BY,
129 LAST_UPDATE_DATE,
130 LAST_UPDATE_LOGIN,
131 OBJECT_VERSION_NUMBER
132 FROM OKL_TAX_BASIS_OVERRIDE
133 WHERE OKL_TAX_BASIS_OVERRIDE.org_id = p_org_id
134 AND OKL_TAX_BASIS_OVERRIDE.try_id = p_try_id;
135 l_okl_tbov_pk okl_tbov_pk_csr%ROWTYPE;
136 l_tbov_rec tbov_rec_type;
137 BEGIN
138 x_no_data_found := TRUE;
139 -- Get current database values
140 OPEN okl_tbov_pk_csr (p_tbov_rec.org_id,
141 p_tbov_rec.try_id);
142 FETCH okl_tbov_pk_csr INTO
143 l_tbov_rec.try_id,
144 l_tbov_rec.org_id,
145 l_tbov_rec.fma_id,
146 l_tbov_rec.program_id,
147 l_tbov_rec.request_id,
148 l_tbov_rec.program_application_id,
149 l_tbov_rec.program_update_date,
150 l_tbov_rec.attribute_category,
151 l_tbov_rec.attribute1,
152 l_tbov_rec.attribute2,
153 l_tbov_rec.attribute3,
154 l_tbov_rec.attribute4,
155 l_tbov_rec.attribute5,
156 l_tbov_rec.attribute6,
157 l_tbov_rec.attribute7,
158 l_tbov_rec.attribute8,
159 l_tbov_rec.attribute9,
160 l_tbov_rec.attribute10,
161 l_tbov_rec.attribute11,
162 l_tbov_rec.attribute12,
163 l_tbov_rec.attribute13,
164 l_tbov_rec.attribute14,
165 l_tbov_rec.attribute15,
166 l_tbov_rec.created_by,
167 l_tbov_rec.creation_date,
168 l_tbov_rec.last_updated_by,
169 l_tbov_rec.last_update_date,
170 l_tbov_rec.last_update_login,
171 l_tbov_rec.object_version_number;
172 x_no_data_found := okl_tbov_pk_csr%NOTFOUND;
173 CLOSE okl_tbov_pk_csr;
174 RETURN(l_tbov_rec);
175 END get_rec;
176
177 ------------------------------------------------------------------
178 -- This version of get_rec sets error messages if no data found --
179 ------------------------------------------------------------------
180 FUNCTION get_rec (
181 p_tbov_rec IN tbov_rec_type,
182 x_return_status OUT NOCOPY VARCHAR2
183 ) RETURN tbov_rec_type IS
184 l_tbov_rec tbov_rec_type;
185 l_row_notfound BOOLEAN := TRUE;
186 BEGIN
187 x_return_status := OKL_API.G_RET_STS_SUCCESS;
188 l_tbov_rec := get_rec(p_tbov_rec, l_row_notfound);
189 IF (l_row_notfound) THEN
190 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ORG_ID');
191 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'TRY_ID');
192 x_return_status := OKL_API.G_RET_STS_ERROR;
193 END IF;
194 RETURN(l_tbov_rec);
195 END get_rec;
196 -----------------------------------------------------------
197 -- So we don't have to pass an "l_row_notfound" variable --
198 -----------------------------------------------------------
199 FUNCTION get_rec (
200 p_tbov_rec IN tbov_rec_type
201 ) RETURN tbov_rec_type IS
202 l_row_not_found BOOLEAN := TRUE;
203 BEGIN
204 RETURN(get_rec(p_tbov_rec, l_row_not_found));
205 END get_rec;
206 ---------------------------------------------------------------------------
207 -- FUNCTION get_rec for: OKL_TAX_BASIS_OVERRIDE
208 ---------------------------------------------------------------------------
209 FUNCTION get_rec (
210 p_tbo_rec IN tbo_rec_type,
211 x_no_data_found OUT NOCOPY BOOLEAN
212 ) RETURN tbo_rec_type IS
213 CURSOR okl_tbo_pk_csr (p_org_id IN NUMBER,
214 p_try_id IN NUMBER) IS
215 SELECT
216 TRY_ID,
217 ORG_ID,
218 FMA_ID,
219 PROGRAM_ID,
220 REQUEST_ID,
221 PROGRAM_APPLICATION_ID,
222 PROGRAM_UPDATE_DATE,
223 ATTRIBUTE_CATEGORY,
224 ATTRIBUTE1,
225 ATTRIBUTE2,
226 ATTRIBUTE3,
227 ATTRIBUTE4,
228 ATTRIBUTE5,
229 ATTRIBUTE6,
230 ATTRIBUTE7,
231 ATTRIBUTE8,
232 ATTRIBUTE9,
233 ATTRIBUTE10,
234 ATTRIBUTE11,
235 ATTRIBUTE12,
236 ATTRIBUTE13,
237 ATTRIBUTE14,
238 ATTRIBUTE15,
239 CREATED_BY,
240 CREATION_DATE,
241 LAST_UPDATED_BY,
242 LAST_UPDATE_DATE,
243 LAST_UPDATE_LOGIN,
244 OBJECT_VERSION_NUMBER
245 FROM Okl_Tax_Basis_Override
246 WHERE okl_tax_basis_override.org_id = p_org_id
247 AND okl_tax_basis_override.try_id = p_try_id;
248 l_okl_tbo_pk okl_tbo_pk_csr%ROWTYPE;
249 l_tbo_rec tbo_rec_type;
250 BEGIN
251 x_no_data_found := TRUE;
252 -- Get current database values
253 OPEN okl_tbo_pk_csr (p_tbo_rec.org_id,
254 p_tbo_rec.try_id);
255 FETCH okl_tbo_pk_csr INTO
256 l_tbo_rec.try_id,
257 l_tbo_rec.org_id,
258 l_tbo_rec.fma_id,
259 l_tbo_rec.program_id,
260 l_tbo_rec.request_id,
261 l_tbo_rec.program_application_id,
262 l_tbo_rec.program_update_date,
263 l_tbo_rec.attribute_category,
264 l_tbo_rec.attribute1,
265 l_tbo_rec.attribute2,
266 l_tbo_rec.attribute3,
267 l_tbo_rec.attribute4,
268 l_tbo_rec.attribute5,
269 l_tbo_rec.attribute6,
270 l_tbo_rec.attribute7,
271 l_tbo_rec.attribute8,
272 l_tbo_rec.attribute9,
273 l_tbo_rec.attribute10,
274 l_tbo_rec.attribute11,
275 l_tbo_rec.attribute12,
276 l_tbo_rec.attribute13,
277 l_tbo_rec.attribute14,
278 l_tbo_rec.attribute15,
279 l_tbo_rec.created_by,
280 l_tbo_rec.creation_date,
281 l_tbo_rec.last_updated_by,
282 l_tbo_rec.last_update_date,
283 l_tbo_rec.last_update_login,
284 l_tbo_rec.object_version_number;
285 x_no_data_found := okl_tbo_pk_csr%NOTFOUND;
286 CLOSE okl_tbo_pk_csr;
287 RETURN(l_tbo_rec);
288 END get_rec;
289
290 ------------------------------------------------------------------
291 -- This version of get_rec sets error messages if no data found --
292 ------------------------------------------------------------------
293 FUNCTION get_rec (
294 p_tbo_rec IN tbo_rec_type,
295 x_return_status OUT NOCOPY VARCHAR2
296 ) RETURN tbo_rec_type IS
297 l_tbo_rec tbo_rec_type;
298 l_row_notfound BOOLEAN := TRUE;
299 BEGIN
300 x_return_status := OKL_API.G_RET_STS_SUCCESS;
301 l_tbo_rec := get_rec(p_tbo_rec, l_row_notfound);
302 IF (l_row_notfound) THEN
303 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ORG_ID');
304 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'TRY_ID');
305 x_return_status := OKL_API.G_RET_STS_ERROR;
306 END IF;
307 RETURN(l_tbo_rec);
308 END get_rec;
309 -----------------------------------------------------------
310 -- So we don't have to pass an "l_row_notfound" variable --
311 -----------------------------------------------------------
312 FUNCTION get_rec (
313 p_tbo_rec IN tbo_rec_type
314 ) RETURN tbo_rec_type IS
315 l_row_not_found BOOLEAN := TRUE;
316 BEGIN
317 RETURN(get_rec(p_tbo_rec, l_row_not_found));
318 END get_rec;
319 ---------------------------------------------------------------------------
320 -- FUNCTION null_out_defaults for: OKL_TAX_BASIS_OVERRIDE_V
321 ---------------------------------------------------------------------------
322 FUNCTION null_out_defaults (
323 p_tbov_rec IN tbov_rec_type
324 ) RETURN tbov_rec_type IS
325 l_tbov_rec tbov_rec_type := p_tbov_rec;
326 BEGIN
327 IF (l_tbov_rec.try_id = OKL_API.G_MISS_NUM ) THEN
328 l_tbov_rec.try_id := NULL;
329 END IF;
330 IF (l_tbov_rec.org_id = OKL_API.G_MISS_NUM ) THEN
331 l_tbov_rec.org_id := NULL;
332 END IF;
333 IF (l_tbov_rec.fma_id = OKL_API.G_MISS_NUM ) THEN
334 l_tbov_rec.fma_id := NULL;
335 END IF;
336 IF (l_tbov_rec.program_id = OKL_API.G_MISS_NUM ) THEN
337 l_tbov_rec.program_id := NULL;
338 END IF;
339 IF (l_tbov_rec.request_id = OKL_API.G_MISS_NUM ) THEN
340 l_tbov_rec.request_id := NULL;
341 END IF;
342 IF (l_tbov_rec.program_application_id = OKL_API.G_MISS_NUM ) THEN
343 l_tbov_rec.program_application_id := NULL;
344 END IF;
345 IF (l_tbov_rec.program_update_date = OKL_API.G_MISS_DATE ) THEN
346 l_tbov_rec.program_update_date := NULL;
347 END IF;
348 IF (l_tbov_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
349 l_tbov_rec.attribute_category := NULL;
350 END IF;
351 IF (l_tbov_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
352 l_tbov_rec.attribute1 := NULL;
353 END IF;
354 IF (l_tbov_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
355 l_tbov_rec.attribute2 := NULL;
356 END IF;
357 IF (l_tbov_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
358 l_tbov_rec.attribute3 := NULL;
359 END IF;
360 IF (l_tbov_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
361 l_tbov_rec.attribute4 := NULL;
362 END IF;
363 IF (l_tbov_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
364 l_tbov_rec.attribute5 := NULL;
365 END IF;
366 IF (l_tbov_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
367 l_tbov_rec.attribute6 := NULL;
368 END IF;
369 IF (l_tbov_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
370 l_tbov_rec.attribute7 := NULL;
371 END IF;
372 IF (l_tbov_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
373 l_tbov_rec.attribute8 := NULL;
374 END IF;
375 IF (l_tbov_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
376 l_tbov_rec.attribute9 := NULL;
377 END IF;
378 IF (l_tbov_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
379 l_tbov_rec.attribute10 := NULL;
380 END IF;
381 IF (l_tbov_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
382 l_tbov_rec.attribute11 := NULL;
383 END IF;
384 IF (l_tbov_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
385 l_tbov_rec.attribute12 := NULL;
386 END IF;
387 IF (l_tbov_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
388 l_tbov_rec.attribute13 := NULL;
389 END IF;
390 IF (l_tbov_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
391 l_tbov_rec.attribute14 := NULL;
392 END IF;
393 IF (l_tbov_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
394 l_tbov_rec.attribute15 := NULL;
395 END IF;
396 IF (l_tbov_rec.created_by = OKL_API.G_MISS_NUM ) THEN
397 l_tbov_rec.created_by := NULL;
398 END IF;
399 IF (l_tbov_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
400 l_tbov_rec.creation_date := NULL;
401 END IF;
402 IF (l_tbov_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
403 l_tbov_rec.last_updated_by := NULL;
404 END IF;
405 IF (l_tbov_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
406 l_tbov_rec.last_update_date := NULL;
407 END IF;
408 IF (l_tbov_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
409 l_tbov_rec.last_update_login := NULL;
410 END IF;
411 IF (l_tbov_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
412 l_tbov_rec.object_version_number := NULL;
413 END IF;
414 RETURN(l_tbov_rec);
415 END null_out_defaults;
416 -------------------------------------
417 -- Validate_Attributes for: TRY_ID --
418 -------------------------------------
419 PROCEDURE validate_try_id(
420 x_return_status OUT NOCOPY VARCHAR2,
421 p_tbov_rec IN tbov_rec_type) IS
422 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
423 l_dummy_var VARCHAR2(1) := '?' ;
424
425 CURSOR okl_tbov_try_id_fk_csr (p_id IN NUMBER) IS
426 SELECT 'x'
427 FROM Okl_Trx_Types_B
428 WHERE okl_trx_types_b.id = p_id;
429 BEGIN
430
431 IF (p_tbov_rec.try_id = OKL_API.G_MISS_NUM OR p_tbov_rec.try_id IS NULL)
432 THEN
433 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'try_id');
434 l_return_status := OKL_API.G_RET_STS_ERROR;
435 ELSE
436 OPEN okl_tbov_try_id_fk_csr(p_tbov_rec.try_id) ;
437 FETCH okl_tbov_try_id_fk_csr into l_dummy_var ;
438 CLOSE okl_tbov_try_id_fk_csr ;
439 -- still set to default means data was not found
440 IF ( l_dummy_var = '?' ) THEN
441 OKC_API.set_message(g_app_name,
442 g_no_parent_record,
443 g_col_name_token,
444 'try_id',
445 g_child_table_token ,
446 'OKL_TAX_BASIS_OVERRIDE',
447 g_parent_table_token ,
448 'OKL_TRX_TYPES_B');
449 l_return_status := OKC_API.G_RET_STS_ERROR;
450
451 END IF;
452 END IF;
453 x_return_status := l_return_status;
454 EXCEPTION
455
456 WHEN OTHERS THEN
457 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
458 ,p_msg_name => G_UNEXPECTED_ERROR
459 ,p_token1 => G_SQLCODE_TOKEN
460 ,p_token1_value => SQLCODE
461 ,p_token2 => G_SQLERRM_TOKEN
462 ,p_token2_value => SQLERRM);
463 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
464 END validate_try_id;
465 -------------------------------------
466 -- Validate_Attributes for: ORG_ID --
467 -------------------------------------
468 PROCEDURE validate_org_id(
469 x_return_status OUT NOCOPY VARCHAR2,
470 p_tbov_rec IN tbov_rec_type) IS
471 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
472
473
474 BEGIN
475
476 IF (p_tbov_rec.org_id = OKL_API.G_MISS_NUM OR p_tbov_rec.org_id IS NULL)
477 THEN
478 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'org_id');
479 l_return_status := OKL_API.G_RET_STS_ERROR;
480
481 END IF;
482 x_return_status := l_return_status;
483 EXCEPTION
484
485 WHEN OTHERS THEN
486 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
487 ,p_msg_name => G_UNEXPECTED_ERROR
488 ,p_token1 => G_SQLCODE_TOKEN
489 ,p_token1_value => SQLCODE
490 ,p_token2 => G_SQLERRM_TOKEN
491 ,p_token2_value => SQLERRM);
492 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
493 END validate_org_id;
494 -------------------------------------
495 -- Validate_Attributes for: FMA_ID --
496 -------------------------------------
497 PROCEDURE validate_fma_id(
498 x_return_status OUT NOCOPY VARCHAR2,
499 p_tbov_rec IN tbov_rec_type) IS
500 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
501 l_dummy_var VARCHAR2(1) := '?' ;
502
503 CURSOR okl_tbov_fma_id_fk_csr (p_id IN NUMBER) IS
504 SELECT 'x'
505 FROM Okl_Formulae_B
506 WHERE okl_formulae_b.id = p_id;
507
508 BEGIN
509
510 IF (p_tbov_rec.fma_id <> OKL_API.G_MISS_NUM AND p_tbov_rec.fma_id IS NOT NULL)
511 THEN
512 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'fma_id');
513 --l_return_status := OKL_API.G_RET_STS_ERROR;
514 OPEN okl_tbov_fma_id_fk_csr(p_tbov_rec.fma_id) ;
515 FETCH okl_tbov_fma_id_fk_csr into l_dummy_var ;
516 CLOSE okl_tbov_fma_id_fk_csr ;
517 -- still set to default means data was not found
518 IF ( l_dummy_var = '?' ) THEN
519 OKC_API.set_message(g_app_name,
520 g_no_parent_record,
521 g_col_name_token,
522 'fma_id',
523 g_child_table_token ,
524 'OKL_TAX_BASIS_OVERRIDE',
525 g_parent_table_token ,
526 'OKL_FORMULAE_B');
527 l_return_status := OKC_API.G_RET_STS_ERROR;
528
529 END IF;
530 END IF;
531 x_return_status := l_return_status;
532 EXCEPTION
533
534 WHEN OTHERS THEN
535 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
536 ,p_msg_name => G_UNEXPECTED_ERROR
537 ,p_token1 => G_SQLCODE_TOKEN
538 ,p_token1_value => SQLCODE
539 ,p_token2 => G_SQLERRM_TOKEN
540 ,p_token2_value => SQLERRM);
541 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
542 END validate_fma_id;
543 ---------------------------------------------------------------------------
544 -- FUNCTION Validate_Attributes
545 ---------------------------------------------------------------------------
546 ------------------------------------------------------
547 -- Validate_Attributes for:OKL_TAX_BASIS_OVERRIDE_V --
548 ------------------------------------------------------
549 FUNCTION Validate_Attributes (
550 p_tbov_rec IN tbov_rec_type
551 ) RETURN VARCHAR2 IS
552 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
553 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
554 BEGIN
555 -----------------------------
556 -- Column Level Validation --
557 -----------------------------
558 -- ***
559 -- try_id
560 -- ***
561 validate_try_id(l_return_status, p_tbov_rec);
562 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
563 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
564 x_return_status := l_return_status;
565 RAISE G_EXCEPTION_HALT_VALIDATION;
566 ELSE
567 x_return_status := l_return_status;
568 END IF;
569 END IF;
570
571 -- ***
572 -- org_id
573 -- ***
574 validate_org_id(l_return_status, p_tbov_rec);
575 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
576 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
577 x_return_status := l_return_status;
578 RAISE G_EXCEPTION_HALT_VALIDATION;
582 END IF;
579 ELSE
580 x_return_status := l_return_status;
581 END IF;
583
584 -- ***
585 -- fma_id
586 -- ***
587 validate_fma_id(l_return_status, p_tbov_rec);
588 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
589 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
590 x_return_status := l_return_status;
591 RAISE G_EXCEPTION_HALT_VALIDATION;
592 ELSE
593 x_return_status := l_return_status;
594 END IF;
595 END IF;
596
597 RETURN(x_return_status);
598 EXCEPTION
599 WHEN G_EXCEPTION_HALT_VALIDATION THEN
600 RETURN(x_return_status);
601 WHEN OTHERS THEN
602 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
603 ,p_msg_name => G_UNEXPECTED_ERROR
604 ,p_token1 => G_SQLCODE_TOKEN
605 ,p_token1_value => SQLCODE
606 ,p_token2 => G_SQLERRM_TOKEN
607 ,p_token2_value => SQLERRM);
608 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
609 RETURN(l_return_status);
610 END Validate_Attributes;
611 ---------------------------------------------------------------------------
612 -- PROCEDURE Validate_Record
613 ---------------------------------------------------------------------------
614 /*--------------------------------------------------
615 -- Validate Record for:OKL_TAX_BASIS_OVERRIDE_V --
616 --------------------------------------------------
617 FUNCTION Validate_Record (
618 p_tbov_rec IN tbov_rec_type,
619 p_db_tbov_rec IN tbov_rec_type
620 ) RETURN VARCHAR2 IS
621 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
622 ------------------------------------
623 -- FUNCTION validate_foreign_keys --
624 ------------------------------------
625 FUNCTION validate_foreign_keys (
626 p_tbov_rec IN tbov_rec_type,
627 p_db_tbov_rec IN tbov_rec_type
628 ) RETURN VARCHAR2 IS
629 item_not_found_error EXCEPTION;
630 CURSOR okl_tbov_fma_id_fk_csr (p_id IN NUMBER) IS
631 SELECT 'x'
632 FROM Okl_Formulae_B
633 WHERE okl_formulae_b.id = p_id;
634 l_okl_tbov_fma_id_fk okl_tbov_fma_id_fk_csr%ROWTYPE;
635
636 CURSOR okl_tbov_try_id_fk_csr (p_id IN NUMBER) IS
637 SELECT 'x'
638 FROM Okl_Trx_Types_B
639 WHERE okl_trx_types_b.id = p_id;
640 l_okl_tbov_try_id_fk okl_tbov_try_id_fk_csr%ROWTYPE;
641
642 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
643 l_row_notfound BOOLEAN := TRUE;
644 BEGIN
645 IF ((p_tbov_rec.FMA_ID IS NOT NULL)
646 AND
647 (p_tbov_rec.FMA_ID <> p_db_tbov_rec.FMA_ID))
648 THEN
649 OPEN okl_tbov_fma_id_fk_csr (p_tbov_rec.FMA_ID);
650 FETCH okl_tbov_fma_id_fk_csr INTO l_okl_tbov_fma_id_fk;
651 l_row_notfound := okl_tbov_fma_id_fk_csr%NOTFOUND;
652 CLOSE okl_tbov_fma_id_fk_csr;
653 IF (l_row_notfound) THEN
654 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'FMA_ID');
655 RAISE item_not_found_error;
656 END IF;
657 END IF;
658 IF ((p_tbov_rec.TRY_ID IS NOT NULL)
659 AND
660 (p_tbov_rec.TRY_ID <> p_db_tbov_rec.TRY_ID))
661 THEN
662 OPEN okl_tbov_try_id_fk_csr (p_tbov_rec.TRY_ID);
663 FETCH okl_tbov_try_id_fk_csr INTO l_okl_tbov_try_id_fk;
664 l_row_notfound := okl_tbov_try_id_fk_csr%NOTFOUND;
665 CLOSE okl_tbov_try_id_fk_csr;
666 IF (l_row_notfound) THEN
667 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TRY_ID');
668 RAISE item_not_found_error;
669 END IF;
670 END IF;
671 RETURN (l_return_status);
672 EXCEPTION
673 WHEN item_not_found_error THEN
674 l_return_status := OKL_API.G_RET_STS_ERROR;
675 RETURN (l_return_status);
676 END validate_foreign_keys;
677 BEGIN
678 l_return_status := validate_foreign_keys(p_tbov_rec, p_db_tbov_rec);
679 RETURN (l_return_status);
680 END Validate_Record;
681 FUNCTION Validate_Record (
682 p_tbov_rec IN tbov_rec_type
683 ) RETURN VARCHAR2 IS
684 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
685 l_db_tbov_rec tbov_rec_type := get_rec(p_tbov_rec);
686 BEGIN
687 l_return_status := Validate_Record(p_tbov_rec => p_tbov_rec,
688 p_db_tbov_rec => l_db_tbov_rec);
689 RETURN (l_return_status);
690 END Validate_Record;
691 */
692 ---------------------------------------------------------------------------
693 -- PROCEDURE Migrate
694 ---------------------------------------------------------------------------
695 PROCEDURE migrate (
696 p_from IN tbov_rec_type,
697 p_to IN OUT NOCOPY tbo_rec_type
698 ) IS
699 BEGIN
700 p_to.try_id := p_from.try_id;
701 p_to.org_id := p_from.org_id;
702 p_to.fma_id := p_from.fma_id;
703 p_to.program_id := p_from.program_id;
704 p_to.request_id := p_from.request_id;
705 p_to.program_application_id := p_from.program_application_id;
706 p_to.program_update_date := p_from.program_update_date;
707 p_to.attribute_category := p_from.attribute_category;
708 p_to.attribute1 := p_from.attribute1;
709 p_to.attribute2 := p_from.attribute2;
710 p_to.attribute3 := p_from.attribute3;
711 p_to.attribute4 := p_from.attribute4;
712 p_to.attribute5 := p_from.attribute5;
713 p_to.attribute6 := p_from.attribute6;
714 p_to.attribute7 := p_from.attribute7;
715 p_to.attribute8 := p_from.attribute8;
716 p_to.attribute9 := p_from.attribute9;
717 p_to.attribute10 := p_from.attribute10;
718 p_to.attribute11 := p_from.attribute11;
719 p_to.attribute12 := p_from.attribute12;
720 p_to.attribute13 := p_from.attribute13;
721 p_to.attribute14 := p_from.attribute14;
722 p_to.attribute15 := p_from.attribute15;
723 p_to.created_by := p_from.created_by;
724 p_to.creation_date := p_from.creation_date;
725 p_to.last_updated_by := p_from.last_updated_by;
726 p_to.last_update_date := p_from.last_update_date;
727 p_to.last_update_login := p_from.last_update_login;
728 p_to.object_version_number := p_from.object_version_number;
729 END migrate;
730 PROCEDURE migrate (
731 p_from IN tbo_rec_type,
732 p_to IN OUT NOCOPY tbov_rec_type
733 ) IS
734 BEGIN
735 p_to.try_id := p_from.try_id;
736 p_to.org_id := p_from.org_id;
737 p_to.fma_id := p_from.fma_id;
738 p_to.program_id := p_from.program_id;
739 p_to.request_id := p_from.request_id;
740 p_to.program_application_id := p_from.program_application_id;
741 p_to.program_update_date := p_from.program_update_date;
742 p_to.attribute_category := p_from.attribute_category;
743 p_to.attribute1 := p_from.attribute1;
744 p_to.attribute2 := p_from.attribute2;
745 p_to.attribute3 := p_from.attribute3;
746 p_to.attribute4 := p_from.attribute4;
747 p_to.attribute5 := p_from.attribute5;
748 p_to.attribute6 := p_from.attribute6;
749 p_to.attribute7 := p_from.attribute7;
750 p_to.attribute8 := p_from.attribute8;
751 p_to.attribute9 := p_from.attribute9;
752 p_to.attribute10 := p_from.attribute10;
753 p_to.attribute11 := p_from.attribute11;
754 p_to.attribute12 := p_from.attribute12;
755 p_to.attribute13 := p_from.attribute13;
756 p_to.attribute14 := p_from.attribute14;
757 p_to.attribute15 := p_from.attribute15;
758 p_to.created_by := p_from.created_by;
759 p_to.creation_date := p_from.creation_date;
760 p_to.last_updated_by := p_from.last_updated_by;
761 p_to.last_update_date := p_from.last_update_date;
762 p_to.last_update_login := p_from.last_update_login;
763 p_to.object_version_number := p_from.object_version_number;
764 END migrate;
765 ---------------------------------------------------------------------------
766 -- PROCEDURE validate_row
767 ---------------------------------------------------------------------------
768 -----------------------------------------------
769 -- validate_row for:OKL_TAX_BASIS_OVERRIDE_V --
770 -----------------------------------------------
771 PROCEDURE validate_row(
772 p_api_version IN NUMBER,
773 p_init_msg_list IN VARCHAR2,
774 x_return_status OUT NOCOPY VARCHAR2,
775 x_msg_count OUT NOCOPY NUMBER,
776 x_msg_data OUT NOCOPY VARCHAR2,
777 p_tbov_rec IN tbov_rec_type) IS
778
779 l_api_version CONSTANT NUMBER := 1;
780 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
781 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
782 l_tbov_rec tbov_rec_type := p_tbov_rec;
783 l_tbo_rec tbo_rec_type;
784 l_tbo_rec tbo_rec_type;
785 BEGIN
786 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
787 G_PKG_NAME,
788 p_init_msg_list,
789 l_api_version,
790 p_api_version,
791 '_PVT',
792 x_return_status);
793 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
794 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
795 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
796 RAISE OKL_API.G_EXCEPTION_ERROR;
797 END IF;
798 --- Validate all non-missing attributes (Item Level Validation)
799 l_return_status := Validate_Attributes(l_tbov_rec);
800 --- If any errors happen abort API
801 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
802 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
803 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
804 RAISE OKL_API.G_EXCEPTION_ERROR;
805 END IF;
806
807 /*l_return_status := Validate_Record(l_tbov_rec);
808 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
809 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
810 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
811 RAISE OKL_API.G_EXCEPTION_ERROR;
812 END IF;*/
813
814
815 x_return_status := l_return_status;
816 EXCEPTION
817 WHEN OKL_API.G_EXCEPTION_ERROR THEN
818 x_return_status := OKL_API.HANDLE_EXCEPTIONS
819 (
820 l_api_name,
821 G_PKG_NAME,
822 'OKL_API.G_RET_STS_ERROR',
823 x_msg_count,
824 x_msg_data,
825 '_PVT'
826 );
827 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
828 x_return_status := OKL_API.HANDLE_EXCEPTIONS
829 (
830 l_api_name,
831 G_PKG_NAME,
832 'OKL_API.G_RET_STS_UNEXP_ERROR',
833 x_msg_count,
834 x_msg_data,
835 '_PVT'
836 );
837 WHEN OTHERS THEN
838 x_return_status := OKL_API.HANDLE_EXCEPTIONS
839 (
840 l_api_name,
841 G_PKG_NAME,
842 'OTHERS',
843 x_msg_count,
844 x_msg_data,
845 '_PVT'
846 );
847 END validate_row;
848 ----------------------------------------------------------
849 -- PL/SQL TBL validate_row for:OKL_TAX_BASIS_OVERRIDE_V --
850 ----------------------------------------------------------
851 PROCEDURE validate_row(
852 p_api_version IN NUMBER,
853 p_init_msg_list IN VARCHAR2,
854 x_return_status OUT NOCOPY VARCHAR2,
855 x_msg_count OUT NOCOPY NUMBER,
856 x_msg_data OUT NOCOPY VARCHAR2,
857 p_tbov_tbl IN tbov_tbl_type,
858 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
859
860 l_api_version CONSTANT NUMBER := 1;
861 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
862 i NUMBER := 0;
863 BEGIN
864 OKL_API.init_msg_list(p_init_msg_list);
865 -- Make sure PL/SQL table has records in it before passing
866 IF (p_tbov_tbl.COUNT > 0) THEN
867 i := p_tbov_tbl.FIRST;
868 LOOP
869 DECLARE
870 l_error_rec OKL_API.ERROR_REC_TYPE;
871 BEGIN
872 l_error_rec.api_name := l_api_name;
873 l_error_rec.api_package := G_PKG_NAME;
874 l_error_rec.idx := i;
875 validate_row (
876 p_api_version => p_api_version,
877 p_init_msg_list => OKL_API.G_FALSE,
878 x_return_status => l_error_rec.error_type,
879 x_msg_count => l_error_rec.msg_count,
880 x_msg_data => l_error_rec.msg_data,
881 p_tbov_rec => p_tbov_tbl(i));
882 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
883 l_error_rec.sqlcode := SQLCODE;
884 load_error_tbl(l_error_rec, px_error_tbl);
885 ELSE
886 x_msg_count := l_error_rec.msg_count;
887 x_msg_data := l_error_rec.msg_data;
888 END IF;
889 EXCEPTION
890 WHEN OKL_API.G_EXCEPTION_ERROR THEN
891 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
892 l_error_rec.sqlcode := SQLCODE;
893 load_error_tbl(l_error_rec, px_error_tbl);
894 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
895 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
896 l_error_rec.sqlcode := SQLCODE;
897 load_error_tbl(l_error_rec, px_error_tbl);
898 WHEN OTHERS THEN
899 l_error_rec.error_type := 'OTHERS';
900 l_error_rec.sqlcode := SQLCODE;
901 load_error_tbl(l_error_rec, px_error_tbl);
902 END;
903 EXIT WHEN (i = p_tbov_tbl.LAST);
904 i := p_tbov_tbl.NEXT(i);
905 END LOOP;
906 END IF;
907 -- Loop through the error_tbl to find the error with the highest severity
908 -- and return it.
909 x_return_status := find_highest_exception(px_error_tbl);
910 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
911 EXCEPTION
912 WHEN OKL_API.G_EXCEPTION_ERROR THEN
913 x_return_status := OKL_API.HANDLE_EXCEPTIONS
914 (
915 l_api_name,
916 G_PKG_NAME,
917 'OKL_API.G_RET_STS_ERROR',
918 x_msg_count,
919 x_msg_data,
920 '_PVT'
921 );
922 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
923 x_return_status := OKL_API.HANDLE_EXCEPTIONS
924 (
925 l_api_name,
926 G_PKG_NAME,
927 'OKL_API.G_RET_STS_UNEXP_ERROR',
928 x_msg_count,
929 x_msg_data,
930 '_PVT'
931 );
932 WHEN OTHERS THEN
933 x_return_status := OKL_API.HANDLE_EXCEPTIONS
934 (
935 l_api_name,
936 G_PKG_NAME,
937 'OTHERS',
938 x_msg_count,
939 x_msg_data,
940 '_PVT'
941 );
942 END validate_row;
943
944 ----------------------------------------------------------
945 -- PL/SQL TBL validate_row for:OKL_TAX_BASIS_OVERRIDE_V --
946 ----------------------------------------------------------
947 PROCEDURE validate_row(
948 p_api_version IN NUMBER,
949 p_init_msg_list IN VARCHAR2,
950 x_return_status OUT NOCOPY VARCHAR2,
951 x_msg_count OUT NOCOPY NUMBER,
952 x_msg_data OUT NOCOPY VARCHAR2,
953 p_tbov_tbl IN tbov_tbl_type) IS
954
955 l_api_version CONSTANT NUMBER := 1;
956 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
957 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
958 l_error_tbl OKL_API.ERROR_TBL_TYPE;
959 BEGIN
960 OKL_API.init_msg_list(p_init_msg_list);
961 -- Make sure PL/SQL table has records in it before passing
962 IF (p_tbov_tbl.COUNT > 0) THEN
963 validate_row (
964 p_api_version => p_api_version,
965 p_init_msg_list => OKL_API.G_FALSE,
966 x_return_status => x_return_status,
967 x_msg_count => x_msg_count,
968 x_msg_data => x_msg_data,
969 p_tbov_tbl => p_tbov_tbl,
970 px_error_tbl => l_error_tbl);
971 END IF;
972 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
973 EXCEPTION
974 WHEN OKL_API.G_EXCEPTION_ERROR THEN
975 x_return_status := OKL_API.HANDLE_EXCEPTIONS
976 (
977 l_api_name,
978 G_PKG_NAME,
979 'OKL_API.G_RET_STS_ERROR',
980 x_msg_count,
981 x_msg_data,
982 '_PVT'
983 );
984 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
985 x_return_status := OKL_API.HANDLE_EXCEPTIONS
986 (
987 l_api_name,
988 G_PKG_NAME,
989 'OKL_API.G_RET_STS_UNEXP_ERROR',
990 x_msg_count,
991 x_msg_data,
992 '_PVT'
993 );
994 WHEN OTHERS THEN
995 x_return_status := OKL_API.HANDLE_EXCEPTIONS
996 (
997 l_api_name,
998 G_PKG_NAME,
999 'OTHERS',
1000 x_msg_count,
1001 x_msg_data,
1002 '_PVT'
1003 );
1004 END validate_row;
1005
1006 ---------------------------------------------------------------------------
1007 -- PROCEDURE insert_row
1008 ---------------------------------------------------------------------------
1009 -------------------------------------------
1010 -- insert_row for:OKL_TAX_BASIS_OVERRIDE --
1011 -------------------------------------------
1012 PROCEDURE insert_row(
1013 p_init_msg_list IN VARCHAR2,
1014 x_return_status OUT NOCOPY VARCHAR2,
1015 x_msg_count OUT NOCOPY NUMBER,
1016 x_msg_data OUT NOCOPY VARCHAR2,
1017 p_tbo_rec IN tbo_rec_type,
1018 x_tbo_rec OUT NOCOPY tbo_rec_type) IS
1019
1020 l_api_version CONSTANT NUMBER := 1;
1021 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1022 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1023 l_tbo_rec tbo_rec_type := p_tbo_rec;
1024 l_def_tbo_rec tbo_rec_type;
1025 -----------------------------------------------
1026 -- Set_Attributes for:OKL_TAX_BASIS_OVERRIDE --
1027 -----------------------------------------------
1028 FUNCTION Set_Attributes (
1029 p_tbo_rec IN tbo_rec_type,
1030 x_tbo_rec OUT NOCOPY tbo_rec_type
1031 ) RETURN VARCHAR2 IS
1032 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1033 BEGIN
1034 x_tbo_rec := p_tbo_rec;
1035 RETURN(l_return_status);
1036 END Set_Attributes;
1037 BEGIN
1038 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1039 p_init_msg_list,
1040 '_PVT',
1041 x_return_status);
1042 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1043 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1044 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1045 RAISE OKL_API.G_EXCEPTION_ERROR;
1046 END IF;
1047 --- Setting item atributes
1048 l_return_status := Set_Attributes(
1049 p_tbo_rec, -- IN
1050 l_tbo_rec); -- OUT
1051 --- If any errors happen abort API
1052 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1053 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1054 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1055 RAISE OKL_API.G_EXCEPTION_ERROR;
1056 END IF;
1057 INSERT INTO OKL_TAX_BASIS_OVERRIDE(
1058 try_id,
1059 org_id,
1060 fma_id,
1061 program_id,
1062 request_id,
1063 program_application_id,
1064 program_update_date,
1065 attribute_category,
1066 attribute1,
1067 attribute2,
1068 attribute3,
1069 attribute4,
1070 attribute5,
1071 attribute6,
1072 attribute7,
1073 attribute8,
1074 attribute9,
1075 attribute10,
1076 attribute11,
1077 attribute12,
1078 attribute13,
1079 attribute14,
1080 attribute15,
1081 created_by,
1082 creation_date,
1083 last_updated_by,
1084 last_update_date,
1085 last_update_login,
1086 object_version_number)
1087 VALUES (
1088 l_tbo_rec.try_id,
1089 l_tbo_rec.org_id,
1090 l_tbo_rec.fma_id,
1091 l_tbo_rec.program_id,
1092 l_tbo_rec.request_id,
1093 l_tbo_rec.program_application_id,
1094 l_tbo_rec.program_update_date,
1095 l_tbo_rec.attribute_category,
1096 l_tbo_rec.attribute1,
1097 l_tbo_rec.attribute2,
1098 l_tbo_rec.attribute3,
1099 l_tbo_rec.attribute4,
1100 l_tbo_rec.attribute5,
1101 l_tbo_rec.attribute6,
1102 l_tbo_rec.attribute7,
1103 l_tbo_rec.attribute8,
1104 l_tbo_rec.attribute9,
1105 l_tbo_rec.attribute10,
1106 l_tbo_rec.attribute11,
1107 l_tbo_rec.attribute12,
1108 l_tbo_rec.attribute13,
1109 l_tbo_rec.attribute14,
1110 l_tbo_rec.attribute15,
1111 l_tbo_rec.created_by,
1112 l_tbo_rec.creation_date,
1113 l_tbo_rec.last_updated_by,
1114 l_tbo_rec.last_update_date,
1115 l_tbo_rec.last_update_login,
1116 l_tbo_rec.object_version_number);
1117 -- Set OUT values
1118 x_tbo_rec := l_tbo_rec;
1119 x_return_status := l_return_status;
1120 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1121 EXCEPTION
1122 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1123 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1124 (
1125 l_api_name,
1126 G_PKG_NAME,
1127 'OKL_API.G_RET_STS_ERROR',
1128 x_msg_count,
1129 x_msg_data,
1130 '_PVT'
1131 );
1132 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1133 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1134 (
1135 l_api_name,
1136 G_PKG_NAME,
1137 'OKL_API.G_RET_STS_UNEXP_ERROR',
1138 x_msg_count,
1139 x_msg_data,
1140 '_PVT'
1141 );
1142 WHEN OTHERS THEN
1143 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1144 (
1145 l_api_name,
1146 G_PKG_NAME,
1147 'OTHERS',
1148 x_msg_count,
1149 x_msg_data,
1150 '_PVT'
1151 );
1152 END insert_row;
1153 ----------------------------------------------
1154 -- insert_row for :OKL_TAX_BASIS_OVERRIDE_V --
1155 ----------------------------------------------
1156 PROCEDURE insert_row(
1157 p_api_version IN NUMBER,
1158 p_init_msg_list IN VARCHAR2,
1159 x_return_status OUT NOCOPY VARCHAR2,
1160 x_msg_count OUT NOCOPY NUMBER,
1161 x_msg_data OUT NOCOPY VARCHAR2,
1162 p_tbov_rec IN tbov_rec_type,
1163 x_tbov_rec OUT NOCOPY tbov_rec_type) IS
1164
1165 l_api_version CONSTANT NUMBER := 1;
1166 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1167 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1168 l_tbov_rec tbov_rec_type := p_tbov_rec;
1169 l_def_tbov_rec tbov_rec_type;
1170 l_tbo_rec tbo_rec_type;
1171 lx_tbo_rec tbo_rec_type;
1172 -------------------------------
1173 -- FUNCTION fill_who_columns --
1174 -------------------------------
1175 FUNCTION fill_who_columns (
1176 p_tbov_rec IN tbov_rec_type
1177 ) RETURN tbov_rec_type IS
1178 l_tbov_rec tbov_rec_type := p_tbov_rec;
1179 BEGIN
1180 l_tbov_rec.CREATION_DATE := SYSDATE;
1181 l_tbov_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1182 l_tbov_rec.LAST_UPDATE_DATE := l_tbov_rec.CREATION_DATE;
1183 l_tbov_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1184 l_tbov_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1185 RETURN(l_tbov_rec);
1186 END fill_who_columns;
1187 -------------------------------------------------
1188 -- Set_Attributes for:OKL_TAX_BASIS_OVERRIDE_V --
1189 -------------------------------------------------
1190 FUNCTION Set_Attributes (
1191 p_tbov_rec IN tbov_rec_type,
1192 x_tbov_rec OUT NOCOPY tbov_rec_type
1193 ) RETURN VARCHAR2 IS
1194 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1195 BEGIN
1196 x_tbov_rec := p_tbov_rec;
1197 x_tbov_rec.OBJECT_VERSION_NUMBER := 1;
1198 RETURN(l_return_status);
1199 END Set_Attributes;
1200 BEGIN
1201 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1202 G_PKG_NAME,
1203 p_init_msg_list,
1204 l_api_version,
1205 p_api_version,
1206 '_PVT',
1207 x_return_status);
1208 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1209 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1210 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1211 RAISE OKL_API.G_EXCEPTION_ERROR;
1212 END IF;
1213 l_tbov_rec := null_out_defaults(p_tbov_rec);
1214 -- Set primary key value
1215 -- Error: Multiple columns make up the Primary Key
1216 -- Cannot assign get_seq_id
1217 -- Setting item attributes
1218 l_return_Status := Set_Attributes(
1219 l_tbov_rec, -- IN
1223 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1220 l_def_tbov_rec); -- OUT
1221 --- If any errors happen abort API
1222 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1224 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1225 RAISE OKL_API.G_EXCEPTION_ERROR;
1226 END IF;
1227 l_def_tbov_rec := fill_who_columns(l_def_tbov_rec);
1228 --- Validate all non-missing attributes (Item Level Validation)
1229 l_return_status := Validate_Attributes(l_def_tbov_rec);
1230 --- If any errors happen abort API
1231 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1232 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1233 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1234 RAISE OKL_API.G_EXCEPTION_ERROR;
1235 END IF;
1236
1237 /*l_return_status := Validate_Record(l_def_tbov_rec);
1238 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1239 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1240 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1241 RAISE OKL_API.G_EXCEPTION_ERROR;
1242 END IF;*/
1243
1244 -----------------------------------------
1245 -- Move VIEW record to "Child" records --
1246 -----------------------------------------
1247 migrate(l_def_tbov_rec, l_tbo_rec);
1248 -----------------------------------------------
1249 -- Call the INSERT_ROW for each child record --
1250 -----------------------------------------------
1251 insert_row(
1252 p_init_msg_list,
1253 l_return_status,
1254 x_msg_count,
1255 x_msg_data,
1256 l_tbo_rec,
1257 lx_tbo_rec
1258 );
1259 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1260 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1261 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1262 RAISE OKL_API.G_EXCEPTION_ERROR;
1263 END IF;
1264 migrate(lx_tbo_rec, l_def_tbov_rec);
1265 -- Set OUT values
1266 x_tbov_rec := l_def_tbov_rec;
1267 x_return_status := l_return_status;
1268 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1269 EXCEPTION
1270 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1271 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1272 (
1273 l_api_name,
1274 G_PKG_NAME,
1275 'OKL_API.G_RET_STS_ERROR',
1276 x_msg_count,
1277 x_msg_data,
1278 '_PVT'
1279 );
1280 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1281 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1282 (
1283 l_api_name,
1284 G_PKG_NAME,
1285 'OKL_API.G_RET_STS_UNEXP_ERROR',
1286 x_msg_count,
1287 x_msg_data,
1288 '_PVT'
1289 );
1290 WHEN OTHERS THEN
1291 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1292 (
1293 l_api_name,
1294 G_PKG_NAME,
1295 'OTHERS',
1296 x_msg_count,
1297 x_msg_data,
1298 '_PVT'
1299 );
1300 END insert_row;
1301 ----------------------------------------
1302 -- PL/SQL TBL insert_row for:TBOV_TBL --
1303 ----------------------------------------
1304 PROCEDURE insert_row(
1305 p_api_version IN NUMBER,
1306 p_init_msg_list IN VARCHAR2,
1307 x_return_status OUT NOCOPY VARCHAR2,
1308 x_msg_count OUT NOCOPY NUMBER,
1309 x_msg_data OUT NOCOPY VARCHAR2,
1310 p_tbov_tbl IN tbov_tbl_type,
1311 x_tbov_tbl OUT NOCOPY tbov_tbl_type,
1312 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1313
1314 l_api_version CONSTANT NUMBER := 1;
1315 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1316 i NUMBER := 0;
1317 BEGIN
1318 OKL_API.init_msg_list(p_init_msg_list);
1319 -- Make sure PL/SQL table has records in it before passing
1320 IF (p_tbov_tbl.COUNT > 0) THEN
1321 i := p_tbov_tbl.FIRST;
1322 LOOP
1323 DECLARE
1324 l_error_rec OKL_API.ERROR_REC_TYPE;
1325 BEGIN
1326 l_error_rec.api_name := l_api_name;
1327 l_error_rec.api_package := G_PKG_NAME;
1328 l_error_rec.idx := i;
1329 insert_row (
1330 p_api_version => p_api_version,
1331 p_init_msg_list => OKL_API.G_FALSE,
1332 x_return_status => l_error_rec.error_type,
1333 x_msg_count => l_error_rec.msg_count,
1334 x_msg_data => l_error_rec.msg_data,
1335 p_tbov_rec => p_tbov_tbl(i),
1336 x_tbov_rec => x_tbov_tbl(i));
1337 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1338 l_error_rec.sqlcode := SQLCODE;
1339 load_error_tbl(l_error_rec, px_error_tbl);
1340 ELSE
1341 x_msg_count := l_error_rec.msg_count;
1342 x_msg_data := l_error_rec.msg_data;
1343 END IF;
1344 EXCEPTION
1345 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1346 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1347 l_error_rec.sqlcode := SQLCODE;
1351 l_error_rec.sqlcode := SQLCODE;
1348 load_error_tbl(l_error_rec, px_error_tbl);
1349 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1350 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1352 load_error_tbl(l_error_rec, px_error_tbl);
1353 WHEN OTHERS THEN
1354 l_error_rec.error_type := 'OTHERS';
1355 l_error_rec.sqlcode := SQLCODE;
1356 load_error_tbl(l_error_rec, px_error_tbl);
1357 END;
1358 EXIT WHEN (i = p_tbov_tbl.LAST);
1359 i := p_tbov_tbl.NEXT(i);
1360 END LOOP;
1361 END IF;
1362 -- Loop through the error_tbl to find the error with the highest severity
1363 -- and return it.
1364 x_return_status := find_highest_exception(px_error_tbl);
1365 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1366 EXCEPTION
1367 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1368 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1369 (
1370 l_api_name,
1371 G_PKG_NAME,
1372 'OKL_API.G_RET_STS_ERROR',
1373 x_msg_count,
1374 x_msg_data,
1375 '_PVT'
1376 );
1377 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1378 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1379 (
1380 l_api_name,
1381 G_PKG_NAME,
1382 'OKL_API.G_RET_STS_UNEXP_ERROR',
1383 x_msg_count,
1384 x_msg_data,
1385 '_PVT'
1386 );
1387 WHEN OTHERS THEN
1388 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1389 (
1390 l_api_name,
1391 G_PKG_NAME,
1392 'OTHERS',
1393 x_msg_count,
1394 x_msg_data,
1395 '_PVT'
1396 );
1397 END insert_row;
1398
1399 ----------------------------------------
1400 -- PL/SQL TBL insert_row for:TBOV_TBL --
1401 ----------------------------------------
1402 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
1403 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
1404 PROCEDURE insert_row(
1405 p_api_version IN NUMBER,
1406 p_init_msg_list IN VARCHAR2,
1407 x_return_status OUT NOCOPY VARCHAR2,
1408 x_msg_count OUT NOCOPY NUMBER,
1409 x_msg_data OUT NOCOPY VARCHAR2,
1410 p_tbov_tbl IN tbov_tbl_type,
1411 x_tbov_tbl OUT NOCOPY tbov_tbl_type) IS
1412
1413 l_api_version CONSTANT NUMBER := 1;
1414 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1415 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1416 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1417 BEGIN
1418 OKL_API.init_msg_list(p_init_msg_list);
1419 -- Make sure PL/SQL table has records in it before passing
1420 IF (p_tbov_tbl.COUNT > 0) THEN
1421 insert_row (
1422 p_api_version => p_api_version,
1423 p_init_msg_list => OKL_API.G_FALSE,
1424 x_return_status => x_return_status,
1425 x_msg_count => x_msg_count,
1426 x_msg_data => x_msg_data,
1427 p_tbov_tbl => p_tbov_tbl,
1428 x_tbov_tbl => x_tbov_tbl,
1429 px_error_tbl => l_error_tbl);
1430 END IF;
1431 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1432 EXCEPTION
1433 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1434 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1435 (
1436 l_api_name,
1437 G_PKG_NAME,
1438 'OKL_API.G_RET_STS_ERROR',
1439 x_msg_count,
1440 x_msg_data,
1441 '_PVT'
1442 );
1443 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1444 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1445 (
1446 l_api_name,
1447 G_PKG_NAME,
1448 'OKL_API.G_RET_STS_UNEXP_ERROR',
1449 x_msg_count,
1450 x_msg_data,
1451 '_PVT'
1452 );
1453 WHEN OTHERS THEN
1454 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1455 (
1456 l_api_name,
1457 G_PKG_NAME,
1458 'OTHERS',
1459 x_msg_count,
1460 x_msg_data,
1461 '_PVT'
1462 );
1463 END insert_row;
1464
1465 ---------------------------------------------------------------------------
1466 -- PROCEDURE lock_row
1467 ---------------------------------------------------------------------------
1468 -----------------------------------------
1469 -- lock_row for:OKL_TAX_BASIS_OVERRIDE --
1470 -----------------------------------------
1471 PROCEDURE lock_row(
1472 p_init_msg_list IN VARCHAR2,
1473 x_return_status OUT NOCOPY VARCHAR2,
1474 x_msg_count OUT NOCOPY NUMBER,
1475 x_msg_data OUT NOCOPY VARCHAR2,
1476 p_tbo_rec IN tbo_rec_type) IS
1477
1478 E_Resource_Busy EXCEPTION;
1479 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1480 CURSOR lock_csr (p_tbo_rec IN tbo_rec_type) IS
1481 SELECT OBJECT_VERSION_NUMBER
1482 FROM OKL_TAX_BASIS_OVERRIDE
1483 WHERE ORG_ID = p_tbo_rec.org_id
1484 AND TRY_ID = p_tbo_rec.try_id
1485 AND OBJECT_VERSION_NUMBER = p_tbo_rec.object_version_number
1486 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1487
1488 CURSOR lchk_csr (p_tbo_rec IN tbo_rec_type) IS
1489 SELECT OBJECT_VERSION_NUMBER
1490 FROM OKL_TAX_BASIS_OVERRIDE
1491 WHERE ORG_ID = p_tbo_rec.org_id AND TRY_ID = p_tbo_rec.try_id;
1492 l_api_version CONSTANT NUMBER := 1;
1493 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
1494 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1495 l_object_version_number OKL_TAX_BASIS_OVERRIDE.OBJECT_VERSION_NUMBER%TYPE;
1496 lc_object_version_number OKL_TAX_BASIS_OVERRIDE.OBJECT_VERSION_NUMBER%TYPE;
1497 l_row_notfound BOOLEAN := FALSE;
1498 lc_row_notfound BOOLEAN := FALSE;
1499 BEGIN
1500 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1501 p_init_msg_list,
1502 '_PVT',
1503 x_return_status);
1504 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1505 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1506 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1507 RAISE OKL_API.G_EXCEPTION_ERROR;
1508 END IF;
1509 BEGIN
1510 OPEN lock_csr(p_tbo_rec);
1511 FETCH lock_csr INTO l_object_version_number;
1512 l_row_notfound := lock_csr%NOTFOUND;
1513 CLOSE lock_csr;
1514 EXCEPTION
1515 WHEN E_Resource_Busy THEN
1516 IF (lock_csr%ISOPEN) THEN
1517 CLOSE lock_csr;
1518 END IF;
1519 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1520 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1521 END;
1522
1523 IF ( l_row_notfound ) THEN
1524 OPEN lchk_csr(p_tbo_rec);
1525 FETCH lchk_csr INTO lc_object_version_number;
1526 lc_row_notfound := lchk_csr%NOTFOUND;
1527 CLOSE lchk_csr;
1528 END IF;
1529 IF (lc_row_notfound) THEN
1530 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1531 RAISE OKL_API.G_EXCEPTION_ERROR;
1532 ELSIF lc_object_version_number > p_tbo_rec.object_version_number THEN
1533 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1534 RAISE OKL_API.G_EXCEPTION_ERROR;
1535 ELSIF lc_object_version_number <> p_tbo_rec.object_version_number THEN
1536 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1537 RAISE OKL_API.G_EXCEPTION_ERROR;
1538 ELSIF lc_object_version_number = -1 THEN
1539 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
1540 RAISE OKL_API.G_EXCEPTION_ERROR;
1541 END IF;
1542 x_return_status := l_return_status;
1543 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1544 EXCEPTION
1545 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1546 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1547 (
1548 l_api_name,
1549 G_PKG_NAME,
1550 'OKL_API.G_RET_STS_ERROR',
1551 x_msg_count,
1552 x_msg_data,
1553 '_PVT'
1554 );
1555 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1556 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1557 (
1558 l_api_name,
1559 G_PKG_NAME,
1560 'OKL_API.G_RET_STS_UNEXP_ERROR',
1561 x_msg_count,
1562 x_msg_data,
1563 '_PVT'
1564 );
1565 WHEN OTHERS THEN
1566 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1567 (
1568 l_api_name,
1569 G_PKG_NAME,
1570 'OTHERS',
1571 x_msg_count,
1572 x_msg_data,
1573 '_PVT'
1574 );
1575 END lock_row;
1576 --------------------------------------------
1577 -- lock_row for: OKL_TAX_BASIS_OVERRIDE_V --
1578 --------------------------------------------
1579 PROCEDURE lock_row(
1580 p_api_version IN NUMBER,
1581 p_init_msg_list IN VARCHAR2,
1582 x_return_status OUT NOCOPY VARCHAR2,
1583 x_msg_count OUT NOCOPY NUMBER,
1584 x_msg_data OUT NOCOPY VARCHAR2,
1585 p_tbov_rec IN tbov_rec_type) IS
1586
1587 l_api_version CONSTANT NUMBER := 1;
1588 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
1589 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1590 l_tbo_rec tbo_rec_type;
1591 BEGIN
1592 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1593 G_PKG_NAME,
1594 p_init_msg_list,
1595 l_api_version,
1596 p_api_version,
1597 '_PVT',
1598 x_return_status);
1599 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1600 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1601 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1602 RAISE OKL_API.G_EXCEPTION_ERROR;
1603 END IF;
1604 -----------------------------------------
1605 -- Move VIEW record to "Child" records --
1606 -----------------------------------------
1607 migrate(p_tbov_rec, l_tbo_rec);
1608 ---------------------------------------------
1609 -- Call the LOCK_ROW for each child record --
1610 ---------------------------------------------
1611 lock_row(
1612 p_init_msg_list,
1613 l_return_status,
1614 x_msg_count,
1615 x_msg_data,
1616 l_tbo_rec
1617 );
1618 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1619 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1620 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1621 RAISE OKL_API.G_EXCEPTION_ERROR;
1622 END IF;
1623 x_return_status := l_return_status;
1624 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1625 EXCEPTION
1626 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1627 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1628 (
1629 l_api_name,
1630 G_PKG_NAME,
1631 'OKL_API.G_RET_STS_ERROR',
1632 x_msg_count,
1633 x_msg_data,
1634 '_PVT'
1635 );
1636 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1637 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1638 (
1639 l_api_name,
1640 G_PKG_NAME,
1641 'OKL_API.G_RET_STS_UNEXP_ERROR',
1642 x_msg_count,
1643 x_msg_data,
1644 '_PVT'
1645 );
1646 WHEN OTHERS THEN
1647 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1648 (
1649 l_api_name,
1650 G_PKG_NAME,
1651 'OTHERS',
1652 x_msg_count,
1653 x_msg_data,
1654 '_PVT'
1655 );
1656 END lock_row;
1657 --------------------------------------
1658 -- PL/SQL TBL lock_row for:TBOV_TBL --
1659 --------------------------------------
1660 PROCEDURE lock_row(
1661 p_api_version IN NUMBER,
1662 p_init_msg_list IN VARCHAR2,
1663 x_return_status OUT NOCOPY VARCHAR2,
1664 x_msg_count OUT NOCOPY NUMBER,
1665 x_msg_data OUT NOCOPY VARCHAR2,
1666 p_tbov_tbl IN tbov_tbl_type,
1667 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1668
1669 l_api_version CONSTANT NUMBER := 1;
1670 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
1671 i NUMBER := 0;
1672 BEGIN
1673 OKL_API.init_msg_list(p_init_msg_list);
1674 -- Make sure PL/SQL table has recrods in it before passing
1675 IF (p_tbov_tbl.COUNT > 0) THEN
1676 i := p_tbov_tbl.FIRST;
1677 LOOP
1678 DECLARE
1679 l_error_rec OKL_API.ERROR_REC_TYPE;
1680 BEGIN
1681 l_error_rec.api_name := l_api_name;
1682 l_error_rec.api_package := G_PKG_NAME;
1683 l_error_rec.idx := i;
1684 lock_row(
1685 p_api_version => p_api_version,
1686 p_init_msg_list => OKL_API.G_FALSE,
1687 x_return_status => l_error_rec.error_type,
1688 x_msg_count => l_error_rec.msg_count,
1689 x_msg_data => l_error_rec.msg_data,
1690 p_tbov_rec => p_tbov_tbl(i));
1691 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1692 l_error_rec.sqlcode := SQLCODE;
1693 load_error_tbl(l_error_rec, px_error_tbl);
1694 ELSE
1695 x_msg_count := l_error_rec.msg_count;
1696 x_msg_data := l_error_rec.msg_data;
1697 END IF;
1698 EXCEPTION
1699 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1700 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1701 l_error_rec.sqlcode := SQLCODE;
1702 load_error_tbl(l_error_rec, px_error_tbl);
1703 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1704 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1705 l_error_rec.sqlcode := SQLCODE;
1706 load_error_tbl(l_error_rec, px_error_tbl);
1707 WHEN OTHERS THEN
1708 l_error_rec.error_type := 'OTHERS';
1709 l_error_rec.sqlcode := SQLCODE;
1710 load_error_tbl(l_error_rec, px_error_tbl);
1711 END;
1712 EXIT WHEN (i = p_tbov_tbl.LAST);
1713 i := p_tbov_tbl.NEXT(i);
1714 END LOOP;
1715 END IF;
1716 -- Loop through the error_tbl to find the error with the highest severity
1717 -- and return it.
1718 x_return_status := find_highest_exception(px_error_tbl);
1719 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1720 EXCEPTION
1721 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1722 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1723 (
1724 l_api_name,
1725 G_PKG_NAME,
1726 'OKL_API.G_RET_STS_ERROR',
1727 x_msg_count,
1728 x_msg_data,
1729 '_PVT'
1730 );
1731 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1732 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1733 (
1734 l_api_name,
1735 G_PKG_NAME,
1736 'OKL_API.G_RET_STS_UNEXP_ERROR',
1737 x_msg_count,
1738 x_msg_data,
1739 '_PVT'
1740 );
1741 WHEN OTHERS THEN
1742 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1743 (
1744 l_api_name,
1745 G_PKG_NAME,
1746 'OTHERS',
1747 x_msg_count,
1748 x_msg_data,
1749 '_PVT'
1750 );
1751 END lock_row;
1752 --------------------------------------
1753 -- PL/SQL TBL lock_row for:TBOV_TBL --
1754 --------------------------------------
1755 PROCEDURE lock_row(
1756 p_api_version IN NUMBER,
1757 p_init_msg_list IN VARCHAR2,
1758 x_return_status OUT NOCOPY VARCHAR2,
1759 x_msg_count OUT NOCOPY NUMBER,
1760 x_msg_data OUT NOCOPY VARCHAR2,
1761 p_tbov_tbl IN tbov_tbl_type) IS
1762
1763 l_api_version CONSTANT NUMBER := 1;
1764 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
1765 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1766 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1767 BEGIN
1768 OKL_API.init_msg_list(p_init_msg_list);
1769 -- Make sure PL/SQL table has recrods in it before passing
1770 IF (p_tbov_tbl.COUNT > 0) THEN
1771 lock_row(
1772 p_api_version => p_api_version,
1773 p_init_msg_list => OKL_API.G_FALSE,
1774 x_return_status => x_return_status,
1775 x_msg_count => x_msg_count,
1776 x_msg_data => x_msg_data,
1777 p_tbov_tbl => p_tbov_tbl,
1778 px_error_tbl => l_error_tbl);
1779 END IF;
1780 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1781 EXCEPTION
1782 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1783 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1784 (
1785 l_api_name,
1786 G_PKG_NAME,
1787 'OKL_API.G_RET_STS_ERROR',
1788 x_msg_count,
1789 x_msg_data,
1790 '_PVT'
1791 );
1792 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1793 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1794 (
1795 l_api_name,
1796 G_PKG_NAME,
1797 'OKL_API.G_RET_STS_UNEXP_ERROR',
1798 x_msg_count,
1799 x_msg_data,
1800 '_PVT'
1801 );
1802 WHEN OTHERS THEN
1803 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1804 (
1805 l_api_name,
1806 G_PKG_NAME,
1807 'OTHERS',
1808 x_msg_count,
1809 x_msg_data,
1810 '_PVT'
1811 );
1812 END lock_row;
1813 ---------------------------------------------------------------------------
1814 -- PROCEDURE update_row
1815 ---------------------------------------------------------------------------
1816 -------------------------------------------
1817 -- update_row for:OKL_TAX_BASIS_OVERRIDE --
1818 -------------------------------------------
1819 PROCEDURE update_row(
1820 p_init_msg_list IN VARCHAR2,
1821 x_return_status OUT NOCOPY VARCHAR2,
1822 x_msg_count OUT NOCOPY NUMBER,
1823 x_msg_data OUT NOCOPY VARCHAR2,
1824 p_tbo_rec IN tbo_rec_type,
1825 x_tbo_rec OUT NOCOPY tbo_rec_type) IS
1826
1827 l_api_version CONSTANT NUMBER := 1;
1828 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
1829 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1830 l_tbo_rec tbo_rec_type := p_tbo_rec;
1831 l_def_tbo_rec tbo_rec_type;
1832 l_row_notfound BOOLEAN := TRUE;
1833 ----------------------------------
1834 -- FUNCTION populate_new_record --
1835 ----------------------------------
1836 FUNCTION populate_new_record (
1837 p_tbo_rec IN tbo_rec_type,
1838 x_tbo_rec OUT NOCOPY tbo_rec_type
1839 ) RETURN VARCHAR2 IS
1840 l_tbo_rec tbo_rec_type;
1841 l_row_notfound BOOLEAN := TRUE;
1842 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1843 BEGIN
1844 x_tbo_rec := p_tbo_rec;
1845 -- Get current database values
1846 l_tbo_rec := get_rec(p_tbo_rec, l_return_status);
1847 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
1848 IF (x_tbo_rec.try_id = OKL_API.G_MISS_NUM)
1849 THEN
1850 x_tbo_rec.try_id := l_tbo_rec.try_id;
1851 END IF;
1852 IF (x_tbo_rec.org_id = OKL_API.G_MISS_NUM)
1853 THEN
1854 x_tbo_rec.org_id := l_tbo_rec.org_id;
1855 END IF;
1856 IF (x_tbo_rec.fma_id = OKL_API.G_MISS_NUM)
1857 THEN
1858 x_tbo_rec.fma_id := l_tbo_rec.fma_id;
1859 END IF;
1860 IF (x_tbo_rec.program_id = OKL_API.G_MISS_NUM)
1861 THEN
1862 x_tbo_rec.program_id := l_tbo_rec.program_id;
1863 END IF;
1864 IF (x_tbo_rec.request_id = OKL_API.G_MISS_NUM)
1865 THEN
1866 x_tbo_rec.request_id := l_tbo_rec.request_id;
1867 END IF;
1871 END IF;
1868 IF (x_tbo_rec.program_application_id = OKL_API.G_MISS_NUM)
1869 THEN
1870 x_tbo_rec.program_application_id := l_tbo_rec.program_application_id;
1872 IF (x_tbo_rec.program_update_date = OKL_API.G_MISS_DATE)
1873 THEN
1874 x_tbo_rec.program_update_date := l_tbo_rec.program_update_date;
1875 END IF;
1876 IF (x_tbo_rec.attribute_category = OKL_API.G_MISS_CHAR)
1877 THEN
1878 x_tbo_rec.attribute_category := l_tbo_rec.attribute_category;
1879 END IF;
1880 IF (x_tbo_rec.attribute1 = OKL_API.G_MISS_CHAR)
1881 THEN
1882 x_tbo_rec.attribute1 := l_tbo_rec.attribute1;
1883 END IF;
1884 IF (x_tbo_rec.attribute2 = OKL_API.G_MISS_CHAR)
1885 THEN
1886 x_tbo_rec.attribute2 := l_tbo_rec.attribute2;
1887 END IF;
1888 IF (x_tbo_rec.attribute3 = OKL_API.G_MISS_CHAR)
1889 THEN
1890 x_tbo_rec.attribute3 := l_tbo_rec.attribute3;
1891 END IF;
1892 IF (x_tbo_rec.attribute4 = OKL_API.G_MISS_CHAR)
1893 THEN
1894 x_tbo_rec.attribute4 := l_tbo_rec.attribute4;
1895 END IF;
1896 IF (x_tbo_rec.attribute5 = OKL_API.G_MISS_CHAR)
1897 THEN
1898 x_tbo_rec.attribute5 := l_tbo_rec.attribute5;
1899 END IF;
1900 IF (x_tbo_rec.attribute6 = OKL_API.G_MISS_CHAR)
1901 THEN
1902 x_tbo_rec.attribute6 := l_tbo_rec.attribute6;
1903 END IF;
1904 IF (x_tbo_rec.attribute7 = OKL_API.G_MISS_CHAR)
1905 THEN
1906 x_tbo_rec.attribute7 := l_tbo_rec.attribute7;
1907 END IF;
1908 IF (x_tbo_rec.attribute8 = OKL_API.G_MISS_CHAR)
1909 THEN
1910 x_tbo_rec.attribute8 := l_tbo_rec.attribute8;
1911 END IF;
1912 IF (x_tbo_rec.attribute9 = OKL_API.G_MISS_CHAR)
1913 THEN
1914 x_tbo_rec.attribute9 := l_tbo_rec.attribute9;
1915 END IF;
1916 IF (x_tbo_rec.attribute10 = OKL_API.G_MISS_CHAR)
1917 THEN
1918 x_tbo_rec.attribute10 := l_tbo_rec.attribute10;
1919 END IF;
1920 IF (x_tbo_rec.attribute11 = OKL_API.G_MISS_CHAR)
1921 THEN
1922 x_tbo_rec.attribute11 := l_tbo_rec.attribute11;
1923 END IF;
1924 IF (x_tbo_rec.attribute12 = OKL_API.G_MISS_CHAR)
1925 THEN
1926 x_tbo_rec.attribute12 := l_tbo_rec.attribute12;
1927 END IF;
1928 IF (x_tbo_rec.attribute13 = OKL_API.G_MISS_CHAR)
1929 THEN
1930 x_tbo_rec.attribute13 := l_tbo_rec.attribute13;
1931 END IF;
1932 IF (x_tbo_rec.attribute14 = OKL_API.G_MISS_CHAR)
1933 THEN
1934 x_tbo_rec.attribute14 := l_tbo_rec.attribute14;
1935 END IF;
1936 IF (x_tbo_rec.attribute15 = OKL_API.G_MISS_CHAR)
1937 THEN
1938 x_tbo_rec.attribute15 := l_tbo_rec.attribute15;
1939 END IF;
1940 IF (x_tbo_rec.created_by = OKL_API.G_MISS_NUM)
1941 THEN
1942 x_tbo_rec.created_by := l_tbo_rec.created_by;
1943 END IF;
1944 IF (x_tbo_rec.creation_date = OKL_API.G_MISS_DATE)
1945 THEN
1946 x_tbo_rec.creation_date := l_tbo_rec.creation_date;
1947 END IF;
1948 IF (x_tbo_rec.last_updated_by = OKL_API.G_MISS_NUM)
1949 THEN
1950 x_tbo_rec.last_updated_by := l_tbo_rec.last_updated_by;
1951 END IF;
1952 IF (x_tbo_rec.last_update_date = OKL_API.G_MISS_DATE)
1953 THEN
1954 x_tbo_rec.last_update_date := l_tbo_rec.last_update_date;
1955 END IF;
1956 IF (x_tbo_rec.last_update_login = OKL_API.G_MISS_NUM)
1957 THEN
1958 x_tbo_rec.last_update_login := l_tbo_rec.last_update_login;
1959 END IF;
1960 IF (x_tbo_rec.object_version_number = OKL_API.G_MISS_NUM)
1961 THEN
1962 x_tbo_rec.object_version_number := l_tbo_rec.object_version_number;
1963 END IF;
1964 END IF;
1965 RETURN(l_return_status);
1966 END populate_new_record;
1967 -----------------------------------------------
1968 -- Set_Attributes for:OKL_TAX_BASIS_OVERRIDE --
1969 -----------------------------------------------
1970 FUNCTION Set_Attributes (
1971 p_tbo_rec IN tbo_rec_type,
1972 x_tbo_rec OUT NOCOPY tbo_rec_type
1973 ) RETURN VARCHAR2 IS
1974 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1975 BEGIN
1976 x_tbo_rec := p_tbo_rec;
1977 x_tbo_rec.OBJECT_VERSION_NUMBER := p_tbo_rec.OBJECT_VERSION_NUMBER + 1;
1978 RETURN(l_return_status);
1979 END Set_Attributes;
1980 BEGIN
1981 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1982 p_init_msg_list,
1983 '_PVT',
1984 x_return_status);
1985 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1986 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1987 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1988 RAISE OKL_API.G_EXCEPTION_ERROR;
1989 END IF;
1990 --- Setting item attributes
1991 l_return_status := Set_Attributes(
1992 p_tbo_rec, -- IN
1993 l_tbo_rec); -- OUT
1994 --- If any errors happen abort API
1995 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1996 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1997 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1998 RAISE OKL_API.G_EXCEPTION_ERROR;
1999 END IF;
2000 l_return_status := populate_new_record(l_tbo_rec, l_def_tbo_rec);
2001 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2002 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2003 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2004 RAISE OKL_API.G_EXCEPTION_ERROR;
2005 END IF;
2006 UPDATE OKL_TAX_BASIS_OVERRIDE
2007 SET FMA_ID = l_def_tbo_rec.fma_id,
2008 PROGRAM_ID = l_def_tbo_rec.program_id,
2009 REQUEST_ID = l_def_tbo_rec.request_id,
2010 PROGRAM_APPLICATION_ID = l_def_tbo_rec.program_application_id,
2011 PROGRAM_UPDATE_DATE = l_def_tbo_rec.program_update_date,
2012 ATTRIBUTE_CATEGORY = l_def_tbo_rec.attribute_category,
2013 ATTRIBUTE1 = l_def_tbo_rec.attribute1,
2014 ATTRIBUTE2 = l_def_tbo_rec.attribute2,
2015 ATTRIBUTE3 = l_def_tbo_rec.attribute3,
2016 ATTRIBUTE4 = l_def_tbo_rec.attribute4,
2017 ATTRIBUTE5 = l_def_tbo_rec.attribute5,
2018 ATTRIBUTE6 = l_def_tbo_rec.attribute6,
2019 ATTRIBUTE7 = l_def_tbo_rec.attribute7,
2020 ATTRIBUTE8 = l_def_tbo_rec.attribute8,
2021 ATTRIBUTE9 = l_def_tbo_rec.attribute9,
2022 ATTRIBUTE10 = l_def_tbo_rec.attribute10,
2023 ATTRIBUTE11 = l_def_tbo_rec.attribute11,
2024 ATTRIBUTE12 = l_def_tbo_rec.attribute12,
2025 ATTRIBUTE13 = l_def_tbo_rec.attribute13,
2026 ATTRIBUTE14 = l_def_tbo_rec.attribute14,
2027 ATTRIBUTE15 = l_def_tbo_rec.attribute15,
2028 CREATED_BY = l_def_tbo_rec.created_by,
2029 CREATION_DATE = l_def_tbo_rec.creation_date,
2030 LAST_UPDATED_BY = l_def_tbo_rec.last_updated_by,
2031 LAST_UPDATE_DATE = l_def_tbo_rec.last_update_date,
2032 LAST_UPDATE_LOGIN = l_def_tbo_rec.last_update_login,
2033 OBJECT_VERSION_NUMBER = l_def_tbo_rec.object_version_number
2034 WHERE ORG_ID = l_def_tbo_rec.org_id AND TRY_ID = l_def_tbo_rec.try_id;
2035
2036 x_tbo_rec := l_tbo_rec;
2037 x_return_status := l_return_status;
2038 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2039 EXCEPTION
2040 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2041 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2042 (
2043 l_api_name,
2044 G_PKG_NAME,
2045 'OKL_API.G_RET_STS_ERROR',
2046 x_msg_count,
2047 x_msg_data,
2048 '_PVT'
2049 );
2050 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2051 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2052 (
2053 l_api_name,
2054 G_PKG_NAME,
2055 'OKL_API.G_RET_STS_UNEXP_ERROR',
2056 x_msg_count,
2057 x_msg_data,
2058 '_PVT'
2059 );
2060 WHEN OTHERS THEN
2061 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2062 (
2063 l_api_name,
2064 G_PKG_NAME,
2065 'OTHERS',
2066 x_msg_count,
2067 x_msg_data,
2068 '_PVT'
2069 );
2070 END update_row;
2071 ---------------------------------------------
2072 -- update_row for:OKL_TAX_BASIS_OVERRIDE_V --
2073 ---------------------------------------------
2074 PROCEDURE update_row(
2075 p_api_version IN NUMBER,
2076 p_init_msg_list IN VARCHAR2,
2077 x_return_status OUT NOCOPY VARCHAR2,
2078 x_msg_count OUT NOCOPY NUMBER,
2079 x_msg_data OUT NOCOPY VARCHAR2,
2080 p_tbov_rec IN tbov_rec_type,
2081 x_tbov_rec OUT NOCOPY tbov_rec_type) IS
2082
2083 l_api_version CONSTANT NUMBER := 1;
2084 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2085 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2086 l_tbov_rec tbov_rec_type := p_tbov_rec;
2087 l_def_tbov_rec tbov_rec_type;
2088 l_db_tbov_rec tbov_rec_type;
2089 l_tbo_rec tbo_rec_type;
2090 lx_tbo_rec tbo_rec_type;
2091 -------------------------------
2092 -- FUNCTION fill_who_columns --
2093 -------------------------------
2094 FUNCTION fill_who_columns (
2095 p_tbov_rec IN tbov_rec_type
2096 ) RETURN tbov_rec_type IS
2097 l_tbov_rec tbov_rec_type := p_tbov_rec;
2098 BEGIN
2099 l_tbov_rec.LAST_UPDATE_DATE := SYSDATE;
2100 l_tbov_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2101 l_tbov_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2102 RETURN(l_tbov_rec);
2103 END fill_who_columns;
2104 ----------------------------------
2105 -- FUNCTION populate_new_record --
2106 ----------------------------------
2107 FUNCTION populate_new_record (
2108 p_tbov_rec IN tbov_rec_type,
2109 x_tbov_rec OUT NOCOPY tbov_rec_type
2110 ) RETURN VARCHAR2 IS
2111 l_row_notfound BOOLEAN := TRUE;
2112 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2113 BEGIN
2114 x_tbov_rec := p_tbov_rec;
2115 -- Get current database values
2119 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2116 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
2117 -- so it may be verified through LOCK_ROW.
2118 l_db_tbov_rec := get_rec(p_tbov_rec, l_return_status);
2120 IF (x_tbov_rec.try_id = OKL_API.G_MISS_NUM)
2121 THEN
2122 x_tbov_rec.try_id := l_db_tbov_rec.try_id;
2123 END IF;
2124 IF (x_tbov_rec.org_id = OKL_API.G_MISS_NUM)
2125 THEN
2126 x_tbov_rec.org_id := l_db_tbov_rec.org_id;
2127 END IF;
2128
2129 --SECHAWLA : Added code to set Object Version No. because of the locking issue
2130 IF (x_tbov_rec.object_version_number = OKL_API.G_MISS_NUM)
2131 THEN
2132 x_tbov_rec.object_version_number := l_db_tbov_rec.object_version_number;
2133 END IF;
2134
2135
2136 IF (x_tbov_rec.fma_id = OKL_API.G_MISS_NUM)
2137 THEN
2138 x_tbov_rec.fma_id := l_db_tbov_rec.fma_id;
2139 END IF;
2140 IF (x_tbov_rec.program_id = OKL_API.G_MISS_NUM)
2141 THEN
2142 x_tbov_rec.program_id := l_db_tbov_rec.program_id;
2143 END IF;
2144 IF (x_tbov_rec.request_id = OKL_API.G_MISS_NUM)
2145 THEN
2146 x_tbov_rec.request_id := l_db_tbov_rec.request_id;
2147 END IF;
2148 IF (x_tbov_rec.program_application_id = OKL_API.G_MISS_NUM)
2149 THEN
2150 x_tbov_rec.program_application_id := l_db_tbov_rec.program_application_id;
2151 END IF;
2152 IF (x_tbov_rec.program_update_date = OKL_API.G_MISS_DATE)
2153 THEN
2154 x_tbov_rec.program_update_date := l_db_tbov_rec.program_update_date;
2155 END IF;
2156 IF (x_tbov_rec.attribute_category = OKL_API.G_MISS_CHAR)
2157 THEN
2158 x_tbov_rec.attribute_category := l_db_tbov_rec.attribute_category;
2159 END IF;
2160 IF (x_tbov_rec.attribute1 = OKL_API.G_MISS_CHAR)
2161 THEN
2162 x_tbov_rec.attribute1 := l_db_tbov_rec.attribute1;
2163 END IF;
2164 IF (x_tbov_rec.attribute2 = OKL_API.G_MISS_CHAR)
2165 THEN
2166 x_tbov_rec.attribute2 := l_db_tbov_rec.attribute2;
2167 END IF;
2168 IF (x_tbov_rec.attribute3 = OKL_API.G_MISS_CHAR)
2169 THEN
2170 x_tbov_rec.attribute3 := l_db_tbov_rec.attribute3;
2171 END IF;
2172 IF (x_tbov_rec.attribute4 = OKL_API.G_MISS_CHAR)
2173 THEN
2174 x_tbov_rec.attribute4 := l_db_tbov_rec.attribute4;
2175 END IF;
2176 IF (x_tbov_rec.attribute5 = OKL_API.G_MISS_CHAR)
2177 THEN
2178 x_tbov_rec.attribute5 := l_db_tbov_rec.attribute5;
2179 END IF;
2180 IF (x_tbov_rec.attribute6 = OKL_API.G_MISS_CHAR)
2181 THEN
2182 x_tbov_rec.attribute6 := l_db_tbov_rec.attribute6;
2183 END IF;
2184 IF (x_tbov_rec.attribute7 = OKL_API.G_MISS_CHAR)
2185 THEN
2186 x_tbov_rec.attribute7 := l_db_tbov_rec.attribute7;
2187 END IF;
2188 IF (x_tbov_rec.attribute8 = OKL_API.G_MISS_CHAR)
2189 THEN
2190 x_tbov_rec.attribute8 := l_db_tbov_rec.attribute8;
2191 END IF;
2192 IF (x_tbov_rec.attribute9 = OKL_API.G_MISS_CHAR)
2193 THEN
2194 x_tbov_rec.attribute9 := l_db_tbov_rec.attribute9;
2195 END IF;
2196 IF (x_tbov_rec.attribute10 = OKL_API.G_MISS_CHAR)
2197 THEN
2198 x_tbov_rec.attribute10 := l_db_tbov_rec.attribute10;
2199 END IF;
2200 IF (x_tbov_rec.attribute11 = OKL_API.G_MISS_CHAR)
2201 THEN
2202 x_tbov_rec.attribute11 := l_db_tbov_rec.attribute11;
2203 END IF;
2204 IF (x_tbov_rec.attribute12 = OKL_API.G_MISS_CHAR)
2205 THEN
2206 x_tbov_rec.attribute12 := l_db_tbov_rec.attribute12;
2207 END IF;
2208 IF (x_tbov_rec.attribute13 = OKL_API.G_MISS_CHAR)
2209 THEN
2210 x_tbov_rec.attribute13 := l_db_tbov_rec.attribute13;
2211 END IF;
2212 IF (x_tbov_rec.attribute14 = OKL_API.G_MISS_CHAR)
2213 THEN
2214 x_tbov_rec.attribute14 := l_db_tbov_rec.attribute14;
2215 END IF;
2216 IF (x_tbov_rec.attribute15 = OKL_API.G_MISS_CHAR)
2217 THEN
2218 x_tbov_rec.attribute15 := l_db_tbov_rec.attribute15;
2219 END IF;
2220 IF (x_tbov_rec.created_by = OKL_API.G_MISS_NUM)
2221 THEN
2222 x_tbov_rec.created_by := l_db_tbov_rec.created_by;
2223 END IF;
2224 IF (x_tbov_rec.creation_date = OKL_API.G_MISS_DATE)
2225 THEN
2226 x_tbov_rec.creation_date := l_db_tbov_rec.creation_date;
2227 END IF;
2228 IF (x_tbov_rec.last_updated_by = OKL_API.G_MISS_NUM)
2229 THEN
2230 x_tbov_rec.last_updated_by := l_db_tbov_rec.last_updated_by;
2231 END IF;
2232 IF (x_tbov_rec.last_update_date = OKL_API.G_MISS_DATE)
2233 THEN
2234 x_tbov_rec.last_update_date := l_db_tbov_rec.last_update_date;
2235 END IF;
2236 IF (x_tbov_rec.last_update_login = OKL_API.G_MISS_NUM)
2237 THEN
2238 x_tbov_rec.last_update_login := l_db_tbov_rec.last_update_login;
2239 END IF;
2240 END IF;
2241 RETURN(l_return_status);
2242 END populate_new_record;
2246 FUNCTION Set_Attributes (
2243 -------------------------------------------------
2244 -- Set_Attributes for:OKL_TAX_BASIS_OVERRIDE_V --
2245 -------------------------------------------------
2247 p_tbov_rec IN tbov_rec_type,
2248 x_tbov_rec OUT NOCOPY tbov_rec_type
2249 ) RETURN VARCHAR2 IS
2250 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2251 BEGIN
2252 x_tbov_rec := p_tbov_rec;
2253 RETURN(l_return_status);
2254 END Set_Attributes;
2255 BEGIN
2256 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2257 G_PKG_NAME,
2258 p_init_msg_list,
2259 l_api_version,
2260 p_api_version,
2261 '_PVT',
2262 x_return_status);
2263 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2264 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2265 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2266 RAISE OKL_API.G_EXCEPTION_ERROR;
2267 END IF;
2268 --- Setting item attributes
2269 l_return_status := Set_Attributes(
2270 p_tbov_rec, -- IN
2271 x_tbov_rec); -- OUT
2272 --- If any errors happen abort API
2273 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2274 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2275 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2276 RAISE OKL_API.G_EXCEPTION_ERROR;
2277 END IF;
2278 l_return_status := populate_new_record(l_tbov_rec, l_def_tbov_rec);
2279 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2280 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2281 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2282 RAISE OKL_API.G_EXCEPTION_ERROR;
2283 END IF;
2284 l_def_tbov_rec := fill_who_columns(l_def_tbov_rec);
2285 --- Validate all non-missing attributes (Item Level Validation)
2286 l_return_status := Validate_Attributes(l_def_tbov_rec);
2287 --- If any errors happen abort API
2288 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2289 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2290 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2291 RAISE OKL_API.G_EXCEPTION_ERROR;
2292 END IF;
2293
2294 /* l_return_status := Validate_Record(l_def_tbov_rec, l_db_tbov_rec);
2295 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2296 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2297 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2298 RAISE OKL_API.G_EXCEPTION_ERROR;
2299 END IF;*/
2300
2301 -- Lock the Record
2302 lock_row(
2303 p_api_version => p_api_version,
2304 p_init_msg_list => p_init_msg_list,
2305 x_return_status => l_return_status,
2306 x_msg_count => x_msg_count,
2307 x_msg_data => x_msg_data,
2308 p_tbov_rec => l_def_tbov_rec); --p_tbov_rec); -- SECHAWLA Changed to pass l_def_tbov_rec becoz of locking issue
2309 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2310 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2311 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2312 RAISE OKL_API.G_EXCEPTION_ERROR;
2313 END IF;
2314
2315 -----------------------------------------
2316 -- Move VIEW record to "Child" records --
2317 -----------------------------------------
2318 migrate(l_def_tbov_rec, l_tbo_rec);
2319 -----------------------------------------------
2320 -- Call the UPDATE_ROW for each child record --
2321 -----------------------------------------------
2322 update_row(
2323 p_init_msg_list,
2324 l_return_status,
2325 x_msg_count,
2326 x_msg_data,
2327 l_tbo_rec,
2328 lx_tbo_rec
2329 );
2330 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2331 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2332 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2333 RAISE OKL_API.G_EXCEPTION_ERROR;
2334 END IF;
2335 migrate(lx_tbo_rec, l_def_tbov_rec);
2336 x_tbov_rec := l_def_tbov_rec;
2337 x_return_status := l_return_status;
2338 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2339 EXCEPTION
2340 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2341 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2342 (
2343 l_api_name,
2344 G_PKG_NAME,
2345 'OKL_API.G_RET_STS_ERROR',
2346 x_msg_count,
2347 x_msg_data,
2348 '_PVT'
2349 );
2350 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2351 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2352 (
2353 l_api_name,
2354 G_PKG_NAME,
2355 'OKL_API.G_RET_STS_UNEXP_ERROR',
2356 x_msg_count,
2357 x_msg_data,
2358 '_PVT'
2359 );
2360 WHEN OTHERS THEN
2361 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2362 (
2363 l_api_name,
2364 G_PKG_NAME,
2365 'OTHERS',
2366 x_msg_count,
2367 x_msg_data,
2368 '_PVT'
2369 );
2370 END update_row;
2371 ----------------------------------------
2372 -- PL/SQL TBL update_row for:tbov_tbl --
2373 ----------------------------------------
2374 PROCEDURE update_row(
2375 p_api_version IN NUMBER,
2376 p_init_msg_list IN VARCHAR2,
2377 x_return_status OUT NOCOPY VARCHAR2,
2378 x_msg_count OUT NOCOPY NUMBER,
2379 x_msg_data OUT NOCOPY VARCHAR2,
2380 p_tbov_tbl IN tbov_tbl_type,
2381 x_tbov_tbl OUT NOCOPY tbov_tbl_type,
2382 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2383
2384 l_api_version CONSTANT NUMBER := 1;
2385 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
2386 i NUMBER := 0;
2387 BEGIN
2388 OKL_API.init_msg_list(p_init_msg_list);
2389 -- Make sure PL/SQL table has records in it before passing
2390 IF (p_tbov_tbl.COUNT > 0) THEN
2391 i := p_tbov_tbl.FIRST;
2392 LOOP
2393 DECLARE
2394 l_error_rec OKL_API.ERROR_REC_TYPE;
2395 BEGIN
2396 l_error_rec.api_name := l_api_name;
2397 l_error_rec.api_package := G_PKG_NAME;
2398 l_error_rec.idx := i;
2399 update_row (
2400 p_api_version => p_api_version,
2401 p_init_msg_list => OKL_API.G_FALSE,
2402 x_return_status => l_error_rec.error_type,
2403 x_msg_count => l_error_rec.msg_count,
2404 x_msg_data => l_error_rec.msg_data,
2405 p_tbov_rec => p_tbov_tbl(i),
2406 x_tbov_rec => x_tbov_tbl(i));
2407 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2408 l_error_rec.sqlcode := SQLCODE;
2409 load_error_tbl(l_error_rec, px_error_tbl);
2410 ELSE
2411 x_msg_count := l_error_rec.msg_count;
2412 x_msg_data := l_error_rec.msg_data;
2413 END IF;
2414 EXCEPTION
2415 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2416 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2417 l_error_rec.sqlcode := SQLCODE;
2418 load_error_tbl(l_error_rec, px_error_tbl);
2419 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2420 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2421 l_error_rec.sqlcode := SQLCODE;
2422 load_error_tbl(l_error_rec, px_error_tbl);
2423 WHEN OTHERS THEN
2424 l_error_rec.error_type := 'OTHERS';
2425 l_error_rec.sqlcode := SQLCODE;
2426 load_error_tbl(l_error_rec, px_error_tbl);
2427 END;
2428 EXIT WHEN (i = p_tbov_tbl.LAST);
2429 i := p_tbov_tbl.NEXT(i);
2430 END LOOP;
2431 END IF;
2432 -- Loop through the error_tbl to find the error with the highest severity
2433 -- and return it.
2434 x_return_status := find_highest_exception(px_error_tbl);
2435 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2436 EXCEPTION
2437 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2438 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2439 (
2440 l_api_name,
2441 G_PKG_NAME,
2442 'OKL_API.G_RET_STS_ERROR',
2443 x_msg_count,
2444 x_msg_data,
2445 '_PVT'
2446 );
2447 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2448 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2449 (
2450 l_api_name,
2451 G_PKG_NAME,
2452 'OKL_API.G_RET_STS_UNEXP_ERROR',
2453 x_msg_count,
2454 x_msg_data,
2455 '_PVT'
2456 );
2457 WHEN OTHERS THEN
2458 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2459 (
2460 l_api_name,
2461 G_PKG_NAME,
2462 'OTHERS',
2463 x_msg_count,
2464 x_msg_data,
2465 '_PVT'
2466 );
2467 END update_row;
2468
2469 ----------------------------------------
2470 -- PL/SQL TBL update_row for:TBOV_TBL --
2471 ----------------------------------------
2472 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
2473 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
2474 PROCEDURE update_row(
2475 p_api_version IN NUMBER,
2476 p_init_msg_list IN VARCHAR2,
2477 x_return_status OUT NOCOPY VARCHAR2,
2478 x_msg_count OUT NOCOPY NUMBER,
2479 x_msg_data OUT NOCOPY VARCHAR2,
2480 p_tbov_tbl IN tbov_tbl_type,
2481 x_tbov_tbl OUT NOCOPY tbov_tbl_type) IS
2482
2483 l_api_version CONSTANT NUMBER := 1;
2484 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2485 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2486 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2487 BEGIN
2488 OKL_API.init_msg_list(p_init_msg_list);
2489 -- Make sure PL/SQL table has records in it before passing
2490 IF (p_tbov_tbl.COUNT > 0) THEN
2491 update_row (
2492 p_api_version => p_api_version,
2493 p_init_msg_list => OKL_API.G_FALSE,
2494 x_return_status => x_return_status,
2495 x_msg_count => x_msg_count,
2496 x_msg_data => x_msg_data,
2497 p_tbov_tbl => p_tbov_tbl,
2498 x_tbov_tbl => x_tbov_tbl,
2499 px_error_tbl => l_error_tbl);
2500 END IF;
2501 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2502 EXCEPTION
2503 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2504 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2505 (
2506 l_api_name,
2507 G_PKG_NAME,
2508 'OKL_API.G_RET_STS_ERROR',
2509 x_msg_count,
2510 x_msg_data,
2511 '_PVT'
2512 );
2513 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2514 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2515 (
2516 l_api_name,
2517 G_PKG_NAME,
2518 'OKL_API.G_RET_STS_UNEXP_ERROR',
2519 x_msg_count,
2520 x_msg_data,
2521 '_PVT'
2522 );
2523 WHEN OTHERS THEN
2524 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2525 (
2526 l_api_name,
2527 G_PKG_NAME,
2528 'OTHERS',
2529 x_msg_count,
2530 x_msg_data,
2531 '_PVT'
2532 );
2533 END update_row;
2534
2535 ---------------------------------------------------------------------------
2536 -- PROCEDURE delete_row
2537 ---------------------------------------------------------------------------
2538 -------------------------------------------
2539 -- delete_row for:OKL_TAX_BASIS_OVERRIDE --
2540 -------------------------------------------
2541 PROCEDURE delete_row(
2542 p_init_msg_list IN VARCHAR2,
2543 x_return_status OUT NOCOPY VARCHAR2,
2544 x_msg_count OUT NOCOPY NUMBER,
2545 x_msg_data OUT NOCOPY VARCHAR2,
2546 p_tbo_rec IN tbo_rec_type) IS
2547
2548 l_api_version CONSTANT NUMBER := 1;
2549 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
2550 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2551 l_tbo_rec tbo_rec_type := p_tbo_rec;
2552 l_row_notfound BOOLEAN := TRUE;
2553 BEGIN
2554 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2555 p_init_msg_list,
2556 '_PVT',
2557 x_return_status);
2558 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2559 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2560 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2561 RAISE OKL_API.G_EXCEPTION_ERROR;
2562 END IF;
2563
2564 DELETE FROM OKL_TAX_BASIS_OVERRIDE
2565 WHERE ORG_ID = p_tbo_rec.org_id
2566 AND TRY_ID = p_tbo_rec.try_id;
2567
2568 x_return_status := l_return_status;
2569 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2570 EXCEPTION
2571 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2572 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2573 (
2574 l_api_name,
2575 G_PKG_NAME,
2576 'OKL_API.G_RET_STS_ERROR',
2577 x_msg_count,
2578 x_msg_data,
2579 '_PVT'
2580 );
2581 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2582 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2583 (
2584 l_api_name,
2585 G_PKG_NAME,
2586 'OKL_API.G_RET_STS_UNEXP_ERROR',
2587 x_msg_count,
2588 x_msg_data,
2589 '_PVT'
2590 );
2591 WHEN OTHERS THEN
2592 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2593 (
2594 l_api_name,
2595 G_PKG_NAME,
2596 'OTHERS',
2597 x_msg_count,
2598 x_msg_data,
2599 '_PVT'
2600 );
2601 END delete_row;
2602 ---------------------------------------------
2603 -- delete_row for:OKL_TAX_BASIS_OVERRIDE_V --
2604 ---------------------------------------------
2605 PROCEDURE delete_row(
2606 p_api_version IN NUMBER,
2607 p_init_msg_list IN VARCHAR2,
2608 x_return_status OUT NOCOPY VARCHAR2,
2609 x_msg_count OUT NOCOPY NUMBER,
2610 x_msg_data OUT NOCOPY VARCHAR2,
2611 p_tbov_rec IN tbov_rec_type) IS
2612
2613 l_api_version CONSTANT NUMBER := 1;
2614 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
2615 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2616 l_tbov_rec tbov_rec_type := p_tbov_rec;
2617 l_tbo_rec tbo_rec_type;
2618 BEGIN
2619 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2620 G_PKG_NAME,
2621 p_init_msg_list,
2622 l_api_version,
2623 p_api_version,
2624 '_PVT',
2625 x_return_status);
2626 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2627 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2628 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2629 RAISE OKL_API.G_EXCEPTION_ERROR;
2630 END IF;
2631 -----------------------------------------
2632 -- Move VIEW record to "Child" records --
2633 -----------------------------------------
2634 migrate(l_tbov_rec, l_tbo_rec);
2635 -----------------------------------------------
2636 -- Call the DELETE_ROW for each child record --
2637 -----------------------------------------------
2638 delete_row(
2639 p_init_msg_list,
2640 l_return_status,
2641 x_msg_count,
2642 x_msg_data,
2643 l_tbo_rec
2644 );
2645 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2646 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2647 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2648 RAISE OKL_API.G_EXCEPTION_ERROR;
2649 END IF;
2650 x_return_status := l_return_status;
2651 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2652 EXCEPTION
2653 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2654 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2655 (
2656 l_api_name,
2657 G_PKG_NAME,
2658 'OKL_API.G_RET_STS_ERROR',
2659 x_msg_count,
2660 x_msg_data,
2661 '_PVT'
2662 );
2663 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2664 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2665 (
2666 l_api_name,
2667 G_PKG_NAME,
2668 'OKL_API.G_RET_STS_UNEXP_ERROR',
2669 x_msg_count,
2670 x_msg_data,
2671 '_PVT'
2672 );
2673 WHEN OTHERS THEN
2674 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2675 (
2676 l_api_name,
2677 G_PKG_NAME,
2678 'OTHERS',
2679 x_msg_count,
2680 x_msg_data,
2681 '_PVT'
2682 );
2683 END delete_row;
2684 --------------------------------------------------------
2685 -- PL/SQL TBL delete_row for:OKL_TAX_BASIS_OVERRIDE_V --
2686 --------------------------------------------------------
2687 PROCEDURE delete_row(
2688 p_api_version IN NUMBER,
2689 p_init_msg_list IN VARCHAR2,
2690 x_return_status OUT NOCOPY VARCHAR2,
2691 x_msg_count OUT NOCOPY NUMBER,
2692 x_msg_data OUT NOCOPY VARCHAR2,
2693 p_tbov_tbl IN tbov_tbl_type,
2694 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2695
2696 l_api_version CONSTANT NUMBER := 1;
2697 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
2698 i NUMBER := 0;
2699 BEGIN
2700 OKL_API.init_msg_list(p_init_msg_list);
2701 -- Make sure PL/SQL table has records in it before passing
2702 IF (p_tbov_tbl.COUNT > 0) THEN
2703 i := p_tbov_tbl.FIRST;
2704 LOOP
2705 DECLARE
2706 l_error_rec OKL_API.ERROR_REC_TYPE;
2707 BEGIN
2708 l_error_rec.api_name := l_api_name;
2709 l_error_rec.api_package := G_PKG_NAME;
2710 l_error_rec.idx := i;
2711 delete_row (
2712 p_api_version => p_api_version,
2713 p_init_msg_list => OKL_API.G_FALSE,
2714 x_return_status => l_error_rec.error_type,
2715 x_msg_count => l_error_rec.msg_count,
2716 x_msg_data => l_error_rec.msg_data,
2717 p_tbov_rec => p_tbov_tbl(i));
2718 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2719 l_error_rec.sqlcode := SQLCODE;
2720 load_error_tbl(l_error_rec, px_error_tbl);
2721 ELSE
2722 x_msg_count := l_error_rec.msg_count;
2723 x_msg_data := l_error_rec.msg_data;
2724 END IF;
2725 EXCEPTION
2726 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2727 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2728 l_error_rec.sqlcode := SQLCODE;
2729 load_error_tbl(l_error_rec, px_error_tbl);
2730 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2731 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2732 l_error_rec.sqlcode := SQLCODE;
2733 load_error_tbl(l_error_rec, px_error_tbl);
2734 WHEN OTHERS THEN
2735 l_error_rec.error_type := 'OTHERS';
2736 l_error_rec.sqlcode := SQLCODE;
2737 load_error_tbl(l_error_rec, px_error_tbl);
2738 END;
2739 EXIT WHEN (i = p_tbov_tbl.LAST);
2740 i := p_tbov_tbl.NEXT(i);
2741 END LOOP;
2742 END IF;
2743 -- Loop through the error_tbl to find the error with the highest severity
2744 -- and return it.
2745 x_return_status := find_highest_exception(px_error_tbl);
2746 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2747 EXCEPTION
2748 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2749 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2750 (
2751 l_api_name,
2752 G_PKG_NAME,
2753 'OKL_API.G_RET_STS_ERROR',
2754 x_msg_count,
2755 x_msg_data,
2756 '_PVT'
2757 );
2758 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2759 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2760 (
2761 l_api_name,
2762 G_PKG_NAME,
2763 'OKL_API.G_RET_STS_UNEXP_ERROR',
2764 x_msg_count,
2765 x_msg_data,
2766 '_PVT'
2767 );
2768 WHEN OTHERS THEN
2769 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2770 (
2771 l_api_name,
2772 G_PKG_NAME,
2773 'OTHERS',
2774 x_msg_count,
2775 x_msg_data,
2776 '_PVT'
2777 );
2778 END delete_row;
2779
2780 --------------------------------------------------------
2781 -- PL/SQL TBL delete_row for:OKL_TAX_BASIS_OVERRIDE_V --
2782 --------------------------------------------------------
2783 PROCEDURE delete_row(
2784 p_api_version IN NUMBER,
2785 p_init_msg_list IN VARCHAR2,
2786 x_return_status OUT NOCOPY VARCHAR2,
2787 x_msg_count OUT NOCOPY NUMBER,
2788 x_msg_data OUT NOCOPY VARCHAR2,
2789 p_tbov_tbl IN tbov_tbl_type) IS
2790
2791 l_api_version CONSTANT NUMBER := 1;
2792 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
2793 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2794 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2795 BEGIN
2796 OKL_API.init_msg_list(p_init_msg_list);
2797 -- Make sure PL/SQL table has records in it before passing
2798 IF (p_tbov_tbl.COUNT > 0) THEN
2799 delete_row (
2800 p_api_version => p_api_version,
2801 p_init_msg_list => OKL_API.G_FALSE,
2802 x_return_status => x_return_status,
2803 x_msg_count => x_msg_count,
2804 x_msg_data => x_msg_data,
2805 p_tbov_tbl => p_tbov_tbl,
2806 px_error_tbl => l_error_tbl);
2807 END IF;
2808 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2809 EXCEPTION
2810 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2811 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2812 (
2813 l_api_name,
2814 G_PKG_NAME,
2815 'OKL_API.G_RET_STS_ERROR',
2816 x_msg_count,
2817 x_msg_data,
2818 '_PVT'
2819 );
2820 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2821 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2822 (
2823 l_api_name,
2824 G_PKG_NAME,
2825 'OKL_API.G_RET_STS_UNEXP_ERROR',
2826 x_msg_count,
2827 x_msg_data,
2828 '_PVT'
2829 );
2830 WHEN OTHERS THEN
2831 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2832 (
2833 l_api_name,
2834 G_PKG_NAME,
2835 'OTHERS',
2836 x_msg_count,
2837 x_msg_data,
2838 '_PVT'
2839 );
2840 END delete_row;
2841
2842 END OKL_TBO_PVT;