[Home] [Help]
PACKAGE BODY: APPS.OKL_QAB_PVT
Source
1 PACKAGE BODY OKL_QAB_PVT AS
2 /* $Header: OKLSQABB.pls 120.5 2006/07/13 13:00:22 adagur noship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6 PROCEDURE load_error_tbl (
7 px_error_rec IN OUT NOCOPY OKC_API.ERROR_REC_TYPE,
8 px_error_tbl IN OUT NOCOPY OKC_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 OKC_API.ERROR_TBL_TYPE, and returns it.
41 FUNCTION find_highest_exception(
42 p_error_tbl IN OKC_API.ERROR_TBL_TYPE
43 ) RETURN VARCHAR2 IS
44 l_return_status VARCHAR2(1) := OKC_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 <> OKC_API.G_RET_STS_SUCCESS) THEN
51 IF (l_return_status <> OKC_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_TXD_QTE_ANTCPT_BILL_V
95 ---------------------------------------------------------------------------
96 FUNCTION get_rec (
97 p_qabv_rec IN qabv_rec_type,
98 x_no_data_found OUT NOCOPY BOOLEAN
99 ) RETURN qabv_rec_type IS
100 CURSOR okl_qabv_pk_csr (p_id IN NUMBER) IS
101 SELECT
102 ID,
103 OBJECT_VERSION_NUMBER,
104 KHR_ID,
105 QTE_ID,
106 KLE_ID,
107 STY_ID,
108 SEL_DATE, -- rmunjulu EDAT ADDED
109 AMOUNT,
110 ORG_ID,
111 REQUEST_ID,
112 PROGRAM_APPLICATION_ID,
113 PROGRAM_ID,
114 PROGRAM_UPDATE_DATE,
115 ATTRIBUTE_CATEGORY,
116 ATTRIBUTE1,
117 ATTRIBUTE2,
118 ATTRIBUTE3,
119 ATTRIBUTE4,
120 ATTRIBUTE5,
121 ATTRIBUTE6,
122 ATTRIBUTE7,
123 ATTRIBUTE8,
124 ATTRIBUTE9,
125 ATTRIBUTE10,
126 ATTRIBUTE11,
127 ATTRIBUTE12,
128 ATTRIBUTE13,
129 ATTRIBUTE14,
130 ATTRIBUTE15,
131 CREATED_BY,
132 CREATION_DATE,
133 LAST_UPDATED_BY,
134 LAST_UPDATE_DATE,
135 LAST_UPDATE_LOGIN,
136 CURRENCY_CODE,
137 CURRENCY_CONVERSION_CODE,
138 CURRENCY_CONVERSION_TYPE,
139 CURRENCY_CONVERSION_RATE,
140 CURRENCY_CONVERSION_DATE
141 FROM OKL_TXD_QTE_ANTCPT_BILL
142 WHERE OKL_TXD_QTE_ANTCPT_BILL.id = p_id;
143 l_okl_qabv_pk okl_qabv_pk_csr%ROWTYPE;
144 l_qabv_rec qabv_rec_type;
145 BEGIN
146 x_no_data_found := TRUE;
147 -- Get current database values
148 OPEN okl_qabv_pk_csr (p_qabv_rec.id);
149 FETCH okl_qabv_pk_csr INTO
150 l_qabv_rec.id,
151 l_qabv_rec.object_version_number,
152 l_qabv_rec.khr_id,
153 l_qabv_rec.qte_id,
154 l_qabv_rec.kle_id,
155 l_qabv_rec.sty_id,
156 l_qabv_rec.sel_date, -- rmunjulu EDAT ADDED
157 l_qabv_rec.amount,
158 l_qabv_rec.org_id,
159 l_qabv_rec.request_id,
160 l_qabv_rec.program_application_id,
161 l_qabv_rec.program_id,
162 l_qabv_rec.program_update_date,
163 l_qabv_rec.attribute_category,
164 l_qabv_rec.attribute1,
165 l_qabv_rec.attribute2,
166 l_qabv_rec.attribute3,
167 l_qabv_rec.attribute4,
168 l_qabv_rec.attribute5,
169 l_qabv_rec.attribute6,
170 l_qabv_rec.attribute7,
171 l_qabv_rec.attribute8,
172 l_qabv_rec.attribute9,
173 l_qabv_rec.attribute10,
174 l_qabv_rec.attribute11,
175 l_qabv_rec.attribute12,
176 l_qabv_rec.attribute13,
177 l_qabv_rec.attribute14,
178 l_qabv_rec.attribute15,
179 l_qabv_rec.created_by,
180 l_qabv_rec.creation_date,
181 l_qabv_rec.last_updated_by,
182 l_qabv_rec.last_update_date,
183 l_qabv_rec.last_update_login,
184 l_qabv_rec.currency_code,
185 l_qabv_rec.currency_conversion_code,
186 l_qabv_rec.currency_conversion_type,
187 l_qabv_rec.currency_conversion_rate,
188 l_qabv_rec.currency_conversion_date;
189 x_no_data_found := okl_qabv_pk_csr%NOTFOUND;
190 CLOSE okl_qabv_pk_csr;
191 RETURN(l_qabv_rec);
192 END get_rec;
193
194 ------------------------------------------------------------------
195 -- This version of get_rec sets error messages if no data found --
196 ------------------------------------------------------------------
197 FUNCTION get_rec (
198 p_qabv_rec IN qabv_rec_type,
199 x_return_status OUT NOCOPY VARCHAR2
200 ) RETURN qabv_rec_type IS
201 l_qabv_rec qabv_rec_type;
202 l_row_notfound BOOLEAN := TRUE;
203 BEGIN
204 x_return_status := OKC_API.G_RET_STS_SUCCESS;
205 l_qabv_rec := get_rec(p_qabv_rec, l_row_notfound);
206 IF (l_row_notfound) THEN
207 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
208 x_return_status := OKC_API.G_RET_STS_ERROR;
209 END IF;
210 RETURN(l_qabv_rec);
211 END get_rec;
212 -----------------------------------------------------------
213 -- So we don't have to pass an "l_row_notfound" variable --
214 -----------------------------------------------------------
215 FUNCTION get_rec (
216 p_qabv_rec IN qabv_rec_type
217 ) RETURN qabv_rec_type IS
218 l_row_not_found BOOLEAN := TRUE;
219 BEGIN
220 RETURN(get_rec(p_qabv_rec, l_row_not_found));
221 END get_rec;
222 ---------------------------------------------------------------------------
223 -- FUNCTION get_rec for: OKL_TXD_QTE_ANTCPT_BILL
224 ---------------------------------------------------------------------------
225 FUNCTION get_rec (
226 p_qab_rec IN qab_rec_type,
227 x_no_data_found OUT NOCOPY BOOLEAN
228 ) RETURN qab_rec_type IS
229 CURSOR okl_txd_qte_antcpt_bill_pk_csr (p_id IN NUMBER) IS
230 SELECT
231 ID,
232 OBJECT_VERSION_NUMBER,
233 KHR_ID,
234 QTE_ID,
235 KLE_ID,
236 STY_ID,
237 SEL_DATE, -- rmunjulu EDAT ADDED
238 AMOUNT,
239 ORG_ID,
240 REQUEST_ID,
241 PROGRAM_APPLICATION_ID,
242 PROGRAM_ID,
243 PROGRAM_UPDATE_DATE,
244 ATTRIBUTE_CATEGORY,
245 ATTRIBUTE1,
246 ATTRIBUTE2,
247 ATTRIBUTE3,
248 ATTRIBUTE4,
249 ATTRIBUTE5,
250 ATTRIBUTE6,
251 ATTRIBUTE7,
252 ATTRIBUTE8,
253 ATTRIBUTE9,
254 ATTRIBUTE10,
255 ATTRIBUTE11,
256 ATTRIBUTE12,
257 ATTRIBUTE13,
258 ATTRIBUTE14,
259 ATTRIBUTE15,
260 CREATED_BY,
261 CREATION_DATE,
262 LAST_UPDATED_BY,
263 LAST_UPDATE_DATE,
264 LAST_UPDATE_LOGIN,
265 CURRENCY_CODE,
266 CURRENCY_CONVERSION_CODE,
267 CURRENCY_CONVERSION_TYPE,
268 CURRENCY_CONVERSION_RATE,
269 CURRENCY_CONVERSION_DATE
270 FROM Okl_Txd_Qte_Antcpt_Bill
271 WHERE okl_txd_qte_antcpt_bill.id = p_id;
272 l_okl_txd_qte_antcpt_bill_pk okl_txd_qte_antcpt_bill_pk_csr%ROWTYPE;
273 l_qab_rec qab_rec_type;
274 BEGIN
275 x_no_data_found := TRUE;
276 -- Get current database values
277 OPEN okl_txd_qte_antcpt_bill_pk_csr (p_qab_rec.id);
278 FETCH okl_txd_qte_antcpt_bill_pk_csr INTO
279 l_qab_rec.id,
280 l_qab_rec.object_version_number,
281 l_qab_rec.khr_id,
282 l_qab_rec.qte_id,
283 l_qab_rec.kle_id,
284 l_qab_rec.sty_id,
285 l_qab_rec.sel_date, -- rmunjulu EDAT ADDED
286 l_qab_rec.amount,
287 l_qab_rec.org_id,
288 l_qab_rec.request_id,
289 l_qab_rec.program_application_id,
290 l_qab_rec.program_id,
291 l_qab_rec.program_update_date,
292 l_qab_rec.attribute_category,
293 l_qab_rec.attribute1,
294 l_qab_rec.attribute2,
295 l_qab_rec.attribute3,
296 l_qab_rec.attribute4,
297 l_qab_rec.attribute5,
298 l_qab_rec.attribute6,
299 l_qab_rec.attribute7,
300 l_qab_rec.attribute8,
301 l_qab_rec.attribute9,
302 l_qab_rec.attribute10,
303 l_qab_rec.attribute11,
304 l_qab_rec.attribute12,
305 l_qab_rec.attribute13,
306 l_qab_rec.attribute14,
307 l_qab_rec.attribute15,
308 l_qab_rec.created_by,
309 l_qab_rec.creation_date,
310 l_qab_rec.last_updated_by,
311 l_qab_rec.last_update_date,
312 l_qab_rec.last_update_login,
313 l_qab_rec.currency_code,
314 l_qab_rec.currency_conversion_code,
315 l_qab_rec.currency_conversion_type,
316 l_qab_rec.currency_conversion_rate,
317 l_qab_rec.currency_conversion_date;
318 x_no_data_found := okl_txd_qte_antcpt_bill_pk_csr%NOTFOUND;
319 CLOSE okl_txd_qte_antcpt_bill_pk_csr;
320 RETURN(l_qab_rec);
321 END get_rec;
322
323 ------------------------------------------------------------------
324 -- This version of get_rec sets error messages if no data found --
325 ------------------------------------------------------------------
326 FUNCTION get_rec (
327 p_qab_rec IN qab_rec_type,
328 x_return_status OUT NOCOPY VARCHAR2
329 ) RETURN qab_rec_type IS
330 l_qab_rec qab_rec_type;
331 l_row_notfound BOOLEAN := TRUE;
332 BEGIN
333 x_return_status := OKC_API.G_RET_STS_SUCCESS;
334 l_qab_rec := get_rec(p_qab_rec, l_row_notfound);
335 IF (l_row_notfound) THEN
336 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'ID');
337 x_return_status := OKC_API.G_RET_STS_ERROR;
338 END IF;
339 RETURN(l_qab_rec);
340 END get_rec;
341 -----------------------------------------------------------
342 -- So we don't have to pass an "l_row_notfound" variable --
343 -----------------------------------------------------------
344 FUNCTION get_rec (
345 p_qab_rec IN qab_rec_type
346 ) RETURN qab_rec_type IS
347 l_row_not_found BOOLEAN := TRUE;
348 BEGIN
349 RETURN(get_rec(p_qab_rec, l_row_not_found));
350 END get_rec;
351 ---------------------------------------------------------------------------
352 -- FUNCTION null_out_defaults for: OKL_TXD_QTE_ANTCPT_BILL_V
353 ---------------------------------------------------------------------------
354 FUNCTION null_out_defaults (
355 p_qabv_rec IN qabv_rec_type
356 ) RETURN qabv_rec_type IS
357 l_qabv_rec qabv_rec_type := p_qabv_rec;
358 BEGIN
359 IF (l_qabv_rec.id = OKC_API.G_MISS_NUM ) THEN
360 l_qabv_rec.id := NULL;
361 END IF;
362 IF (l_qabv_rec.object_version_number = OKC_API.G_MISS_NUM ) THEN
363 l_qabv_rec.object_version_number := NULL;
364 END IF;
365 IF (l_qabv_rec.khr_id = OKC_API.G_MISS_NUM ) THEN
366 l_qabv_rec.khr_id := NULL;
367 END IF;
368 IF (l_qabv_rec.qte_id = OKC_API.G_MISS_NUM ) THEN
369 l_qabv_rec.qte_id := NULL;
370 END IF;
371 IF (l_qabv_rec.kle_id = OKC_API.G_MISS_NUM ) THEN
372 l_qabv_rec.kle_id := NULL;
373 END IF;
374 IF (l_qabv_rec.sty_id = OKC_API.G_MISS_NUM ) THEN
375 l_qabv_rec.sty_id := NULL;
376 END IF;
377 -- rmunjulu EDAT ADDED
378 IF (l_qabv_rec.sel_date = OKC_API.G_MISS_DATE ) THEN
379 l_qabv_rec.sel_date := NULL;
380 END IF;
381 IF (l_qabv_rec.amount = OKC_API.G_MISS_NUM ) THEN
382 l_qabv_rec.amount := NULL;
383 END IF;
384 IF (l_qabv_rec.org_id = OKC_API.G_MISS_NUM ) THEN
385 l_qabv_rec.org_id := NULL;
386 END IF;
387 IF (l_qabv_rec.request_id = OKC_API.G_MISS_NUM ) THEN
388 l_qabv_rec.request_id := NULL;
389 END IF;
390 IF (l_qabv_rec.program_application_id = OKC_API.G_MISS_NUM ) THEN
391 l_qabv_rec.program_application_id := NULL;
392 END IF;
393 IF (l_qabv_rec.program_id = OKC_API.G_MISS_NUM ) THEN
394 l_qabv_rec.program_id := NULL;
395 END IF;
396 IF (l_qabv_rec.program_update_date = OKC_API.G_MISS_DATE ) THEN
397 l_qabv_rec.program_update_date := NULL;
398 END IF;
399 IF (l_qabv_rec.attribute_category = OKC_API.G_MISS_CHAR ) THEN
400 l_qabv_rec.attribute_category := NULL;
401 END IF;
402 IF (l_qabv_rec.attribute1 = OKC_API.G_MISS_CHAR ) THEN
403 l_qabv_rec.attribute1 := NULL;
404 END IF;
405 IF (l_qabv_rec.attribute2 = OKC_API.G_MISS_CHAR ) THEN
406 l_qabv_rec.attribute2 := NULL;
407 END IF;
408 IF (l_qabv_rec.attribute3 = OKC_API.G_MISS_CHAR ) THEN
409 l_qabv_rec.attribute3 := NULL;
410 END IF;
411 IF (l_qabv_rec.attribute4 = OKC_API.G_MISS_CHAR ) THEN
412 l_qabv_rec.attribute4 := NULL;
413 END IF;
414 IF (l_qabv_rec.attribute5 = OKC_API.G_MISS_CHAR ) THEN
415 l_qabv_rec.attribute5 := NULL;
416 END IF;
417 IF (l_qabv_rec.attribute6 = OKC_API.G_MISS_CHAR ) THEN
418 l_qabv_rec.attribute6 := NULL;
419 END IF;
420 IF (l_qabv_rec.attribute7 = OKC_API.G_MISS_CHAR ) THEN
421 l_qabv_rec.attribute7 := NULL;
422 END IF;
423 IF (l_qabv_rec.attribute8 = OKC_API.G_MISS_CHAR ) THEN
424 l_qabv_rec.attribute8 := NULL;
425 END IF;
426 IF (l_qabv_rec.attribute9 = OKC_API.G_MISS_CHAR ) THEN
427 l_qabv_rec.attribute9 := NULL;
428 END IF;
429 IF (l_qabv_rec.attribute10 = OKC_API.G_MISS_CHAR ) THEN
430 l_qabv_rec.attribute10 := NULL;
431 END IF;
432 IF (l_qabv_rec.attribute11 = OKC_API.G_MISS_CHAR ) THEN
433 l_qabv_rec.attribute11 := NULL;
434 END IF;
435 IF (l_qabv_rec.attribute12 = OKC_API.G_MISS_CHAR ) THEN
436 l_qabv_rec.attribute12 := NULL;
437 END IF;
438 IF (l_qabv_rec.attribute13 = OKC_API.G_MISS_CHAR ) THEN
439 l_qabv_rec.attribute13 := NULL;
440 END IF;
441 IF (l_qabv_rec.attribute14 = OKC_API.G_MISS_CHAR ) THEN
442 l_qabv_rec.attribute14 := NULL;
443 END IF;
444 IF (l_qabv_rec.attribute15 = OKC_API.G_MISS_CHAR ) THEN
445 l_qabv_rec.attribute15 := NULL;
446 END IF;
447 IF (l_qabv_rec.created_by = OKC_API.G_MISS_NUM ) THEN
448 l_qabv_rec.created_by := NULL;
449 END IF;
450 IF (l_qabv_rec.creation_date = OKC_API.G_MISS_DATE ) THEN
451 l_qabv_rec.creation_date := NULL;
452 END IF;
453 IF (l_qabv_rec.last_updated_by = OKC_API.G_MISS_NUM ) THEN
454 l_qabv_rec.last_updated_by := NULL;
455 END IF;
456 IF (l_qabv_rec.last_update_date = OKC_API.G_MISS_DATE ) THEN
457 l_qabv_rec.last_update_date := NULL;
458 END IF;
459 IF (l_qabv_rec.last_update_login = OKC_API.G_MISS_NUM ) THEN
460 l_qabv_rec.last_update_login := NULL;
461 END IF;
462 IF (l_qabv_rec.currency_code = OKC_API.G_MISS_CHAR ) THEN
463 l_qabv_rec.currency_code := NULL;
464 END IF;
465 IF (l_qabv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR ) THEN
466 l_qabv_rec.currency_conversion_code := NULL;
467 END IF;
468 IF (l_qabv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR ) THEN
469 l_qabv_rec.currency_conversion_type := NULL;
470 END IF;
471 IF (l_qabv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM ) THEN
472 l_qabv_rec.currency_conversion_rate := NULL;
473 END IF;
474 IF (l_qabv_rec.currency_conversion_date = OKC_API.G_MISS_DATE ) THEN
475 l_qabv_rec.currency_conversion_date := NULL;
476 END IF;
477 RETURN(l_qabv_rec);
478 END null_out_defaults;
479 ---------------------------------
480 -- Validate_Attributes for: ID --
481 ---------------------------------
482 PROCEDURE validate_id(
483 x_return_status OUT NOCOPY VARCHAR2,
484 p_id IN NUMBER) IS
485 BEGIN
486 x_return_status := OKC_API.G_RET_STS_SUCCESS;
487 IF (p_id = OKC_API.G_MISS_NUM OR
488 p_id IS NULL)
489 THEN
490 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'id');
491 x_return_status := OKC_API.G_RET_STS_ERROR;
492 RAISE G_EXCEPTION_HALT_VALIDATION;
493 END IF;
494 EXCEPTION
495 WHEN G_EXCEPTION_HALT_VALIDATION THEN
496 null;
497 WHEN OTHERS THEN
498 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
499 ,p_msg_name => G_UNEXPECTED_ERROR
500 ,p_token1 => G_SQLCODE_TOKEN
501 ,p_token1_value => SQLCODE
502 ,p_token2 => G_SQLERRM_TOKEN
503 ,p_token2_value => SQLERRM);
504 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
505 END validate_id;
506 ----------------------------------------------------
507 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
508 ----------------------------------------------------
509 PROCEDURE validate_object_version_number(
510 x_return_status OUT NOCOPY VARCHAR2,
511 p_object_version_number IN NUMBER) IS
512 BEGIN
513 x_return_status := OKC_API.G_RET_STS_SUCCESS;
514 IF (p_object_version_number = OKC_API.G_MISS_NUM OR
515 p_object_version_number IS NULL)
516 THEN
517 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
518 x_return_status := OKC_API.G_RET_STS_ERROR;
519 RAISE G_EXCEPTION_HALT_VALIDATION;
520 END IF;
521 EXCEPTION
522 WHEN G_EXCEPTION_HALT_VALIDATION THEN
523 null;
524 WHEN OTHERS THEN
525 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
526 ,p_msg_name => G_UNEXPECTED_ERROR
527 ,p_token1 => G_SQLCODE_TOKEN
528 ,p_token1_value => SQLCODE
529 ,p_token2 => G_SQLERRM_TOKEN
530 ,p_token2_value => SQLERRM);
531 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
532 END validate_object_version_number;
533 -------------------------------------
534 -- Validate_Attributes for: KHR_ID --
535 -------------------------------------
536 -- rmunjulu Added code for fkey
537 PROCEDURE validate_khr_id(
538 x_return_status OUT NOCOPY VARCHAR2,
539 p_khr_id IN NUMBER) IS
540
541 -- select the ID of the parent record from the parent
542 -- rmunjulu
543 CURSOR okl_khr_csr (p_khr_id IN NUMBER) IS
544 SELECT 'x'
545 FROM OKC_K_HEADERS_B khr
546 WHERE khr.id = p_khr_id;
547
548 -- rmunjulu
549 l_val VARCHAR2(3);
550 l_invalid_value VARCHAR2(3);
551
552 BEGIN
553 x_return_status := OKC_API.G_RET_STS_SUCCESS;
554 -- rmunjulu
555 l_invalid_value := 'N';
556
557 IF (p_khr_id = OKC_API.G_MISS_NUM OR
558 p_khr_id IS NULL)
559 THEN
560 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'khr_id');
561 x_return_status := OKC_API.G_RET_STS_ERROR;
562 RAISE G_EXCEPTION_HALT_VALIDATION;
563 ELSE
564 -- rmunjulu added condition for fkey
565 OPEN okl_khr_csr(p_khr_id);
566 FETCH okl_khr_csr INTO l_val;
567 IF okl_khr_csr%NOTFOUND THEN
568 l_invalid_value := 'Y';
569 END IF;
570 CLOSE okl_khr_csr;
571 IF l_invalid_value = 'Y' THEN
572 OKC_API.set_message(G_APP_NAME, G_NO_PARENT_RECORD, G_COL_NAME_TOKEN, 'khr_id',
573 G_CHILD_TABLE_TOKEN, 'OKL_TXL_QTE_ANTCPT_BILL_V', G_PARENT_TABLE_TOKEN, 'OKC_K_HEADERS_B');
574 x_return_status := OKC_API.G_RET_STS_ERROR;
575 RAISE G_EXCEPTION_HALT_VALIDATION;
576 END IF;
577 END IF;
578
579 EXCEPTION
580 WHEN G_EXCEPTION_HALT_VALIDATION THEN
581 -- rmunjulu
582 IF okl_khr_csr%ISOPEN THEN
583 CLOSE okl_khr_csr;
584 END IF;
585 null;
586 WHEN OTHERS THEN
587 -- rmunjulu
588 IF okl_khr_csr%ISOPEN THEN
589 CLOSE okl_khr_csr;
590 END IF;
591 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
592 ,p_msg_name => G_UNEXPECTED_ERROR
593 ,p_token1 => G_SQLCODE_TOKEN
594 ,p_token1_value => SQLCODE
595 ,p_token2 => G_SQLERRM_TOKEN
596 ,p_token2_value => SQLERRM);
597 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
598 END validate_khr_id;
599 -------------------------------------
600 -- Validate_Attributes for: QTE_ID --
601 -------------------------------------
602 -- rmunjulu Added code for fkey
603 PROCEDURE validate_qte_id(
604 x_return_status OUT NOCOPY VARCHAR2,
605 p_qte_id IN NUMBER) IS
606
607 -- select the ID of the parent record from the parent
608 -- rmunjulu
609 CURSOR okl_qte_csr (p_qte_id IN NUMBER) IS
610 SELECT 'x'
611 FROM OKL_TRX_QUOTES_B qte
612 WHERE qte.id = p_qte_id;
613
614 -- rmunjulu
615 l_val VARCHAR2(3);
616 l_invalid_value VARCHAR2(3);
617
618 BEGIN
619 x_return_status := OKC_API.G_RET_STS_SUCCESS;
620 -- rmunjulu
621 l_invalid_value := 'N';
622
623 IF (p_qte_id = OKC_API.G_MISS_NUM OR
624 p_qte_id IS NULL)
625 THEN
626 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'qte_id');
627 x_return_status := OKC_API.G_RET_STS_ERROR;
628 RAISE G_EXCEPTION_HALT_VALIDATION;
629 ELSE
630 -- rmunjulu added condition for fkey
631 OPEN okl_qte_csr(p_qte_id);
632 FETCH okl_qte_csr INTO l_val;
633 IF okl_qte_csr%NOTFOUND THEN
634 l_invalid_value := 'Y';
635 END IF;
636 CLOSE okl_qte_csr;
637 IF l_invalid_value = 'Y' THEN
638 OKC_API.set_message(G_APP_NAME, G_NO_PARENT_RECORD, G_COL_NAME_TOKEN, 'qte_id',
639 G_CHILD_TABLE_TOKEN, 'OKL_TXL_QTE_ANTCPT_BILL_V', G_PARENT_TABLE_TOKEN, 'OKL_TRX_QUOTES_B');
640 x_return_status := OKC_API.G_RET_STS_ERROR;
641 RAISE G_EXCEPTION_HALT_VALIDATION;
642 END IF;
643 END IF;
644 EXCEPTION
645 WHEN G_EXCEPTION_HALT_VALIDATION THEN
646 -- rmunjulu
647 IF okl_qte_csr%ISOPEN THEN
648 CLOSE okl_qte_csr;
649 END IF;
650 null;
651 WHEN OTHERS THEN
652 -- rmunjulu
653 IF okl_qte_csr%ISOPEN THEN
654 CLOSE okl_qte_csr;
655 END IF;
656 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
657 ,p_msg_name => G_UNEXPECTED_ERROR
658 ,p_token1 => G_SQLCODE_TOKEN
659 ,p_token1_value => SQLCODE
660 ,p_token2 => G_SQLERRM_TOKEN
661 ,p_token2_value => SQLERRM);
662 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
663 END validate_qte_id;
664 -------------------------------------
665 -- Validate_Attributes for: STY_ID --
666 -------------------------------------
667 -- rmunjulu Added code for fkey
668 PROCEDURE validate_sty_id(
669 x_return_status OUT NOCOPY VARCHAR2,
670 p_sty_id IN NUMBER) IS
671
672 -- select the ID of the parent record from the parent
673 -- rmunjulu
674 CURSOR okl_sty_csr (p_sty_id IN NUMBER) IS
675 SELECT 'x'
676 FROM OKL_STRM_TYPE_B sty
677 WHERE sty.id = p_sty_id;
678
679 -- rmunjulu
680 l_val VARCHAR2(3);
681 l_invalid_value VARCHAR2(3);
682
683 BEGIN
684 x_return_status := OKC_API.G_RET_STS_SUCCESS;
685 -- rmunjulu
686 l_invalid_value := 'N';
687
688 IF (p_sty_id = OKC_API.G_MISS_NUM OR
689 p_sty_id IS NULL)
690 THEN
691 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'sty_id');
692 x_return_status := OKC_API.G_RET_STS_ERROR;
693 RAISE G_EXCEPTION_HALT_VALIDATION;
694 ELSE
695 -- rmunjulu added condition for fkey
696 OPEN okl_sty_csr(p_sty_id);
697 FETCH okl_sty_csr INTO l_val;
698 IF okl_sty_csr%NOTFOUND THEN
699 l_invalid_value := 'Y';
700 END IF;
701 CLOSE okl_sty_csr;
702 IF l_invalid_value = 'Y' THEN
703 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE, G_COL_NAME_TOKEN, 'sty_id');
704 x_return_status := OKC_API.G_RET_STS_ERROR;
705 RAISE G_EXCEPTION_HALT_VALIDATION;
706 END IF;
707 END IF;
708 EXCEPTION
709 WHEN G_EXCEPTION_HALT_VALIDATION THEN
710 -- rmunjulu
711 IF okl_sty_csr%ISOPEN THEN
712 CLOSE okl_sty_csr;
713 END IF;
714 null;
715 WHEN OTHERS THEN
716 -- rmunjulu
717 IF okl_sty_csr%ISOPEN THEN
718 CLOSE okl_sty_csr;
719 END IF;
720 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
721 ,p_msg_name => G_UNEXPECTED_ERROR
722 ,p_token1 => G_SQLCODE_TOKEN
723 ,p_token1_value => SQLCODE
724 ,p_token2 => G_SQLERRM_TOKEN
725 ,p_token2_value => SQLERRM);
726 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
727 END validate_sty_id;
728 -------------------------------------
729 -- Validate_Attributes for: AMOUNT --
730 -------------------------------------
731 PROCEDURE validate_amount(
732 x_return_status OUT NOCOPY VARCHAR2,
733 p_amount IN NUMBER) IS
734 BEGIN
735 x_return_status := OKC_API.G_RET_STS_SUCCESS;
736 IF (p_amount = OKC_API.G_MISS_NUM OR
737 p_amount IS NULL)
738 THEN
739 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'amount');
740 x_return_status := OKC_API.G_RET_STS_ERROR;
741 RAISE G_EXCEPTION_HALT_VALIDATION;
742 END IF;
743 EXCEPTION
744 WHEN G_EXCEPTION_HALT_VALIDATION THEN
745 null;
746 WHEN OTHERS THEN
747 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
748 ,p_msg_name => G_UNEXPECTED_ERROR
749 ,p_token1 => G_SQLCODE_TOKEN
750 ,p_token1_value => SQLCODE
751 ,p_token2 => G_SQLERRM_TOKEN
752 ,p_token2_value => SQLERRM);
753 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
754 END validate_amount;
755
756 -------------------------------------
757 -- Validate_Attributes for: KLE_ID --
758 -------------------------------------
759 -- rmunjulu Added this procedure to check fkey of kle_id
760 PROCEDURE validate_kle_id(
761 x_return_status OUT NOCOPY VARCHAR2,
762 p_kle_id IN NUMBER) IS
763
764 -- select the ID of the parent record from the parent
765 -- rmunjulu
766 CURSOR okl_kle_csr (p_kle_id IN NUMBER) IS
767 SELECT 'x'
768 FROM OKC_K_LINES_B kle
769 WHERE kle.id = p_kle_id;
770
771 -- rmunjulu
772 l_val VARCHAR2(3);
773 l_invalid_value VARCHAR2(3);
774
775 BEGIN
776 x_return_status := OKC_API.G_RET_STS_SUCCESS;
777 -- rmunjulu
778 l_invalid_value := 'N';
779
780 IF (p_kle_id <> OKC_API.G_MISS_NUM AND
781 p_kle_id IS NOT NULL)
782 THEN
783 -- rmunjulu added condition for fkey
784 OPEN okl_kle_csr(p_kle_id);
785 FETCH okl_kle_csr INTO l_val;
786 IF okl_kle_csr%NOTFOUND THEN
787 l_invalid_value := 'Y';
788 END IF;
789 CLOSE okl_kle_csr;
790 IF l_invalid_value = 'Y' THEN
791 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE, G_COL_NAME_TOKEN, 'kle_id');
792 x_return_status := OKC_API.G_RET_STS_ERROR;
793 RAISE G_EXCEPTION_HALT_VALIDATION;
794 END IF;
795 END IF;
796 EXCEPTION
797 WHEN G_EXCEPTION_HALT_VALIDATION THEN
798 -- rmunjulu
799 IF okl_kle_csr%ISOPEN THEN
800 CLOSE okl_kle_csr;
801 END IF;
802 null;
803 WHEN OTHERS THEN
804 -- rmunjulu
805 IF okl_kle_csr%ISOPEN THEN
806 CLOSE okl_kle_csr;
807 END IF;
808 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
809 ,p_msg_name => G_UNEXPECTED_ERROR
810 ,p_token1 => G_SQLCODE_TOKEN
811 ,p_token1_value => SQLCODE
812 ,p_token2 => G_SQLERRM_TOKEN
813 ,p_token2_value => SQLERRM);
814 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
815 END validate_kle_id;
816
817 -- Start of comments
818 -- Procedure Name : validate_currency_record
819 -- Description : Used for validation of Currency Code Conversion Coulms
820 -- Business Rules : If transaction currency <> functional currency, then
821 -- conversion columns are mandatory
822 -- Else If transaction currency = functional currency,
823 -- then conversion columns should all be NULL
824 -- Parameters : Record structure of OKL_TXD_QTE_ANTCPT_BILL_V table
825 -- Version : 1.0
826 -- History : 20-Sep-2004 rmunjulu :Added new procedure
827 -- End of comments
828 PROCEDURE validate_currency_record(p_qabv_rec IN qabv_rec_type,
829 x_return_status OUT NOCOPY VARCHAR2) IS
830 BEGIN
831 x_return_status := OKC_API.G_RET_STS_SUCCESS;
832 -- If transaction currency <> functional currency, then conversion columns
833 -- are mandatory
834 IF (p_qabv_rec.currency_code <> p_qabv_rec.currency_conversion_code) THEN
835 IF (p_qabv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR OR
836 p_qabv_rec.currency_conversion_type IS NULL) THEN
837 --SET MESSAGE
838 OKC_API.set_message(p_app_name => G_APP_NAME,
839 p_msg_name => G_REQUIRED_VALUE,
840 p_token1 => G_COL_NAME_TOKEN,
841 p_token1_value => 'currency_conversion_type');
842 x_return_status := OKC_API.G_RET_STS_ERROR;
843 END IF;
844 IF (p_qabv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM OR
845 p_qabv_rec.currency_conversion_rate IS NULL) THEN
846 --SET MESSAGE
847 OKC_API.set_message(p_app_name => G_APP_NAME,
848 p_msg_name => G_REQUIRED_VALUE,
849 p_token1 => G_COL_NAME_TOKEN,
850 p_token1_value => 'currency_conversion_rate');
851 x_return_status := OKC_API.G_RET_STS_ERROR;
852 END IF;
853 IF (p_qabv_rec.currency_conversion_date = OKC_API.G_MISS_DATE OR
854 p_qabv_rec.currency_conversion_date IS NULL) THEN
855 --SET MESSAGE
856 OKC_API.set_message(p_app_name => G_APP_NAME,
857 p_msg_name => G_REQUIRED_VALUE,
858 p_token1 => G_COL_NAME_TOKEN,
859 p_token1_value => 'currency_conversion_date');
860 x_return_status := OKC_API.G_RET_STS_ERROR;
861 END IF;
862 -- Else If transaction currency = functional currency, then conversion columns
863 -- should all be NULL
864 ELSIF (p_qabv_rec.currency_code = p_qabv_rec.currency_conversion_code) THEN
865 IF (p_qabv_rec.currency_conversion_type IS NOT NULL) OR
866 (p_qabv_rec.currency_conversion_rate IS NOT NULL) OR
867 (p_qabv_rec.currency_conversion_date IS NOT NULL) THEN
868 --SET MESSAGE
869 -- Currency conversion columns should be all null
870 IF p_qabv_rec.currency_conversion_rate IS NOT NULL THEN
871 OKC_API.set_message(p_app_name => G_APP_NAME,
872 p_msg_name => G_INVALID_VALUE,
873 p_token1 => G_COL_NAME_TOKEN,
874 p_token1_value => 'currency_conversion_rate');
875 END IF;
876 IF p_qabv_rec.currency_conversion_date IS NOT NULL THEN
877 OKC_API.set_message(p_app_name => G_APP_NAME,
878 p_msg_name => G_INVALID_VALUE,
879 p_token1 => G_COL_NAME_TOKEN,
880 p_token1_value => 'currency_conversion_date');
881 END IF;
882 IF p_qabv_rec.currency_conversion_type IS NOT NULL THEN
883 OKC_API.set_message(p_app_name => G_APP_NAME,
884 p_msg_name => G_INVALID_VALUE,
885 p_token1 => G_COL_NAME_TOKEN,
886 p_token1_value => 'currency_conversion_type');
887 END IF;
888 x_return_status := OKC_API.G_RET_STS_ERROR;
889 END IF;
890 ELSE
891 x_return_status := OKC_API.G_RET_STS_ERROR;
892 END IF;
893 IF x_return_status <> OKC_API.G_RET_STS_SUCCESS THEN
894 RAISE G_EXCEPTION_HALT_VALIDATION;
895 END IF;
896 EXCEPTION
897 WHEN G_EXCEPTION_HALT_VALIDATION THEN
898 x_return_status := OKC_API.G_RET_STS_ERROR;
899 WHEN OTHERS THEN
900 -- store SQL error message on message stack for caller
901 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
902 p_msg_name => g_unexpected_error,
903 p_token1 => g_sqlcode_token,
904 p_token1_value => sqlcode,
905 p_token2 => g_sqlerrm_token,
906 p_token2_value => sqlerrm);
907 -- notify caller of an UNEXPECTED error
908 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
909 END validate_currency_record;
910
911
912 -- Start of comments
913 -- Procedure Name : validate_currency_code
914 -- Description : Validation of Currency Code
915 -- Business Rules :
916 -- Parameters : Record structure of OKL_TXD_QTE_ANTCPT_BILL_V table
917 -- Version : 1.0
918 -- History : 20-Sep-2004 rmunjulu :Added new procedure
919 -- End of comments
920 PROCEDURE validate_currency_code(p_qabv_rec IN qabv_rec_type,
921 x_return_status OUT NOCOPY VARCHAR2) IS
922 l_return_status VARCHAR2(3) := OKC_API.G_TRUE;
923 BEGIN
924 -- initialize return status
925 x_return_status := OKC_API.G_RET_STS_SUCCESS;
926 -- data is required
927 IF (p_qabv_rec.currency_code IS NULL) OR
928 (p_qabv_rec.currency_code = OKC_API.G_MISS_CHAR) THEN
929 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
930 ,p_msg_name => G_REQUIRED_VALUE
931 ,p_token1 => G_COL_NAME_TOKEN
932 ,p_token1_value => 'currency_code');
933
934 -- halt further validation of this column
935 RAISE G_EXCEPTION_HALT_VALIDATION;
936 END IF;
937 -- check from currency values using the generic okl_util.validate_currency_code
938 l_return_status := OKL_ACCOUNTING_UTIL.validate_currency_code(p_qabv_rec.currency_code);
939 IF (l_return_status <> OKC_API.G_TRUE) THEN
940 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
941 p_msg_name => g_invalid_value,
942 p_token1 => g_col_name_token,
943 p_token1_value => 'currency_code');
944 -- halt further validation of this column
945 RAISE G_EXCEPTION_HALT_VALIDATION;
946 END IF;
947 EXCEPTION
948 WHEN G_EXCEPTION_HALT_VALIDATION THEN
949 x_return_status := OKC_API.G_RET_STS_ERROR;
950 WHEN OTHERS THEN
951 -- store SQL error message on message stack for caller
952 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
953 p_msg_name => g_unexpected_error,
954 p_token1 => g_sqlcode_token,
955 p_token1_value => sqlcode,
956 p_token2 => g_sqlerrm_token,
957 p_token2_value => sqlerrm);
958 -- notify caller of an UNEXPECTED error
959 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
960 END validate_currency_code;
961
962
963
964 -- Start of comments
965 -- Procedure Name : validate_currency_con_code
966 -- Description : Validation of Currency Conversion Code
967 -- Business Rules :
968 -- Parameters : Record structure of OKL_TXD_QTE_ANTCPT_BILL_V table
969 -- Version : 1.0
970 -- History : 20-Sep-2004 rmunjulu :Added new procedure
971 -- End of comments
972 PROCEDURE validate_currency_con_code(p_qabv_rec IN qabv_rec_type,
973 x_return_status OUT NOCOPY VARCHAR2) IS
974 l_return_status VARCHAR2(3) := OKC_API.G_TRUE;
975 BEGIN
976 -- initialize return status
977 x_return_status := OKC_API.G_RET_STS_SUCCESS;
978 -- data is required
979 IF (p_qabv_rec.currency_conversion_code IS NULL) OR
980 (p_qabv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR) THEN
981 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
982 ,p_msg_name => G_REQUIRED_VALUE
983 ,p_token1 => G_COL_NAME_TOKEN
984 ,p_token1_value => 'currency_conversion_code');
985 -- halt further validation of this column
986 RAISE G_EXCEPTION_HALT_VALIDATION;
987 END IF;
988 -- check from currency values using the generic okl_util.validate_currency_code
989 l_return_status := OKL_ACCOUNTING_UTIL.validate_currency_code(p_qabv_rec.currency_conversion_code);
990 IF (l_return_status <> OKC_API.G_TRUE) THEN
991 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
992 p_msg_name => g_invalid_value,
993 p_token1 => g_col_name_token,
994 p_token1_value => 'currency_conversion_code');
995 -- halt further validation of this column
996 RAISE G_EXCEPTION_HALT_VALIDATION;
997 END IF;
998 EXCEPTION
999 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1000 x_return_status := OKC_API.G_RET_STS_ERROR;
1001 WHEN OTHERS THEN
1002 -- store SQL error message on message stack for caller
1003 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1004 p_msg_name => g_unexpected_error,
1005 p_token1 => g_sqlcode_token,
1006 p_token1_value => sqlcode,
1007 p_token2 => g_sqlerrm_token,
1008 p_token2_value => sqlerrm);
1009
1010 -- notify caller of an UNEXPECTED error
1011 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1012 END validate_currency_con_code;
1013
1014
1015
1016 -- Start of comments
1017 -- Procedure Name : validate_currency_con_type
1018 -- Description : Validation of Currency Conversion type
1019 -- Business Rules :
1020 -- Parameters : Record structure of OKL_TXD_QTE_ANTCPT_BILL_V table
1021 -- Version : 1.0
1022 -- History : 20-Sep-2004 rmunjulu :Added new procedure
1023 -- End of comments
1024 PROCEDURE validate_currency_con_type(p_qabv_rec IN qabv_rec_type,
1025 x_return_status OUT NOCOPY VARCHAR2) IS
1026 l_return_status VARCHAR2(3) := OKC_API.G_TRUE;
1027 BEGIN
1028 -- initialize return status
1029 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1030 IF (p_qabv_rec.currency_conversion_type <> OKL_API.G_MISS_CHAR AND
1031 p_qabv_rec.currency_conversion_type IS NOT NULL) THEN
1032 -- check from currency values using the generic okl_util.validate_currency_code
1033 l_return_status := OKL_ACCOUNTING_UTIL.validate_currency_con_type(p_qabv_rec.currency_conversion_type);
1034 IF (l_return_status <> OKC_API.G_TRUE) THEN
1035 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1036 p_msg_name => g_invalid_value,
1037 p_token1 => g_col_name_token,
1038 p_token1_value => 'currency_conversion_type');
1039 -- halt further validation of this column
1040 RAISE G_EXCEPTION_HALT_VALIDATION;
1041 END IF;
1042 END IF;
1043 EXCEPTION
1044 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1045 x_return_status := OKC_API.G_RET_STS_ERROR;
1046 WHEN OTHERS THEN
1047 -- store SQL error message on message stack for caller
1048 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1049 p_msg_name => g_unexpected_error,
1050 p_token1 => g_sqlcode_token,
1051 p_token1_value => sqlcode,
1052 p_token2 => g_sqlerrm_token,
1053 p_token2_value => sqlerrm);
1054 -- notify caller of an UNEXPECTED error
1055 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1056 END validate_currency_con_type;
1057
1058
1059 -- Start of comments
1060 -- Procedure Name : validate_org_id
1061 -- Description : Validation of Org_Id
1062 -- Business Rules :
1063 -- Parameters : Record structure of OKL_TXD_QTE_ANTCPT_BILL_V table
1064 -- Version : 1.0
1065 -- History : 20-Sep-2004 rmunjulu :Added new procedure
1066 -- End of comments
1067 PROCEDURE validate_org_id(
1068 x_return_status OUT NOCOPY VARCHAR2,
1069 p_org_id IN NUMBER) IS
1070 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1071 BEGIN
1072 -- initialize return status
1073 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1074
1075 -- check org id validity using the generic function okl_util.check_org_id()
1076 l_return_status := OKL_UTIL.check_org_id (p_org_id);
1077
1078 IF ( l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1079 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1080 p_msg_name => g_invalid_value,
1081 p_token1 => g_col_name_token,
1082 p_token1_value => 'org_id');
1083
1084 -- notify caller of an error
1085 x_return_status := OKC_API.G_RET_STS_ERROR;
1086 raise G_EXCEPTION_HALT_VALIDATION;
1087
1088 ELSIF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1089 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1090 raise G_EXCEPTION_HALT_VALIDATION;
1091
1092 END IF;
1093
1094 EXCEPTION
1095 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1096 -- no processing necessary; validation can continue with the next column
1097 NULL;
1098
1099 WHEN OTHERS THEN
1100 -- store SQL error message on message stack for caller
1101 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1102 p_msg_name => g_unexpected_error,
1103 p_token1 => g_sqlcode_token,
1104 p_token1_value => sqlcode,
1105 p_token2 => g_sqlerrm_token,
1106 p_token2_value => sqlerrm);
1107
1108 -- notify caller of an UNEXPECTED error
1109 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1110
1111 END validate_org_id;
1112
1113 ---------------------------------------------------------------------------
1114 -- FUNCTION Validate_Attributes
1115 ---------------------------------------------------------------------------
1116 -------------------------------------------------------
1117 -- Validate_Attributes for:OKL_TXD_QTE_ANTCPT_BILL_V --
1118 -------------------------------------------------------
1119 FUNCTION Validate_Attributes (
1120 p_qabv_rec IN qabv_rec_type
1121 ) RETURN VARCHAR2 IS
1122 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1123 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1124 BEGIN
1125 -----------------------------
1126 -- Column Level Validation --
1127 -----------------------------
1128 -- ***
1129 -- id
1130 -- ***
1131 validate_id(x_return_status, p_qabv_rec.id);
1132 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1133 l_return_status := x_return_status;
1134 RAISE G_EXCEPTION_HALT_VALIDATION;
1135 END IF;
1136
1137 -- ***
1138 -- object_version_number
1139 -- ***
1140 validate_object_version_number(x_return_status, p_qabv_rec.object_version_number);
1141 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1142 l_return_status := x_return_status;
1143 RAISE G_EXCEPTION_HALT_VALIDATION;
1144 END IF;
1145
1146 -- ***
1147 -- khr_id
1148 -- ***
1149 validate_khr_id(x_return_status, p_qabv_rec.khr_id);
1150 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1151 l_return_status := x_return_status;
1152 RAISE G_EXCEPTION_HALT_VALIDATION;
1153 END IF;
1154
1155 -- ***
1156 -- qte_id
1157 -- ***
1158 validate_qte_id(x_return_status, p_qabv_rec.qte_id);
1159 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1160 l_return_status := x_return_status;
1161 RAISE G_EXCEPTION_HALT_VALIDATION;
1162 END IF;
1163
1164 -- ***
1165 -- sty_id
1166 -- ***
1167 validate_sty_id(x_return_status, p_qabv_rec.sty_id);
1168 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1169 l_return_status := x_return_status;
1170 RAISE G_EXCEPTION_HALT_VALIDATION;
1171 END IF;
1172
1173 -- ***
1174 -- amount
1175 -- ***
1176 validate_amount(x_return_status, p_qabv_rec.amount);
1177 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1178 l_return_status := x_return_status;
1179 RAISE G_EXCEPTION_HALT_VALIDATION;
1180 END IF;
1181
1182 -- rmunjulu Post Tapi Gen Changes Start
1183
1184 validate_org_id(x_return_status => l_return_status,
1185 p_org_id => p_qabv_rec.org_id);
1186 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1187 l_return_status := x_return_status;
1188 RAISE G_EXCEPTION_HALT_VALIDATION;
1189 END IF;
1190
1191 validate_kle_id(x_return_status => x_return_status,
1192 p_kle_id => p_qabv_rec.kle_id);
1193 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1194 l_return_status := x_return_status;
1195 RAISE G_EXCEPTION_HALT_VALIDATION;
1196 END IF;
1197
1198 validate_currency_code(p_qabv_rec => p_qabv_rec,
1199 x_return_status => l_return_status);
1200 -- store the highest degree of error
1201 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1202 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1203 x_return_status := l_return_status;
1204 END IF;
1205 END IF;
1206 validate_currency_con_code(p_qabv_rec => p_qabv_rec,
1207 x_return_status => l_return_status);
1208 -- store the highest degree of error
1209 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1210 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1211 x_return_status := l_return_status;
1212 END IF;
1213 END IF;
1214 validate_currency_con_type(p_qabv_rec => p_qabv_rec,
1215 x_return_status => l_return_status);
1216 -- store the highest degree of error
1217 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1218 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1219 x_return_status := l_return_status;
1220 END IF;
1221 END IF;
1222 -- rmunjulu Post Tapi Gen Changes End
1223
1224 RETURN(l_return_status);
1225 EXCEPTION
1226 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1227 RETURN(l_return_status);
1228 WHEN OTHERS THEN
1229 OKC_API.SET_MESSAGE( p_app_name => G_APP_NAME
1230 ,p_msg_name => G_UNEXPECTED_ERROR
1231 ,p_token1 => G_SQLCODE_TOKEN
1232 ,p_token1_value => SQLCODE
1233 ,p_token2 => G_SQLERRM_TOKEN
1234 ,p_token2_value => SQLERRM);
1235 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1236 RETURN(l_return_status);
1237 END Validate_Attributes;
1238 ---------------------------------------------------------------------------
1239 -- PROCEDURE Validate_Record
1240 ---------------------------------------------------------------------------
1241 ---------------------------------------------------
1242 -- Validate Record for:OKL_TXD_QTE_ANTCPT_BILL_V --
1243 ---------------------------------------------------
1244 FUNCTION Validate_Record (
1245 p_qabv_rec IN qabv_rec_type,
1246 p_db_qabv_rec IN qabv_rec_type
1247 ) RETURN VARCHAR2 IS
1248 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1249 BEGIN
1250 RETURN (l_return_status);
1251 END Validate_Record;
1252 FUNCTION Validate_Record (
1253 p_qabv_rec IN qabv_rec_type
1254 ) RETURN VARCHAR2 IS
1255 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1256 l_db_qabv_rec qabv_rec_type := get_rec(p_qabv_rec);
1257
1258 -- rmunjulu post TAPI gen changes
1259 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1260
1261 BEGIN
1262
1263 -- rmunjulu post TAPI gen changes
1264 validate_currency_record(p_qabv_rec => p_qabv_rec,
1265 x_return_status => l_return_status);
1266 -- store the highest degree of error
1267 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1268 IF (x_return_status <> OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1269 x_return_status := l_return_status;
1270 END IF;
1271 END IF;
1272
1273 RETURN (l_return_status);
1274 END Validate_Record;
1275
1276 ---------------------------------------------------------------------------
1277 -- PROCEDURE Migrate
1278 ---------------------------------------------------------------------------
1279 PROCEDURE migrate (
1280 p_from IN qabv_rec_type,
1281 p_to IN OUT NOCOPY qab_rec_type
1282 ) IS
1283 BEGIN
1284 p_to.id := p_from.id;
1285 p_to.object_version_number := p_from.object_version_number;
1286 p_to.khr_id := p_from.khr_id;
1287 p_to.qte_id := p_from.qte_id;
1288 p_to.kle_id := p_from.kle_id;
1289 p_to.sty_id := p_from.sty_id;
1290 -- rmunjulu EDAT ADDED
1291 p_to.sel_date := p_from.sel_date;
1292 p_to.amount := p_from.amount;
1293 p_to.org_id := p_from.org_id;
1294 p_to.request_id := p_from.request_id;
1295 p_to.program_application_id := p_from.program_application_id;
1296 p_to.program_id := p_from.program_id;
1297 p_to.program_update_date := p_from.program_update_date;
1298 p_to.attribute_category := p_from.attribute_category;
1299 p_to.attribute1 := p_from.attribute1;
1300 p_to.attribute2 := p_from.attribute2;
1301 p_to.attribute3 := p_from.attribute3;
1302 p_to.attribute4 := p_from.attribute4;
1303 p_to.attribute5 := p_from.attribute5;
1304 p_to.attribute6 := p_from.attribute6;
1305 p_to.attribute7 := p_from.attribute7;
1306 p_to.attribute8 := p_from.attribute8;
1307 p_to.attribute9 := p_from.attribute9;
1308 p_to.attribute10 := p_from.attribute10;
1309 p_to.attribute11 := p_from.attribute11;
1310 p_to.attribute12 := p_from.attribute12;
1311 p_to.attribute13 := p_from.attribute13;
1312 p_to.attribute14 := p_from.attribute14;
1313 p_to.attribute15 := p_from.attribute15;
1314 p_to.created_by := p_from.created_by;
1315 p_to.creation_date := p_from.creation_date;
1316 p_to.last_updated_by := p_from.last_updated_by;
1317 p_to.last_update_date := p_from.last_update_date;
1318 p_to.last_update_login := p_from.last_update_login;
1319 p_to.currency_code := p_from.currency_code;
1320 p_to.currency_conversion_code := p_from.currency_conversion_code;
1321 p_to.currency_conversion_type := p_from.currency_conversion_type;
1322 p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1323 p_to.currency_conversion_date := p_from.currency_conversion_date;
1324 END migrate;
1325 PROCEDURE migrate (
1326 p_from IN qab_rec_type,
1327 p_to IN OUT NOCOPY qabv_rec_type
1328 ) IS
1329 BEGIN
1330 p_to.id := p_from.id;
1331 p_to.object_version_number := p_from.object_version_number;
1332 p_to.khr_id := p_from.khr_id;
1333 p_to.qte_id := p_from.qte_id;
1334 p_to.kle_id := p_from.kle_id;
1335 p_to.sty_id := p_from.sty_id;
1336 -- rmunjulu EDAT ADDED
1337 p_to.sel_date := p_from.sel_date;
1338 p_to.amount := p_from.amount;
1339 p_to.org_id := p_from.org_id;
1340 p_to.request_id := p_from.request_id;
1341 p_to.program_application_id := p_from.program_application_id;
1342 p_to.program_id := p_from.program_id;
1343 p_to.program_update_date := p_from.program_update_date;
1344 p_to.attribute_category := p_from.attribute_category;
1345 p_to.attribute1 := p_from.attribute1;
1346 p_to.attribute2 := p_from.attribute2;
1347 p_to.attribute3 := p_from.attribute3;
1348 p_to.attribute4 := p_from.attribute4;
1349 p_to.attribute5 := p_from.attribute5;
1350 p_to.attribute6 := p_from.attribute6;
1351 p_to.attribute7 := p_from.attribute7;
1352 p_to.attribute8 := p_from.attribute8;
1353 p_to.attribute9 := p_from.attribute9;
1354 p_to.attribute10 := p_from.attribute10;
1355 p_to.attribute11 := p_from.attribute11;
1356 p_to.attribute12 := p_from.attribute12;
1357 p_to.attribute13 := p_from.attribute13;
1358 p_to.attribute14 := p_from.attribute14;
1359 p_to.attribute15 := p_from.attribute15;
1360 p_to.created_by := p_from.created_by;
1361 p_to.creation_date := p_from.creation_date;
1362 p_to.last_updated_by := p_from.last_updated_by;
1363 p_to.last_update_date := p_from.last_update_date;
1364 p_to.last_update_login := p_from.last_update_login;
1365 p_to.currency_code := p_from.currency_code;
1366 p_to.currency_conversion_code := p_from.currency_conversion_code;
1367 p_to.currency_conversion_type := p_from.currency_conversion_type;
1368 p_to.currency_conversion_rate := p_from.currency_conversion_rate;
1369 p_to.currency_conversion_date := p_from.currency_conversion_date;
1370 END migrate;
1371 ---------------------------------------------------------------------------
1372 -- PROCEDURE validate_row
1373 ---------------------------------------------------------------------------
1374 ------------------------------------------------
1375 -- validate_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
1376 ------------------------------------------------
1377 PROCEDURE validate_row(
1378 p_api_version IN NUMBER,
1379 p_init_msg_list IN VARCHAR2,
1380 x_return_status OUT NOCOPY VARCHAR2,
1381 x_msg_count OUT NOCOPY NUMBER,
1382 x_msg_data OUT NOCOPY VARCHAR2,
1383 p_qabv_rec IN qabv_rec_type) IS
1384
1385 l_api_version CONSTANT NUMBER := 1;
1386 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1387 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1388 l_qabv_rec qabv_rec_type := p_qabv_rec;
1389 l_qab_rec qab_rec_type;
1390 l_qab_rec qab_rec_type;
1391 BEGIN
1392 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1393 G_PKG_NAME,
1394 p_init_msg_list,
1395 l_api_version,
1396 p_api_version,
1397 '_PVT',
1398 x_return_status);
1399 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1400 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1401 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1402 RAISE OKC_API.G_EXCEPTION_ERROR;
1403 END IF;
1404 --- Validate all non-missing attributes (Item Level Validation)
1405 l_return_status := Validate_Attributes(l_qabv_rec);
1406 --- If any errors happen abort API
1407 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1408 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1409 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1410 RAISE OKC_API.G_EXCEPTION_ERROR;
1411 END IF;
1412 l_return_status := Validate_Record(l_qabv_rec);
1413 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1414 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1415 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1416 RAISE OKC_API.G_EXCEPTION_ERROR;
1417 END IF;
1418 x_return_status := l_return_status;
1419 EXCEPTION
1420 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1421 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1422 (
1423 l_api_name,
1424 G_PKG_NAME,
1425 'OKC_API.G_RET_STS_ERROR',
1426 x_msg_count,
1427 x_msg_data,
1428 '_PVT'
1429 );
1430 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1431 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1432 (
1433 l_api_name,
1434 G_PKG_NAME,
1435 'OKC_API.G_RET_STS_UNEXP_ERROR',
1436 x_msg_count,
1437 x_msg_data,
1438 '_PVT'
1439 );
1440 WHEN OTHERS THEN
1441 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1442 (
1443 l_api_name,
1444 G_PKG_NAME,
1445 'OTHERS',
1446 x_msg_count,
1447 x_msg_data,
1448 '_PVT'
1449 );
1450 END validate_row;
1451 -----------------------------------------------------------
1452 -- PL/SQL TBL validate_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
1453 -----------------------------------------------------------
1454 PROCEDURE validate_row(
1455 p_api_version IN NUMBER,
1456 p_init_msg_list IN VARCHAR2,
1457 x_return_status OUT NOCOPY VARCHAR2,
1458 x_msg_count OUT NOCOPY NUMBER,
1459 x_msg_data OUT NOCOPY VARCHAR2,
1460 p_qabv_tbl IN qabv_tbl_type,
1461 px_error_tbl IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
1462
1463 l_api_version CONSTANT NUMBER := 1;
1464 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1465 i NUMBER := 0;
1466 BEGIN
1467 OKC_API.init_msg_list(p_init_msg_list);
1468 -- Make sure PL/SQL table has records in it before passing
1469 IF (p_qabv_tbl.COUNT > 0) THEN
1470 i := p_qabv_tbl.FIRST;
1471 LOOP
1472 DECLARE
1473 l_error_rec OKC_API.ERROR_REC_TYPE;
1474 BEGIN
1475 l_error_rec.api_name := l_api_name;
1476 l_error_rec.api_package := G_PKG_NAME;
1477 l_error_rec.idx := i;
1478 validate_row (
1479 p_api_version => p_api_version,
1480 p_init_msg_list => OKC_API.G_FALSE,
1481 x_return_status => l_error_rec.error_type,
1482 x_msg_count => l_error_rec.msg_count,
1483 x_msg_data => l_error_rec.msg_data,
1484 p_qabv_rec => p_qabv_tbl(i));
1485 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1486 l_error_rec.sqlcode := SQLCODE;
1487 load_error_tbl(l_error_rec, px_error_tbl);
1488 ELSE
1489 x_msg_count := l_error_rec.msg_count;
1490 x_msg_data := l_error_rec.msg_data;
1491 END IF;
1492 EXCEPTION
1493 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1494 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1495 l_error_rec.sqlcode := SQLCODE;
1496 load_error_tbl(l_error_rec, px_error_tbl);
1497 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1498 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1499 l_error_rec.sqlcode := SQLCODE;
1500 load_error_tbl(l_error_rec, px_error_tbl);
1501 WHEN OTHERS THEN
1502 l_error_rec.error_type := 'OTHERS';
1503 l_error_rec.sqlcode := SQLCODE;
1504 load_error_tbl(l_error_rec, px_error_tbl);
1505 END;
1506 EXIT WHEN (i = p_qabv_tbl.LAST);
1507 i := p_qabv_tbl.NEXT(i);
1508 END LOOP;
1509 END IF;
1510 -- Loop through the error_tbl to find the error with the highest severity
1511 -- and return it.
1512 x_return_status := find_highest_exception(px_error_tbl);
1513 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1514 EXCEPTION
1515 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1516 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1517 (
1518 l_api_name,
1519 G_PKG_NAME,
1520 'OKC_API.G_RET_STS_ERROR',
1521 x_msg_count,
1522 x_msg_data,
1523 '_PVT'
1524 );
1525 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1526 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1527 (
1528 l_api_name,
1529 G_PKG_NAME,
1530 'OKC_API.G_RET_STS_UNEXP_ERROR',
1531 x_msg_count,
1532 x_msg_data,
1533 '_PVT'
1534 );
1535 WHEN OTHERS THEN
1536 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1537 (
1538 l_api_name,
1539 G_PKG_NAME,
1540 'OTHERS',
1541 x_msg_count,
1542 x_msg_data,
1543 '_PVT'
1544 );
1545 END validate_row;
1546
1547 -----------------------------------------------------------
1548 -- PL/SQL TBL validate_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
1549 -----------------------------------------------------------
1550 PROCEDURE validate_row(
1551 p_api_version IN NUMBER,
1552 p_init_msg_list IN VARCHAR2,
1553 x_return_status OUT NOCOPY VARCHAR2,
1554 x_msg_count OUT NOCOPY NUMBER,
1555 x_msg_data OUT NOCOPY VARCHAR2,
1556 p_qabv_tbl IN qabv_tbl_type) IS
1557
1558 l_api_version CONSTANT NUMBER := 1;
1559 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1560 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1561 l_error_tbl OKC_API.ERROR_TBL_TYPE;
1562 BEGIN
1563 OKC_API.init_msg_list(p_init_msg_list);
1564 -- Make sure PL/SQL table has records in it before passing
1565 IF (p_qabv_tbl.COUNT > 0) THEN
1566 validate_row (
1567 p_api_version => p_api_version,
1568 p_init_msg_list => OKC_API.G_FALSE,
1569 x_return_status => x_return_status,
1570 x_msg_count => x_msg_count,
1571 x_msg_data => x_msg_data,
1572 p_qabv_tbl => p_qabv_tbl,
1573 px_error_tbl => l_error_tbl);
1574 END IF;
1575 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1576 EXCEPTION
1577 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1578 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1579 (
1580 l_api_name,
1581 G_PKG_NAME,
1582 'OKC_API.G_RET_STS_ERROR',
1583 x_msg_count,
1584 x_msg_data,
1585 '_PVT'
1586 );
1587 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1588 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1589 (
1590 l_api_name,
1591 G_PKG_NAME,
1592 'OKC_API.G_RET_STS_UNEXP_ERROR',
1593 x_msg_count,
1594 x_msg_data,
1595 '_PVT'
1596 );
1597 WHEN OTHERS THEN
1598 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1599 (
1600 l_api_name,
1601 G_PKG_NAME,
1602 'OTHERS',
1603 x_msg_count,
1604 x_msg_data,
1605 '_PVT'
1606 );
1607 END validate_row;
1608
1609 ---------------------------------------------------------------------------
1610 -- PROCEDURE insert_row
1611 ---------------------------------------------------------------------------
1612 --------------------------------------------
1613 -- insert_row for:OKL_TXD_QTE_ANTCPT_BILL --
1614 --------------------------------------------
1615 PROCEDURE insert_row(
1616 p_init_msg_list IN VARCHAR2,
1617 x_return_status OUT NOCOPY VARCHAR2,
1618 x_msg_count OUT NOCOPY NUMBER,
1619 x_msg_data OUT NOCOPY VARCHAR2,
1620 p_qab_rec IN qab_rec_type,
1621 x_qab_rec OUT NOCOPY qab_rec_type) IS
1622
1623 l_api_version CONSTANT NUMBER := 1;
1624 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1625 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1626 l_qab_rec qab_rec_type := p_qab_rec;
1627 l_def_qab_rec qab_rec_type;
1628 ------------------------------------------------
1629 -- Set_Attributes for:OKL_TXD_QTE_ANTCPT_BILL --
1630 ------------------------------------------------
1631 FUNCTION Set_Attributes (
1632 p_qab_rec IN qab_rec_type,
1633 x_qab_rec OUT NOCOPY qab_rec_type
1634 ) RETURN VARCHAR2 IS
1635 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1636 BEGIN
1637 x_qab_rec := p_qab_rec;
1638 RETURN(l_return_status);
1639 END Set_Attributes;
1640 BEGIN
1641 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1642 p_init_msg_list,
1643 '_PVT',
1644 x_return_status);
1645 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1646 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1647 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1648 RAISE OKC_API.G_EXCEPTION_ERROR;
1649 END IF;
1650 --- Setting item atributes
1651 l_return_status := Set_Attributes(
1652 p_qab_rec, -- IN
1653 l_qab_rec); -- OUT
1654 --- If any errors happen abort API
1655 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1656 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1657 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1658 RAISE OKC_API.G_EXCEPTION_ERROR;
1659 END IF;
1660 INSERT INTO OKL_TXD_QTE_ANTCPT_BILL(
1661 id,
1662 object_version_number,
1663 khr_id,
1664 qte_id,
1665 kle_id,
1666 sty_id,
1667 sel_date, -- rmunjulu EDAT ADDED
1668 amount,
1669 org_id,
1670 request_id,
1671 program_application_id,
1672 program_id,
1673 program_update_date,
1674 attribute_category,
1675 attribute1,
1676 attribute2,
1677 attribute3,
1678 attribute4,
1679 attribute5,
1680 attribute6,
1681 attribute7,
1682 attribute8,
1683 attribute9,
1684 attribute10,
1685 attribute11,
1686 attribute12,
1687 attribute13,
1688 attribute14,
1689 attribute15,
1690 created_by,
1691 creation_date,
1692 last_updated_by,
1693 last_update_date,
1694 last_update_login,
1695 currency_code,
1696 currency_conversion_code,
1697 currency_conversion_type,
1698 currency_conversion_rate,
1699 currency_conversion_date)
1700 VALUES (
1701 l_qab_rec.id,
1702 l_qab_rec.object_version_number,
1703 l_qab_rec.khr_id,
1704 l_qab_rec.qte_id,
1705 l_qab_rec.kle_id,
1706 l_qab_rec.sty_id,
1707 l_qab_rec.sel_date, -- rmunjulu EDAT ADDED
1708 l_qab_rec.amount,
1709 l_qab_rec.org_id,
1710 l_qab_rec.request_id,
1711 l_qab_rec.program_application_id,
1712 l_qab_rec.program_id,
1713 l_qab_rec.program_update_date,
1714 l_qab_rec.attribute_category,
1715 l_qab_rec.attribute1,
1716 l_qab_rec.attribute2,
1717 l_qab_rec.attribute3,
1718 l_qab_rec.attribute4,
1719 l_qab_rec.attribute5,
1720 l_qab_rec.attribute6,
1721 l_qab_rec.attribute7,
1722 l_qab_rec.attribute8,
1723 l_qab_rec.attribute9,
1724 l_qab_rec.attribute10,
1725 l_qab_rec.attribute11,
1726 l_qab_rec.attribute12,
1727 l_qab_rec.attribute13,
1728 l_qab_rec.attribute14,
1729 l_qab_rec.attribute15,
1730 l_qab_rec.created_by,
1731 l_qab_rec.creation_date,
1732 l_qab_rec.last_updated_by,
1733 l_qab_rec.last_update_date,
1734 l_qab_rec.last_update_login,
1735 l_qab_rec.currency_code,
1736 l_qab_rec.currency_conversion_code,
1737 l_qab_rec.currency_conversion_type,
1738 l_qab_rec.currency_conversion_rate,
1739 l_qab_rec.currency_conversion_date);
1740 -- Set OUT values
1741 x_qab_rec := l_qab_rec;
1742 x_return_status := l_return_status;
1743 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1744 EXCEPTION
1745 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1746 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1747 (
1748 l_api_name,
1749 G_PKG_NAME,
1750 'OKC_API.G_RET_STS_ERROR',
1751 x_msg_count,
1752 x_msg_data,
1753 '_PVT'
1754 );
1755 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1756 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1757 (
1758 l_api_name,
1759 G_PKG_NAME,
1760 'OKC_API.G_RET_STS_UNEXP_ERROR',
1761 x_msg_count,
1762 x_msg_data,
1763 '_PVT'
1764 );
1765 WHEN OTHERS THEN
1766 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1767 (
1768 l_api_name,
1769 G_PKG_NAME,
1770 'OTHERS',
1771 x_msg_count,
1772 x_msg_data,
1773 '_PVT'
1774 );
1775 END insert_row;
1776 -----------------------------------------------
1777 -- insert_row for :OKL_TXD_QTE_ANTCPT_BILL_V -- rmunjulu added code to default some values
1778 -----------------------------------------------
1779 PROCEDURE insert_row(
1780 p_api_version IN NUMBER,
1781 p_init_msg_list IN VARCHAR2,
1782 x_return_status OUT NOCOPY VARCHAR2,
1783 x_msg_count OUT NOCOPY NUMBER,
1784 x_msg_data OUT NOCOPY VARCHAR2,
1785 p_qabv_rec IN qabv_rec_type,
1786 x_qabv_rec OUT NOCOPY qabv_rec_type) IS
1787
1788 l_api_version CONSTANT NUMBER := 1;
1789 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1790 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1791 l_qabv_rec qabv_rec_type := p_qabv_rec;
1792 l_def_qabv_rec qabv_rec_type;
1793 l_qab_rec qab_rec_type;
1794 lx_qab_rec qab_rec_type;
1795 -------------------------------
1796 -- FUNCTION fill_who_columns --
1797 -------------------------------
1798 FUNCTION fill_who_columns (
1799 p_qabv_rec IN qabv_rec_type
1800 ) RETURN qabv_rec_type IS
1801 l_qabv_rec qabv_rec_type := p_qabv_rec;
1802 BEGIN
1803 l_qabv_rec.CREATION_DATE := SYSDATE;
1804 l_qabv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1805 l_qabv_rec.LAST_UPDATE_DATE := l_qabv_rec.CREATION_DATE;
1806 l_qabv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1807 l_qabv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1808 RETURN(l_qabv_rec);
1809 END fill_who_columns;
1810 --------------------------------------------------
1811 -- Set_Attributes for:OKL_TXD_QTE_ANTCPT_BILL_V --
1812 --------------------------------------------------
1813 FUNCTION Set_Attributes (
1814 p_qabv_rec IN qabv_rec_type,
1815 x_qabv_rec OUT NOCOPY qabv_rec_type
1816 ) RETURN VARCHAR2 IS
1817 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1818 BEGIN
1819 x_qabv_rec := p_qabv_rec;
1820 x_qabv_rec.OBJECT_VERSION_NUMBER := 1;
1821
1822 -- rmunjulu Post Tapi Gen Changes --- Start +++++++++++++++++++++++++++++
1823
1824 -- Default the ORG ID if no value passed
1825 IF p_qabv_rec.org_id IS NULL
1826 OR p_qabv_rec.org_id = OKC_API.G_MISS_NUM THEN
1827 x_qabv_rec.org_id := MO_GLOBAL.GET_CURRENT_ORG_ID();
1828 END IF;
1829
1830 x_qabv_rec.currency_conversion_code := OKL_AM_UTIL_PVT.get_functional_currency;
1831
1832 IF p_qabv_rec.currency_code IS NULL
1833 OR p_qabv_rec.currency_code = OKC_API.G_MISS_CHAR THEN
1834 x_qabv_rec.currency_code := x_qabv_rec.currency_conversion_code;
1835 END IF;
1836
1837 -- rmunjulu Post Tapi Gen Changes --- End +++++++++++++++++++++++++++++
1838
1839 RETURN(l_return_status);
1840 END Set_Attributes;
1841 BEGIN
1842 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1843 G_PKG_NAME,
1844 p_init_msg_list,
1845 l_api_version,
1846 p_api_version,
1847 '_PVT',
1848 x_return_status);
1849 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1850 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1851 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1852 RAISE OKC_API.G_EXCEPTION_ERROR;
1853 END IF;
1854 l_qabv_rec := null_out_defaults(p_qabv_rec);
1855 -- Set primary key value
1856 l_qabv_rec.ID := get_seq_id;
1857 -- Setting item attributes
1858 l_return_Status := Set_Attributes(
1859 l_qabv_rec, -- IN
1860 l_def_qabv_rec); -- OUT
1861 --- If any errors happen abort API
1862 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1863 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1864 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1865 RAISE OKC_API.G_EXCEPTION_ERROR;
1866 END IF;
1867 l_def_qabv_rec := fill_who_columns(l_def_qabv_rec);
1868 --- Validate all non-missing attributes (Item Level Validation)
1869 l_return_status := Validate_Attributes(l_def_qabv_rec);
1870 --- If any errors happen abort API
1871 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1872 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1873 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1874 RAISE OKC_API.G_EXCEPTION_ERROR;
1875 END IF;
1876 l_return_status := Validate_Record(l_def_qabv_rec);
1877 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1878 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1879 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1880 RAISE OKC_API.G_EXCEPTION_ERROR;
1881 END IF;
1882 -----------------------------------------
1883 -- Move VIEW record to "Child" records --
1884 -----------------------------------------
1885 migrate(l_def_qabv_rec, l_qab_rec);
1886 -----------------------------------------------
1887 -- Call the INSERT_ROW for each child record --
1888 -----------------------------------------------
1889 insert_row(
1890 p_init_msg_list,
1891 l_return_status,
1892 x_msg_count,
1893 x_msg_data,
1894 l_qab_rec,
1895 lx_qab_rec
1896 );
1897 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1898 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1899 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1900 RAISE OKC_API.G_EXCEPTION_ERROR;
1901 END IF;
1902 migrate(lx_qab_rec, l_def_qabv_rec);
1903 -- Set OUT values
1904 x_qabv_rec := l_def_qabv_rec;
1905 x_return_status := l_return_status;
1906 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1907 EXCEPTION
1908 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1909 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1910 (
1911 l_api_name,
1912 G_PKG_NAME,
1913 'OKC_API.G_RET_STS_ERROR',
1914 x_msg_count,
1915 x_msg_data,
1916 '_PVT'
1917 );
1918 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1919 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1920 (
1921 l_api_name,
1922 G_PKG_NAME,
1923 'OKC_API.G_RET_STS_UNEXP_ERROR',
1924 x_msg_count,
1925 x_msg_data,
1926 '_PVT'
1927 );
1928 WHEN OTHERS THEN
1929 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1930 (
1931 l_api_name,
1932 G_PKG_NAME,
1933 'OTHERS',
1934 x_msg_count,
1935 x_msg_data,
1936 '_PVT'
1937 );
1938 END insert_row;
1939 ----------------------------------------
1940 -- PL/SQL TBL insert_row for:QABV_TBL --
1941 ----------------------------------------
1942 PROCEDURE insert_row(
1943 p_api_version IN NUMBER,
1944 p_init_msg_list IN VARCHAR2,
1945 x_return_status OUT NOCOPY VARCHAR2,
1946 x_msg_count OUT NOCOPY NUMBER,
1947 x_msg_data OUT NOCOPY VARCHAR2,
1948 p_qabv_tbl IN qabv_tbl_type,
1949 x_qabv_tbl OUT NOCOPY qabv_tbl_type,
1950 px_error_tbl IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
1951
1952 l_api_version CONSTANT NUMBER := 1;
1953 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1954 i NUMBER := 0;
1955 BEGIN
1956 OKC_API.init_msg_list(p_init_msg_list);
1957 -- Make sure PL/SQL table has records in it before passing
1958 IF (p_qabv_tbl.COUNT > 0) THEN
1959 i := p_qabv_tbl.FIRST;
1960 LOOP
1961 DECLARE
1962 l_error_rec OKC_API.ERROR_REC_TYPE;
1963 BEGIN
1964 l_error_rec.api_name := l_api_name;
1965 l_error_rec.api_package := G_PKG_NAME;
1966 l_error_rec.idx := i;
1967 insert_row (
1968 p_api_version => p_api_version,
1969 p_init_msg_list => OKC_API.G_FALSE,
1970 x_return_status => l_error_rec.error_type,
1971 x_msg_count => l_error_rec.msg_count,
1972 x_msg_data => l_error_rec.msg_data,
1973 p_qabv_rec => p_qabv_tbl(i),
1974 x_qabv_rec => x_qabv_tbl(i));
1975 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
1976 l_error_rec.sqlcode := SQLCODE;
1977 load_error_tbl(l_error_rec, px_error_tbl);
1978 ELSE
1979 x_msg_count := l_error_rec.msg_count;
1980 x_msg_data := l_error_rec.msg_data;
1981 END IF;
1982 EXCEPTION
1983 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1984 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
1985 l_error_rec.sqlcode := SQLCODE;
1986 load_error_tbl(l_error_rec, px_error_tbl);
1987 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1988 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
1989 l_error_rec.sqlcode := SQLCODE;
1990 load_error_tbl(l_error_rec, px_error_tbl);
1991 WHEN OTHERS THEN
1992 l_error_rec.error_type := 'OTHERS';
1993 l_error_rec.sqlcode := SQLCODE;
1994 load_error_tbl(l_error_rec, px_error_tbl);
1995 END;
1996 EXIT WHEN (i = p_qabv_tbl.LAST);
1997 i := p_qabv_tbl.NEXT(i);
1998 END LOOP;
1999 END IF;
2000 -- Loop through the error_tbl to find the error with the highest severity
2001 -- and return it.
2002 x_return_status := find_highest_exception(px_error_tbl);
2003 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2004 EXCEPTION
2005 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2006 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2007 (
2008 l_api_name,
2009 G_PKG_NAME,
2010 'OKC_API.G_RET_STS_ERROR',
2011 x_msg_count,
2012 x_msg_data,
2013 '_PVT'
2014 );
2015 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2016 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2017 (
2018 l_api_name,
2019 G_PKG_NAME,
2020 'OKC_API.G_RET_STS_UNEXP_ERROR',
2021 x_msg_count,
2022 x_msg_data,
2023 '_PVT'
2024 );
2025 WHEN OTHERS THEN
2026 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2027 (
2028 l_api_name,
2029 G_PKG_NAME,
2030 'OTHERS',
2031 x_msg_count,
2032 x_msg_data,
2033 '_PVT'
2034 );
2035 END insert_row;
2036
2037 ----------------------------------------
2038 -- PL/SQL TBL insert_row for:QABV_TBL --
2039 ----------------------------------------
2040 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
2041 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
2042 PROCEDURE insert_row(
2043 p_api_version IN NUMBER,
2044 p_init_msg_list IN VARCHAR2,
2045 x_return_status OUT NOCOPY VARCHAR2,
2046 x_msg_count OUT NOCOPY NUMBER,
2047 x_msg_data OUT NOCOPY VARCHAR2,
2048 p_qabv_tbl IN qabv_tbl_type,
2049 x_qabv_tbl OUT NOCOPY qabv_tbl_type) IS
2050
2051 l_api_version CONSTANT NUMBER := 1;
2052 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2053 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2054 l_error_tbl OKC_API.ERROR_TBL_TYPE;
2055 BEGIN
2056 OKC_API.init_msg_list(p_init_msg_list);
2057 -- Make sure PL/SQL table has records in it before passing
2058 IF (p_qabv_tbl.COUNT > 0) THEN
2059 insert_row (
2060 p_api_version => p_api_version,
2061 p_init_msg_list => OKC_API.G_FALSE,
2062 x_return_status => x_return_status,
2063 x_msg_count => x_msg_count,
2064 x_msg_data => x_msg_data,
2065 p_qabv_tbl => p_qabv_tbl,
2066 x_qabv_tbl => x_qabv_tbl,
2067 px_error_tbl => l_error_tbl);
2068 END IF;
2069 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2070 EXCEPTION
2071 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2072 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2073 (
2074 l_api_name,
2075 G_PKG_NAME,
2076 'OKC_API.G_RET_STS_ERROR',
2077 x_msg_count,
2078 x_msg_data,
2079 '_PVT'
2080 );
2081 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2082 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2083 (
2084 l_api_name,
2085 G_PKG_NAME,
2086 'OKC_API.G_RET_STS_UNEXP_ERROR',
2087 x_msg_count,
2088 x_msg_data,
2089 '_PVT'
2090 );
2091 WHEN OTHERS THEN
2092 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2093 (
2094 l_api_name,
2095 G_PKG_NAME,
2096 'OTHERS',
2097 x_msg_count,
2098 x_msg_data,
2099 '_PVT'
2100 );
2101 END insert_row;
2102
2103 ---------------------------------------------------------------------------
2104 -- PROCEDURE lock_row
2105 ---------------------------------------------------------------------------
2106 ------------------------------------------
2107 -- lock_row for:OKL_TXD_QTE_ANTCPT_BILL --
2108 ------------------------------------------
2109 PROCEDURE lock_row(
2110 p_init_msg_list IN VARCHAR2,
2111 x_return_status OUT NOCOPY VARCHAR2,
2112 x_msg_count OUT NOCOPY NUMBER,
2113 x_msg_data OUT NOCOPY VARCHAR2,
2114 p_qab_rec IN qab_rec_type) IS
2115
2116 E_Resource_Busy EXCEPTION;
2117 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2118 CURSOR lock_csr (p_qab_rec IN qab_rec_type) IS
2119 SELECT OBJECT_VERSION_NUMBER
2120 FROM OKL_TXD_QTE_ANTCPT_BILL
2121 WHERE ID = p_qab_rec.id
2122 AND OBJECT_VERSION_NUMBER = p_qab_rec.object_version_number
2123 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2124
2125 CURSOR lchk_csr (p_qab_rec IN qab_rec_type) IS
2126 SELECT OBJECT_VERSION_NUMBER
2127 FROM OKL_TXD_QTE_ANTCPT_BILL
2128 WHERE ID = p_qab_rec.id;
2129 l_api_version CONSTANT NUMBER := 1;
2130 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
2131 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2132 l_object_version_number OKL_TXD_QTE_ANTCPT_BILL.OBJECT_VERSION_NUMBER%TYPE;
2133 lc_object_version_number OKL_TXD_QTE_ANTCPT_BILL.OBJECT_VERSION_NUMBER%TYPE;
2134 l_row_notfound BOOLEAN := FALSE;
2135 lc_row_notfound BOOLEAN := FALSE;
2136 BEGIN
2137 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2138 p_init_msg_list,
2139 '_PVT',
2140 x_return_status);
2141 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2142 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2143 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2144 RAISE OKC_API.G_EXCEPTION_ERROR;
2145 END IF;
2146 BEGIN
2147 OPEN lock_csr(p_qab_rec);
2148 FETCH lock_csr INTO l_object_version_number;
2149 l_row_notfound := lock_csr%NOTFOUND;
2150 CLOSE lock_csr;
2151 EXCEPTION
2152 WHEN E_Resource_Busy THEN
2153 IF (lock_csr%ISOPEN) THEN
2154 CLOSE lock_csr;
2155 END IF;
2156 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2157 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2158 END;
2159
2160 IF ( l_row_notfound ) THEN
2161 OPEN lchk_csr(p_qab_rec);
2162 FETCH lchk_csr INTO lc_object_version_number;
2163 lc_row_notfound := lchk_csr%NOTFOUND;
2164 CLOSE lchk_csr;
2165 END IF;
2166 IF (lc_row_notfound) THEN
2167 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2168 RAISE OKC_API.G_EXCEPTION_ERROR;
2169 ELSIF lc_object_version_number > p_qab_rec.object_version_number THEN
2170 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2171 RAISE OKC_API.G_EXCEPTION_ERROR;
2172 ELSIF lc_object_version_number <> p_qab_rec.object_version_number THEN
2173 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2174 RAISE OKC_API.G_EXCEPTION_ERROR;
2175 ELSIF lc_object_version_number = -1 THEN
2176 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2177 RAISE OKC_API.G_EXCEPTION_ERROR;
2178 END IF;
2179 x_return_status := l_return_status;
2180 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2181 EXCEPTION
2182 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2183 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2184 (
2185 l_api_name,
2186 G_PKG_NAME,
2187 'OKC_API.G_RET_STS_ERROR',
2188 x_msg_count,
2189 x_msg_data,
2190 '_PVT'
2191 );
2192 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2193 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2194 (
2195 l_api_name,
2196 G_PKG_NAME,
2197 'OKC_API.G_RET_STS_UNEXP_ERROR',
2198 x_msg_count,
2199 x_msg_data,
2200 '_PVT'
2201 );
2202 WHEN OTHERS THEN
2203 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2204 (
2205 l_api_name,
2206 G_PKG_NAME,
2207 'OTHERS',
2208 x_msg_count,
2209 x_msg_data,
2210 '_PVT'
2211 );
2212 END lock_row;
2213 ---------------------------------------------
2214 -- lock_row for: OKL_TXD_QTE_ANTCPT_BILL_V --
2215 ---------------------------------------------
2216 PROCEDURE lock_row(
2217 p_api_version IN NUMBER,
2218 p_init_msg_list IN VARCHAR2,
2219 x_return_status OUT NOCOPY VARCHAR2,
2220 x_msg_count OUT NOCOPY NUMBER,
2221 x_msg_data OUT NOCOPY VARCHAR2,
2222 p_qabv_rec IN qabv_rec_type) IS
2223
2224 l_api_version CONSTANT NUMBER := 1;
2225 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2226 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2227 l_qab_rec qab_rec_type;
2228 BEGIN
2229 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2230 G_PKG_NAME,
2231 p_init_msg_list,
2232 l_api_version,
2233 p_api_version,
2234 '_PVT',
2235 x_return_status);
2236 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2237 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2238 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2239 RAISE OKC_API.G_EXCEPTION_ERROR;
2240 END IF;
2241 -----------------------------------------
2242 -- Move VIEW record to "Child" records --
2243 -----------------------------------------
2244 migrate(p_qabv_rec, l_qab_rec);
2245 ---------------------------------------------
2246 -- Call the LOCK_ROW for each child record --
2247 ---------------------------------------------
2248 lock_row(
2249 p_init_msg_list,
2250 l_return_status,
2251 x_msg_count,
2252 x_msg_data,
2253 l_qab_rec
2254 );
2255 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2256 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2257 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2258 RAISE OKC_API.G_EXCEPTION_ERROR;
2259 END IF;
2260 x_return_status := l_return_status;
2261 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2262 EXCEPTION
2263 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2264 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2265 (
2266 l_api_name,
2267 G_PKG_NAME,
2268 'OKC_API.G_RET_STS_ERROR',
2269 x_msg_count,
2270 x_msg_data,
2271 '_PVT'
2272 );
2273 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2274 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2275 (
2276 l_api_name,
2277 G_PKG_NAME,
2278 'OKC_API.G_RET_STS_UNEXP_ERROR',
2279 x_msg_count,
2280 x_msg_data,
2281 '_PVT'
2282 );
2283 WHEN OTHERS THEN
2284 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2285 (
2286 l_api_name,
2287 G_PKG_NAME,
2288 'OTHERS',
2289 x_msg_count,
2290 x_msg_data,
2291 '_PVT'
2292 );
2293 END lock_row;
2294 --------------------------------------
2295 -- PL/SQL TBL lock_row for:QABV_TBL --
2296 --------------------------------------
2297 PROCEDURE lock_row(
2298 p_api_version IN NUMBER,
2299 p_init_msg_list IN VARCHAR2,
2300 x_return_status OUT NOCOPY VARCHAR2,
2301 x_msg_count OUT NOCOPY NUMBER,
2302 x_msg_data OUT NOCOPY VARCHAR2,
2303 p_qabv_tbl IN qabv_tbl_type,
2304 px_error_tbl IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
2305
2306 l_api_version CONSTANT NUMBER := 1;
2307 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2308 i NUMBER := 0;
2309 BEGIN
2310 OKC_API.init_msg_list(p_init_msg_list);
2311 -- Make sure PL/SQL table has recrods in it before passing
2312 IF (p_qabv_tbl.COUNT > 0) THEN
2313 i := p_qabv_tbl.FIRST;
2314 LOOP
2315 DECLARE
2316 l_error_rec OKC_API.ERROR_REC_TYPE;
2317 BEGIN
2318 l_error_rec.api_name := l_api_name;
2319 l_error_rec.api_package := G_PKG_NAME;
2320 l_error_rec.idx := i;
2321 lock_row(
2322 p_api_version => p_api_version,
2323 p_init_msg_list => OKC_API.G_FALSE,
2324 x_return_status => l_error_rec.error_type,
2325 x_msg_count => l_error_rec.msg_count,
2326 x_msg_data => l_error_rec.msg_data,
2327 p_qabv_rec => p_qabv_tbl(i));
2328 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
2329 l_error_rec.sqlcode := SQLCODE;
2330 load_error_tbl(l_error_rec, px_error_tbl);
2331 ELSE
2332 x_msg_count := l_error_rec.msg_count;
2333 x_msg_data := l_error_rec.msg_data;
2334 END IF;
2335 EXCEPTION
2336 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2337 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
2338 l_error_rec.sqlcode := SQLCODE;
2339 load_error_tbl(l_error_rec, px_error_tbl);
2340 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2341 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
2342 l_error_rec.sqlcode := SQLCODE;
2343 load_error_tbl(l_error_rec, px_error_tbl);
2344 WHEN OTHERS THEN
2345 l_error_rec.error_type := 'OTHERS';
2346 l_error_rec.sqlcode := SQLCODE;
2347 load_error_tbl(l_error_rec, px_error_tbl);
2348 END;
2349 EXIT WHEN (i = p_qabv_tbl.LAST);
2350 i := p_qabv_tbl.NEXT(i);
2351 END LOOP;
2352 END IF;
2353 -- Loop through the error_tbl to find the error with the highest severity
2354 -- and return it.
2355 x_return_status := find_highest_exception(px_error_tbl);
2356 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2357 EXCEPTION
2358 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2359 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2360 (
2361 l_api_name,
2362 G_PKG_NAME,
2363 'OKC_API.G_RET_STS_ERROR',
2364 x_msg_count,
2365 x_msg_data,
2366 '_PVT'
2367 );
2368 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2369 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2370 (
2371 l_api_name,
2372 G_PKG_NAME,
2373 'OKC_API.G_RET_STS_UNEXP_ERROR',
2374 x_msg_count,
2375 x_msg_data,
2376 '_PVT'
2377 );
2378 WHEN OTHERS THEN
2379 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2380 (
2381 l_api_name,
2382 G_PKG_NAME,
2383 'OTHERS',
2384 x_msg_count,
2385 x_msg_data,
2386 '_PVT'
2387 );
2388 END lock_row;
2389 --------------------------------------
2390 -- PL/SQL TBL lock_row for:QABV_TBL --
2391 --------------------------------------
2392 PROCEDURE lock_row(
2393 p_api_version IN NUMBER,
2394 p_init_msg_list IN VARCHAR2,
2395 x_return_status OUT NOCOPY VARCHAR2,
2396 x_msg_count OUT NOCOPY NUMBER,
2397 x_msg_data OUT NOCOPY VARCHAR2,
2398 p_qabv_tbl IN qabv_tbl_type) IS
2399
2400 l_api_version CONSTANT NUMBER := 1;
2401 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2402 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2403 l_error_tbl OKC_API.ERROR_TBL_TYPE;
2404 BEGIN
2405 OKC_API.init_msg_list(p_init_msg_list);
2406 -- Make sure PL/SQL table has recrods in it before passing
2407 IF (p_qabv_tbl.COUNT > 0) THEN
2408 lock_row(
2409 p_api_version => p_api_version,
2410 p_init_msg_list => OKC_API.G_FALSE,
2411 x_return_status => x_return_status,
2412 x_msg_count => x_msg_count,
2413 x_msg_data => x_msg_data,
2414 p_qabv_tbl => p_qabv_tbl,
2415 px_error_tbl => l_error_tbl);
2416 END IF;
2417 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2418 EXCEPTION
2419 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2420 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2421 (
2422 l_api_name,
2423 G_PKG_NAME,
2424 'OKC_API.G_RET_STS_ERROR',
2425 x_msg_count,
2426 x_msg_data,
2427 '_PVT'
2428 );
2429 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2430 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2431 (
2432 l_api_name,
2433 G_PKG_NAME,
2434 'OKC_API.G_RET_STS_UNEXP_ERROR',
2435 x_msg_count,
2436 x_msg_data,
2437 '_PVT'
2438 );
2439 WHEN OTHERS THEN
2440 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2441 (
2442 l_api_name,
2443 G_PKG_NAME,
2444 'OTHERS',
2445 x_msg_count,
2446 x_msg_data,
2447 '_PVT'
2448 );
2449 END lock_row;
2450 ---------------------------------------------------------------------------
2451 -- PROCEDURE update_row
2452 ---------------------------------------------------------------------------
2453 --------------------------------------------
2454 -- update_row for:OKL_TXD_QTE_ANTCPT_BILL --
2455 --------------------------------------------
2456 PROCEDURE update_row(
2457 p_init_msg_list IN VARCHAR2,
2458 x_return_status OUT NOCOPY VARCHAR2,
2459 x_msg_count OUT NOCOPY NUMBER,
2460 x_msg_data OUT NOCOPY VARCHAR2,
2461 p_qab_rec IN qab_rec_type,
2462 x_qab_rec OUT NOCOPY qab_rec_type) IS
2463
2464 l_api_version CONSTANT NUMBER := 1;
2465 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2466 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2467 l_qab_rec qab_rec_type := p_qab_rec;
2468 l_def_qab_rec qab_rec_type;
2469 l_row_notfound BOOLEAN := TRUE;
2470 ----------------------------------
2471 -- FUNCTION populate_new_record --
2472 ----------------------------------
2473 FUNCTION populate_new_record (
2474 p_qab_rec IN qab_rec_type,
2475 x_qab_rec OUT NOCOPY qab_rec_type
2476 ) RETURN VARCHAR2 IS
2477 l_qab_rec qab_rec_type;
2478 l_row_notfound BOOLEAN := TRUE;
2479 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2480 BEGIN
2481 x_qab_rec := p_qab_rec;
2482 -- Get current database values
2483 l_qab_rec := get_rec(p_qab_rec, l_return_status);
2484 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2485 IF (x_qab_rec.id = OKC_API.G_MISS_NUM)
2486 THEN
2487 x_qab_rec.id := l_qab_rec.id;
2488 END IF;
2489 IF (x_qab_rec.object_version_number = OKC_API.G_MISS_NUM)
2490 THEN
2491 x_qab_rec.object_version_number := l_qab_rec.object_version_number;
2492 END IF;
2493 IF (x_qab_rec.khr_id = OKC_API.G_MISS_NUM)
2494 THEN
2495 x_qab_rec.khr_id := l_qab_rec.khr_id;
2496 END IF;
2497 IF (x_qab_rec.qte_id = OKC_API.G_MISS_NUM)
2498 THEN
2499 x_qab_rec.qte_id := l_qab_rec.qte_id;
2500 END IF;
2501 IF (x_qab_rec.kle_id = OKC_API.G_MISS_NUM)
2502 THEN
2503 x_qab_rec.kle_id := l_qab_rec.kle_id;
2504 END IF;
2505 IF (x_qab_rec.sty_id = OKC_API.G_MISS_NUM)
2506 THEN
2507 x_qab_rec.sty_id := l_qab_rec.sty_id;
2508 END IF;
2509 -- rmunjulu EDAT ADDED
2510 IF (x_qab_rec.sel_date = OKC_API.G_MISS_DATE)
2511 THEN
2512 x_qab_rec.sel_date := l_qab_rec.sel_date;
2513 END IF;
2514 IF (x_qab_rec.amount = OKC_API.G_MISS_NUM)
2515 THEN
2516 x_qab_rec.amount := l_qab_rec.amount;
2517 END IF;
2518 IF (x_qab_rec.org_id = OKC_API.G_MISS_NUM)
2519 THEN
2520 x_qab_rec.org_id := l_qab_rec.org_id;
2521 END IF;
2522 IF (x_qab_rec.request_id = OKC_API.G_MISS_NUM)
2523 THEN
2524 x_qab_rec.request_id := l_qab_rec.request_id;
2525 END IF;
2526 IF (x_qab_rec.program_application_id = OKC_API.G_MISS_NUM)
2527 THEN
2528 x_qab_rec.program_application_id := l_qab_rec.program_application_id;
2529 END IF;
2530 IF (x_qab_rec.program_id = OKC_API.G_MISS_NUM)
2531 THEN
2532 x_qab_rec.program_id := l_qab_rec.program_id;
2533 END IF;
2534 IF (x_qab_rec.program_update_date = OKC_API.G_MISS_DATE)
2535 THEN
2536 x_qab_rec.program_update_date := l_qab_rec.program_update_date;
2537 END IF;
2538 IF (x_qab_rec.attribute_category = OKC_API.G_MISS_CHAR)
2539 THEN
2540 x_qab_rec.attribute_category := l_qab_rec.attribute_category;
2541 END IF;
2542 IF (x_qab_rec.attribute1 = OKC_API.G_MISS_CHAR)
2543 THEN
2544 x_qab_rec.attribute1 := l_qab_rec.attribute1;
2545 END IF;
2546 IF (x_qab_rec.attribute2 = OKC_API.G_MISS_CHAR)
2547 THEN
2548 x_qab_rec.attribute2 := l_qab_rec.attribute2;
2549 END IF;
2550 IF (x_qab_rec.attribute3 = OKC_API.G_MISS_CHAR)
2551 THEN
2552 x_qab_rec.attribute3 := l_qab_rec.attribute3;
2553 END IF;
2554 IF (x_qab_rec.attribute4 = OKC_API.G_MISS_CHAR)
2555 THEN
2556 x_qab_rec.attribute4 := l_qab_rec.attribute4;
2557 END IF;
2558 IF (x_qab_rec.attribute5 = OKC_API.G_MISS_CHAR)
2559 THEN
2560 x_qab_rec.attribute5 := l_qab_rec.attribute5;
2561 END IF;
2562 IF (x_qab_rec.attribute6 = OKC_API.G_MISS_CHAR)
2563 THEN
2564 x_qab_rec.attribute6 := l_qab_rec.attribute6;
2565 END IF;
2566 IF (x_qab_rec.attribute7 = OKC_API.G_MISS_CHAR)
2567 THEN
2568 x_qab_rec.attribute7 := l_qab_rec.attribute7;
2569 END IF;
2570 IF (x_qab_rec.attribute8 = OKC_API.G_MISS_CHAR)
2571 THEN
2572 x_qab_rec.attribute8 := l_qab_rec.attribute8;
2573 END IF;
2574 IF (x_qab_rec.attribute9 = OKC_API.G_MISS_CHAR)
2575 THEN
2576 x_qab_rec.attribute9 := l_qab_rec.attribute9;
2577 END IF;
2578 IF (x_qab_rec.attribute10 = OKC_API.G_MISS_CHAR)
2579 THEN
2580 x_qab_rec.attribute10 := l_qab_rec.attribute10;
2581 END IF;
2582 IF (x_qab_rec.attribute11 = OKC_API.G_MISS_CHAR)
2583 THEN
2584 x_qab_rec.attribute11 := l_qab_rec.attribute11;
2585 END IF;
2586 IF (x_qab_rec.attribute12 = OKC_API.G_MISS_CHAR)
2587 THEN
2588 x_qab_rec.attribute12 := l_qab_rec.attribute12;
2589 END IF;
2590 IF (x_qab_rec.attribute13 = OKC_API.G_MISS_CHAR)
2591 THEN
2592 x_qab_rec.attribute13 := l_qab_rec.attribute13;
2593 END IF;
2594 IF (x_qab_rec.attribute14 = OKC_API.G_MISS_CHAR)
2595 THEN
2596 x_qab_rec.attribute14 := l_qab_rec.attribute14;
2597 END IF;
2598 IF (x_qab_rec.attribute15 = OKC_API.G_MISS_CHAR)
2599 THEN
2600 x_qab_rec.attribute15 := l_qab_rec.attribute15;
2601 END IF;
2602 IF (x_qab_rec.created_by = OKC_API.G_MISS_NUM)
2603 THEN
2604 x_qab_rec.created_by := l_qab_rec.created_by;
2605 END IF;
2606 IF (x_qab_rec.creation_date = OKC_API.G_MISS_DATE)
2607 THEN
2608 x_qab_rec.creation_date := l_qab_rec.creation_date;
2609 END IF;
2610 IF (x_qab_rec.last_updated_by = OKC_API.G_MISS_NUM)
2611 THEN
2612 x_qab_rec.last_updated_by := l_qab_rec.last_updated_by;
2613 END IF;
2614 IF (x_qab_rec.last_update_date = OKC_API.G_MISS_DATE)
2615 THEN
2616 x_qab_rec.last_update_date := l_qab_rec.last_update_date;
2617 END IF;
2618 IF (x_qab_rec.last_update_login = OKC_API.G_MISS_NUM)
2619 THEN
2620 x_qab_rec.last_update_login := l_qab_rec.last_update_login;
2621 END IF;
2622 IF (x_qab_rec.currency_code = OKC_API.G_MISS_CHAR)
2623 THEN
2624 x_qab_rec.currency_code := l_qab_rec.currency_code;
2625 END IF;
2626 IF (x_qab_rec.currency_conversion_code = OKC_API.G_MISS_CHAR)
2627 THEN
2628 x_qab_rec.currency_conversion_code := l_qab_rec.currency_conversion_code;
2629 END IF;
2630 IF (x_qab_rec.currency_conversion_type = OKC_API.G_MISS_CHAR)
2631 THEN
2632 x_qab_rec.currency_conversion_type := l_qab_rec.currency_conversion_type;
2633 END IF;
2634 IF (x_qab_rec.currency_conversion_rate = OKC_API.G_MISS_NUM)
2635 THEN
2636 x_qab_rec.currency_conversion_rate := l_qab_rec.currency_conversion_rate;
2637 END IF;
2638 IF (x_qab_rec.currency_conversion_date = OKC_API.G_MISS_DATE)
2639 THEN
2640 x_qab_rec.currency_conversion_date := l_qab_rec.currency_conversion_date;
2641 END IF;
2642 END IF;
2643 RETURN(l_return_status);
2644 END populate_new_record;
2645 ------------------------------------------------
2646 -- Set_Attributes for:OKL_TXD_QTE_ANTCPT_BILL --
2647 ------------------------------------------------
2648 FUNCTION Set_Attributes (
2649 p_qab_rec IN qab_rec_type,
2650 x_qab_rec OUT NOCOPY qab_rec_type
2651 ) RETURN VARCHAR2 IS
2652 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2653 BEGIN
2654 x_qab_rec := p_qab_rec;
2655 x_qab_rec.OBJECT_VERSION_NUMBER := p_qab_rec.OBJECT_VERSION_NUMBER + 1;
2656 RETURN(l_return_status);
2657 END Set_Attributes;
2658 BEGIN
2659 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2660 p_init_msg_list,
2661 '_PVT',
2662 x_return_status);
2663 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2664 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2665 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2666 RAISE OKC_API.G_EXCEPTION_ERROR;
2667 END IF;
2668 --- Setting item attributes
2669 l_return_status := Set_Attributes(
2670 p_qab_rec, -- IN
2671 l_qab_rec); -- OUT
2672 --- If any errors happen abort API
2673 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2674 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2675 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2676 RAISE OKC_API.G_EXCEPTION_ERROR;
2677 END IF;
2678 l_return_status := populate_new_record(l_qab_rec, l_def_qab_rec);
2679 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2680 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2681 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2682 RAISE OKC_API.G_EXCEPTION_ERROR;
2683 END IF;
2684 UPDATE OKL_TXD_QTE_ANTCPT_BILL
2685 SET OBJECT_VERSION_NUMBER = l_def_qab_rec.object_version_number,
2686 KHR_ID = l_def_qab_rec.khr_id,
2687 QTE_ID = l_def_qab_rec.qte_id,
2688 KLE_ID = l_def_qab_rec.kle_id,
2689 STY_ID = l_def_qab_rec.sty_id,
2690 SEL_DATE = l_def_qab_rec.sel_date, -- rmunjulu EDAT ADDED
2691 AMOUNT = l_def_qab_rec.amount,
2692 ORG_ID = l_def_qab_rec.org_id,
2693 REQUEST_ID = l_def_qab_rec.request_id,
2694 PROGRAM_APPLICATION_ID = l_def_qab_rec.program_application_id,
2695 PROGRAM_ID = l_def_qab_rec.program_id,
2696 PROGRAM_UPDATE_DATE = l_def_qab_rec.program_update_date,
2697 ATTRIBUTE_CATEGORY = l_def_qab_rec.attribute_category,
2698 ATTRIBUTE1 = l_def_qab_rec.attribute1,
2699 ATTRIBUTE2 = l_def_qab_rec.attribute2,
2700 ATTRIBUTE3 = l_def_qab_rec.attribute3,
2701 ATTRIBUTE4 = l_def_qab_rec.attribute4,
2702 ATTRIBUTE5 = l_def_qab_rec.attribute5,
2703 ATTRIBUTE6 = l_def_qab_rec.attribute6,
2704 ATTRIBUTE7 = l_def_qab_rec.attribute7,
2705 ATTRIBUTE8 = l_def_qab_rec.attribute8,
2706 ATTRIBUTE9 = l_def_qab_rec.attribute9,
2707 ATTRIBUTE10 = l_def_qab_rec.attribute10,
2708 ATTRIBUTE11 = l_def_qab_rec.attribute11,
2709 ATTRIBUTE12 = l_def_qab_rec.attribute12,
2710 ATTRIBUTE13 = l_def_qab_rec.attribute13,
2711 ATTRIBUTE14 = l_def_qab_rec.attribute14,
2712 ATTRIBUTE15 = l_def_qab_rec.attribute15,
2713 CREATED_BY = l_def_qab_rec.created_by,
2714 CREATION_DATE = l_def_qab_rec.creation_date,
2715 LAST_UPDATED_BY = l_def_qab_rec.last_updated_by,
2716 LAST_UPDATE_DATE = l_def_qab_rec.last_update_date,
2717 LAST_UPDATE_LOGIN = l_def_qab_rec.last_update_login,
2718 CURRENCY_CODE = l_def_qab_rec.currency_code,
2719 CURRENCY_CONVERSION_CODE = l_def_qab_rec.currency_conversion_code,
2720 CURRENCY_CONVERSION_TYPE = l_def_qab_rec.currency_conversion_type,
2721 CURRENCY_CONVERSION_RATE = l_def_qab_rec.currency_conversion_rate,
2722 CURRENCY_CONVERSION_DATE = l_def_qab_rec.currency_conversion_date
2723 WHERE ID = l_def_qab_rec.id;
2724
2725 x_qab_rec := l_qab_rec;
2726 x_return_status := l_return_status;
2727 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2728 EXCEPTION
2729 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2730 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2731 (
2732 l_api_name,
2733 G_PKG_NAME,
2734 'OKC_API.G_RET_STS_ERROR',
2735 x_msg_count,
2736 x_msg_data,
2737 '_PVT'
2738 );
2739 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2740 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2741 (
2742 l_api_name,
2743 G_PKG_NAME,
2744 'OKC_API.G_RET_STS_UNEXP_ERROR',
2745 x_msg_count,
2746 x_msg_data,
2747 '_PVT'
2748 );
2749 WHEN OTHERS THEN
2750 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2751 (
2752 l_api_name,
2753 G_PKG_NAME,
2754 'OTHERS',
2755 x_msg_count,
2756 x_msg_data,
2757 '_PVT'
2758 );
2759 END update_row;
2760 ----------------------------------------------
2761 -- update_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
2762 ----------------------------------------------
2763 PROCEDURE update_row(
2764 p_api_version IN NUMBER,
2765 p_init_msg_list IN VARCHAR2,
2766 x_return_status OUT NOCOPY VARCHAR2,
2767 x_msg_count OUT NOCOPY NUMBER,
2768 x_msg_data OUT NOCOPY VARCHAR2,
2769 p_qabv_rec IN qabv_rec_type,
2770 x_qabv_rec OUT NOCOPY qabv_rec_type) IS
2771
2772 l_api_version CONSTANT NUMBER := 1;
2773 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2774 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2775 l_qabv_rec qabv_rec_type := p_qabv_rec;
2776 l_def_qabv_rec qabv_rec_type;
2777 l_db_qabv_rec qabv_rec_type;
2778 l_qab_rec qab_rec_type;
2779 lx_qab_rec qab_rec_type;
2780 -------------------------------
2781 -- FUNCTION fill_who_columns --
2782 -------------------------------
2783 FUNCTION fill_who_columns (
2784 p_qabv_rec IN qabv_rec_type
2785 ) RETURN qabv_rec_type IS
2786 l_qabv_rec qabv_rec_type := p_qabv_rec;
2787 BEGIN
2788 l_qabv_rec.LAST_UPDATE_DATE := SYSDATE;
2789 l_qabv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2790 l_qabv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2791 RETURN(l_qabv_rec);
2792 END fill_who_columns;
2793 ----------------------------------
2794 -- FUNCTION populate_new_record --
2795 ----------------------------------
2796 FUNCTION populate_new_record (
2797 p_qabv_rec IN qabv_rec_type,
2798 x_qabv_rec OUT NOCOPY qabv_rec_type
2799 ) RETURN VARCHAR2 IS
2800 l_row_notfound BOOLEAN := TRUE;
2801 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2802 BEGIN
2803 x_qabv_rec := p_qabv_rec;
2804 -- Get current database values
2805 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
2806 -- so it may be verified through LOCK_ROW.
2807 l_db_qabv_rec := get_rec(p_qabv_rec, l_return_status);
2808 IF (l_return_status = OKC_API.G_RET_STS_SUCCESS) THEN
2809 IF (x_qabv_rec.id = OKC_API.G_MISS_NUM)
2810 THEN
2811 x_qabv_rec.id := l_db_qabv_rec.id;
2812 END IF;
2813 IF (x_qabv_rec.khr_id = OKC_API.G_MISS_NUM)
2814 THEN
2815 x_qabv_rec.khr_id := l_db_qabv_rec.khr_id;
2816 END IF;
2817 IF (x_qabv_rec.qte_id = OKC_API.G_MISS_NUM)
2818 THEN
2819 x_qabv_rec.qte_id := l_db_qabv_rec.qte_id;
2820 END IF;
2821 IF (x_qabv_rec.kle_id = OKC_API.G_MISS_NUM)
2822 THEN
2823 x_qabv_rec.kle_id := l_db_qabv_rec.kle_id;
2824 END IF;
2825 IF (x_qabv_rec.sty_id = OKC_API.G_MISS_NUM)
2826 THEN
2827 x_qabv_rec.sty_id := l_db_qabv_rec.sty_id;
2828 END IF;
2829 -- rmunjulu EDAT ADDED
2830 IF (x_qabv_rec.sel_date = OKC_API.G_MISS_DATE)
2831 THEN
2832 x_qabv_rec.sel_date := l_db_qabv_rec.sel_date;
2833 END IF;
2834 IF (x_qabv_rec.amount = OKC_API.G_MISS_NUM)
2835 THEN
2836 x_qabv_rec.amount := l_db_qabv_rec.amount;
2837 END IF;
2838 IF (x_qabv_rec.org_id = OKC_API.G_MISS_NUM)
2839 THEN
2840 x_qabv_rec.org_id := l_db_qabv_rec.org_id;
2841 END IF;
2842 IF (x_qabv_rec.request_id = OKC_API.G_MISS_NUM)
2843 THEN
2844 x_qabv_rec.request_id := l_db_qabv_rec.request_id;
2845 END IF;
2846 IF (x_qabv_rec.program_application_id = OKC_API.G_MISS_NUM)
2847 THEN
2848 x_qabv_rec.program_application_id := l_db_qabv_rec.program_application_id;
2849 END IF;
2850 IF (x_qabv_rec.program_id = OKC_API.G_MISS_NUM)
2851 THEN
2852 x_qabv_rec.program_id := l_db_qabv_rec.program_id;
2853 END IF;
2854 IF (x_qabv_rec.program_update_date = OKC_API.G_MISS_DATE)
2855 THEN
2856 x_qabv_rec.program_update_date := l_db_qabv_rec.program_update_date;
2857 END IF;
2858 IF (x_qabv_rec.attribute_category = OKC_API.G_MISS_CHAR)
2859 THEN
2860 x_qabv_rec.attribute_category := l_db_qabv_rec.attribute_category;
2861 END IF;
2862 IF (x_qabv_rec.attribute1 = OKC_API.G_MISS_CHAR)
2863 THEN
2864 x_qabv_rec.attribute1 := l_db_qabv_rec.attribute1;
2865 END IF;
2866 IF (x_qabv_rec.attribute2 = OKC_API.G_MISS_CHAR)
2867 THEN
2868 x_qabv_rec.attribute2 := l_db_qabv_rec.attribute2;
2869 END IF;
2870 IF (x_qabv_rec.attribute3 = OKC_API.G_MISS_CHAR)
2871 THEN
2872 x_qabv_rec.attribute3 := l_db_qabv_rec.attribute3;
2873 END IF;
2874 IF (x_qabv_rec.attribute4 = OKC_API.G_MISS_CHAR)
2875 THEN
2876 x_qabv_rec.attribute4 := l_db_qabv_rec.attribute4;
2877 END IF;
2878 IF (x_qabv_rec.attribute5 = OKC_API.G_MISS_CHAR)
2879 THEN
2880 x_qabv_rec.attribute5 := l_db_qabv_rec.attribute5;
2881 END IF;
2882 IF (x_qabv_rec.attribute6 = OKC_API.G_MISS_CHAR)
2883 THEN
2884 x_qabv_rec.attribute6 := l_db_qabv_rec.attribute6;
2885 END IF;
2886 IF (x_qabv_rec.attribute7 = OKC_API.G_MISS_CHAR)
2887 THEN
2888 x_qabv_rec.attribute7 := l_db_qabv_rec.attribute7;
2889 END IF;
2890 IF (x_qabv_rec.attribute8 = OKC_API.G_MISS_CHAR)
2891 THEN
2892 x_qabv_rec.attribute8 := l_db_qabv_rec.attribute8;
2893 END IF;
2894 IF (x_qabv_rec.attribute9 = OKC_API.G_MISS_CHAR)
2895 THEN
2896 x_qabv_rec.attribute9 := l_db_qabv_rec.attribute9;
2897 END IF;
2898 IF (x_qabv_rec.attribute10 = OKC_API.G_MISS_CHAR)
2899 THEN
2900 x_qabv_rec.attribute10 := l_db_qabv_rec.attribute10;
2901 END IF;
2902 IF (x_qabv_rec.attribute11 = OKC_API.G_MISS_CHAR)
2903 THEN
2904 x_qabv_rec.attribute11 := l_db_qabv_rec.attribute11;
2905 END IF;
2906 IF (x_qabv_rec.attribute12 = OKC_API.G_MISS_CHAR)
2907 THEN
2908 x_qabv_rec.attribute12 := l_db_qabv_rec.attribute12;
2909 END IF;
2910 IF (x_qabv_rec.attribute13 = OKC_API.G_MISS_CHAR)
2911 THEN
2912 x_qabv_rec.attribute13 := l_db_qabv_rec.attribute13;
2913 END IF;
2914 IF (x_qabv_rec.attribute14 = OKC_API.G_MISS_CHAR)
2915 THEN
2916 x_qabv_rec.attribute14 := l_db_qabv_rec.attribute14;
2917 END IF;
2918 IF (x_qabv_rec.attribute15 = OKC_API.G_MISS_CHAR)
2919 THEN
2920 x_qabv_rec.attribute15 := l_db_qabv_rec.attribute15;
2921 END IF;
2922 IF (x_qabv_rec.created_by = OKC_API.G_MISS_NUM)
2923 THEN
2924 x_qabv_rec.created_by := l_db_qabv_rec.created_by;
2925 END IF;
2926 IF (x_qabv_rec.creation_date = OKC_API.G_MISS_DATE)
2927 THEN
2928 x_qabv_rec.creation_date := l_db_qabv_rec.creation_date;
2929 END IF;
2930 IF (x_qabv_rec.last_updated_by = OKC_API.G_MISS_NUM)
2931 THEN
2932 x_qabv_rec.last_updated_by := l_db_qabv_rec.last_updated_by;
2933 END IF;
2934 IF (x_qabv_rec.last_update_date = OKC_API.G_MISS_DATE)
2935 THEN
2936 x_qabv_rec.last_update_date := l_db_qabv_rec.last_update_date;
2937 END IF;
2938 IF (x_qabv_rec.last_update_login = OKC_API.G_MISS_NUM)
2939 THEN
2940 x_qabv_rec.last_update_login := l_db_qabv_rec.last_update_login;
2941 END IF;
2942 IF (x_qabv_rec.currency_code = OKC_API.G_MISS_CHAR)
2943 THEN
2944 x_qabv_rec.currency_code := l_db_qabv_rec.currency_code;
2945 END IF;
2946 IF (x_qabv_rec.currency_conversion_code = OKC_API.G_MISS_CHAR)
2947 THEN
2948 x_qabv_rec.currency_conversion_code := l_db_qabv_rec.currency_conversion_code;
2949 END IF;
2950 IF (x_qabv_rec.currency_conversion_type = OKC_API.G_MISS_CHAR)
2951 THEN
2952 x_qabv_rec.currency_conversion_type := l_db_qabv_rec.currency_conversion_type;
2953 END IF;
2954 IF (x_qabv_rec.currency_conversion_rate = OKC_API.G_MISS_NUM)
2955 THEN
2956 x_qabv_rec.currency_conversion_rate := l_db_qabv_rec.currency_conversion_rate;
2957 END IF;
2958 IF (x_qabv_rec.currency_conversion_date = OKC_API.G_MISS_DATE)
2959 THEN
2960 x_qabv_rec.currency_conversion_date := l_db_qabv_rec.currency_conversion_date;
2961 END IF;
2962 END IF;
2963 RETURN(l_return_status);
2964 END populate_new_record;
2965 --------------------------------------------------
2966 -- Set_Attributes for:OKL_TXD_QTE_ANTCPT_BILL_V --
2967 --------------------------------------------------
2968 FUNCTION Set_Attributes (
2969 p_qabv_rec IN qabv_rec_type,
2970 x_qabv_rec OUT NOCOPY qabv_rec_type
2971 ) RETURN VARCHAR2 IS
2972 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2973 BEGIN
2974 x_qabv_rec := p_qabv_rec;
2975 RETURN(l_return_status);
2976 END Set_Attributes;
2977 BEGIN
2978 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2979 G_PKG_NAME,
2980 p_init_msg_list,
2981 l_api_version,
2982 p_api_version,
2983 '_PVT',
2984 x_return_status);
2985 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2986 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2987 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2988 RAISE OKC_API.G_EXCEPTION_ERROR;
2989 END IF;
2990 --- Setting item attributes
2991 l_return_status := Set_Attributes(
2992 p_qabv_rec, -- IN
2993 x_qabv_rec); -- OUT
2994 --- If any errors happen abort API
2995 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2996 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2997 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2998 RAISE OKC_API.G_EXCEPTION_ERROR;
2999 END IF;
3000 l_return_status := populate_new_record(l_qabv_rec, l_def_qabv_rec);
3001 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3002 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3003 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3004 RAISE OKC_API.G_EXCEPTION_ERROR;
3005 END IF;
3006 l_def_qabv_rec := fill_who_columns(l_def_qabv_rec);
3007 --- Validate all non-missing attributes (Item Level Validation)
3008 l_return_status := Validate_Attributes(l_def_qabv_rec);
3009 --- If any errors happen abort API
3010 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3011 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3012 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3013 RAISE OKC_API.G_EXCEPTION_ERROR;
3014 END IF;
3015 l_return_status := Validate_Record(l_def_qabv_rec, l_db_qabv_rec);
3016 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3017 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3018 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3019 RAISE OKC_API.G_EXCEPTION_ERROR;
3020 END IF;
3021
3022 -- Lock the Record
3023 lock_row(
3024 p_api_version => p_api_version,
3025 p_init_msg_list => p_init_msg_list,
3026 x_return_status => l_return_status,
3027 x_msg_count => x_msg_count,
3028 x_msg_data => x_msg_data,
3029 p_qabv_rec => p_qabv_rec);
3030 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3031 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3032 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3033 RAISE OKC_API.G_EXCEPTION_ERROR;
3034 END IF;
3035
3036 -----------------------------------------
3037 -- Move VIEW record to "Child" records --
3038 -----------------------------------------
3039 migrate(l_def_qabv_rec, l_qab_rec);
3040 -----------------------------------------------
3041 -- Call the UPDATE_ROW for each child record --
3042 -----------------------------------------------
3043 update_row(
3044 p_init_msg_list,
3045 l_return_status,
3046 x_msg_count,
3047 x_msg_data,
3048 l_qab_rec,
3049 lx_qab_rec
3050 );
3051 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3052 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3053 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3054 RAISE OKC_API.G_EXCEPTION_ERROR;
3055 END IF;
3056 migrate(lx_qab_rec, l_def_qabv_rec);
3057 x_qabv_rec := l_def_qabv_rec;
3058 x_return_status := l_return_status;
3059 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3060 EXCEPTION
3061 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3062 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3063 (
3064 l_api_name,
3065 G_PKG_NAME,
3066 'OKC_API.G_RET_STS_ERROR',
3067 x_msg_count,
3068 x_msg_data,
3069 '_PVT'
3070 );
3071 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3072 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3073 (
3074 l_api_name,
3075 G_PKG_NAME,
3076 'OKC_API.G_RET_STS_UNEXP_ERROR',
3077 x_msg_count,
3078 x_msg_data,
3079 '_PVT'
3080 );
3081 WHEN OTHERS THEN
3082 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3083 (
3084 l_api_name,
3085 G_PKG_NAME,
3086 'OTHERS',
3087 x_msg_count,
3088 x_msg_data,
3089 '_PVT'
3090 );
3091 END update_row;
3092 ----------------------------------------
3093 -- PL/SQL TBL update_row for:qabv_tbl --
3094 ----------------------------------------
3095 PROCEDURE update_row(
3096 p_api_version IN NUMBER,
3097 p_init_msg_list IN VARCHAR2,
3098 x_return_status OUT NOCOPY VARCHAR2,
3099 x_msg_count OUT NOCOPY NUMBER,
3100 x_msg_data OUT NOCOPY VARCHAR2,
3101 p_qabv_tbl IN qabv_tbl_type,
3102 x_qabv_tbl OUT NOCOPY qabv_tbl_type,
3103 px_error_tbl IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
3104
3105 l_api_version CONSTANT NUMBER := 1;
3106 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
3107 i NUMBER := 0;
3108 BEGIN
3109 OKC_API.init_msg_list(p_init_msg_list);
3110 -- Make sure PL/SQL table has records in it before passing
3111 IF (p_qabv_tbl.COUNT > 0) THEN
3112 i := p_qabv_tbl.FIRST;
3113 LOOP
3114 DECLARE
3115 l_error_rec OKC_API.ERROR_REC_TYPE;
3116 BEGIN
3117 l_error_rec.api_name := l_api_name;
3118 l_error_rec.api_package := G_PKG_NAME;
3119 l_error_rec.idx := i;
3120 update_row (
3121 p_api_version => p_api_version,
3122 p_init_msg_list => OKC_API.G_FALSE,
3123 x_return_status => l_error_rec.error_type,
3124 x_msg_count => l_error_rec.msg_count,
3125 x_msg_data => l_error_rec.msg_data,
3126 p_qabv_rec => p_qabv_tbl(i),
3127 x_qabv_rec => x_qabv_tbl(i));
3128 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3129 l_error_rec.sqlcode := SQLCODE;
3130 load_error_tbl(l_error_rec, px_error_tbl);
3131 ELSE
3132 x_msg_count := l_error_rec.msg_count;
3133 x_msg_data := l_error_rec.msg_data;
3134 END IF;
3135 EXCEPTION
3136 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3137 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3138 l_error_rec.sqlcode := SQLCODE;
3139 load_error_tbl(l_error_rec, px_error_tbl);
3140 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3141 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3142 l_error_rec.sqlcode := SQLCODE;
3143 load_error_tbl(l_error_rec, px_error_tbl);
3144 WHEN OTHERS THEN
3145 l_error_rec.error_type := 'OTHERS';
3146 l_error_rec.sqlcode := SQLCODE;
3147 load_error_tbl(l_error_rec, px_error_tbl);
3148 END;
3149 EXIT WHEN (i = p_qabv_tbl.LAST);
3150 i := p_qabv_tbl.NEXT(i);
3151 END LOOP;
3152 END IF;
3153 -- Loop through the error_tbl to find the error with the highest severity
3154 -- and return it.
3155 x_return_status := find_highest_exception(px_error_tbl);
3156 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3157 EXCEPTION
3158 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3159 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3160 (
3161 l_api_name,
3162 G_PKG_NAME,
3163 'OKC_API.G_RET_STS_ERROR',
3164 x_msg_count,
3165 x_msg_data,
3166 '_PVT'
3167 );
3168 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3169 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3170 (
3171 l_api_name,
3172 G_PKG_NAME,
3173 'OKC_API.G_RET_STS_UNEXP_ERROR',
3174 x_msg_count,
3175 x_msg_data,
3176 '_PVT'
3177 );
3178 WHEN OTHERS THEN
3179 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3180 (
3181 l_api_name,
3182 G_PKG_NAME,
3183 'OTHERS',
3184 x_msg_count,
3185 x_msg_data,
3186 '_PVT'
3187 );
3188 END update_row;
3189
3190 ----------------------------------------
3191 -- PL/SQL TBL update_row for:QABV_TBL --
3192 ----------------------------------------
3193 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
3194 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
3195 PROCEDURE update_row(
3196 p_api_version IN NUMBER,
3197 p_init_msg_list IN VARCHAR2,
3198 x_return_status OUT NOCOPY VARCHAR2,
3199 x_msg_count OUT NOCOPY NUMBER,
3200 x_msg_data OUT NOCOPY VARCHAR2,
3201 p_qabv_tbl IN qabv_tbl_type,
3202 x_qabv_tbl OUT NOCOPY qabv_tbl_type) IS
3203
3204 l_api_version CONSTANT NUMBER := 1;
3205 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3206 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3207 l_error_tbl OKC_API.ERROR_TBL_TYPE;
3208 BEGIN
3209 OKC_API.init_msg_list(p_init_msg_list);
3210 -- Make sure PL/SQL table has records in it before passing
3211 IF (p_qabv_tbl.COUNT > 0) THEN
3212 update_row (
3213 p_api_version => p_api_version,
3214 p_init_msg_list => OKC_API.G_FALSE,
3215 x_return_status => x_return_status,
3216 x_msg_count => x_msg_count,
3217 x_msg_data => x_msg_data,
3218 p_qabv_tbl => p_qabv_tbl,
3219 x_qabv_tbl => x_qabv_tbl,
3220 px_error_tbl => l_error_tbl);
3221 END IF;
3222 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3223 EXCEPTION
3224 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3225 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3226 (
3227 l_api_name,
3228 G_PKG_NAME,
3229 'OKC_API.G_RET_STS_ERROR',
3230 x_msg_count,
3231 x_msg_data,
3232 '_PVT'
3233 );
3234 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3235 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3236 (
3237 l_api_name,
3238 G_PKG_NAME,
3239 'OKC_API.G_RET_STS_UNEXP_ERROR',
3240 x_msg_count,
3241 x_msg_data,
3242 '_PVT'
3243 );
3244 WHEN OTHERS THEN
3245 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3246 (
3247 l_api_name,
3248 G_PKG_NAME,
3249 'OTHERS',
3250 x_msg_count,
3251 x_msg_data,
3252 '_PVT'
3253 );
3254 END update_row;
3255
3256 ---------------------------------------------------------------------------
3257 -- PROCEDURE delete_row
3258 ---------------------------------------------------------------------------
3259 --------------------------------------------
3260 -- delete_row for:OKL_TXD_QTE_ANTCPT_BILL --
3261 --------------------------------------------
3262 PROCEDURE delete_row(
3263 p_init_msg_list IN VARCHAR2,
3264 x_return_status OUT NOCOPY VARCHAR2,
3265 x_msg_count OUT NOCOPY NUMBER,
3266 x_msg_data OUT NOCOPY VARCHAR2,
3267 p_qab_rec IN qab_rec_type) IS
3268
3269 l_api_version CONSTANT NUMBER := 1;
3270 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
3271 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3272 l_qab_rec qab_rec_type := p_qab_rec;
3273 l_row_notfound BOOLEAN := TRUE;
3274 BEGIN
3275 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3276 p_init_msg_list,
3277 '_PVT',
3278 x_return_status);
3279 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3280 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3281 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3282 RAISE OKC_API.G_EXCEPTION_ERROR;
3283 END IF;
3284
3285 DELETE FROM OKL_TXD_QTE_ANTCPT_BILL
3286 WHERE ID = p_qab_rec.id;
3287
3288 x_return_status := l_return_status;
3289 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3290 EXCEPTION
3291 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3292 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3293 (
3294 l_api_name,
3295 G_PKG_NAME,
3296 'OKC_API.G_RET_STS_ERROR',
3297 x_msg_count,
3298 x_msg_data,
3299 '_PVT'
3300 );
3301 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3302 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3303 (
3304 l_api_name,
3305 G_PKG_NAME,
3306 'OKC_API.G_RET_STS_UNEXP_ERROR',
3307 x_msg_count,
3308 x_msg_data,
3309 '_PVT'
3310 );
3311 WHEN OTHERS THEN
3312 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3313 (
3314 l_api_name,
3315 G_PKG_NAME,
3316 'OTHERS',
3317 x_msg_count,
3318 x_msg_data,
3319 '_PVT'
3320 );
3321 END delete_row;
3322 ----------------------------------------------
3323 -- delete_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
3324 ----------------------------------------------
3325 PROCEDURE delete_row(
3326 p_api_version IN NUMBER,
3327 p_init_msg_list IN VARCHAR2,
3328 x_return_status OUT NOCOPY VARCHAR2,
3329 x_msg_count OUT NOCOPY NUMBER,
3330 x_msg_data OUT NOCOPY VARCHAR2,
3331 p_qabv_rec IN qabv_rec_type) IS
3332
3333 l_api_version CONSTANT NUMBER := 1;
3334 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
3335 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3336 l_qabv_rec qabv_rec_type := p_qabv_rec;
3337 l_qab_rec qab_rec_type;
3338 BEGIN
3339 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3340 G_PKG_NAME,
3341 p_init_msg_list,
3342 l_api_version,
3343 p_api_version,
3344 '_PVT',
3345 x_return_status);
3346 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3347 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3348 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3349 RAISE OKC_API.G_EXCEPTION_ERROR;
3350 END IF;
3351 -----------------------------------------
3352 -- Move VIEW record to "Child" records --
3353 -----------------------------------------
3354 migrate(l_qabv_rec, l_qab_rec);
3355 -----------------------------------------------
3356 -- Call the DELETE_ROW for each child record --
3357 -----------------------------------------------
3358 delete_row(
3359 p_init_msg_list,
3360 l_return_status,
3361 x_msg_count,
3362 x_msg_data,
3363 l_qab_rec
3364 );
3365 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3366 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3367 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3368 RAISE OKC_API.G_EXCEPTION_ERROR;
3369 END IF;
3370 x_return_status := l_return_status;
3371 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3372 EXCEPTION
3373 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3374 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3375 (
3376 l_api_name,
3377 G_PKG_NAME,
3378 'OKC_API.G_RET_STS_ERROR',
3379 x_msg_count,
3380 x_msg_data,
3381 '_PVT'
3382 );
3383 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3384 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3385 (
3386 l_api_name,
3387 G_PKG_NAME,
3388 'OKC_API.G_RET_STS_UNEXP_ERROR',
3389 x_msg_count,
3390 x_msg_data,
3391 '_PVT'
3392 );
3393 WHEN OTHERS THEN
3394 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3395 (
3396 l_api_name,
3397 G_PKG_NAME,
3398 'OTHERS',
3399 x_msg_count,
3400 x_msg_data,
3401 '_PVT'
3402 );
3403 END delete_row;
3404 ---------------------------------------------------------
3405 -- PL/SQL TBL delete_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
3406 ---------------------------------------------------------
3407 PROCEDURE delete_row(
3408 p_api_version IN NUMBER,
3409 p_init_msg_list IN VARCHAR2,
3410 x_return_status OUT NOCOPY VARCHAR2,
3411 x_msg_count OUT NOCOPY NUMBER,
3412 x_msg_data OUT NOCOPY VARCHAR2,
3413 p_qabv_tbl IN qabv_tbl_type,
3414 px_error_tbl IN OUT NOCOPY OKC_API.ERROR_TBL_TYPE) IS
3415
3416 l_api_version CONSTANT NUMBER := 1;
3417 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
3418 i NUMBER := 0;
3419 BEGIN
3420 OKC_API.init_msg_list(p_init_msg_list);
3421 -- Make sure PL/SQL table has records in it before passing
3422 IF (p_qabv_tbl.COUNT > 0) THEN
3423 i := p_qabv_tbl.FIRST;
3424 LOOP
3425 DECLARE
3426 l_error_rec OKC_API.ERROR_REC_TYPE;
3427 BEGIN
3428 l_error_rec.api_name := l_api_name;
3429 l_error_rec.api_package := G_PKG_NAME;
3430 l_error_rec.idx := i;
3431 delete_row (
3432 p_api_version => p_api_version,
3433 p_init_msg_list => OKC_API.G_FALSE,
3434 x_return_status => l_error_rec.error_type,
3435 x_msg_count => l_error_rec.msg_count,
3436 x_msg_data => l_error_rec.msg_data,
3437 p_qabv_rec => p_qabv_tbl(i));
3438 IF (l_error_rec.error_type <> OKC_API.G_RET_STS_SUCCESS) THEN
3439 l_error_rec.sqlcode := SQLCODE;
3440 load_error_tbl(l_error_rec, px_error_tbl);
3441 ELSE
3442 x_msg_count := l_error_rec.msg_count;
3443 x_msg_data := l_error_rec.msg_data;
3444 END IF;
3445 EXCEPTION
3446 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3447 l_error_rec.error_type := OKC_API.G_RET_STS_ERROR;
3448 l_error_rec.sqlcode := SQLCODE;
3449 load_error_tbl(l_error_rec, px_error_tbl);
3450 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3451 l_error_rec.error_type := OKC_API.G_RET_STS_UNEXP_ERROR;
3452 l_error_rec.sqlcode := SQLCODE;
3453 load_error_tbl(l_error_rec, px_error_tbl);
3454 WHEN OTHERS THEN
3455 l_error_rec.error_type := 'OTHERS';
3456 l_error_rec.sqlcode := SQLCODE;
3457 load_error_tbl(l_error_rec, px_error_tbl);
3458 END;
3459 EXIT WHEN (i = p_qabv_tbl.LAST);
3460 i := p_qabv_tbl.NEXT(i);
3461 END LOOP;
3462 END IF;
3463 -- Loop through the error_tbl to find the error with the highest severity
3464 -- and return it.
3465 x_return_status := find_highest_exception(px_error_tbl);
3466 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3467 EXCEPTION
3468 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3469 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3470 (
3471 l_api_name,
3472 G_PKG_NAME,
3473 'OKC_API.G_RET_STS_ERROR',
3474 x_msg_count,
3475 x_msg_data,
3476 '_PVT'
3477 );
3478 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3479 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3480 (
3481 l_api_name,
3482 G_PKG_NAME,
3483 'OKC_API.G_RET_STS_UNEXP_ERROR',
3484 x_msg_count,
3485 x_msg_data,
3486 '_PVT'
3487 );
3488 WHEN OTHERS THEN
3489 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3490 (
3491 l_api_name,
3492 G_PKG_NAME,
3493 'OTHERS',
3494 x_msg_count,
3495 x_msg_data,
3496 '_PVT'
3497 );
3498 END delete_row;
3499
3500 ---------------------------------------------------------
3501 -- PL/SQL TBL delete_row for:OKL_TXD_QTE_ANTCPT_BILL_V --
3502 ---------------------------------------------------------
3503 PROCEDURE delete_row(
3504 p_api_version IN NUMBER,
3505 p_init_msg_list IN VARCHAR2,
3506 x_return_status OUT NOCOPY VARCHAR2,
3507 x_msg_count OUT NOCOPY NUMBER,
3508 x_msg_data OUT NOCOPY VARCHAR2,
3509 p_qabv_tbl IN qabv_tbl_type) IS
3510
3511 l_api_version CONSTANT NUMBER := 1;
3512 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3513 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3514 l_error_tbl OKC_API.ERROR_TBL_TYPE;
3515 BEGIN
3516 OKC_API.init_msg_list(p_init_msg_list);
3517 -- Make sure PL/SQL table has records in it before passing
3518 IF (p_qabv_tbl.COUNT > 0) THEN
3519 delete_row (
3520 p_api_version => p_api_version,
3521 p_init_msg_list => OKC_API.G_FALSE,
3522 x_return_status => x_return_status,
3523 x_msg_count => x_msg_count,
3524 x_msg_data => x_msg_data,
3525 p_qabv_tbl => p_qabv_tbl,
3526 px_error_tbl => l_error_tbl);
3527 END IF;
3528 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3529 EXCEPTION
3530 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3531 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3532 (
3533 l_api_name,
3534 G_PKG_NAME,
3535 'OKC_API.G_RET_STS_ERROR',
3536 x_msg_count,
3537 x_msg_data,
3538 '_PVT'
3539 );
3540 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3541 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3542 (
3543 l_api_name,
3544 G_PKG_NAME,
3545 'OKC_API.G_RET_STS_UNEXP_ERROR',
3546 x_msg_count,
3547 x_msg_data,
3548 '_PVT'
3549 );
3550 WHEN OTHERS THEN
3551 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3552 (
3553 l_api_name,
3554 G_PKG_NAME,
3555 'OTHERS',
3556 x_msg_count,
3557 x_msg_data,
3558 '_PVT'
3559 );
3560 END delete_row;
3561
3562 END OKL_QAB_PVT;