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