[Home] [Help]
PACKAGE BODY: APPS.OKL_TBC_PVT
Source
1 PACKAGE BODY OKL_TBC_PVT AS
2 /* $Header: OKLSTBCB.pls 120.14 2007/04/02 14:45:03 asawanka 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 l_id NUMBER;
66 BEGIN
67 select okl_tax_attr_definitions_s.NEXTVAL into l_id from dual;
68 RETURN l_id;
69 END get_seq_id;
70
71 ---------------------------------------------------------------------------
72 -- PROCEDURE qc
73 ---------------------------------------------------------------------------
74 PROCEDURE qc IS
75 BEGIN
76 null;
77 END qc;
78
79 ---------------------------------------------------------------------------
80 -- PROCEDURE change_version
81 ---------------------------------------------------------------------------
82 PROCEDURE change_version IS
83 BEGIN
84 null;
85 END change_version;
86
87 ---------------------------------------------------------------------------
88 -- PROCEDURE api_copy
89 ---------------------------------------------------------------------------
90 PROCEDURE api_copy IS
91 BEGIN
92 null;
93 END api_copy;
94
95 ---------------------------------------------------------------------------
96 -- FUNCTION get_rec for: OKL_TAX_ATTR_DEFINITIONS
97 ---------------------------------------------------------------------------
98 FUNCTION get_rec (
99 p_tbcv_rec IN tbcv_rec_type,
100 x_no_data_found OUT NOCOPY BOOLEAN
101 ) RETURN tbcv_rec_type IS
102 CURSOR okl_tbcv_pk_csr (p_TAX_ATTRIBUTE_DEF_ID IN NUMBER) IS
103 SELECT
104 --ID,
105 --ORG_ID,
106 RESULT_CODE,
107 PURCHASE_OPTION_CODE,
108 PDT_ID,
109 TRY_ID,
110 STY_ID,
111 INT_DISCLOSED_CODE,
112 TITLE_TRNSFR_CODE,
113 SALE_LEASE_BACK_CODE,
114 LEASE_PURCHASED_CODE,
115 EQUIP_USAGE_CODE,
116 VENDOR_SITE_ID,
117 AGE_OF_EQUIP_FROM,
118 AGE_OF_EQUIP_TO,
119 OBJECT_VERSION_NUMBER,
120 ATTRIBUTE_CATEGORY,
121 ATTRIBUTE1,
122 ATTRIBUTE2,
123 ATTRIBUTE3,
124 ATTRIBUTE4,
125 ATTRIBUTE5,
126 ATTRIBUTE6,
127 ATTRIBUTE7,
128 ATTRIBUTE8,
129 ATTRIBUTE9,
130 ATTRIBUTE10,
131 ATTRIBUTE11,
132 ATTRIBUTE12,
133 ATTRIBUTE13,
134 ATTRIBUTE14,
135 ATTRIBUTE15,
136 CREATED_BY,
137 CREATION_DATE,
138 LAST_UPDATED_BY,
139 LAST_UPDATE_DATE,
140 LAST_UPDATE_LOGIN,
141 -- modified by dcshanmu for eBTax project - modification start
142 TAX_ATTRIBUTE_DEF_ID,
143 RESULT_TYPE_CODE,
144 BOOK_CLASS_CODE,
145 DATE_EFFECTIVE_FROM,
146 DATE_EFFECTIVE_TO,
147 TAX_COUNTRY_CODE,
148 TERM_QUOTE_TYPE_CODE,
149 TERM_QUOTE_REASON_CODE,
150 EXPIRE_FLAG
151 -- modified by dcshanmu for eBTax project - modification end
152 FROM OKL_TAX_ATTR_DEFINITIONS
153 -- WHERE OKL_TAX_ATTR_DEFINITIONS.id = p_id;
154 WHERE OKL_TAX_ATTR_DEFINITIONS.TAX_ATTRIBUTE_DEF_ID = p_TAX_ATTRIBUTE_DEF_ID;
155 l_okl_tbcv_pk okl_tbcv_pk_csr%ROWTYPE;
156 l_tbcv_rec tbcv_rec_type;
157 BEGIN
158 x_no_data_found := TRUE;
159 -- Get current database values
160 OPEN okl_tbcv_pk_csr (p_tbcv_rec.TAX_ATTRIBUTE_DEF_ID);
161 FETCH okl_tbcv_pk_csr INTO
162 --l_tbcv_rec.id,
163 --l_tbcv_rec.org_id,
164 l_tbcv_rec.result_code,
165 l_tbcv_rec.purchase_option_code,
166 l_tbcv_rec.pdt_id,
167 l_tbcv_rec.try_id,
168 l_tbcv_rec.sty_id,
169 l_tbcv_rec.int_disclosed_code,
170 l_tbcv_rec.title_trnsfr_code,
171 l_tbcv_rec.sale_lease_back_code,
172 l_tbcv_rec.lease_purchased_code,
173 l_tbcv_rec.equip_usage_code,
174 l_tbcv_rec.vendor_site_id,
175 l_tbcv_rec.age_of_equip_from,
176 l_tbcv_rec.age_of_equip_to,
177 l_tbcv_rec.object_version_number,
178 l_tbcv_rec.attribute_category,
179 l_tbcv_rec.attribute1,
180 l_tbcv_rec.attribute2,
181 l_tbcv_rec.attribute3,
182 l_tbcv_rec.attribute4,
183 l_tbcv_rec.attribute5,
184 l_tbcv_rec.attribute6,
185 l_tbcv_rec.attribute7,
186 l_tbcv_rec.attribute8,
187 l_tbcv_rec.attribute9,
188 l_tbcv_rec.attribute10,
189 l_tbcv_rec.attribute11,
190 l_tbcv_rec.attribute12,
191 l_tbcv_rec.attribute13,
192 l_tbcv_rec.attribute14,
193 l_tbcv_rec.attribute15,
194 l_tbcv_rec.created_by,
195 l_tbcv_rec.creation_date,
196 l_tbcv_rec.last_updated_by,
197 l_tbcv_rec.last_update_date,
198 l_tbcv_rec.last_update_login,
199 -- modified by dcshanmu for eBTax project - modification start
200 l_tbcv_rec.tax_attribute_def_id,
201 l_tbcv_rec.result_type_code,
202 l_tbcv_rec.book_class_code,
203 l_tbcv_rec.date_effective_from,
204 l_tbcv_rec.date_effective_to,
205 l_tbcv_rec.tax_country_code,
206 l_tbcv_rec.term_quote_type_code,
207 l_tbcv_rec.term_quote_reason_code,
208 l_tbcv_rec.expire_flag;
209 -- modified by dcshanmu for eBTax project - modification end
210 x_no_data_found := okl_tbcv_pk_csr%NOTFOUND;
211 CLOSE okl_tbcv_pk_csr;
212
213 RETURN(l_tbcv_rec);
214 END get_rec;
215
216 ------------------------------------------------------------------
217 -- This version of get_rec sets error messages if no data found --
218 ------------------------------------------------------------------
219 FUNCTION get_rec (
220 p_tbcv_rec IN tbcv_rec_type,
221 x_return_status OUT NOCOPY VARCHAR2
222 ) RETURN tbcv_rec_type IS
223 l_tbcv_rec tbcv_rec_type;
224 l_row_notfound BOOLEAN := TRUE;
225 BEGIN
226 x_return_status := OKL_API.G_RET_STS_SUCCESS;
227 l_tbcv_rec := get_rec(p_tbcv_rec, l_row_notfound);
228 IF (l_row_notfound) THEN
229 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_ATTRIBUTE_DEF_ID');
230 x_return_status := OKL_API.G_RET_STS_ERROR;
231 END IF;
232 RETURN(l_tbcv_rec);
233 END get_rec;
234 -----------------------------------------------------------
235 -- So we don't have to pass an "l_row_notfound" variable --
236 -----------------------------------------------------------
237 FUNCTION get_rec (
238 p_tbcv_rec IN tbcv_rec_type
239 ) RETURN tbcv_rec_type IS
240 l_row_not_found BOOLEAN := TRUE;
241 BEGIN
242 RETURN(get_rec(p_tbcv_rec, l_row_not_found));
243 END get_rec;
244 ---------------------------------------------------------------------------
245 -- FUNCTION get_rec for: OKL_TAX_ATTR_DEFINITIONS
246 ---------------------------------------------------------------------------
247 FUNCTION get_rec (
248 p_tbc_rec IN tbc_rec_type,
249 x_no_data_found OUT NOCOPY BOOLEAN
250 ) RETURN tbc_rec_type IS
251 CURSOR okl_tbc_defs_pk_csr (p_TAX_ATTRIBUTE_DEF_ID IN NUMBER) IS
252 SELECT
253 --ID,
254 --ORG_ID,
255 RESULT_CODE,
256 PURCHASE_OPTION_CODE,
257 PDT_ID,
258 TRY_ID,
259 STY_ID,
260 INT_DISCLOSED_CODE,
261 TITLE_TRNSFR_CODE,
262 SALE_LEASE_BACK_CODE,
263 LEASE_PURCHASED_CODE,
264 EQUIP_USAGE_CODE,
265 VENDOR_SITE_ID,
266 AGE_OF_EQUIP_FROM,
267 AGE_OF_EQUIP_TO,
268 OBJECT_VERSION_NUMBER,
269 ATTRIBUTE_CATEGORY,
270 ATTRIBUTE1,
271 ATTRIBUTE2,
272 ATTRIBUTE3,
273 ATTRIBUTE4,
274 ATTRIBUTE5,
275 ATTRIBUTE6,
276 ATTRIBUTE7,
277 ATTRIBUTE8,
278 ATTRIBUTE9,
279 ATTRIBUTE10,
280 ATTRIBUTE11,
281 ATTRIBUTE12,
282 ATTRIBUTE13,
283 ATTRIBUTE14,
284 ATTRIBUTE15,
285 CREATED_BY,
286 CREATION_DATE,
287 LAST_UPDATED_BY,
288 LAST_UPDATE_DATE,
289 LAST_UPDATE_LOGIN,
290 -- modified by dcshanmu for eBTax project - modification start
291 TAX_ATTRIBUTE_DEF_ID,
292 RESULT_TYPE_CODE,
293 BOOK_CLASS_CODE,
294 DATE_EFFECTIVE_FROM,
295 DATE_EFFECTIVE_TO,
296 TAX_COUNTRY_CODE,
297 TERM_QUOTE_TYPE_CODE,
298 TERM_QUOTE_REASON_CODE,
299 EXPIRE_FLAG
300 -- modified by dcshanmu for eBTax project - modification end
301 FROM OKL_TAX_ATTR_DEFINITIONS
302 -- WHERE OKL_TAX_ATTR_DEFINITIONS.id = p_id;
303 WHERE OKL_TAX_ATTR_DEFINITIONS.TAX_ATTRIBUTE_DEF_ID = p_TAX_ATTRIBUTE_DEF_ID;
304 l_okl_tbc_defs_pk okl_tbc_defs_pk_csr%ROWTYPE;
305 l_tbc_rec tbc_rec_type;
306 BEGIN
307 x_no_data_found := TRUE;
308 -- Get current database values
309 OPEN okl_tbc_defs_pk_csr (p_tbc_rec.TAX_ATTRIBUTE_DEF_ID);
310 FETCH okl_tbc_defs_pk_csr INTO
311 -- l_tbc_rec.id,
312 -- l_tbc_rec.org_id,
313 l_tbc_rec.result_code,
314 l_tbc_rec.purchase_option_code,
315 l_tbc_rec.pdt_id,
316 l_tbc_rec.try_id,
317 l_tbc_rec.sty_id,
318 l_tbc_rec.int_disclosed_code,
319 l_tbc_rec.title_trnsfr_code,
320 l_tbc_rec.sale_lease_back_code,
321 l_tbc_rec.lease_purchased_code,
322 l_tbc_rec.equip_usage_code,
323 l_tbc_rec.vendor_site_id,
324 l_tbc_rec.age_of_equip_from,
325 l_tbc_rec.age_of_equip_to,
326 l_tbc_rec.object_version_number,
327 l_tbc_rec.attribute_category,
328 l_tbc_rec.attribute1,
329 l_tbc_rec.attribute2,
330 l_tbc_rec.attribute3,
331 l_tbc_rec.attribute4,
332 l_tbc_rec.attribute5,
333 l_tbc_rec.attribute6,
334 l_tbc_rec.attribute7,
335 l_tbc_rec.attribute8,
336 l_tbc_rec.attribute9,
337 l_tbc_rec.attribute10,
338 l_tbc_rec.attribute11,
339 l_tbc_rec.attribute12,
340 l_tbc_rec.attribute13,
341 l_tbc_rec.attribute14,
342 l_tbc_rec.attribute15,
343 l_tbc_rec.created_by,
344 l_tbc_rec.creation_date,
345 l_tbc_rec.last_updated_by,
346 l_tbc_rec.last_update_date,
347 l_tbc_rec.last_update_login,
348 -- modified by dcshanmu for eBTax project - modification start
349 l_tbc_rec.tax_attribute_def_id,
350 l_tbc_rec.result_type_code,
351 l_tbc_rec.book_class_code,
352 l_tbc_rec.date_effective_from,
353 l_tbc_rec.date_effective_to,
354 l_tbc_rec.tax_country_code,
355 l_tbc_rec.term_quote_type_code,
356 l_tbc_rec.term_quote_reason_code,
357 l_tbc_rec.expire_flag;
358 -- modified by dcshanmu for eBTax project - modification end
359 x_no_data_found := okl_tbc_defs_pk_csr%NOTFOUND;
360 CLOSE okl_tbc_defs_pk_csr;
361 RETURN(l_tbc_rec);
362 END get_rec;
363
364 ------------------------------------------------------------------
365 -- This version of get_rec sets error messages if no data found --
366 ------------------------------------------------------------------
367 FUNCTION get_rec (
368 p_tbc_rec IN tbc_rec_type,
369 x_return_status OUT NOCOPY VARCHAR2
370 ) RETURN tbc_rec_type IS
371 l_tbc_rec tbc_rec_type;
372 l_row_notfound BOOLEAN := TRUE;
373 BEGIN
374 x_return_status := OKL_API.G_RET_STS_SUCCESS;
375 l_tbc_rec := get_rec(p_tbc_rec, l_row_notfound);
376 IF (l_row_notfound) THEN
377 OKc_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_ATTRIBUTE_DEF_ID');
378 x_return_status := OKL_API.G_RET_STS_ERROR;
379 END IF;
380 RETURN(l_tbc_rec);
381 END get_rec;
382 -----------------------------------------------------------
383 -- So we don't have to pass an "l_row_notfound" variable --
384 -----------------------------------------------------------
385 FUNCTION get_rec (
386 p_tbc_rec IN tbc_rec_type
387 ) RETURN tbc_rec_type IS
388 l_row_not_found BOOLEAN := TRUE;
389 BEGIN
390 RETURN(get_rec(p_tbc_rec, l_row_not_found));
391 END get_rec;
392 ---------------------------------------------------------------------------
393 -- FUNCTION null_out_defaults for: OKL_TAX_ATTR_DEFINITIONS
394 ---------------------------------------------------------------------------
395 FUNCTION null_out_defaults (
396 p_tbcv_rec IN tbcv_rec_type
397 ) RETURN tbcv_rec_type IS
398 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
399 BEGIN
400 /*IF (l_tbcv_rec.id = OKL_API.G_MISS_NUM ) THEN
401 l_tbcv_rec.id := NULL;
402 END IF;
403 IF (l_tbcv_rec.org_id = OKL_API.G_MISS_NUM ) THEN
404 l_tbcv_rec.org_id := NULL;
405 END IF; */
406
407 -- modified by dcshanmu for eBTax project - modification start
408 -- changed tbc_code to result_code, because of data model change
409 IF (l_tbcv_rec.result_code = OKL_API.G_MISS_CHAR ) THEN
410 l_tbcv_rec.result_code := NULL;
411 END IF;
412 -- modified by dcshanmu for eBTax project - modification end
413
414 IF (l_tbcv_rec.purchase_option_code = OKL_API.G_MISS_CHAR ) THEN
415 l_tbcv_rec.purchase_option_code := NULL;
416 END IF;
417 IF (l_tbcv_rec.pdt_id = OKL_API.G_MISS_NUM ) THEN
418 l_tbcv_rec.pdt_id := NULL;
419 END IF;
420 IF (l_tbcv_rec.try_id = OKL_API.G_MISS_NUM ) THEN
421 l_tbcv_rec.try_id := NULL;
422 END IF;
423 IF (l_tbcv_rec.sty_id = OKL_API.G_MISS_NUM ) THEN
424 l_tbcv_rec.sty_id := NULL;
425 END IF;
426 IF (l_tbcv_rec.int_disclosed_code = OKL_API.G_MISS_CHAR ) THEN
427 l_tbcv_rec.int_disclosed_code := NULL;
428 END IF;
429 IF (l_tbcv_rec.title_trnsfr_code = OKL_API.G_MISS_CHAR ) THEN
430 l_tbcv_rec.title_trnsfr_code := NULL;
431 END IF;
432 IF (l_tbcv_rec.sale_lease_back_code = OKL_API.G_MISS_CHAR ) THEN
433 l_tbcv_rec.sale_lease_back_code := NULL;
434 END IF;
435 IF (l_tbcv_rec.lease_purchased_code = OKL_API.G_MISS_CHAR ) THEN
436 l_tbcv_rec.lease_purchased_code := NULL;
437 END IF;
438 IF (l_tbcv_rec.equip_usage_code = OKL_API.G_MISS_CHAR ) THEN
439 l_tbcv_rec.equip_usage_code := NULL;
440 END IF;
441 IF (l_tbcv_rec.vendor_site_id = OKL_API.G_MISS_NUM ) THEN
442 l_tbcv_rec.vendor_site_id := NULL;
443 END IF;
444 IF (l_tbcv_rec.age_of_equip_from = OKL_API.G_MISS_NUM ) THEN
445 l_tbcv_rec.age_of_equip_from := NULL;
446 END IF;
447 IF (l_tbcv_rec.age_of_equip_to = OKL_API.G_MISS_NUM ) THEN
448 l_tbcv_rec.age_of_equip_to := NULL;
449 END IF;
450 IF (l_tbcv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
451 l_tbcv_rec.object_version_number := NULL;
452 END IF;
453 IF (l_tbcv_rec.attribute_category = OKL_API.G_MISS_CHAR ) THEN
454 l_tbcv_rec.attribute_category := NULL;
455 END IF;
456 IF (l_tbcv_rec.attribute1 = OKL_API.G_MISS_CHAR ) THEN
457 l_tbcv_rec.attribute1 := NULL;
458 END IF;
459 IF (l_tbcv_rec.attribute2 = OKL_API.G_MISS_CHAR ) THEN
460 l_tbcv_rec.attribute2 := NULL;
461 END IF;
462 IF (l_tbcv_rec.attribute3 = OKL_API.G_MISS_CHAR ) THEN
463 l_tbcv_rec.attribute3 := NULL;
464 END IF;
465 IF (l_tbcv_rec.attribute4 = OKL_API.G_MISS_CHAR ) THEN
466 l_tbcv_rec.attribute4 := NULL;
467 END IF;
468 IF (l_tbcv_rec.attribute5 = OKL_API.G_MISS_CHAR ) THEN
469 l_tbcv_rec.attribute5 := NULL;
470 END IF;
471 IF (l_tbcv_rec.attribute6 = OKL_API.G_MISS_CHAR ) THEN
472 l_tbcv_rec.attribute6 := NULL;
473 END IF;
474 IF (l_tbcv_rec.attribute7 = OKL_API.G_MISS_CHAR ) THEN
475 l_tbcv_rec.attribute7 := NULL;
476 END IF;
477 IF (l_tbcv_rec.attribute8 = OKL_API.G_MISS_CHAR ) THEN
478 l_tbcv_rec.attribute8 := NULL;
479 END IF;
480 IF (l_tbcv_rec.attribute9 = OKL_API.G_MISS_CHAR ) THEN
481 l_tbcv_rec.attribute9 := NULL;
482 END IF;
483 IF (l_tbcv_rec.attribute10 = OKL_API.G_MISS_CHAR ) THEN
484 l_tbcv_rec.attribute10 := NULL;
485 END IF;
486 IF (l_tbcv_rec.attribute11 = OKL_API.G_MISS_CHAR ) THEN
487 l_tbcv_rec.attribute11 := NULL;
488 END IF;
489 IF (l_tbcv_rec.attribute12 = OKL_API.G_MISS_CHAR ) THEN
490 l_tbcv_rec.attribute12 := NULL;
491 END IF;
492 IF (l_tbcv_rec.attribute13 = OKL_API.G_MISS_CHAR ) THEN
493 l_tbcv_rec.attribute13 := NULL;
494 END IF;
495 IF (l_tbcv_rec.attribute14 = OKL_API.G_MISS_CHAR ) THEN
496 l_tbcv_rec.attribute14 := NULL;
497 END IF;
498 IF (l_tbcv_rec.attribute15 = OKL_API.G_MISS_CHAR ) THEN
499 l_tbcv_rec.attribute15 := NULL;
500 END IF;
501 IF (l_tbcv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
502 l_tbcv_rec.created_by := NULL;
503 END IF;
504 IF (l_tbcv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
505 l_tbcv_rec.creation_date := NULL;
506 END IF;
507 IF (l_tbcv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
508 l_tbcv_rec.last_updated_by := NULL;
509 END IF;
510 IF (l_tbcv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
511 l_tbcv_rec.last_update_date := NULL;
512 END IF;
513 IF (l_tbcv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
514 l_tbcv_rec.last_update_login := NULL;
515 END IF;
516
517 -- modified by dcshanmu for eBTax project - modification start
518 -- added null default implementation to new columns added in the table
519 IF (l_tbcv_rec.tax_attribute_def_id = OKL_API.G_MISS_NUM ) THEN
520 l_tbcv_rec.tax_attribute_def_id := NULL;
521 END IF;
522 IF (l_tbcv_rec.result_type_code = OKL_API.G_MISS_CHAR ) THEN
523 l_tbcv_rec.result_type_code := NULL;
524 END IF;
525 IF (l_tbcv_rec.book_class_code = OKL_API.G_MISS_CHAR ) THEN
526 l_tbcv_rec.book_class_code := NULL;
527 END IF;
528 IF (l_tbcv_rec.date_effective_from = OKL_API.G_MISS_DATE ) THEN
529 l_tbcv_rec.date_effective_from := NULL;
530 END IF;
531 IF (l_tbcv_rec.date_effective_to = OKL_API.G_MISS_DATE ) THEN
532 l_tbcv_rec.date_effective_to := NULL;
533 END IF;
534 IF (l_tbcv_rec.tax_country_code = OKL_API.G_MISS_CHAR ) THEN
535 l_tbcv_rec.tax_country_code := NULL;
536 END IF;
537 IF (l_tbcv_rec.term_quote_type_code = OKL_API.G_MISS_CHAR ) THEN
538 l_tbcv_rec.term_quote_type_code := NULL;
539 END IF;
540 IF (l_tbcv_rec.term_quote_reason_code = OKL_API.G_MISS_CHAR ) THEN
541 l_tbcv_rec.term_quote_reason_code := NULL;
542 END IF;
543 IF (l_tbcv_rec.expire_flag = OKL_API.G_MISS_CHAR ) THEN
544 l_tbcv_rec.expire_flag := NULL;
545 END IF;
546 -- modified by dcshanmu for eBTax project - modification end
547
548 RETURN(l_tbcv_rec);
549 END null_out_defaults;
550 ---------------------------------
551 -- Validate_Attributes for: ID --
552 ---------------------------------
553 /* PROCEDURE validate_id(
554 x_return_status OUT NOCOPY VARCHAR2,
555 p_tbcv_rec IN tbcv_rec_type) IS
556 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
557 BEGIN
558
559 IF (p_tbcv_rec.id = OKL_API.G_MISS_NUM OR p_tbcv_rec.id IS NULL)
560 THEN
561 OKl_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'TAX_ATTRIBUTE_DEF_ID');
562 l_return_status := OKL_API.G_RET_STS_ERROR;
563
564 END IF;
565 x_return_status := l_return_status;
566 EXCEPTION
567
568 WHEN OTHERS THEN
569 OKl_API.SET_MESSAGE( p_app_name => G_APP_NAME
570 ,p_msg_name => G_UNEXPECTED_ERROR
571 ,p_token1 => G_SQLCODE_TOKEN
572 ,p_token1_value => SQLCODE
573 ,p_token2 => G_SQLERRM_TOKEN
574 ,p_token2_value => SQLERRM);
575 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
576 END validate_id;*/
577
578 -- modified by dcshanmu for eBTax project - modification start
579 -- modified tbc_code to result_code due to datamodel change
580 ---------------------------------------
581 -- Validate_Attributes for: RESULT_CODE --
582 ---------------------------------------
583 PROCEDURE validate_result_code(
584 x_return_status OUT NOCOPY VARCHAR2,
585 p_tbcv_rec IN tbcv_rec_type) IS
586 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
587 l_dummy_var VARCHAR2(1) := '?' ;
588
589 CURSOR okl_tbc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
590 SELECT 'x'
591 FROM zx_fc_business_categories_v
592 WHERE classification_code = p_lookup_code;
593
594 CURSOR okl_pc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
595 SELECT 'x'
596 FROM zx_fc_product_categories_v
597 WHERE classification_code = p_lookup_code;
598
599 CURSOR okl_ufc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
600 SELECT 'x'
601 FROM zx_fc_user_defined_v
602 WHERE classification_code = p_lookup_code;
603
604 BEGIN
605
606 IF (p_tbcv_rec.result_code = OKL_API.G_MISS_CHAR OR p_tbcv_rec.result_code IS NULL)
607 THEN
608 Okl_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'result_code');
609 l_return_status := OKL_API.G_RET_STS_ERROR;
610 ELSE
611 -- enforce foreign key
612
613 IF (p_tbcv_rec.result_type_code = 'TBC_CODE')
614 THEN
615 OPEN okl_tbc_res_code_fk_csr(p_tbcv_rec.result_code) ;
616 FETCH okl_tbc_res_code_fk_csr into l_dummy_var ;
617 CLOSE okl_tbc_res_code_fk_csr ;
618
619 -- still set to default means data was not found
620 IF ( l_dummy_var = '?' ) THEN
621
622 OKC_API.set_message(g_app_name,
623 g_no_parent_record,
624 g_col_name_token,
625 'result_code',
626 g_child_table_token ,
627 'OKL_TAX_ATTR_DEFINITIONS',
628 g_parent_table_token ,
629 'ZX_FC_BUSINESS_CATEGORIES_V');
630 l_return_status := OKC_API.G_RET_STS_ERROR;
631
632 END IF;
633 ELSIF (p_tbcv_rec.result_type_code = 'PC_CODE')
634 THEN
635 OPEN okl_pc_res_code_fk_csr(p_tbcv_rec.result_code) ;
636 FETCH okl_pc_res_code_fk_csr into l_dummy_var ;
637 CLOSE okl_pc_res_code_fk_csr ;
638
639 -- still set to default means data was not found
640 IF ( l_dummy_var = '?' ) THEN
641
642 OKC_API.set_message(g_app_name,
643 g_no_parent_record,
644 g_col_name_token,
645 'result_code',
646 g_child_table_token ,
647 'OKL_TAX_ATTR_DEFINITIONS',
648 g_parent_table_token ,
649 'ZX_FC_PRODUCT_CATEGORIES_V');
650 l_return_status := OKC_API.G_RET_STS_ERROR;
651
652 END IF;
653 ELSIF (p_tbcv_rec.result_type_code = 'UFC_CODE')
654 THEN
655 OPEN okl_ufc_res_code_fk_csr(p_tbcv_rec.result_code) ;
656 FETCH okl_ufc_res_code_fk_csr into l_dummy_var ;
657 CLOSE okl_ufc_res_code_fk_csr ;
658
659 -- still set to default means data was not found
660 IF ( l_dummy_var = '?' ) THEN
661
662 OKC_API.set_message(g_app_name,
663 g_no_parent_record,
664 g_col_name_token,
665 'result_code',
666 g_child_table_token ,
667 'OKL_TAX_ATTR_DEFINITIONS',
668 g_parent_table_token ,
669 'ZX_FC_USER_DEFINED_V');
670 l_return_status := OKC_API.G_RET_STS_ERROR;
671
672 END IF;
673 END IF;
674
675
676 END IF;
677 x_return_status := l_return_status;
678 EXCEPTION
679
680 WHEN OTHERS THEN
681 OKl_API.SET_MESSAGE( p_app_name => G_APP_NAME
682 ,p_msg_name => G_UNEXPECTED_ERROR
683 ,p_token1 => G_SQLCODE_TOKEN
684 ,p_token1_value => SQLCODE
685 ,p_token2 => G_SQLERRM_TOKEN
686 ,p_token2_value => SQLERRM);
687 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
688 END validate_result_code;
689 -- modified by dcshanmu for eBTax project - modification end
690
691 ---------------------------------------------------
692 -- Validate_Attributes for: PURCHASE_OPTION_CODE --
693 ---------------------------------------------------
694 PROCEDURE validate_purchase_option_code(
695 x_return_status OUT NOCOPY VARCHAR2,
696 p_tbcv_rec IN tbcv_rec_type) IS
697 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
698
699 l_dummy_var VARCHAR2(1) := '?' ;
700
701 CURSOR okl_tbcv_prch_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
702 SELECT 'x'
703 FROM Fnd_Lookup_Values
704 WHERE fnd_lookup_values.lookup_code = p_lookup_code
705 AND fnd_lookup_values.lookup_type = p_lookup_type;
706
707 BEGIN
708
709 IF (p_tbcv_rec.purchase_option_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.purchase_option_code IS NOT NULL)
710 THEN
711 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'purchase_option_code');
712 --l_return_status := OKL_API.G_RET_STS_ERROR;
713 --ELSE
714 -- enforce foreign key
715
716 OPEN okl_tbcv_prch_fk_csr(p_tbcv_rec.purchase_option_code, 'OKL_EOT_OPTION') ;
717 FETCH okl_tbcv_prch_fk_csr into l_dummy_var ;
718 CLOSE okl_tbcv_prch_fk_csr ;
719 -- still set to default means data was not found
720 IF ( l_dummy_var = '?' ) THEN
721 OKC_API.set_message(g_app_name,
722 g_no_parent_record,
723 g_col_name_token,
724 'purchase_option_code',
725 g_child_table_token ,
726 'OKL_TAX_ATTR_DEFINITIONS',
727 g_parent_table_token ,
728 'FND_LOOKUP_VALUES');
729 l_return_status := OKC_API.G_RET_STS_ERROR;
730
731 END IF;
732 END IF;
733 x_return_status := l_return_status;
734 EXCEPTION
735
736 WHEN OTHERS THEN
737 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
738 ,p_msg_name => G_UNEXPECTED_ERROR
739 ,p_token1 => G_SQLCODE_TOKEN
740 ,p_token1_value => SQLCODE
741 ,p_token2 => G_SQLERRM_TOKEN
742 ,p_token2_value => SQLERRM);
743 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
744 END validate_purchase_option_code;
745 -------------------------------------
746 -- Validate_Attributes for: PDT_ID --
747 -------------------------------------
748 PROCEDURE validate_pdt_id(
749 x_return_status OUT NOCOPY VARCHAR2,
750 p_tbcv_rec IN tbcv_rec_type) IS
751 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
752
753 l_dummy_var VARCHAR2(1) := '?' ;
754
755 CURSOR okl_tbcv_pdt_fk_csr (p_id IN NUMBER) IS
756 SELECT 'x'
757 FROM OKL_PRODUCTS
758 WHERE id = p_id
759 AND product_status_code = 'APPROVED';
760
761 BEGIN
762
763 IF (p_tbcv_rec.pdt_id <> OKL_API.G_MISS_NUM AND p_tbcv_rec.pdt_id IS NOT NULL)
764 THEN
765 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'pdt_id');
766 --l_return_status := OKL_API.G_RET_STS_ERROR;
767 --ELSE
768 -- enforce foreign key
769 OPEN okl_tbcv_pdt_fk_csr(p_tbcv_rec.pdt_id) ;
770 FETCH okl_tbcv_pdt_fk_csr into l_dummy_var ;
771 CLOSE okl_tbcv_pdt_fk_csr ;
772 -- still set to default means data was not found
773 IF ( l_dummy_var = '?' ) THEN
774 OKC_API.set_message(g_app_name,
775 g_no_parent_record,
776 g_col_name_token,
777 'pdt_id',
778 g_child_table_token ,
779 'OKL_TAX_ATTR_DEFINITIONS',
780 g_parent_table_token ,
781 'OKL_PRODUCTS');
782 l_return_status := OKC_API.G_RET_STS_ERROR;
783
784 END IF;
785
786 END IF;
787 x_return_status := l_return_status;
788 EXCEPTION
789
790 WHEN OTHERS THEN
791 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
792 ,p_msg_name => G_UNEXPECTED_ERROR
793 ,p_token1 => G_SQLCODE_TOKEN
794 ,p_token1_value => SQLCODE
795 ,p_token2 => G_SQLERRM_TOKEN
796 ,p_token2_value => SQLERRM);
797 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
798 END validate_pdt_id;
799 -------------------------------------
800 -- Validate_Attributes for: TRY_ID --
801 -------------------------------------
802 PROCEDURE validate_try_id(
803 x_return_status OUT NOCOPY VARCHAR2,
804 p_tbcv_rec IN tbcv_rec_type) IS
805 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
806
807 l_dummy_var VARCHAR2(1) := '?' ;
808
809 CURSOR okl_tbcv_try_fk_csr (p_id IN NUMBER) IS
810 SELECT 'x'
811 FROM OKL_TRX_TYPES_B
812 WHERE id = p_id;
813
814 BEGIN
815
816 IF (p_tbcv_rec.try_id <> OKL_API.G_MISS_NUM AND p_tbcv_rec.try_id IS NOT NULL)
817 THEN
818 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'try_id');
819 --l_return_status := OKL_API.G_RET_STS_ERROR;
820 --ELSE
821 -- enforce foreign key
822 OPEN okl_tbcv_try_fk_csr(p_tbcv_rec.try_id) ;
823 FETCH okl_tbcv_try_fk_csr into l_dummy_var ;
824 CLOSE okl_tbcv_try_fk_csr ;
825 -- still set to default means data was not found
826 IF ( l_dummy_var = '?' ) THEN
827 OKC_API.set_message(g_app_name,
828 g_no_parent_record,
829 g_col_name_token,
830 'try_id',
831 g_child_table_token ,
832 'OKL_TAX_ATTR_DEFINITIONS',
833 g_parent_table_token ,
834 'OKL_TRX_TYPES_B');
835 l_return_status := OKC_API.G_RET_STS_ERROR;
836
837 END IF;
838 END IF;
839 x_return_status := l_return_status;
840 EXCEPTION
841
842 WHEN OTHERS THEN
843 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
844 ,p_msg_name => G_UNEXPECTED_ERROR
845 ,p_token1 => G_SQLCODE_TOKEN
846 ,p_token1_value => SQLCODE
847 ,p_token2 => G_SQLERRM_TOKEN
848 ,p_token2_value => SQLERRM);
849 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
850 END validate_try_id;
851 -------------------------------------
852 -- Validate_Attributes for: STY_ID --
853 -------------------------------------
854 PROCEDURE validate_sty_id(
855 x_return_status OUT NOCOPY VARCHAR2,
856 p_tbcv_rec IN tbcv_rec_type) IS
857 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
858
859 l_dummy_var VARCHAR2(1) := '?' ;
860
861 CURSOR okl_tbcv_sty_fk_csr (p_id IN NUMBER) IS
862 SELECT 'x'
863 FROM OKL_STRM_TYPE_B
864 WHERE id = p_id;
865
866 BEGIN
867
868 IF (p_tbcv_rec.sty_id <> OKL_API.G_MISS_NUM AND p_tbcv_rec.sty_id IS NOT NULL)
869 THEN
870 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'sty_id');
871 --l_return_status := OKL_API.G_RET_STS_ERROR;
872 --ELSE
873 -- enforce foreign key
874 OPEN okl_tbcv_sty_fk_csr(p_tbcv_rec.sty_id) ;
875 FETCH okl_tbcv_sty_fk_csr into l_dummy_var ;
876 CLOSE okl_tbcv_sty_fk_csr ;
877 -- still set to default means data was not found
878 IF ( l_dummy_var = '?' ) THEN
879 OKC_API.set_message(g_app_name,
880 g_no_parent_record,
881 g_col_name_token,
882 'sty_id',
883 g_child_table_token ,
884 'OKL_TAX_ATTR_DEFINITIONS',
885 g_parent_table_token ,
886 'OKL_STRM_TYPE_B');
887 l_return_status := OKC_API.G_RET_STS_ERROR;
888
889 END IF;
890 END IF;
891 x_return_status := l_return_status;
892 EXCEPTION
893
894 WHEN OTHERS THEN
895 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
896 ,p_msg_name => G_UNEXPECTED_ERROR
897 ,p_token1 => G_SQLCODE_TOKEN
898 ,p_token1_value => SQLCODE
899 ,p_token2 => G_SQLERRM_TOKEN
900 ,p_token2_value => SQLERRM);
901 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
902 END validate_sty_id;
903 -------------------------------------------------
904 -- Validate_Attributes for: INT_DISCLOSED_CODE --
905 -------------------------------------------------
906 PROCEDURE validate_int_disclosed_code(
907 x_return_status OUT NOCOPY VARCHAR2,
908 p_tbcv_rec IN tbcv_rec_type) IS
909 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
910
911 l_dummy_var VARCHAR2(1) := '?' ;
912
913 CURSOR okl_tbcv_int_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
914 SELECT 'x'
915 FROM Fnd_Lookup_Values
916 WHERE fnd_lookup_values.lookup_code = p_lookup_code
917 AND fnd_lookup_values.lookup_type = p_lookup_type;
918 BEGIN
919
920 IF (p_tbcv_rec.int_disclosed_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.int_disclosed_code IS NOT NULL)
921 THEN
922 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'int_disclosed_code');
923 --l_return_status := OKL_API.G_RET_STS_ERROR;
924 --ELSE
925 -- enforce foreign key
926 OPEN okl_tbcv_int_fk_csr(p_tbcv_rec.int_disclosed_code, 'YES_NO') ;
927 FETCH okl_tbcv_int_fk_csr INTO l_dummy_var ;
928 CLOSE okl_tbcv_int_fk_csr ;
929 -- still set to default means data was not found
930 IF ( l_dummy_var = '?' ) THEN
931 OKC_API.set_message(g_app_name,
932 g_no_parent_record,
933 g_col_name_token,
934 'int_disclosed_code',
935 g_child_table_token ,
936 'OKL_TAX_ATTR_DEFINITIONS',
937 g_parent_table_token ,
938 'FND_LOOKUP_VALUES');
939 l_return_status := OKC_API.G_RET_STS_ERROR;
940
941 END IF;
942 END IF;
943 x_return_status := l_return_status;
944 EXCEPTION
945
946 WHEN OTHERS THEN
947 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
948 ,p_msg_name => G_UNEXPECTED_ERROR
949 ,p_token1 => G_SQLCODE_TOKEN
950 ,p_token1_value => SQLCODE
951 ,p_token2 => G_SQLERRM_TOKEN
952 ,p_token2_value => SQLERRM);
953 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
954 END validate_int_disclosed_code;
955 ------------------------------------------------
956 -- Validate_Attributes for: TITLE_TRNSFR_CODE --
957 ------------------------------------------------
958
959 PROCEDURE validate_title_trnsfr_code(
960 x_return_status OUT NOCOPY VARCHAR2,
961 p_tbcv_rec IN tbcv_rec_type) IS
962 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
963
964 l_dummy_var VARCHAR2(1) := '?' ;
965
966 CURSOR okl_tbcv_title_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
967 SELECT 'x'
968 FROM Fnd_Lookup_Values
969 WHERE fnd_lookup_values.lookup_code = p_lookup_code
970 AND fnd_lookup_values.lookup_type = p_lookup_type;
971 BEGIN
972
973 IF (p_tbcv_rec.title_trnsfr_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.title_trnsfr_code IS NOT NULL)
974 THEN
975 OPEN okl_tbcv_title_fk_csr(p_tbcv_rec.title_trnsfr_code, 'YES_NO') ;
976 FETCH okl_tbcv_title_fk_csr INTO l_dummy_var ;
977 CLOSE okl_tbcv_title_fk_csr ;
978 -- still set to default means data was not found
979 IF ( l_dummy_var = '?' ) THEN
980 OKC_API.set_message(g_app_name,
981 g_no_parent_record,
982 g_col_name_token,
983 'title_trnsfr_code',
984 g_child_table_token ,
985 'OKL_TAX_ATTR_DEFINITIONS',
986 g_parent_table_token ,
987 'FND_LOOKUP_VALUES');
988 l_return_status := OKC_API.G_RET_STS_ERROR;
989
990 END IF;
991 END IF;
992 x_return_status := l_return_status;
993 EXCEPTION
994
995 WHEN OTHERS THEN
996 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
997 ,p_msg_name => G_UNEXPECTED_ERROR
998 ,p_token1 => G_SQLCODE_TOKEN
999 ,p_token1_value => SQLCODE
1000 ,p_token2 => G_SQLERRM_TOKEN
1001 ,p_token2_value => SQLERRM);
1002 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1003 END validate_title_trnsfr_code;
1004 ---------------------------------------------------
1005 -- Validate_Attributes for: SALE_LEASE_BACK_CODE --
1006 ---------------------------------------------------
1007 PROCEDURE validate_sale_lease_back_code(
1008 x_return_status OUT NOCOPY VARCHAR2,
1009 p_tbcv_rec IN tbcv_rec_type) IS
1010 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1011
1012 l_dummy_var VARCHAR2(1) := '?' ;
1013
1014 CURSOR okl_tbcv_salelease_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
1015 SELECT 'x'
1016 FROM Fnd_Lookup_Values
1017 WHERE fnd_lookup_values.lookup_code = p_lookup_code
1018 AND fnd_lookup_values.lookup_type = p_lookup_type;
1019 BEGIN
1020
1021 IF (p_tbcv_rec.sale_lease_back_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.sale_lease_back_code IS NOT NULL)
1022 THEN
1023 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'sale_lease_back_code');
1024 --l_return_status := OKL_API.G_RET_STS_ERROR;
1025 --ELSE
1026 -- enforce foreign key
1027 OPEN okl_tbcv_salelease_fk_csr(p_tbcv_rec.sale_lease_back_code, 'YES_NO') ;
1028 FETCH okl_tbcv_salelease_fk_csr INTO l_dummy_var ;
1029 CLOSE okl_tbcv_salelease_fk_csr ;
1030 -- still set to default means data was not found
1031 IF ( l_dummy_var = '?' ) THEN
1032 OKC_API.set_message(g_app_name,
1033 g_no_parent_record,
1034 g_col_name_token,
1035 'sale_lease_back_code',
1036 g_child_table_token ,
1037 'OKL_TAX_ATTR_DEFINITIONS',
1038 g_parent_table_token ,
1039 'FND_LOOKUP_VALUES');
1040 l_return_status := OKC_API.G_RET_STS_ERROR;
1041 END IF;
1042 END IF;
1043 x_return_status := l_return_status;
1044 EXCEPTION
1045
1046 WHEN OTHERS THEN
1047 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1048 ,p_msg_name => G_UNEXPECTED_ERROR
1049 ,p_token1 => G_SQLCODE_TOKEN
1050 ,p_token1_value => SQLCODE
1051 ,p_token2 => G_SQLERRM_TOKEN
1052 ,p_token2_value => SQLERRM);
1053 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1054 END validate_sale_lease_back_code;
1055 ---------------------------------------------------
1056 -- Validate_Attributes for: LEASE_PURCHASED_CODE --
1057 ---------------------------------------------------
1058 PROCEDURE validate_lease_purchased_code(
1059 x_return_status OUT NOCOPY VARCHAR2,
1060 p_tbcv_rec IN tbcv_rec_type) IS
1061 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1062
1063 l_dummy_var VARCHAR2(1) := '?' ;
1064
1065 CURSOR okl_tbcv_saleprch_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
1066 SELECT 'x'
1067 FROM Fnd_Lookup_Values
1068 WHERE fnd_lookup_values.lookup_code = p_lookup_code
1069 AND fnd_lookup_values.lookup_type = p_lookup_type;
1070 BEGIN
1071
1072 IF (p_tbcv_rec.lease_purchased_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.lease_purchased_code IS NOT NULL)
1073 THEN
1074 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'lease_purchased_code');
1075 --l_return_status := OKL_API.G_RET_STS_ERROR;
1076 --ELSE
1077 -- enforce foreign key
1078 OPEN okl_tbcv_saleprch_fk_csr(p_tbcv_rec.lease_purchased_code, 'YES_NO') ;
1079 FETCH okl_tbcv_saleprch_fk_csr INTO l_dummy_var ;
1080 CLOSE okl_tbcv_saleprch_fk_csr ;
1081 -- still set to default means data was not found
1082 IF ( l_dummy_var = '?' ) THEN
1083 OKC_API.set_message(g_app_name,
1084 g_no_parent_record,
1085 g_col_name_token,
1086 'lease_purchased_code',
1087 g_child_table_token ,
1088 'OKL_TAX_ATTR_DEFINITIONS',
1089 g_parent_table_token ,
1090 'FND_LOOKUP_VALUES');
1091 l_return_status := OKC_API.G_RET_STS_ERROR;
1092 END IF;
1093 END IF;
1094 x_return_status := l_return_status;
1095 EXCEPTION
1096
1097 WHEN OTHERS THEN
1098 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1099 ,p_msg_name => G_UNEXPECTED_ERROR
1100 ,p_token1 => G_SQLCODE_TOKEN
1101 ,p_token1_value => SQLCODE
1102 ,p_token2 => G_SQLERRM_TOKEN
1103 ,p_token2_value => SQLERRM);
1104 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1105 END validate_lease_purchased_code;
1106 -----------------------------------------------
1107 -- Validate_Attributes for: EQUIP_USAGE_CODE --
1108 -----------------------------------------------
1109
1110 PROCEDURE validate_equip_usage_code(
1111 x_return_status OUT NOCOPY VARCHAR2,
1112 p_tbcv_rec IN tbcv_rec_type) IS
1113 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1114
1115 l_dummy_var VARCHAR2(1) := '?' ;
1116
1117 CURSOR okl_tbcv_equsg_fk_csr (p_lookup_code IN VARCHAR2) IS
1118 SELECT 'x'
1119 FROM zx_fc_intended_use_v
1120 WHERE classification_code = p_lookup_code;
1121
1122 BEGIN
1123
1124 IF (p_tbcv_rec.equip_usage_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.equip_usage_code IS NOT NULL)
1125 THEN
1126 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'equip_usage_code');
1127 --l_return_status := OKL_API.G_RET_STS_ERROR;
1128 --ELSE
1129 -- enforce foreign key
1130 OPEN okl_tbcv_equsg_fk_csr(p_tbcv_rec.equip_usage_code) ;
1131 FETCH okl_tbcv_equsg_fk_csr INTO l_dummy_var ;
1132 CLOSE okl_tbcv_equsg_fk_csr ;
1133 -- still set to default means data was not found
1134 IF ( l_dummy_var = '?' ) THEN
1135 OKC_API.set_message(g_app_name,
1136 g_no_parent_record,
1137 g_col_name_token,
1138 'equip_usage_code',
1139 g_child_table_token ,
1140 'OKL_TAX_ATTR_DEFINITIONS',
1141 g_parent_table_token ,
1142 'ZX_FC_INTENDED_USE_V');
1143 l_return_status := OKC_API.G_RET_STS_ERROR;
1144 END IF;
1145 END IF;
1146 x_return_status := l_return_status;
1147 EXCEPTION
1148
1149 WHEN OTHERS THEN
1150 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1151 ,p_msg_name => G_UNEXPECTED_ERROR
1152 ,p_token1 => G_SQLCODE_TOKEN
1153 ,p_token1_value => SQLCODE
1154 ,p_token2 => G_SQLERRM_TOKEN
1155 ,p_token2_value => SQLERRM);
1156 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1157 END validate_equip_usage_code;
1158 ---------------------------------------------
1159 -- Validate_Attributes for: VENDOR_SITE_ID --
1160 ---------------------------------------------
1161 PROCEDURE validate_vendor_site_id(
1162 x_return_status OUT NOCOPY VARCHAR2,
1163 p_tbcv_rec IN tbcv_rec_type) IS
1164 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1165
1166 l_dummy_var VARCHAR2(1) := '?' ;
1167
1168 CURSOR okl_tbcv_vsite_fk_csr (p_id IN NUMBER) IS
1169 SELECT 'x'
1170 FROM Po_vendor_sites_all
1171 WHERE vendor_site_id = p_id;
1172 BEGIN
1173
1174 IF (p_tbcv_rec.vendor_site_id <> OKL_API.G_MISS_NUM AND p_tbcv_rec.vendor_site_id IS NOT NULL)
1175 THEN
1176 --OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'vendor_site_id');
1177 --l_return_status := OKL_API.G_RET_STS_ERROR;
1178 --ELSE
1179 -- enforce foreign key
1180 OPEN okl_tbcv_vsite_fk_csr(p_tbcv_rec.vendor_site_id) ;
1181 FETCH okl_tbcv_vsite_fk_csr into l_dummy_var ;
1182 CLOSE okl_tbcv_vsite_fk_csr ;
1183 -- still set to default means data was not found
1184 IF ( l_dummy_var = '?' ) THEN
1185 OKC_API.set_message(g_app_name,
1186 g_no_parent_record,
1187 g_col_name_token,
1188 'vendor_site_id',
1189 g_child_table_token ,
1190 'OKL_TAX_ATTR_DEFINITIONS',
1191 g_parent_table_token ,
1192 'Po_vendor_sites_all');
1193 l_return_status := OKC_API.G_RET_STS_ERROR;
1194
1195 END IF;
1196 END IF;
1197 x_return_status := l_return_status;
1198 EXCEPTION
1199
1200 WHEN OTHERS THEN
1201 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1202 ,p_msg_name => G_UNEXPECTED_ERROR
1203 ,p_token1 => G_SQLCODE_TOKEN
1204 ,p_token1_value => SQLCODE
1205 ,p_token2 => G_SQLERRM_TOKEN
1206 ,p_token2_value => SQLERRM);
1207 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1208 END validate_vendor_site_id;
1209
1210
1211 -------------------------------------
1212 -- Validate_Attributes for: age_of_equipment_from --
1213 -------------------------------------
1214 PROCEDURE validate_AGE_OF_EQUIP_FROM(
1215 x_return_status OUT NOCOPY VARCHAR2,
1216 p_tbcv_rec IN tbcv_rec_type) IS
1217 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1218
1219
1220 BEGIN
1221
1222 IF (p_tbcv_rec.AGE_OF_EQUIP_FROM <> OKL_API.G_MISS_NUM AND p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL)
1223 THEN
1224 IF p_tbcv_rec.AGE_OF_EQUIP_FROM < 0 THEN
1225 l_return_status := OKC_API.G_RET_STS_ERROR;
1226 --Unable to create Transcation Business Category definition as none of the attributes are provided.
1227 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'AGE_OF_EQUIP_FROM');
1228
1229 END IF;
1230 END IF;
1231 x_return_status := l_return_status;
1232 EXCEPTION
1233
1234 WHEN OTHERS THEN
1235 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1236 ,p_msg_name => G_UNEXPECTED_ERROR
1237 ,p_token1 => G_SQLCODE_TOKEN
1238 ,p_token1_value => SQLCODE
1239 ,p_token2 => G_SQLERRM_TOKEN
1240 ,p_token2_value => SQLERRM);
1241 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1242 END validate_AGE_OF_EQUIP_FROM;
1243
1244 -------------------------------------
1245 -- Validate_Attributes for: age_of_equipment_to --
1246 -------------------------------------
1247 PROCEDURE validate_AGE_OF_EQUIP_TO(
1248 x_return_status OUT NOCOPY VARCHAR2,
1249 p_tbcv_rec IN tbcv_rec_type) IS
1250 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1251
1252
1253 BEGIN
1254
1255 IF (p_tbcv_rec.AGE_OF_EQUIP_TO <> OKL_API.G_MISS_NUM AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL)
1256 THEN
1257 IF p_tbcv_rec.AGE_OF_EQUIP_TO < 0 THEN
1258 l_return_status := OKC_API.G_RET_STS_ERROR;
1259 --Unable to create Transcation Business Category definition as none of the attributes are provided.
1260 OKC_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'AGE_OF_EQUIP_TO');
1261
1262 END IF;
1263 END IF;
1264 x_return_status := l_return_status;
1265 EXCEPTION
1266
1267 WHEN OTHERS THEN
1268 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1269 ,p_msg_name => G_UNEXPECTED_ERROR
1270 ,p_token1 => G_SQLCODE_TOKEN
1271 ,p_token1_value => SQLCODE
1272 ,p_token2 => G_SQLERRM_TOKEN
1273 ,p_token2_value => SQLERRM);
1274 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1275 END validate_AGE_OF_EQUIP_TO;
1276
1277 ----------------------------------------------------
1278 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
1279 ----------------------------------------------------
1280 PROCEDURE validate_object_version_number(
1281 x_return_status OUT NOCOPY VARCHAR2,
1282 p_tbcv_rec IN tbcv_rec_type) IS
1283 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1284 BEGIN
1285
1286 IF (p_tbcv_rec.object_version_number = OKL_API.G_MISS_NUM OR p_tbcv_rec.object_version_number IS NULL)
1287 THEN
1288 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
1289 l_return_status := OKL_API.G_RET_STS_ERROR;
1290
1291 END IF;
1292 x_return_status := l_return_status;
1293 EXCEPTION
1294
1295 WHEN OTHERS THEN
1296 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1297 ,p_msg_name => G_UNEXPECTED_ERROR
1298 ,p_token1 => G_SQLCODE_TOKEN
1299 ,p_token1_value => SQLCODE
1300 ,p_token2 => G_SQLERRM_TOKEN
1301 ,p_token2_value => SQLERRM);
1302 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1303 END validate_object_version_number;
1304
1305 -- modified by dcshanmu for eBTax project - modification start
1306 -- adding validation methods for new columns
1307 ----------------------------------------------------
1308 -- Validate_Attributes for: RESULT_TYPE_CODE --
1309 ----------------------------------------------------
1310 PROCEDURE validate_result_type_code(
1311 x_return_status OUT NOCOPY VARCHAR2,
1312 p_tbcv_rec IN tbcv_rec_type) IS
1313 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1314 l_dummy_var VARCHAR2(1) := '?' ;
1315
1316 CURSOR okl_tbcv_res_type_fk_csr (p_id IN VARCHAR2) IS
1317 SELECT 'x'
1318 FROM fnd_lookups
1319 WHERE lookup_code = p_id
1320 AND lookup_type='OKL_TAX_ATTR_TYPE_CODE';
1321 BEGIN
1322
1323 IF (p_tbcv_rec.result_type_code <> OKL_API.G_MISS_CHAR OR p_tbcv_rec.result_type_code IS NOT NULL)
1324 THEN
1325 OPEN okl_tbcv_res_type_fk_csr(p_tbcv_rec.result_type_code) ;
1326 FETCH okl_tbcv_res_type_fk_csr into l_dummy_var ;
1327 CLOSE okl_tbcv_res_type_fk_csr ;
1328 -- still set to default means data was not found
1329 IF ( l_dummy_var = '?' ) THEN
1330 OKC_API.set_message(g_app_name,
1331 g_no_parent_record,
1332 g_col_name_token,
1333 'result_type_code',
1334 g_child_table_token ,
1335 'OKL_TAX_ATTR_DEFINITIONS',
1336 g_parent_table_token ,
1337 'FND_LOOKUPS');
1338 l_return_status := OKC_API.G_RET_STS_ERROR;
1339
1340 END IF;
1341 END IF;
1342 x_return_status := l_return_status;
1343 EXCEPTION
1344
1345 WHEN OTHERS THEN
1346 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1347 ,p_msg_name => G_UNEXPECTED_ERROR
1348 ,p_token1 => G_SQLCODE_TOKEN
1349 ,p_token1_value => SQLCODE
1350 ,p_token2 => G_SQLERRM_TOKEN
1351 ,p_token2_value => SQLERRM);
1352 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1353 END validate_result_type_code;
1354
1355 ----------------------------------------------------
1356 -- Validate_Attributes for: BOOK_CLASS_CODE --
1357 ----------------------------------------------------
1358 PROCEDURE validate_book_class_code(
1359 x_return_status OUT NOCOPY VARCHAR2,
1360 p_tbcv_rec IN tbcv_rec_type) IS
1361 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1362 l_dummy_var VARCHAR2(1) := '?' ;
1363
1364 CURSOR okl_tbcv_bc_fk_csr (p_id IN VARCHAR2) IS
1365 SELECT 'x'
1366 FROM fnd_lookups
1367 WHERE lookup_code = p_id
1368 AND lookup_type='OKL_BOOK_CLASS';
1369 BEGIN
1370
1371 IF (p_tbcv_rec.book_class_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.book_class_code IS NOT NULL)
1372 THEN
1373 OPEN okl_tbcv_bc_fk_csr(p_tbcv_rec.book_class_code) ;
1374 FETCH okl_tbcv_bc_fk_csr into l_dummy_var ;
1375 CLOSE okl_tbcv_bc_fk_csr ;
1376 -- still set to default means data was not found
1377 IF ( l_dummy_var = '?' ) THEN
1378 OKC_API.set_message(g_app_name,
1379 g_no_parent_record,
1380 g_col_name_token,
1381 'book_class_code',
1382 g_child_table_token ,
1383 'OKL_TAX_ATTR_DEFINITIONS',
1384 g_parent_table_token ,
1385 'FND_LOOKUPS');
1386 l_return_status := OKC_API.G_RET_STS_ERROR;
1387
1388 END IF;
1389 END IF;
1390 x_return_status := l_return_status;
1391 EXCEPTION
1392
1393 WHEN OTHERS THEN
1394 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1395 ,p_msg_name => G_UNEXPECTED_ERROR
1396 ,p_token1 => G_SQLCODE_TOKEN
1397 ,p_token1_value => SQLCODE
1398 ,p_token2 => G_SQLERRM_TOKEN
1399 ,p_token2_value => SQLERRM);
1400 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1401 END validate_book_class_code;
1402
1403 ----------------------------------------------------
1404 -- Validate_Attributes for: DATE_EFFECTIVE_TO --
1405 ----------------------------------------------------
1406 PROCEDURE validate_date_eff_to(
1407 x_return_status OUT NOCOPY VARCHAR2,
1408 p_tbcv_rec IN tbcv_rec_type) IS
1409 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1410
1411 BEGIN
1412
1413 IF (p_tbcv_rec.date_effective_from <> OKL_API.G_MISS_DATE AND p_tbcv_rec.date_effective_from IS NOT NULL
1414 AND p_tbcv_rec.date_effective_to <> OKL_API.G_MISS_DATE AND p_tbcv_rec.date_effective_to IS NOT NULL)
1415 THEN
1416 IF (TRUNC(p_tbcv_rec.date_effective_to) < TRUNC(p_tbcv_rec.date_effective_from)) THEN
1417 OKL_API.set_message(p_app_name => G_APP_NAME,
1418 p_msg_name => 'OKL_AM_DATE_EFF_FROM_LESS_TO',
1419 p_token1 => 'DATE_EFFECTIVE_TO',
1420 p_token1_value => p_tbcv_rec.date_effective_to,
1421 p_token2 => 'DATE_EFFECTIVE_FROM',
1422 p_token2_value => p_tbcv_rec.date_effective_from);
1423 l_return_status := OKC_API.G_RET_STS_ERROR;
1424
1425 END IF;
1426 END IF;
1427 x_return_status := l_return_status;
1428 EXCEPTION
1429
1430 WHEN OTHERS THEN
1431 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1432 ,p_msg_name => G_UNEXPECTED_ERROR
1433 ,p_token1 => G_SQLCODE_TOKEN
1434 ,p_token1_value => SQLCODE
1435 ,p_token2 => G_SQLERRM_TOKEN
1436 ,p_token2_value => SQLERRM);
1437 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1438 END validate_date_eff_to;
1439
1440 ----------------------------------------------------
1441 -- Validate_Attributes for: TAX_COUNTRY_CODE --
1442 ----------------------------------------------------
1443 PROCEDURE validate_tax_country_code(
1444 x_return_status OUT NOCOPY VARCHAR2,
1445 p_tbcv_rec IN tbcv_rec_type) IS
1446 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1447 l_dummy_var VARCHAR2(1) := '?' ;
1448
1449 CURSOR okl_tbcv_tx_cntry_code_fk_csr (p_id IN VARCHAR2) IS
1450 SELECT 'x'
1451 FROM fnd_territories_tl
1452 WHERE territory_code = p_id;
1453
1454 BEGIN
1455
1456 IF (p_tbcv_rec.tax_country_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.tax_country_code IS NOT NULL)
1457 THEN
1458 OPEN okl_tbcv_tx_cntry_code_fk_csr(p_tbcv_rec.tax_country_code) ;
1459 FETCH okl_tbcv_tx_cntry_code_fk_csr into l_dummy_var ;
1460 CLOSE okl_tbcv_tx_cntry_code_fk_csr ;
1461 -- still set to default means data was not found
1462 IF ( l_dummy_var = '?' ) THEN
1463 OKC_API.set_message(g_app_name,
1464 g_no_parent_record,
1465 g_col_name_token,
1466 'tax_country_code',
1467 g_child_table_token ,
1468 'OKL_TAX_ATTR_DEFINITIONS',
1469 g_parent_table_token ,
1470 'FND_TERRITORIES_TL');
1471 l_return_status := OKC_API.G_RET_STS_ERROR;
1472
1473 END IF;
1474 END IF;
1475 x_return_status := l_return_status;
1476 EXCEPTION
1477
1478 WHEN OTHERS THEN
1479 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1480 ,p_msg_name => G_UNEXPECTED_ERROR
1481 ,p_token1 => G_SQLCODE_TOKEN
1482 ,p_token1_value => SQLCODE
1483 ,p_token2 => G_SQLERRM_TOKEN
1484 ,p_token2_value => SQLERRM);
1485 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1486 END validate_tax_country_code;
1487
1488 ----------------------------------------------------
1489 -- Validate_Attributes for: TERM_QUOTE_TYPE_CODE --
1490 ----------------------------------------------------
1491 PROCEDURE validate_term_quote_type_code(
1492 x_return_status OUT NOCOPY VARCHAR2,
1493 p_tbcv_rec IN tbcv_rec_type) IS
1494 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1495 l_dummy_var VARCHAR2(1) := '?' ;
1496
1497 CURSOR okl_tbcv_term_qtcode_fk_csr (p_id IN VARCHAR2) IS
1498 SELECT 'x'
1499 FROM fnd_lookups
1500 WHERE lookup_code = p_id
1501 AND lookup_type='OKL_QUOTE_TYPE';
1502
1503 BEGIN
1504
1505 IF (p_tbcv_rec.term_quote_type_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.term_quote_type_code IS NOT NULL)
1506 THEN
1507 OPEN okl_tbcv_term_qtcode_fk_csr(p_tbcv_rec.term_quote_type_code) ;
1508 FETCH okl_tbcv_term_qtcode_fk_csr into l_dummy_var ;
1509 CLOSE okl_tbcv_term_qtcode_fk_csr ;
1510 -- still set to default means data was not found
1511 IF ( l_dummy_var = '?' ) THEN
1512 OKC_API.set_message(g_app_name,
1513 g_no_parent_record,
1514 g_col_name_token,
1515 'term_quote_type_code',
1516 g_child_table_token ,
1517 'OKL_TAX_ATTR_DEFINITIONS',
1518 g_parent_table_token ,
1519 'FND_LOOKUPS');
1520 l_return_status := OKC_API.G_RET_STS_ERROR;
1521
1522 END IF;
1523 END IF;
1524 x_return_status := l_return_status;
1525 EXCEPTION
1526
1527 WHEN OTHERS THEN
1528 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1529 ,p_msg_name => G_UNEXPECTED_ERROR
1530 ,p_token1 => G_SQLCODE_TOKEN
1531 ,p_token1_value => SQLCODE
1532 ,p_token2 => G_SQLERRM_TOKEN
1533 ,p_token2_value => SQLERRM);
1534 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1535 END validate_term_quote_type_code;
1536
1537 ----------------------------------------------------
1538 -- Validate_Attributes for: TERM_QUOTE_REASON_CODE --
1539 ----------------------------------------------------
1540 PROCEDURE validate_term_qt_reason_code(
1541 x_return_status OUT NOCOPY VARCHAR2,
1542 p_tbcv_rec IN tbcv_rec_type) IS
1543 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1544 l_dummy_var VARCHAR2(1) := '?' ;
1545
1546 CURSOR okl_tbcv_term_qrcode_fk_csr (p_id IN VARCHAR2) IS
1547 SELECT 'x'
1548 FROM fnd_lookups
1549 WHERE lookup_code = p_id
1550 AND lookup_type='OKL_QUOTE_REASON';
1551
1552 BEGIN
1553
1554 IF (p_tbcv_rec.term_quote_reason_code <> OKL_API.G_MISS_CHAR AND p_tbcv_rec.term_quote_reason_code IS NOT NULL)
1555 THEN
1556 OPEN okl_tbcv_term_qrcode_fk_csr(p_tbcv_rec.term_quote_reason_code) ;
1557 FETCH okl_tbcv_term_qrcode_fk_csr into l_dummy_var ;
1558 CLOSE okl_tbcv_term_qrcode_fk_csr ;
1559 -- still set to default means data was not found
1560 IF ( l_dummy_var = '?' ) THEN
1561 OKC_API.set_message(g_app_name,
1562 g_no_parent_record,
1563 g_col_name_token,
1564 'term_quote_reason_code',
1565 g_child_table_token ,
1566 'OKL_TAX_ATTR_DEFINITIONS',
1567 g_parent_table_token ,
1568 'FND_LOOKUPS');
1569 l_return_status := OKC_API.G_RET_STS_ERROR;
1570
1571 END IF;
1572 END IF;
1573 x_return_status := l_return_status;
1574 EXCEPTION
1575
1576 WHEN OTHERS THEN
1577 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1578 ,p_msg_name => G_UNEXPECTED_ERROR
1579 ,p_token1 => G_SQLCODE_TOKEN
1580 ,p_token1_value => SQLCODE
1581 ,p_token2 => G_SQLERRM_TOKEN
1582 ,p_token2_value => SQLERRM);
1583 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1584 END validate_term_qt_reason_code;
1585 -- modified by dcshanmu for eBTax project - modification end
1586
1587 ---------------------------------------------------------------------------
1588 -- FUNCTION Validate_Attributes
1589 ---------------------------------------------------------------------------
1590 ---------------------------------------------------
1591 -- Validate_Attributes for:OKL_TAX_ATTR_DEFINITIONS --
1592 ---------------------------------------------------
1593 FUNCTION Validate_Attributes (
1594 p_tbcv_rec IN tbcv_rec_type
1595 ) RETURN VARCHAR2 IS
1596 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1597 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1598 BEGIN
1599 -----------------------------
1600 -- Column Level Validation --
1601 -----------------------------
1602 -- ***
1603 -- id
1604 -- ***
1605 /* validate_id(x_return_status, p_tbcv_rec);
1606 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1607 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1608 x_return_status := l_return_status;
1609 RAISE G_EXCEPTION_HALT_VALIDATION;
1610 ELSE
1611 x_return_status := l_return_status;
1612 END IF;
1613 END IF;
1614 */
1615
1616 -- modified by dcshanmu for eBTax project - modification start
1617 -- modified tbc_code to result_code due to datamodel change
1618 -- ***
1619 -- result_code
1620 -- ***
1621 validate_result_code(l_return_status, p_tbcv_rec);
1622 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1623 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1624 x_return_status := l_return_status;
1625 RAISE G_EXCEPTION_HALT_VALIDATION;
1626 ELSE
1627 x_return_status := l_return_status;
1628 END IF;
1629 END IF;
1630 -- modified by dcshanmu for eBTax project - modification end
1631
1632 -- ***
1633 -- purchase_option_code
1634 -- ***
1635 validate_purchase_option_code(l_return_status, p_tbcv_rec);
1636 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1637 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1638 x_return_status := l_return_status;
1639 RAISE G_EXCEPTION_HALT_VALIDATION;
1640 ELSE
1641 x_return_status := l_return_status;
1642 END IF;
1643 END IF;
1644
1645 -- ***
1646 -- pdt_id
1647 -- ***
1648 validate_pdt_id(l_return_status, p_tbcv_rec);
1649 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1650 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1651 x_return_status := l_return_status;
1652 RAISE G_EXCEPTION_HALT_VALIDATION;
1653 ELSE
1654 x_return_status := l_return_status;
1655 END IF;
1656 END IF;
1657
1658 -- ***
1659 -- try_id
1660 -- ***
1661 validate_try_id(l_return_status, p_tbcv_rec);
1662 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1663 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1664 x_return_status := l_return_status;
1665 RAISE G_EXCEPTION_HALT_VALIDATION;
1666 ELSE
1667 x_return_status := l_return_status;
1668 END IF;
1669 END IF;
1670
1671 -- ***
1672 -- sty_id
1673 -- ***
1674 validate_sty_id(l_return_status, p_tbcv_rec);
1675 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1676 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1677 x_return_status := l_return_status;
1678 RAISE G_EXCEPTION_HALT_VALIDATION;
1679 ELSE
1680 x_return_status := l_return_status;
1681 END IF;
1682 END IF;
1683
1684 -- ***
1685 -- int_disclosed_code
1686 -- ***
1687 validate_int_disclosed_code(l_return_status, p_tbcv_rec);
1688 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1689 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1690 x_return_status := l_return_status;
1691 RAISE G_EXCEPTION_HALT_VALIDATION;
1692 ELSE
1693 x_return_status := l_return_status;
1694 END IF;
1695 END IF;
1696
1697 -- ***
1698 -- title_trnsfr_code
1699 -- ***
1700 validate_title_trnsfr_code(l_return_status, p_tbcv_rec);
1701 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1702 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1703 x_return_status := l_return_status;
1704 RAISE G_EXCEPTION_HALT_VALIDATION;
1705 ELSE
1706 x_return_status := l_return_status;
1707 END IF;
1708 END IF;
1709 -- ***
1710 -- sale_lease_back_code
1711 -- ***
1712 validate_sale_lease_back_code(l_return_status, p_tbcv_rec);
1713 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1714 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1715 x_return_status := l_return_status;
1716 RAISE G_EXCEPTION_HALT_VALIDATION;
1717 ELSE
1718 x_return_status := l_return_status;
1719 END IF;
1720 END IF;
1721
1722 -- ***
1723 -- lease_purchased_code
1724 -- ***
1725 validate_lease_purchased_code(l_return_status, p_tbcv_rec);
1726 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1727 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1728 x_return_status := l_return_status;
1729 RAISE G_EXCEPTION_HALT_VALIDATION;
1730 ELSE
1731 x_return_status := l_return_status;
1732 END IF;
1733 END IF;
1734
1735 -- ***
1736 -- equip_usage_code
1737 -- ***
1738 validate_equip_usage_code(l_return_status, p_tbcv_rec);
1739 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1740 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1741 x_return_status := l_return_status;
1742 RAISE G_EXCEPTION_HALT_VALIDATION;
1743 ELSE
1744 x_return_status := l_return_status;
1745 END IF;
1746 END IF;
1747
1748 -- ***
1749 -- vendor_site_id
1750 -- ***
1751 validate_vendor_site_id(l_return_status, p_tbcv_rec);
1752 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1753 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1754 x_return_status := l_return_status;
1755 RAISE G_EXCEPTION_HALT_VALIDATION;
1756 ELSE
1757 x_return_status := l_return_status;
1758 END IF;
1759 END IF;
1760
1761 -- ***
1762 -- age_of_equip_from
1763 -- ***
1764 validate_age_of_equip_from(l_return_status, p_tbcv_rec);
1765 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1766 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1767 x_return_status := l_return_status;
1768 RAISE G_EXCEPTION_HALT_VALIDATION;
1769 ELSE
1770 x_return_status := l_return_status;
1771 END IF;
1772 END IF;
1773
1774 -- ***
1775 -- age_of_equip_to
1776 -- ***
1777 validate_age_of_equip_to(l_return_status, p_tbcv_rec);
1778 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1779 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1780 x_return_status := l_return_status;
1781 RAISE G_EXCEPTION_HALT_VALIDATION;
1782 ELSE
1783 x_return_status := l_return_status;
1784 END IF;
1785 END IF;
1786
1787 -- ***
1788 -- object_version_number
1789 -- ***
1790 validate_object_version_number(l_return_status, p_tbcv_rec);
1791 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1792 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1793 x_return_status := l_return_status;
1794 RAISE G_EXCEPTION_HALT_VALIDATION;
1795 ELSE
1796 x_return_status := l_return_status;
1797 END IF;
1798 END IF;
1799
1800 -- modified by dcshanmu for eBTax project - modification start
1801 -- call for validation for values of new columns
1802 -- ***
1803 -- result_type_code
1804 -- ***
1805 validate_result_type_code(l_return_status, p_tbcv_rec);
1806 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1807 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1808 x_return_status := l_return_status;
1809 RAISE G_EXCEPTION_HALT_VALIDATION;
1810 ELSE
1811 x_return_status := l_return_status;
1812 END IF;
1813 END IF;
1814
1815 -- ***
1816 -- book_class_code
1817 -- ***
1818 validate_book_class_code(l_return_status, p_tbcv_rec);
1819 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1820 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1821 x_return_status := l_return_status;
1822 RAISE G_EXCEPTION_HALT_VALIDATION;
1823 ELSE
1824 x_return_status := l_return_status;
1825 END IF;
1826 END IF;
1827
1828 -- ***
1829 -- Date check
1830 -- ***
1831 validate_date_eff_to(l_return_status, p_tbcv_rec);
1832 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1833 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1834 x_return_status := l_return_status;
1835 RAISE G_EXCEPTION_HALT_VALIDATION;
1836 ELSE
1837 x_return_status := l_return_status;
1838 END IF;
1839 END IF;
1840
1841 -- ***
1842 -- tax_country_code
1843 -- ***
1844 validate_tax_country_code(l_return_status, p_tbcv_rec);
1845 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1846 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1847 x_return_status := l_return_status;
1848 RAISE G_EXCEPTION_HALT_VALIDATION;
1849 ELSE
1850 x_return_status := l_return_status;
1851 END IF;
1852 END IF;
1853
1854 -- ***
1855 -- term_quote_type_code
1856 -- ***
1857 validate_term_quote_type_code(l_return_status, p_tbcv_rec);
1858 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1859 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1860 x_return_status := l_return_status;
1861 RAISE G_EXCEPTION_HALT_VALIDATION;
1862 ELSE
1863 x_return_status := l_return_status;
1864 END IF;
1865 END IF;
1866
1867 -- ***
1868 -- term_quote_reason_code
1869 -- ***
1870 validate_term_qt_reason_code(l_return_status, p_tbcv_rec);
1871 IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1872 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1873 x_return_status := l_return_status;
1874 RAISE G_EXCEPTION_HALT_VALIDATION;
1875 ELSE
1876 x_return_status := l_return_status;
1877 END IF;
1878 END IF;
1879 -- modified by dcshanmu for eBTax project - modification end
1880
1881 RETURN(x_return_status);
1882 EXCEPTION
1883 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1884 RETURN(x_return_status);
1885 WHEN OTHERS THEN
1886 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1887 ,p_msg_name => G_UNEXPECTED_ERROR
1888 ,p_token1 => G_SQLCODE_TOKEN
1889 ,p_token1_value => SQLCODE
1890 ,p_token2 => G_SQLERRM_TOKEN
1891 ,p_token2_value => SQLERRM);
1892 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1893 RETURN(x_return_status);
1894 END Validate_Attributes;
1895 ---------------------------------------------------------------------------
1896 -- PROCEDURE Validate_Record
1897 ---------------------------------------------------------------------------
1898 -----------------------------------------------
1899 -- Validate Record for:OKL_TAX_ATTR_DEFINITIONS --
1900 -----------------------------------------------
1901 /* Not needed as foreign key validations ar eincluded in individual validate procedures
1902 FUNCTION Validate_Record (
1903 p_tbcv_rec IN tbcv_rec_type,
1904 p_db_tbcv_rec IN tbcv_rec_type
1905 ) RETURN VARCHAR2 IS
1906 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1907 ------------------------------------
1908 -- FUNCTION validate_foreign_keys --
1909 ------------------------------------
1910 FUNCTION validate_foreign_keys (
1911 p_tbcv_rec IN tbcv_rec_type,
1912 p_db_tbcv_rec IN tbcv_rec_type
1913 ) RETURN VARCHAR2 IS
1914 item_not_found_error EXCEPTION;
1915
1916 CURSOR okl_tbcv_res_type_fk_csr (p_id IN VARCHAR2) IS
1917 SELECT 'x'
1918 FROM fnd_lookups
1919 WHERE lookup_code = p_id
1920 AND lookup_type='OKL_TAX_ATTR_TYPE_CODE';
1921 l_okl_tbcv_res_type okl_tbcv_res_type_fk_csr%ROWTYPE;
1922
1923 CURSOR okl_tbcv_bc_fk_csr (p_id IN VARCHAR2) IS
1924 SELECT 'x'
1925 FROM fnd_lookups
1926 WHERE lookup_code = p_id
1927 AND lookup_type='OKL_BOOK_CLASS';
1928 l_okl_tbcv_bc okl_tbcv_bc_fk_csr%ROWTYPE;
1929
1930 CURSOR okl_tbcv_tx_cntry_code_fk_csr (p_id IN VARCHAR2) IS
1931 SELECT 'x'
1932 FROM fnd_territories_tl
1933 WHERE territory_code = p_id;
1934 l_okl_tbcv_tx_cntry_code okl_tbcv_tx_cntry_code_fk_csr%ROWTYPE;
1935
1936 CURSOR okl_tbcv_term_qtcode_fk_csr (p_id IN VARCHAR2) IS
1937 SELECT 'x'
1938 FROM fnd_lookups
1939 WHERE lookup_code = p_id
1940 AND lookup_type='OKL_QUOTE_TYPE';
1941 l_okl_tbcv_term_qtcode okl_tbcv_term_qtcode_fk_csr%ROWTYPE;
1942
1943 CURSOR okl_tbcv_term_qrcode_fk_csr (p_id IN VARCHAR2) IS
1944 SELECT 'x'
1945 FROM fnd_lookups
1946 WHERE lookup_code = p_id
1947 AND lookup_type='OKL_QUOTE_REASON';
1948 l_okl_tbcv_term_qrcode okl_tbcv_term_qrcode_fk_csr%ROWTYPE;
1949
1950 CURSOR okl_tbcv_res_code_fk_csr (p_lookup_code IN VARCHAR2, p_lookup_type IN VARCHAR2) IS
1951 SELECT 'x'
1952 FROM zx_fc_business_categories_v
1953 WHERE classification_code = p_lookup_code;
1954 --AND lookup_type = p_lookup_type;
1955 l_okl_tbcv_res_code okl_tbcv_res_code_fk_csr%ROWTYPE;
1956
1957 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1958 l_row_notfound BOOLEAN := TRUE;
1959
1960 BEGIN
1961
1962 IF ((p_ttdv_rec.RESULT_TYPE_CODE IS NOT NULL)
1963 AND
1964 (p_ttdv_rec.RESULT_TYPE_CODE <> p_db_okl_tax_trx_details_v_rec.RESULT_TYPE_CODE))
1965 THEN
1966 OPEN okl_tbcv_res_type_fk_csr (p_ttdv_rec.RESULT_TYPE_CODE);
1967 FETCH okl_tbcv_res_type_fk_csr INTO l_okl_tbcv_res_type;
1968 l_row_notfound := okl_tbcv_res_type_fk_csr%NOTFOUND;
1969 CLOSE okl_tbcv_res_type_fk_csr;
1970 IF (l_row_notfound) THEN
1971 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'RESULT_TYPE_CODE');
1972 RAISE item_not_found_error;
1973 END IF;
1974 END IF;
1975
1976 IF ((p_ttdv_rec.RESULT_CODE IS NOT NULL)
1977 AND
1978 (p_ttdv_rec.RESULT_CODE <> p_db_okl_tax_trx_details_v_rec.RESULT_CODE))
1979 THEN
1980 OPEN okl_tbcv_res_code_fk_csr (p_ttdv_rec.RESULT_CODE);
1981 FETCH okl_tbcv_res_code_fk_csr INTO l_okl_tbcv_res_code;
1982 l_row_notfound := okl_tbcv_res_code_fk_csr%NOTFOUND;
1983 CLOSE okl_tbcv_res_code_fk_csr;
1984 IF (l_row_notfound) THEN
1985 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'RESULT_CODE');
1986 RAISE item_not_found_error;
1987 END IF;
1988 END IF;
1989
1990 IF ((p_ttdv_rec.BOOK_CLASS_CODE IS NOT NULL)
1991 AND
1992 (p_ttdv_rec.BOOK_CLASS_CODE <> p_db_okl_tax_trx_details_v_rec.BOOK_CLASS_CODE))
1993 THEN
1994 OPEN okl_tbcv_bc_fk_csr (p_ttdv_rec.BOOK_CLASS_CODE);
1995 FETCH okl_tbcv_bc_fk_csr INTO l_okl_tbcv_bc;
1996 l_row_notfound := okl_tbcv_bc_fk_csr%NOTFOUND;
1997 CLOSE okl_tbcv_bc_fk_csr;
1998 IF (l_row_notfound) THEN
1999 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'BOOK_CLASS_CODE');
2000 RAISE item_not_found_error;
2001 END IF;
2002 END IF;
2003
2004 IF ((p_ttdv_rec.TAX_COUNTRY_CODE IS NOT NULL)
2005 AND
2006 (p_ttdv_rec.TAX_COUNTRY_CODE <> p_db_okl_tax_trx_details_v_rec.TAX_COUNTRY_CODE))
2007 THEN
2008 OPEN okl_tbcv_tx_cntry_code_fk_csr (p_ttdv_rec.TAX_COUNTRY_CODE);
2009 FETCH okl_tbcv_tx_cntry_code_fk_csr INTO l_okl_tbcv_tx_cntry_code;
2010 l_row_notfound := okl_tbcv_tx_cntry_code_fk_csr%NOTFOUND;
2011 CLOSE okl_tbcv_tx_cntry_code_fk_csr;
2012 IF (l_row_notfound) THEN
2013 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TAX_COUNTRY_CODE');
2014 RAISE item_not_found_error;
2015 END IF;
2016 END IF;
2017
2018 IF ((p_ttdv_rec.TERM_QUOTE_TYPE_CODE IS NOT NULL)
2019 AND
2020 (p_ttdv_rec.TERM_QUOTE_TYPE_CODE <> p_db_okl_tax_trx_details_v_rec.TERM_QUOTE_TYPE_CODE))
2021 THEN
2022 OPEN okl_tbcv_term_qtcode_fk_csr (p_ttdv_rec.TERM_QUOTE_TYPE_CODE);
2023 FETCH okl_tbcv_term_qtcode_fk_csr INTO l_okl_tbcv_term_qtcode;
2024 l_row_notfound := okl_tbcv_term_qtcode_fk_csr%NOTFOUND;
2025 CLOSE okl_tbcv_term_qtcode_fk_csr;
2026 IF (l_row_notfound) THEN
2027 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TERM_QUOTE_TYPE_CODE');
2028 RAISE item_not_found_error;
2029 END IF;
2030 END IF;
2031
2032 IF ((p_ttdv_rec.TERM_QUOTE_REASON_CODE IS NOT NULL)
2033 AND
2034 (p_ttdv_rec.TERM_QUOTE_REASON_CODE <> p_db_okl_tax_trx_details_v_rec.TERM_QUOTE_REASON_CODE))
2035 THEN
2036 OPEN okl_tbcv_term_qrcode_fk_csr (p_ttdv_rec.TERM_QUOTE_REASON_CODE);
2037 FETCH okl_tbcv_term_qrcode_fk_csr INTO l_okl_tbcv_term_qrcode;
2038 l_row_notfound := okl_tbcv_term_qrcode_fk_csr%NOTFOUND;
2039 CLOSE okl_tbcv_term_qrcode_fk_csr;
2040 IF (l_row_notfound) THEN
2041 OKL_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'TERM_QUOTE_REASON_CODE');
2042 RAISE item_not_found_error;
2043 END IF;
2044 END IF;
2045
2046 RETURN (l_return_status);
2047
2048 EXCEPTION
2049 WHEN item_not_found_error THEN
2050 l_return_status := OKL_API.G_RET_STS_ERROR;
2051 RETURN (l_return_status);
2052
2053 END Validate_Record;
2054
2055 FUNCTION Validate_Record (
2056 p_tbcv_rec IN tbcv_rec_type
2057 ) RETURN VARCHAR2 IS
2058 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2059 l_db_tbcv_rec tbcv_rec_type := get_rec(p_tbcv_rec);
2060 BEGIN
2061 l_return_status := Validate_Record(p_tbcv_rec => p_tbcv_rec,
2062 p_db_tbcv_rec => l_db_tbcv_rec);
2063 RETURN (l_return_status);
2064 END Validate_Record;
2065 */
2066
2067 FUNCTION Validate_Record (
2068 p_tbcv_rec IN tbcv_rec_type
2069
2070
2071
2072 ) RETURN VARCHAR2 IS
2073
2074 -- modified by dcshanmu for eBTax project - modification start
2075 -- modified the method to add just the necessary conditions for duplication for
2076 -- TBC_CODE, PC_CODE and UFC_CODE categories
2077 CURSOR l_checkduplicate_tbc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
2078 SELECT result_code
2079 FROM OKL_TAX_ATTR_DEFINITIONS
2080 WHERE result_type_code = 'TBC_CODE'
2081 -- AND nvl(PURCHASE_OPTION_CODE,'XXXXX') = nvl(p_tbcv_rec.PURCHASE_OPTION_CODE,'XXXXX')
2082 -- AND nvl(PDT_ID, -99999) = nvl(p_tbcv_rec.PDT_ID,-99999)
2083 AND nvl(TRY_ID, -99999) = nvl(p_tbcv_rec.TRY_ID,-99999)
2084 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
2085 -- AND nvl(INT_DISCLOSED_CODE,'N') = nvl(p_tbcv_rec.INT_DISCLOSED_CODE,'N')
2086 -- AND nvl(TITLE_TRNSFR_CODE,'N') = nvl(p_tbcv_rec.TITLE_TRNSFR_CODE,'N')
2087 -- AND nvl(SALE_LEASE_BACK_CODE,'N') = nvl(p_tbcv_rec.SALE_LEASE_BACK_CODE,'N')
2088 -- AND nvl(LEASE_PURCHASED_CODE,'N') = nvl(p_tbcv_rec.LEASE_PURCHASED_CODE,'N')
2089 -- AND nvl(EQUIP_USAGE_CODE,'XXXXX') = nvl(p_tbcv_rec.EQUIP_USAGE_CODE,'XXXXX')
2090 -- AND nvl(VENDOR_SITE_ID,-99999) = nvl(p_tbcv_rec.VENDOR_SITE_ID,-99999)
2091 AND nvl(BOOK_CLASS_CODE,'XXXXX') = nvl(p_tbcv_rec.BOOK_CLASS_CODE,'XXXXX')
2092 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
2093 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
2094 AND nvl(EXPIRE_FLAG,'N')<> 'Y'
2095
2096
2097 /*AND ( ( -- This condition will allow cases where DB FROm and To are NULL and also Screen FROM and TO are null
2098 --(AGE_OF_EQUIP_FROM IS NOT NULL OR AGE_OF_EQUIP_TO IS NOT NULL OR p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL OR p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL )
2099 -- AND
2100 -- this condition will prevent exact matches (including cases where some values are null)
2101 (nvl(AGE_OF_EQUIP_FROM,-99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,-99999) AND
2102 nvl(AGE_OF_EQUIP_TO, -99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_TO,-99999)
2103 )
2104 )
2105 OR -- age of equipment from can not be null for comparison purposes (when TO is not null),
2106 -- as we can assume it is 0, if null
2107 -- so this condition takes care of scenarios where both Froms and both Tos have a value
2108 -- OR any of the FROMs are null and both Tos have a value
2109 (--nvl(AGE_OF_EQUIP_FROM,0) IS NOT NULL AND nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) IS NOT NULL AND
2110 AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND
2111 ( (nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) < nvl(AGE_OF_EQUIP_FROM,0) AND p_tbcv_rec.AGE_OF_EQUIP_TO >= nvl(AGE_OF_EQUIP_FROM,0))
2112 OR
2113 (nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) >= nvl(AGE_OF_EQUIP_FROM,0) AND nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) <= AGE_OF_EQUIP_TO) --AND p_tbcv_rec.AGE_OF_EQUIP_TO > AGE_OF_EQUIP_TO)
2114 )
2115
2116 )
2117 OR
2118 ( AGE_OF_EQUIP_TO IS NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
2119 -- In this case Both the FROMs can not be null together or have the same value, as it will get captured in condition 1
2120 -- here, either DB FROM is Null and Screen FROM is not null --> This combination is ok
2121 -- OR DB FROM is not null and Screen FROM is null --> this combinatio is ok
2122 -- OR both FROMs have a value(differenr value) --> restrict this combination
2123 AGE_OF_EQUIP_FROM IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL -- The 2 FROMs can not have same value at this point
2124 )
2125 OR
2126 ( AGE_OF_EQUIP_TO IS NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND -- TO in DB is Null,TO on screen is not null
2127 -- In this case following scenarios are possible
2128 -- DB FROM is Null (DB To is also NUll) FROM on the screen can be considered to be be >=0 (0 if null), since TO on screen is not null - OK
2129 -- DB FROM >=0, SCREEN TO < DB FROM - ok
2130 -- DB FROM >=0, SCREEN TO >= DB FROM - restrict this condition
2131 AGE_OF_EQUIP_FROM >= 0 AND p_tbcv_rec.AGE_OF_EQUIP_TO >= AGE_OF_EQUIP_FROM
2132 )
2133 OR
2134 ( AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
2135 -- In this case following scenarios are possible
2136 -- DB FROM can be considered to be >=0 (0 if null), since DB TO is not null, so there is a fixed age range defined in DB
2137 -- SCREEN FROM is null (TO is always NULL) - OK
2138 -- screen from >=0, SCREEN FROM > DB TO - ok
2139 -- screen from >=0, screen from <= db to - RESTRICT THIS CONDITION
2140 p_tbcv_rec.AGE_OF_EQUIP_FROM >=0 AND p_tbcv_rec.AGE_OF_EQUIP_FROM <= AGE_OF_EQUIP_TO
2141 )
2142 )*/ ;
2143
2144 CURSOR l_checkduplicate_pc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
2145 SELECT result_code
2146 FROM OKL_TAX_ATTR_DEFINITIONS
2147 WHERE result_type_code = 'PC_CODE'
2148 AND nvl(PURCHASE_OPTION_CODE,'XXXXX') = nvl(p_tbcv_rec.PURCHASE_OPTION_CODE,'XXXXX')
2149 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
2150 AND nvl(INT_DISCLOSED_CODE,'N') = nvl(p_tbcv_rec.INT_DISCLOSED_CODE,'N')
2151 AND nvl(TITLE_TRNSFR_CODE,'N') = nvl(p_tbcv_rec.TITLE_TRNSFR_CODE,'N')
2152 AND nvl(SALE_LEASE_BACK_CODE,'N') = nvl(p_tbcv_rec.SALE_LEASE_BACK_CODE,'N')
2153 AND nvl(LEASE_PURCHASED_CODE,'N') = nvl(p_tbcv_rec.LEASE_PURCHASED_CODE,'N')
2154 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
2155 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
2156 AND nvl(EXPIRE_FLAG,'N')<> 'Y' ;
2157
2158 CURSOR l_checkduplicate_ufc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
2159 SELECT result_code
2160 FROM OKL_TAX_ATTR_DEFINITIONS
2161 WHERE /*result_code <> cp_tbc_code
2162 AND */result_type_code = 'UFC_CODE'
2163 AND nvl(PURCHASE_OPTION_CODE,'XXXXX') = nvl(p_tbcv_rec.PURCHASE_OPTION_CODE,'XXXXX')
2164 AND nvl(PDT_ID, -99999) = nvl(p_tbcv_rec.PDT_ID,-99999)
2165 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
2166 AND nvl(TRY_ID, -99999) = nvl(p_tbcv_rec.TRY_ID,-99999)
2167 AND nvl(LEASE_PURCHASED_CODE,'N') = nvl(p_tbcv_rec.LEASE_PURCHASED_CODE,'N')
2168 AND nvl(EQUIP_USAGE_CODE,'XXXXX') = nvl(p_tbcv_rec.EQUIP_USAGE_CODE,'XXXXX')
2169 AND nvl(VENDOR_SITE_ID,-99999) = nvl(p_tbcv_rec.VENDOR_SITE_ID,-99999)
2170 AND nvl(INT_DISCLOSED_CODE,'N') = nvl(p_tbcv_rec.INT_DISCLOSED_CODE,'N')
2171 AND nvl(TITLE_TRNSFR_CODE,'N') = nvl(p_tbcv_rec.TITLE_TRNSFR_CODE,'N')
2172 AND nvl(SALE_LEASE_BACK_CODE,'N') = nvl(p_tbcv_rec.SALE_LEASE_BACK_CODE,'N')
2173 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
2174 AND nvl(TERM_QUOTE_TYPE_CODE,'XXXXX') = nvl(p_tbcv_rec.TERM_QUOTE_TYPE_CODE,'XXXXX')
2175 AND nvl(TERM_QUOTE_REASON_CODE,'XXXXX') = nvl(p_tbcv_rec.TERM_QUOTE_REASON_CODE,'XXXXX')
2176 AND nvl(EXPIRE_FLAG,'N')<> 'Y'
2177 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
2178
2179 AND ( ( -- This condition will allow cases where DB FROm and To are NULL and also Screen FROM and TO are null
2180 --(AGE_OF_EQUIP_FROM IS NOT NULL OR AGE_OF_EQUIP_TO IS NOT NULL OR p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL OR p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL )
2181 -- AND
2182 -- this condition will prevent exact matches (including cases where some values are null)
2183 (nvl(AGE_OF_EQUIP_FROM,-99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,-99999) AND
2184 nvl(AGE_OF_EQUIP_TO, -99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_TO,-99999)
2185 )
2186 )
2187 OR -- age of equipment from can not be null for comparison purposes (when TO is not null),
2188 -- as we can assume it is 0, if null
2189 -- so this condition takes care of scenarios where both Froms and both Tos have a value
2190 -- OR any of the FROMs are null and both Tos have a value
2191 (--nvl(AGE_OF_EQUIP_FROM,0) IS NOT NULL AND nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) IS NOT NULL AND
2192 AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND
2193 ( (nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) < nvl(AGE_OF_EQUIP_FROM,0) AND p_tbcv_rec.AGE_OF_EQUIP_TO >= nvl(AGE_OF_EQUIP_FROM,0))
2194 OR
2195 (nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) >= nvl(AGE_OF_EQUIP_FROM,0) AND nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) <= AGE_OF_EQUIP_TO) --AND p_tbcv_rec.AGE_OF_EQUIP_TO > AGE_OF_EQUIP_TO)
2196 )
2197
2198 )
2199 OR
2200 ( AGE_OF_EQUIP_TO IS NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
2201 -- In this case Both the FROMs can not be null together or have the same value, as it will get captured in condition 1
2202 -- here, either DB FROM is Null and Screen FROM is not null --> This combination is ok
2203 -- OR DB FROM is not null and Screen FROM is null --> this combinatio is ok
2204 -- OR both FROMs have a value(differenr value) --> restrict this combination
2205 AGE_OF_EQUIP_FROM IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL -- The 2 FROMs can not have same value at this point
2206 )
2207 OR
2208 ( AGE_OF_EQUIP_TO IS NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND -- TO in DB is Null,TO on screen is not null
2209 -- In this case following scenarios are possible
2210 -- DB FROM is Null (DB To is also NUll) FROM on the screen can be considered to be be >=0 (0 if null), since TO on screen is not null - OK
2211 -- DB FROM >=0, SCREEN TO < DB FROM - ok
2212 -- DB FROM >=0, SCREEN TO >= DB FROM - restrict this condition
2213 AGE_OF_EQUIP_FROM >= 0 AND p_tbcv_rec.AGE_OF_EQUIP_TO >= AGE_OF_EQUIP_FROM
2214 )
2215 OR
2216 ( AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
2217 -- In this case following scenarios are possible
2218 -- DB FROM can be considered to be >=0 (0 if null), since DB TO is not null, so there is a fixed age range defined in DB
2219 -- SCREEN FROM is null (TO is always NULL) - OK
2220 -- screen from >=0, SCREEN FROM > DB TO - ok
2221 -- screen from >=0, screen from <= db to - RESTRICT THIS CONDITION
2222 p_tbcv_rec.AGE_OF_EQUIP_FROM >=0 AND p_tbcv_rec.AGE_OF_EQUIP_FROM <= AGE_OF_EQUIP_TO
2223 )
2224 ) ;
2225
2226
2227
2228
2229 -- modified by dcshanmu for eBTax project - modification end
2230
2231 CURSOR okl_tbc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
2232 SELECT classification_name
2233 FROM zx_fc_business_categories_v
2234 WHERE classification_code = p_lookup_code;
2235
2236 CURSOR okl_pc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
2237 SELECT classification_name
2238 FROM zx_fc_product_categories_v
2239 WHERE classification_code = p_lookup_code;
2240
2241 CURSOR okl_ufc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
2242 SELECT classification_name
2243 FROM zx_fc_user_defined_v
2244 WHERE classification_code = p_lookup_code;
2245
2246 CURSOR get_try_name(cp_try_id IN VARCHAR2) IS
2247 select NAME
2248 from okl_trx_types_tl
2249 where ID = cp_try_id
2250 AND language = 'US';
2251
2252
2253 l_result_code VARCHAR2(300) := 'XXXXX';
2254 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2255 l_meaning VARCHAR2(80);
2256
2257 l_msg_name VARCHAR2(80);
2258 l_token1 VARCHAR2(10);
2259 l_try_name VARCHAR2(255);
2260
2261 BEGIN
2262
2263 IF (--(p_tbcv_rec.PURCHASE_OPTION_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.purchase_option_code IS NULL) AND
2264 --(p_tbcv_rec.PDT_ID = OKL_API.G_MISS_NUM OR p_tbcv_rec.PDT_ID IS NULL) AND
2265 --(p_tbcv_rec.TRY_ID = OKL_API.G_MISS_NUM OR p_tbcv_rec.TRY_ID IS NULL) AND
2266 -- (p_tbcv_rec.STY_ID = OKL_API.G_MISS_NUM OR p_tbcv_rec.STY_ID IS NULL) AND
2267 -- (p_tbcv_rec.INT_DISCLOSED_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.INT_DISCLOSED_CODE IS NULL) AND
2268 -- (p_tbcv_rec.TITLE_TRNSFR_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.TITLE_TRNSFR_CODE IS NULL) AND
2269 -- (p_tbcv_rec.SALE_LEASE_BACK_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.SALE_LEASE_BACK_CODE IS NULL) AND
2270 -- (p_tbcv_rec.LEASE_PURCHASED_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.LEASE_PURCHASED_CODE IS NULL) AND
2271 -- (p_tbcv_rec.EQUIP_USAGE_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.EQUIP_USAGE_CODE IS NULL) AND
2272 -- (p_tbcv_rec.VENDOR_SITE_ID = OKL_API.G_MISS_NUM OR p_tbcv_rec.VENDOR_SITE_ID IS NULL) AND
2273 -- (p_tbcv_rec.AGE_OF_EQUIP_FROM = OKL_API.G_MISS_NUM OR p_tbcv_rec.AGE_OF_EQUIP_FROM IS NULL) AND
2274 -- (p_tbcv_rec.AGE_OF_EQUIP_TO = OKL_API.G_MISS_NUM OR p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL)
2275 (p_tbcv_rec.RESULT_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.RESULT_CODE IS NULL) ) THEN
2276
2277 x_return_status := OKC_API.G_RET_STS_ERROR;
2278 --Unable to create Category definition as mandatory attributes are provided.
2279 OKL_API.set_message(p_app_name => 'OKL',
2280 p_msg_name => 'OKL_TX_NO_TBC_ATTR');
2281 RAISE G_EXCEPTION_HALT_VALIDATION;
2282
2283 END IF;
2284 IF (p_tbcv_rec.AGE_OF_EQUIP_FROM IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_FROM <> OKL_API.G_MISS_NUM) AND
2285 (p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO <> OKL_API.G_MISS_NUM) THEN
2286 IF p_tbcv_rec.AGE_OF_EQUIP_TO < p_tbcv_rec.AGE_OF_EQUIP_FROM THEN
2287 x_return_status := OKC_API.G_RET_STS_ERROR;
2288 --Unable to create Transcation Business Category definition as none of the attributes are provided.
2289 OKL_API.set_message(p_app_name => 'OKL',
2290 p_msg_name => 'OKL_TX_INVALID_AGE_RANGE');
2291 RAISE G_EXCEPTION_HALT_VALIDATION;
2292
2293 END IF;
2294 END IF;
2295
2296 -- modified by dcshanmu for eBTax project - modification start
2297 IF (p_tbcv_rec.result_type_code = 'TBC_CODE') THEN
2298 OPEN l_checkduplicate_tbc_csr(p_tbcv_rec.tax_attribute_def_id);
2299 FETCH l_checkduplicate_tbc_csr INTO l_result_code;
2300 CLOSE l_checkduplicate_tbc_csr;
2301 IF l_result_code <> 'XXXXX' THEN
2302 OPEN okl_tbc_res_code_fk_csr(l_result_code);
2303 FETCH okl_tbc_res_code_fk_csr INTO l_meaning;
2304 CLOSE okl_tbc_res_code_fk_csr;
2305 END IF;
2306 l_msg_name := 'OKL_TX_DUP_TBC_ERR';
2307 l_token1 := 'TBC';
2308
2309 ELSIF (p_tbcv_rec.result_type_code = 'PC_CODE') THEN
2310 OPEN l_checkduplicate_pc_csr(p_tbcv_rec.tax_attribute_def_id);
2311 FETCH l_checkduplicate_pc_csr INTO l_result_code;
2312 CLOSE l_checkduplicate_pc_csr;
2313 IF l_result_code <> 'XXXXX' THEN
2314 OPEN okl_pc_res_code_fk_csr(l_result_code);
2315 FETCH okl_pc_res_code_fk_csr INTO l_meaning;
2316 CLOSE okl_pc_res_code_fk_csr;
2317 END IF;
2318 l_msg_name := 'OKL_TX_DUP_PC_ERR';
2319 l_token1 := 'PC_CODE';
2320
2321 ELSIF (p_tbcv_rec.result_type_code = 'UFC_CODE') THEN
2322
2323 IF (p_tbcv_rec.term_quote_reason_code IS NOT NULL AND p_tbcv_rec.term_quote_reason_code <> OKL_API.G_MISS_CHAR ) THEN
2324 IF p_tbcv_rec.try_id IS NOT NULL THEN
2325 OPEN get_try_name(p_tbcv_rec.try_id);
2326 FETCH get_try_name INTO l_try_name;
2327 CLOSE get_try_name;
2328
2329 IF l_try_name NOT IN ('Estimated Billing',
2330 'Billing',
2331 'Credit Memo',
2332 'Rollover Billing',
2333 'Rollover Credit Memo',
2334 'Release Billing',
2335 'Release Credit Memo') THEN
2336
2337 x_return_status := OKC_API.G_RET_STS_ERROR;
2338 OKL_API.set_message(p_app_name => 'OKL',
2339 p_msg_name => 'OKL_TERMQTE_RSNTYP_NA_ERR',
2340 p_token1 => 'TRX_TYPE',
2341 p_token1_value => l_try_name);
2342 RAISE G_EXCEPTION_HALT_VALIDATION;
2343 END IF;
2344 END IF;
2345 END IF;
2346
2347 IF (p_tbcv_rec.term_quote_type_code IS NOT NULL AND p_tbcv_rec.term_quote_type_code <> OKL_API.G_MISS_CHAR ) THEN
2348 IF p_tbcv_rec.try_id IS NOT NULL THEN
2349 OPEN get_try_name(p_tbcv_rec.try_id);
2350 FETCH get_try_name INTO l_try_name;
2351 CLOSE get_try_name;
2352
2353 IF l_try_name NOT IN ('Estimated Billing',
2354 'Billing',
2355 'Credit Memo',
2356 'Rollover Billing',
2357 'Rollover Credit Memo',
2358 'Release Billing',
2359 'Release Credit Memo') THEN
2360
2361 x_return_status := OKC_API.G_RET_STS_ERROR;
2362 OKL_API.set_message(p_app_name => 'OKL',
2363 p_msg_name => 'OKL_TERMQTE_RSNTYP_NA_ERR',
2364 p_token1 => 'TRX_TYPE',
2365 p_token1_value => l_try_name);
2366 RAISE G_EXCEPTION_HALT_VALIDATION;
2367 END IF;
2368 END IF;
2369 END IF;
2370
2371
2372
2373
2374
2375 OPEN l_checkduplicate_ufc_csr(p_tbcv_rec.tax_attribute_def_id);
2376 FETCH l_checkduplicate_ufc_csr INTO l_result_code;
2377 CLOSE l_checkduplicate_ufc_csr;
2378 IF l_result_code <> 'XXXXX' THEN
2379 OPEN okl_ufc_res_code_fk_csr(l_result_code);
2380 FETCH okl_ufc_res_code_fk_csr INTO l_meaning;
2381 CLOSE okl_ufc_res_code_fk_csr;
2382 END IF;
2383 l_msg_name := 'OKL_TX_DUP_UFC_ERR';
2384 l_token1 := 'UFC_CODE';
2385 END IF;
2386 -- modified by dcshanmu for eBTax project - modification end
2387
2388 -- There can be at the most one duplicate record.
2389 IF l_result_code <> 'XXXXX' THEN
2390 x_return_status := OKC_API.G_RET_STS_ERROR;
2391 -- Another Category already exists for this combination of tax determinants.
2392 -- modified by dcshanmu for eBTax project - modification start
2393 -- modified default values passed to p_msg_name and p_token1
2394
2395 OKL_API.set_message(p_app_name => 'OKL',
2396 p_msg_name => l_msg_name,
2397 p_token1 => l_token1,
2398 p_token1_value => l_meaning);
2399 RAISE G_EXCEPTION_HALT_VALIDATION;
2400
2401 -- modified by dcshanmu for eBTax project - modification start
2402
2403 END IF;
2404
2405 RETURN (x_return_status);
2406 EXCEPTION
2407 WHEN G_EXCEPTION_HALT_VALIDATION THEN
2408 RETURN(x_return_status);
2409 WHEN OTHERS THEN
2410 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
2411 ,p_msg_name => G_UNEXPECTED_ERROR
2412 ,p_token1 => G_SQLCODE_TOKEN
2413 ,p_token1_value => SQLCODE
2414 ,p_token2 => G_SQLERRM_TOKEN
2415 ,p_token2_value => SQLERRM);
2416 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
2417 RETURN(x_return_status);
2418 END Validate_Record;
2419 ---------------------------------------------------------------------------
2420 -- PROCEDURE Migrate
2421 ---------------------------------------------------------------------------
2422 PROCEDURE migrate (
2423 p_from IN tbcv_rec_type,
2424 p_to IN OUT NOCOPY tbc_rec_type
2425 ) IS
2426 BEGIN
2427 -- p_to.id := p_from.id;
2428 -- p_to.org_id := p_from.org_id;
2429 p_to.result_code := p_from.result_code;
2430 p_to.purchase_option_code := p_from.purchase_option_code;
2431 p_to.pdt_id := p_from.pdt_id;
2432 p_to.try_id := p_from.try_id;
2433 p_to.sty_id := p_from.sty_id;
2434 p_to.int_disclosed_code := p_from.int_disclosed_code;
2435 p_to.title_trnsfr_code := p_from.title_trnsfr_code;
2436 p_to.sale_lease_back_code := p_from.sale_lease_back_code;
2437 p_to.lease_purchased_code := p_from.lease_purchased_code;
2438 p_to.equip_usage_code := p_from.equip_usage_code;
2439 p_to.vendor_site_id := p_from.vendor_site_id;
2440 p_to.age_of_equip_from := p_from.age_of_equip_from;
2441 p_to.age_of_equip_to := p_from.age_of_equip_to;
2442 p_to.object_version_number := p_from.object_version_number;
2443 p_to.attribute_category := p_from.attribute_category;
2444 p_to.attribute1 := p_from.attribute1;
2445 p_to.attribute2 := p_from.attribute2;
2446 p_to.attribute3 := p_from.attribute3;
2447 p_to.attribute4 := p_from.attribute4;
2448 p_to.attribute5 := p_from.attribute5;
2449 p_to.attribute6 := p_from.attribute6;
2450 p_to.attribute7 := p_from.attribute7;
2451 p_to.attribute8 := p_from.attribute8;
2452 p_to.attribute9 := p_from.attribute9;
2453 p_to.attribute10 := p_from.attribute10;
2454 p_to.attribute11 := p_from.attribute11;
2455 p_to.attribute12 := p_from.attribute12;
2456 p_to.attribute13 := p_from.attribute13;
2457 p_to.attribute14 := p_from.attribute14;
2458 p_to.attribute15 := p_from.attribute15;
2459 p_to.created_by := p_from.created_by;
2460 p_to.creation_date := p_from.creation_date;
2461 p_to.last_updated_by := p_from.last_updated_by;
2462 p_to.last_update_date := p_from.last_update_date;
2463 p_to.last_update_login := p_from.last_update_login;
2464
2465 -- modified by dcshanmu for eBTax project - modification start
2466 p_to.tax_attribute_def_id := p_from.tax_attribute_def_id;
2467 p_to.result_type_code := p_from.result_type_code;
2468 p_to.book_class_code := p_from.book_class_code;
2469 p_to.date_effective_from := p_from.date_effective_from;
2470 p_to.date_effective_to := p_from.date_effective_to;
2471 p_to.tax_country_code := p_from.tax_country_code;
2472 p_to.term_quote_type_code := p_from.term_quote_type_code;
2473 p_to.term_quote_reason_code := p_from.term_quote_reason_code;
2474 p_to.expire_flag := p_from.expire_flag;
2475 -- modified by dcshanmu for eBTax project - modification end
2476 END migrate;
2477 PROCEDURE migrate (
2478 p_from IN tbc_rec_type,
2479 p_to IN OUT NOCOPY tbcv_rec_type
2480 ) IS
2481 BEGIN
2482 -- p_to.id := p_from.id;
2483 -- p_to.org_id := p_from.org_id;
2484 p_to.result_code := p_from.result_code;
2485 p_to.purchase_option_code := p_from.purchase_option_code;
2486 p_to.pdt_id := p_from.pdt_id;
2487 p_to.try_id := p_from.try_id;
2488 p_to.sty_id := p_from.sty_id;
2489 p_to.int_disclosed_code := p_from.int_disclosed_code;
2490 p_to.title_trnsfr_code := p_from.title_trnsfr_code;
2491 p_to.sale_lease_back_code := p_from.sale_lease_back_code;
2492 p_to.lease_purchased_code := p_from.lease_purchased_code;
2493 p_to.equip_usage_code := p_from.equip_usage_code;
2494 p_to.vendor_site_id := p_from.vendor_site_id;
2495 p_to.age_of_equip_from := p_from.age_of_equip_from;
2496 p_to.age_of_equip_to := p_from.age_of_equip_to;
2497 p_to.object_version_number := p_from.object_version_number;
2498 p_to.attribute_category := p_from.attribute_category;
2499 p_to.attribute1 := p_from.attribute1;
2500 p_to.attribute2 := p_from.attribute2;
2501 p_to.attribute3 := p_from.attribute3;
2502 p_to.attribute4 := p_from.attribute4;
2503 p_to.attribute5 := p_from.attribute5;
2504 p_to.attribute6 := p_from.attribute6;
2505 p_to.attribute7 := p_from.attribute7;
2506 p_to.attribute8 := p_from.attribute8;
2507 p_to.attribute9 := p_from.attribute9;
2508 p_to.attribute10 := p_from.attribute10;
2509 p_to.attribute11 := p_from.attribute11;
2510 p_to.attribute12 := p_from.attribute12;
2511 p_to.attribute13 := p_from.attribute13;
2512 p_to.attribute14 := p_from.attribute14;
2513 p_to.attribute15 := p_from.attribute15;
2514 p_to.created_by := p_from.created_by;
2515 p_to.creation_date := p_from.creation_date;
2516 p_to.last_updated_by := p_from.last_updated_by;
2517 p_to.last_update_date := p_from.last_update_date;
2518 p_to.last_update_login := p_from.last_update_login;
2519
2520 -- modified by dcshanmu for eBTax project - modification start
2521 p_to.tax_attribute_def_id := p_from.tax_attribute_def_id;
2522 p_to.result_type_code := p_from.result_type_code;
2523 p_to.book_class_code := p_from.book_class_code;
2524 p_to.date_effective_from := p_from.date_effective_from;
2525 p_to.date_effective_to := p_from.date_effective_to;
2526 p_to.tax_country_code := p_from.tax_country_code;
2527 p_to.term_quote_type_code := p_from.term_quote_type_code;
2528 p_to.term_quote_reason_code := p_from.term_quote_reason_code;
2529 p_to.expire_flag := p_from.expire_flag;
2530 -- modified by dcshanmu for eBTax project - modification end
2531 END migrate;
2532 ---------------------------------------------------------------------------
2533 -- PROCEDURE validate_row
2534 ---------------------------------------------------------------------------
2535 --------------------------------------------
2536 -- validate_row for:OKL_TAX_ATTR_DEFINITIONS --
2537 --------------------------------------------
2538 PROCEDURE validate_row(
2539 p_api_version IN NUMBER,
2540 p_init_msg_list IN VARCHAR2,
2541 x_return_status OUT NOCOPY VARCHAR2,
2542 x_msg_count OUT NOCOPY NUMBER,
2543 x_msg_data OUT NOCOPY VARCHAR2,
2544 p_tbcv_rec IN tbcv_rec_type) IS
2545
2546 l_api_version CONSTANT NUMBER := 1;
2547 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
2548 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2549 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
2550 l_tbc_rec tbc_rec_type;
2551 l_tbc_rec tbc_rec_type;
2552 BEGIN
2553 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2554 G_PKG_NAME,
2555 p_init_msg_list,
2556 l_api_version,
2557 p_api_version,
2558 '_PVT',
2559 x_return_status);
2560 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2561 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2562 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2563 RAISE OKL_API.G_EXCEPTION_ERROR;
2564 END IF;
2565 --- Validate all non-missing attributes (Item Level Validation)
2566 l_return_status := Validate_Attributes(l_tbcv_rec);
2567 --- If any errors happen abort API
2568 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2569 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2570 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2571 RAISE OKL_API.G_EXCEPTION_ERROR;
2572 END IF;
2573 l_return_status := Validate_Record(l_tbcv_rec);
2574 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2575 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2576 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2577 RAISE OKL_API.G_EXCEPTION_ERROR;
2578 END IF;
2579 x_return_status := l_return_status;
2580 EXCEPTION
2581 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2582 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2583 (
2584 l_api_name,
2585 G_PKG_NAME,
2586 'OKL_API.G_RET_STS_ERROR',
2587 x_msg_count,
2588 x_msg_data,
2589 '_PVT'
2590 );
2591 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2592 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2593 (
2594 l_api_name,
2595 G_PKG_NAME,
2596 'OKL_API.G_RET_STS_UNEXP_ERROR',
2597 x_msg_count,
2598 x_msg_data,
2599 '_PVT'
2600 );
2601 WHEN OTHERS THEN
2602 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2603 (
2604 l_api_name,
2605 G_PKG_NAME,
2606 'OTHERS',
2607 x_msg_count,
2608 x_msg_data,
2609 '_PVT'
2610 );
2611 END validate_row;
2612 -------------------------------------------------------
2613 -- PL/SQL TBL validate_row for:OKL_TAX_ATTR_DEFINITIONS --
2614 -------------------------------------------------------
2615 PROCEDURE validate_row(
2616 p_api_version IN NUMBER,
2617 p_init_msg_list IN VARCHAR2,
2618 x_return_status OUT NOCOPY VARCHAR2,
2619 x_msg_count OUT NOCOPY NUMBER,
2620 x_msg_data OUT NOCOPY VARCHAR2,
2621 p_tbcv_tbl IN tbcv_tbl_type,
2622 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2623
2624 l_api_version CONSTANT NUMBER := 1;
2625 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
2626 i NUMBER := 0;
2627 BEGIN
2628 OKL_API.init_msg_list(p_init_msg_list);
2629 -- Make sure PL/SQL table has records in it before passing
2630 IF (p_tbcv_tbl.COUNT > 0) THEN
2631 i := p_tbcv_tbl.FIRST;
2632 LOOP
2633 DECLARE
2634 l_error_rec OKL_API.ERROR_REC_TYPE;
2635 BEGIN
2636 l_error_rec.api_name := l_api_name;
2637 l_error_rec.api_package := G_PKG_NAME;
2638 l_error_rec.idx := i;
2639 validate_row (
2640 p_api_version => p_api_version,
2641 p_init_msg_list => OKL_API.G_FALSE,
2642 x_return_status => l_error_rec.error_type,
2643 x_msg_count => l_error_rec.msg_count,
2644 x_msg_data => l_error_rec.msg_data,
2645 p_tbcv_rec => p_tbcv_tbl(i));
2646 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2647 l_error_rec.sqlcode := SQLCODE;
2648 load_error_tbl(l_error_rec, px_error_tbl);
2649 ELSE
2650 x_msg_count := l_error_rec.msg_count;
2651 x_msg_data := l_error_rec.msg_data;
2652 END IF;
2653 EXCEPTION
2654 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2655 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2656 l_error_rec.sqlcode := SQLCODE;
2657 load_error_tbl(l_error_rec, px_error_tbl);
2658 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2659 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2660 l_error_rec.sqlcode := SQLCODE;
2661 load_error_tbl(l_error_rec, px_error_tbl);
2662 WHEN OTHERS THEN
2663 l_error_rec.error_type := 'OTHERS';
2664 l_error_rec.sqlcode := SQLCODE;
2665 load_error_tbl(l_error_rec, px_error_tbl);
2666 END;
2667 EXIT WHEN (i = p_tbcv_tbl.LAST);
2668 i := p_tbcv_tbl.NEXT(i);
2669 END LOOP;
2670 END IF;
2671 -- Loop through the error_tbl to find the error with the highest severity
2672 -- and return it.
2673 x_return_status := find_highest_exception(px_error_tbl);
2674 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2675 EXCEPTION
2676 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2677 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2678 (
2679 l_api_name,
2680 G_PKG_NAME,
2681 'OKL_API.G_RET_STS_ERROR',
2682 x_msg_count,
2683 x_msg_data,
2684 '_PVT'
2685 );
2686 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2687 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2688 (
2689 l_api_name,
2690 G_PKG_NAME,
2691 'OKL_API.G_RET_STS_UNEXP_ERROR',
2692 x_msg_count,
2693 x_msg_data,
2694 '_PVT'
2695 );
2696 WHEN OTHERS THEN
2697 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2698 (
2699 l_api_name,
2700 G_PKG_NAME,
2701 'OTHERS',
2702 x_msg_count,
2703 x_msg_data,
2704 '_PVT'
2705 );
2706 END validate_row;
2707
2708 -------------------------------------------------------
2709 -- PL/SQL TBL validate_row for:OKL_TAX_ATTR_DEFINITIONS --
2710 -------------------------------------------------------
2711 PROCEDURE validate_row(
2712 p_api_version IN NUMBER,
2713 p_init_msg_list IN VARCHAR2,
2714 x_return_status OUT NOCOPY VARCHAR2,
2715 x_msg_count OUT NOCOPY NUMBER,
2716 x_msg_data OUT NOCOPY VARCHAR2,
2717 p_tbcv_tbl IN tbcv_tbl_type) IS
2718
2719 l_api_version CONSTANT NUMBER := 1;
2720 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
2721 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2722 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2723 BEGIN
2724 OKL_API.init_msg_list(p_init_msg_list);
2725 -- Make sure PL/SQL table has records in it before passing
2726 IF (p_tbcv_tbl.COUNT > 0) THEN
2727 validate_row (
2728 p_api_version => p_api_version,
2729 p_init_msg_list => OKL_API.G_FALSE,
2730 x_return_status => x_return_status,
2731 x_msg_count => x_msg_count,
2732 x_msg_data => x_msg_data,
2733 p_tbcv_tbl => p_tbcv_tbl,
2734 px_error_tbl => l_error_tbl);
2735 END IF;
2736 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2737 EXCEPTION
2738 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2739 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2740 (
2741 l_api_name,
2742 G_PKG_NAME,
2743 'OKL_API.G_RET_STS_ERROR',
2744 x_msg_count,
2745 x_msg_data,
2746 '_PVT'
2747 );
2748 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2749 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2750 (
2751 l_api_name,
2752 G_PKG_NAME,
2753 'OKL_API.G_RET_STS_UNEXP_ERROR',
2754 x_msg_count,
2755 x_msg_data,
2756 '_PVT'
2757 );
2758 WHEN OTHERS THEN
2759 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2760 (
2761 l_api_name,
2762 G_PKG_NAME,
2763 'OTHERS',
2764 x_msg_count,
2765 x_msg_data,
2766 '_PVT'
2767 );
2768 END validate_row;
2769
2770 ---------------------------------------------------------------------------
2771 -- PROCEDURE insert_row
2772 ---------------------------------------------------------------------------
2773 ------------------------------------------
2774 -- insert_row for:OKL_TAX_ATTR_DEFINITIONS --
2775 ------------------------------------------
2776 PROCEDURE insert_row(
2777 p_init_msg_list IN VARCHAR2,
2778 x_return_status OUT NOCOPY VARCHAR2,
2779 x_msg_count OUT NOCOPY NUMBER,
2780 x_msg_data OUT NOCOPY VARCHAR2,
2781 p_tbc_rec IN tbc_rec_type,
2782 x_tbc_rec OUT NOCOPY tbc_rec_type) IS
2783
2784 l_api_version CONSTANT NUMBER := 1;
2785 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
2786 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2787 l_tbc_rec tbc_rec_type := p_tbc_rec;
2788 l_def_tbc_rec tbc_rec_type;
2789 ----------------------------------------------
2790 -- Set_Attributes for:OKL_TAX_ATTR_DEFINITIONS--
2791 ----------------------------------------------
2792 FUNCTION Set_Attributes (
2793 p_tbc_rec IN tbc_rec_type,
2794 x_tbc_rec OUT NOCOPY tbc_rec_type
2795 ) RETURN VARCHAR2 IS
2796 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2797 BEGIN
2798 x_tbc_rec := p_tbc_rec;
2799 x_tbc_rec.tax_attribute_def_id := okc_p_util.raw_to_number(sys_guid());
2800 x_tbc_rec.date_effective_from := to_date('01-01-1960','dd-mm-rrrr');
2801 RETURN(l_return_status);
2802 END Set_Attributes;
2803 BEGIN
2804 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2805 p_init_msg_list,
2806 '_PVT',
2807 x_return_status);
2808 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2809 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2810 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2811 RAISE OKL_API.G_EXCEPTION_ERROR;
2812 END IF;
2813 --- Setting item atributes
2814 l_return_status := Set_Attributes(
2815 p_tbc_rec, -- IN
2816 l_tbc_rec); -- OUT
2817 --- If any errors happen abort API
2818 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2819 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2820 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2821 RAISE OKL_API.G_EXCEPTION_ERROR;
2822 END IF;
2823 INSERT INTO OKL_TAX_ATTR_DEFINITIONS(
2824 -- id,
2825 -- org_id,
2826 result_code,
2827 purchase_option_code,
2828 pdt_id,
2829 try_id,
2830 sty_id,
2831 int_disclosed_code,
2832 title_trnsfr_code,
2833 sale_lease_back_code,
2834 lease_purchased_code,
2835 equip_usage_code,
2836 vendor_site_id,
2837 age_of_equip_from,
2838 age_of_equip_to,
2839 object_version_number,
2840 attribute_category,
2841 attribute1,
2842 attribute2,
2843 attribute3,
2844 attribute4,
2845 attribute5,
2846 attribute6,
2847 attribute7,
2848 attribute8,
2849 attribute9,
2850 attribute10,
2851 attribute11,
2852 attribute12,
2853 attribute13,
2854 attribute14,
2855 attribute15,
2856 created_by,
2857 creation_date,
2858 last_updated_by,
2859 last_update_date,
2860 last_update_login,
2861 -- modified by dcshanmu for eBTax project - modification start
2862 tax_attribute_def_id,
2863 result_type_code,
2864 book_class_code,
2865 date_effective_from,
2866 date_effective_to,
2867 tax_country_code,
2868 term_quote_type_code,
2869 term_quote_reason_code,
2870 expire_flag)
2871 -- modified by dcshanmu for eBTax project - modification end
2872 VALUES (
2873 -- l_tbc_rec.id,
2874 -- l_tbc_rec.org_id,
2875 l_tbc_rec.result_code,
2876 l_tbc_rec.purchase_option_code,
2877 l_tbc_rec.pdt_id,
2878 l_tbc_rec.try_id,
2879 l_tbc_rec.sty_id,
2880 l_tbc_rec.int_disclosed_code,
2881 l_tbc_rec.title_trnsfr_code,
2882 l_tbc_rec.sale_lease_back_code,
2883 l_tbc_rec.lease_purchased_code,
2884 l_tbc_rec.equip_usage_code,
2885 l_tbc_rec.vendor_site_id,
2886 l_tbc_rec.age_of_equip_from,
2887 l_tbc_rec.age_of_equip_to,
2888 l_tbc_rec.object_version_number,
2889 l_tbc_rec.attribute_category,
2890 l_tbc_rec.attribute1,
2891 l_tbc_rec.attribute2,
2892 l_tbc_rec.attribute3,
2893 l_tbc_rec.attribute4,
2894 l_tbc_rec.attribute5,
2895 l_tbc_rec.attribute6,
2896 l_tbc_rec.attribute7,
2897 l_tbc_rec.attribute8,
2898 l_tbc_rec.attribute9,
2899 l_tbc_rec.attribute10,
2900 l_tbc_rec.attribute11,
2901 l_tbc_rec.attribute12,
2902 l_tbc_rec.attribute13,
2903 l_tbc_rec.attribute14,
2904 l_tbc_rec.attribute15,
2905 l_tbc_rec.created_by,
2906 l_tbc_rec.creation_date,
2907 l_tbc_rec.last_updated_by,
2908 l_tbc_rec.last_update_date,
2909 l_tbc_rec.last_update_login,
2910 -- modified by dcshanmu for eBTax project - modification start
2911 l_tbc_rec.tax_attribute_def_id,
2912 l_tbc_rec.result_type_code,
2913 l_tbc_rec.book_class_code,
2914 l_tbc_rec.date_effective_from,
2915 l_tbc_rec.date_effective_to,
2916 l_tbc_rec.tax_country_code,
2917 l_tbc_rec.term_quote_type_code,
2918 l_tbc_rec.term_quote_reason_code,
2919 l_tbc_rec.expire_flag);
2920 -- modified by dcshanmu for eBTax project - modification end
2921 -- Set OUT values
2922 x_tbc_rec := l_tbc_rec;
2923 x_return_status := l_return_status;
2924 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2925 EXCEPTION
2926 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2927 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2928 (
2929 l_api_name,
2930 G_PKG_NAME,
2931 'OKL_API.G_RET_STS_ERROR',
2932 x_msg_count,
2933 x_msg_data,
2934 '_PVT'
2935 );
2936 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2937 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2938 (
2939 l_api_name,
2940 G_PKG_NAME,
2941 'OKL_API.G_RET_STS_UNEXP_ERROR',
2942 x_msg_count,
2943 x_msg_data,
2944 '_PVT'
2945 );
2946 WHEN OTHERS THEN
2947 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2948 (
2949 l_api_name,
2950 G_PKG_NAME,
2951 'OTHERS',
2952 x_msg_count,
2953 x_msg_data,
2954 '_PVT'
2955 );
2956 END insert_row;
2957 -------------------------------------------
2958 -- insert_row for :OKL_TAX_ATTR_DEFINITIONS --
2959 -------------------------------------------
2960 PROCEDURE insert_row(
2961 p_api_version IN NUMBER,
2962 p_init_msg_list IN VARCHAR2,
2963 x_return_status OUT NOCOPY VARCHAR2,
2964 x_msg_count OUT NOCOPY NUMBER,
2965 x_msg_data OUT NOCOPY VARCHAR2,
2966 p_tbcv_rec IN tbcv_rec_type,
2967 x_tbcv_rec OUT NOCOPY tbcv_rec_type) IS
2968
2969 l_api_version CONSTANT NUMBER := 1;
2970 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
2971 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2972 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
2973 l_def_tbcv_rec tbcv_rec_type;
2974 l_tbc_rec tbc_rec_type;
2975 lx_tbc_rec tbc_rec_type;
2976 -------------------------------
2977 -- FUNCTION fill_who_columns --
2978 -------------------------------
2979 FUNCTION fill_who_columns (
2980 p_tbcv_rec IN tbcv_rec_type
2981 ) RETURN tbcv_rec_type IS
2982 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
2983 BEGIN
2984 l_tbcv_rec.CREATION_DATE := SYSDATE;
2985 l_tbcv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2986 l_tbcv_rec.LAST_UPDATE_DATE := l_tbcv_rec.CREATION_DATE;
2987 l_tbcv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2988 l_tbcv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2989 RETURN(l_tbcv_rec);
2990 END fill_who_columns;
2991 ----------------------------------------------
2992 -- Set_Attributes for:OKL_TAX_ATTR_DEFINITIONS --
2993 ----------------------------------------------
2994 FUNCTION Set_Attributes (
2995 p_tbcv_rec IN tbcv_rec_type,
2996 x_tbcv_rec OUT NOCOPY tbcv_rec_type
2997 ) RETURN VARCHAR2 IS
2998 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2999 BEGIN
3000 x_tbcv_rec := p_tbcv_rec;
3001 x_tbcv_rec.OBJECT_VERSION_NUMBER := 1;
3002 RETURN(l_return_status);
3003 END Set_Attributes;
3004 BEGIN
3005 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3006 G_PKG_NAME,
3007 p_init_msg_list,
3008 l_api_version,
3009 p_api_version,
3010 '_PVT',
3011 x_return_status);
3012 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3013 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3014 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3015 RAISE OKL_API.G_EXCEPTION_ERROR;
3016 END IF;
3017 l_tbcv_rec := null_out_defaults(p_tbcv_rec);
3018 -- Set primary key value
3019 l_tbcv_rec.tax_attribute_def_id := get_seq_id;
3020 -- Setting item attributes
3021 l_return_Status := Set_Attributes(
3022 l_tbcv_rec, -- IN
3023 l_def_tbcv_rec); -- OUT
3024 --- If any errors happen abort API
3025 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3026 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3027 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3028 RAISE OKL_API.G_EXCEPTION_ERROR;
3029 END IF;
3030 l_def_tbcv_rec := fill_who_columns(l_def_tbcv_rec);
3031
3032 --- Validate all non-missing attributes (Item Level Validation)
3033 l_return_status := Validate_Attributes(l_def_tbcv_rec);
3034 --- If any errors happen abort API
3035 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3036 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3037 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3038 RAISE OKL_API.G_EXCEPTION_ERROR;
3039 END IF;
3040 l_return_status := Validate_Record(l_def_tbcv_rec);
3041 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3042 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3043 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3044 RAISE OKL_API.G_EXCEPTION_ERROR;
3045 END IF;
3046 -----------------------------------------
3047 -- Move VIEW record to "Child" records --
3048 -----------------------------------------
3049 migrate(l_def_tbcv_rec, l_tbc_rec);
3050 -----------------------------------------------
3051 -- Call the INSERT_ROW for each child record --
3052 -----------------------------------------------
3053 insert_row(
3054 p_init_msg_list,
3055 l_return_status,
3056 x_msg_count,
3057 x_msg_data,
3058 l_tbc_rec,
3059 lx_tbc_rec
3060 );
3061 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3062 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3063 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3064 RAISE OKL_API.G_EXCEPTION_ERROR;
3065 END IF;
3066 migrate(lx_tbc_rec, l_def_tbcv_rec);
3067 -- Set OUT values
3068
3069 x_tbcv_rec := l_def_tbcv_rec;
3070 x_return_status := l_return_status;
3071 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3072 EXCEPTION
3073 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3074 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3075 (
3076 l_api_name,
3077 G_PKG_NAME,
3078 'OKL_API.G_RET_STS_ERROR',
3079 x_msg_count,
3080 x_msg_data,
3081 '_PVT'
3082 );
3083 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3084 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3085 (
3086 l_api_name,
3087 G_PKG_NAME,
3088 'OKL_API.G_RET_STS_UNEXP_ERROR',
3089 x_msg_count,
3090 x_msg_data,
3091 '_PVT'
3092 );
3093 WHEN OTHERS THEN
3094 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3095 (
3096 l_api_name,
3097 G_PKG_NAME,
3098 'OTHERS',
3099 x_msg_count,
3100 x_msg_data,
3101 '_PVT'
3102 );
3103 END insert_row;
3104 ----------------------------------------
3105 -- PL/SQL TBL insert_row for:TBCV_TBL --
3106 ----------------------------------------
3107 PROCEDURE insert_row(
3108 p_api_version IN NUMBER,
3109 p_init_msg_list IN VARCHAR2,
3110 x_return_status OUT NOCOPY VARCHAR2,
3111 x_msg_count OUT NOCOPY NUMBER,
3112 x_msg_data OUT NOCOPY VARCHAR2,
3113 p_tbcv_tbl IN tbcv_tbl_type,
3114 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type,
3115 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3116
3117 l_api_version CONSTANT NUMBER := 1;
3118 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
3119 i NUMBER := 0;
3120 BEGIN
3121 OKL_API.init_msg_list(p_init_msg_list);
3122 -- Make sure PL/SQL table has records in it before passing
3123 IF (p_tbcv_tbl.COUNT > 0) THEN
3124 i := p_tbcv_tbl.FIRST;
3125 LOOP
3126 DECLARE
3127 l_error_rec OKL_API.ERROR_REC_TYPE;
3128 BEGIN
3129 l_error_rec.api_name := l_api_name;
3130 l_error_rec.api_package := G_PKG_NAME;
3131 l_error_rec.idx := i;
3132 insert_row (
3133 p_api_version => p_api_version,
3134 p_init_msg_list => OKL_API.G_FALSE,
3135 x_return_status => l_error_rec.error_type,
3136 x_msg_count => l_error_rec.msg_count,
3137 x_msg_data => l_error_rec.msg_data,
3138 p_tbcv_rec => p_tbcv_tbl(i),
3139 x_tbcv_rec => x_tbcv_tbl(i));
3140 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3141 l_error_rec.sqlcode := SQLCODE;
3142 load_error_tbl(l_error_rec, px_error_tbl);
3143 ELSE
3144 x_msg_count := l_error_rec.msg_count;
3145 x_msg_data := l_error_rec.msg_data;
3146 END IF;
3147 EXCEPTION
3148 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3149 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3150 l_error_rec.sqlcode := SQLCODE;
3151 load_error_tbl(l_error_rec, px_error_tbl);
3152 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3153 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3154 l_error_rec.sqlcode := SQLCODE;
3155 load_error_tbl(l_error_rec, px_error_tbl);
3156 WHEN OTHERS THEN
3157 l_error_rec.error_type := 'OTHERS';
3158 l_error_rec.sqlcode := SQLCODE;
3159 load_error_tbl(l_error_rec, px_error_tbl);
3160 END;
3161 EXIT WHEN (i = p_tbcv_tbl.LAST);
3162 i := p_tbcv_tbl.NEXT(i);
3163 END LOOP;
3164 END IF;
3165 -- Loop through the error_tbl to find the error with the highest severity
3166 -- and return it.
3167 x_return_status := find_highest_exception(px_error_tbl);
3168 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3169 EXCEPTION
3170 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3171 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3172 (
3173 l_api_name,
3174 G_PKG_NAME,
3175 'OKL_API.G_RET_STS_ERROR',
3176 x_msg_count,
3177 x_msg_data,
3178 '_PVT'
3179 );
3180 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3181 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3182 (
3183 l_api_name,
3184 G_PKG_NAME,
3185 'OKL_API.G_RET_STS_UNEXP_ERROR',
3186 x_msg_count,
3187 x_msg_data,
3188 '_PVT'
3189 );
3190 WHEN OTHERS THEN
3191 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3192 (
3193 l_api_name,
3194 G_PKG_NAME,
3195 'OTHERS',
3196 x_msg_count,
3197 x_msg_data,
3198 '_PVT'
3199 );
3200 END insert_row;
3201
3202 ----------------------------------------
3203 -- PL/SQL TBL insert_row for:TBCV_TBL --
3204 ----------------------------------------
3205 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
3206 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
3207 PROCEDURE insert_row(
3208 p_api_version IN NUMBER,
3209 p_init_msg_list IN VARCHAR2,
3210 x_return_status OUT NOCOPY VARCHAR2,
3211 x_msg_count OUT NOCOPY NUMBER,
3212 x_msg_data OUT NOCOPY VARCHAR2,
3213 p_tbcv_tbl IN tbcv_tbl_type,
3214 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type) IS
3215
3216 l_api_version CONSTANT NUMBER := 1;
3217 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
3218 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3219 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3220 BEGIN
3221 OKL_API.init_msg_list(p_init_msg_list);
3222 -- Make sure PL/SQL table has records in it before passing
3223 IF (p_tbcv_tbl.COUNT > 0) THEN
3224 insert_row (
3225 p_api_version => p_api_version,
3226 p_init_msg_list => OKL_API.G_FALSE,
3227 x_return_status => x_return_status,
3228 x_msg_count => x_msg_count,
3229 x_msg_data => x_msg_data,
3230 p_tbcv_tbl => p_tbcv_tbl,
3231 x_tbcv_tbl => x_tbcv_tbl,
3232 px_error_tbl => l_error_tbl);
3233 END IF;
3234 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3235 EXCEPTION
3236 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3237 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3238 (
3239 l_api_name,
3240 G_PKG_NAME,
3241 'OKL_API.G_RET_STS_ERROR',
3242 x_msg_count,
3243 x_msg_data,
3244 '_PVT'
3245 );
3246 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3247 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3248 (
3249 l_api_name,
3250 G_PKG_NAME,
3251 'OKL_API.G_RET_STS_UNEXP_ERROR',
3252 x_msg_count,
3253 x_msg_data,
3254 '_PVT'
3255 );
3256 WHEN OTHERS THEN
3257 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3258 (
3259 l_api_name,
3260 G_PKG_NAME,
3261 'OTHERS',
3262 x_msg_count,
3263 x_msg_data,
3264 '_PVT'
3265 );
3266 END insert_row;
3267
3268 ---------------------------------------------------------------------------
3269 -- PROCEDURE lock_row
3270 ---------------------------------------------------------------------------
3271 ----------------------------------------
3272 -- lock_row for:OKL_TAX_ATTR_DEFINITIONS --
3273 ----------------------------------------
3274 PROCEDURE lock_row(
3275 p_init_msg_list IN VARCHAR2,
3276 x_return_status OUT NOCOPY VARCHAR2,
3277 x_msg_count OUT NOCOPY NUMBER,
3278 x_msg_data OUT NOCOPY VARCHAR2,
3279 p_tbc_rec IN tbc_rec_type) IS
3280
3281 E_Resource_Busy EXCEPTION;
3282 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
3283 CURSOR lock_csr (p_tbc_rec IN tbc_rec_type) IS
3284 SELECT OBJECT_VERSION_NUMBER
3285 FROM OKL_TAX_ATTR_DEFINITIONS
3286 --WHERE ID = p_tbc_rec.id
3287 WHERE RESULT_CODE = p_tbc_rec.result_code
3288 AND OBJECT_VERSION_NUMBER = p_tbc_rec.object_version_number
3289 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
3290
3291 CURSOR lchk_csr (p_tbc_rec IN tbc_rec_type) IS
3292 SELECT OBJECT_VERSION_NUMBER
3293 FROM OKL_TAX_ATTR_DEFINITIONS
3294 -- WHERE ID = p_tbc_rec.id;
3295 WHERE RESULT_CODE = p_tbc_rec.result_code;
3296 l_api_version CONSTANT NUMBER := 1;
3297 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
3298 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3299 l_object_version_number OKL_TAX_ATTR_DEFINITIONS.OBJECT_VERSION_NUMBER%TYPE;
3300 lc_object_version_number OKL_TAX_ATTR_DEFINITIONS.OBJECT_VERSION_NUMBER%TYPE;
3301 l_row_notfound BOOLEAN := FALSE;
3302 lc_row_notfound BOOLEAN := FALSE;
3303 BEGIN
3304 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3305 p_init_msg_list,
3306 '_PVT',
3307 x_return_status);
3308 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3309 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3310 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3311 RAISE OKL_API.G_EXCEPTION_ERROR;
3312 END IF;
3313 BEGIN
3314 OPEN lock_csr(p_tbc_rec);
3315 FETCH lock_csr INTO l_object_version_number;
3316 l_row_notfound := lock_csr%NOTFOUND;
3317 CLOSE lock_csr;
3318 EXCEPTION
3319 WHEN E_Resource_Busy THEN
3320 IF (lock_csr%ISOPEN) THEN
3321 CLOSE lock_csr;
3322 END IF;
3323 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
3324 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
3325 END;
3326
3327 IF ( l_row_notfound ) THEN
3328 OPEN lchk_csr(p_tbc_rec);
3329 FETCH lchk_csr INTO lc_object_version_number;
3330 lc_row_notfound := lchk_csr%NOTFOUND;
3331 CLOSE lchk_csr;
3332 END IF;
3333 IF (lc_row_notfound) THEN
3334 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
3335 RAISE OKL_API.G_EXCEPTION_ERROR;
3336 ELSIF lc_object_version_number > p_tbc_rec.object_version_number THEN
3337 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3338 RAISE OKL_API.G_EXCEPTION_ERROR;
3339 ELSIF lc_object_version_number <> p_tbc_rec.object_version_number THEN
3340 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
3341 RAISE OKL_API.G_EXCEPTION_ERROR;
3342 ELSIF lc_object_version_number = -1 THEN
3343 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
3344 RAISE OKL_API.G_EXCEPTION_ERROR;
3345 END IF;
3346 x_return_status := l_return_status;
3347 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3348 EXCEPTION
3349 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3350 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3351 (
3352 l_api_name,
3353 G_PKG_NAME,
3354 'OKL_API.G_RET_STS_ERROR',
3355 x_msg_count,
3356 x_msg_data,
3357 '_PVT'
3358 );
3359 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3360 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3361 (
3362 l_api_name,
3363 G_PKG_NAME,
3364 'OKL_API.G_RET_STS_UNEXP_ERROR',
3365 x_msg_count,
3366 x_msg_data,
3367 '_PVT'
3368 );
3369 WHEN OTHERS THEN
3370 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3371 (
3372 l_api_name,
3373 G_PKG_NAME,
3374 'OTHERS',
3375 x_msg_count,
3376 x_msg_data,
3377 '_PVT'
3378 );
3379 END lock_row;
3380 -----------------------------------------
3381 -- lock_row for: OKL_TAX_ATTR_DEFINITIONS --
3382 -----------------------------------------
3383 PROCEDURE lock_row(
3384 p_api_version IN NUMBER,
3385 p_init_msg_list IN VARCHAR2,
3386 x_return_status OUT NOCOPY VARCHAR2,
3387 x_msg_count OUT NOCOPY NUMBER,
3388 x_msg_data OUT NOCOPY VARCHAR2,
3389 p_tbcv_rec IN tbcv_rec_type) IS
3390
3391 l_api_version CONSTANT NUMBER := 1;
3392 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
3393 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3394 l_tbc_rec tbc_rec_type;
3395 BEGIN
3396 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3397 G_PKG_NAME,
3398 p_init_msg_list,
3399 l_api_version,
3400 p_api_version,
3401 '_PVT',
3402 x_return_status);
3403 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3404 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3405 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3406 RAISE OKL_API.G_EXCEPTION_ERROR;
3407 END IF;
3408 -----------------------------------------
3409 -- Move VIEW record to "Child" records --
3410 -----------------------------------------
3411 migrate(p_tbcv_rec, l_tbc_rec);
3412 ---------------------------------------------
3413 -- Call the LOCK_ROW for each child record --
3414 ---------------------------------------------
3415 lock_row(
3416 p_init_msg_list,
3417 l_return_status,
3418 x_msg_count,
3419 x_msg_data,
3420 l_tbc_rec
3421 );
3422 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3423 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3424 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3425 RAISE OKL_API.G_EXCEPTION_ERROR;
3426 END IF;
3427 x_return_status := l_return_status;
3428 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3429 EXCEPTION
3430 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3431 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3432 (
3433 l_api_name,
3434 G_PKG_NAME,
3435 'OKL_API.G_RET_STS_ERROR',
3436 x_msg_count,
3437 x_msg_data,
3438 '_PVT'
3439 );
3440 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3441 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3442 (
3443 l_api_name,
3444 G_PKG_NAME,
3445 'OKL_API.G_RET_STS_UNEXP_ERROR',
3446 x_msg_count,
3447 x_msg_data,
3448 '_PVT'
3449 );
3450 WHEN OTHERS THEN
3451 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3452 (
3453 l_api_name,
3454 G_PKG_NAME,
3455 'OTHERS',
3456 x_msg_count,
3457 x_msg_data,
3458 '_PVT'
3459 );
3460 END lock_row;
3461 --------------------------------------
3462 -- PL/SQL TBL lock_row for:TBCV_TBL --
3463 --------------------------------------
3464 PROCEDURE lock_row(
3465 p_api_version IN NUMBER,
3466 p_init_msg_list IN VARCHAR2,
3467 x_return_status OUT NOCOPY VARCHAR2,
3468 x_msg_count OUT NOCOPY NUMBER,
3469 x_msg_data OUT NOCOPY VARCHAR2,
3470 p_tbcv_tbl IN tbcv_tbl_type,
3471 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3472
3473 l_api_version CONSTANT NUMBER := 1;
3474 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
3475 i NUMBER := 0;
3476 BEGIN
3477 OKL_API.init_msg_list(p_init_msg_list);
3478 -- Make sure PL/SQL table has recrods in it before passing
3479 IF (p_tbcv_tbl.COUNT > 0) THEN
3480 i := p_tbcv_tbl.FIRST;
3481 LOOP
3482 DECLARE
3483 l_error_rec OKL_API.ERROR_REC_TYPE;
3484 BEGIN
3485 l_error_rec.api_name := l_api_name;
3486 l_error_rec.api_package := G_PKG_NAME;
3487 l_error_rec.idx := i;
3488 lock_row(
3489 p_api_version => p_api_version,
3490 p_init_msg_list => OKL_API.G_FALSE,
3491 x_return_status => l_error_rec.error_type,
3492 x_msg_count => l_error_rec.msg_count,
3493 x_msg_data => l_error_rec.msg_data,
3494 p_tbcv_rec => p_tbcv_tbl(i));
3495 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3496 l_error_rec.sqlcode := SQLCODE;
3497 load_error_tbl(l_error_rec, px_error_tbl);
3498 ELSE
3499 x_msg_count := l_error_rec.msg_count;
3500 x_msg_data := l_error_rec.msg_data;
3501 END IF;
3502 EXCEPTION
3503 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3504 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3505 l_error_rec.sqlcode := SQLCODE;
3506 load_error_tbl(l_error_rec, px_error_tbl);
3507 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3508 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3509 l_error_rec.sqlcode := SQLCODE;
3510 load_error_tbl(l_error_rec, px_error_tbl);
3511 WHEN OTHERS THEN
3512 l_error_rec.error_type := 'OTHERS';
3513 l_error_rec.sqlcode := SQLCODE;
3514 load_error_tbl(l_error_rec, px_error_tbl);
3515 END;
3516 EXIT WHEN (i = p_tbcv_tbl.LAST);
3517 i := p_tbcv_tbl.NEXT(i);
3518 END LOOP;
3519 END IF;
3520 -- Loop through the error_tbl to find the error with the highest severity
3521 -- and return it.
3522 x_return_status := find_highest_exception(px_error_tbl);
3523 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3524 EXCEPTION
3525 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3526 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3527 (
3528 l_api_name,
3529 G_PKG_NAME,
3530 'OKL_API.G_RET_STS_ERROR',
3531 x_msg_count,
3532 x_msg_data,
3533 '_PVT'
3534 );
3535 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3536 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3537 (
3538 l_api_name,
3539 G_PKG_NAME,
3540 'OKL_API.G_RET_STS_UNEXP_ERROR',
3541 x_msg_count,
3542 x_msg_data,
3543 '_PVT'
3544 );
3545 WHEN OTHERS THEN
3546 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3547 (
3548 l_api_name,
3549 G_PKG_NAME,
3550 'OTHERS',
3551 x_msg_count,
3552 x_msg_data,
3553 '_PVT'
3554 );
3555 END lock_row;
3556 --------------------------------------
3557 -- PL/SQL TBL lock_row for:TBCV_TBL --
3558 --------------------------------------
3559 PROCEDURE lock_row(
3560 p_api_version IN NUMBER,
3561 p_init_msg_list IN VARCHAR2,
3562 x_return_status OUT NOCOPY VARCHAR2,
3563 x_msg_count OUT NOCOPY NUMBER,
3564 x_msg_data OUT NOCOPY VARCHAR2,
3565 p_tbcv_tbl IN tbcv_tbl_type) IS
3566
3567 l_api_version CONSTANT NUMBER := 1;
3568 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
3569 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3570 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3571 BEGIN
3572 OKL_API.init_msg_list(p_init_msg_list);
3573 -- Make sure PL/SQL table has recrods in it before passing
3574 IF (p_tbcv_tbl.COUNT > 0) THEN
3575 lock_row(
3576 p_api_version => p_api_version,
3577 p_init_msg_list => OKL_API.G_FALSE,
3578 x_return_status => x_return_status,
3579 x_msg_count => x_msg_count,
3580 x_msg_data => x_msg_data,
3581 p_tbcv_tbl => p_tbcv_tbl,
3582 px_error_tbl => l_error_tbl);
3583 END IF;
3584 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3585 EXCEPTION
3586 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3587 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3588 (
3589 l_api_name,
3590 G_PKG_NAME,
3591 'OKL_API.G_RET_STS_ERROR',
3592 x_msg_count,
3593 x_msg_data,
3594 '_PVT'
3595 );
3596 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3597 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3598 (
3599 l_api_name,
3600 G_PKG_NAME,
3601 'OKL_API.G_RET_STS_UNEXP_ERROR',
3602 x_msg_count,
3603 x_msg_data,
3604 '_PVT'
3605 );
3606 WHEN OTHERS THEN
3607 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3608 (
3609 l_api_name,
3610 G_PKG_NAME,
3611 'OTHERS',
3612 x_msg_count,
3613 x_msg_data,
3614 '_PVT'
3615 );
3616 END lock_row;
3617 ---------------------------------------------------------------------------
3618 -- PROCEDURE update_row
3619 ---------------------------------------------------------------------------
3620 ------------------------------------------
3621 -- update_row for:OKL_TAX_ATTR_DEFINITIONS --
3622 ------------------------------------------
3623 PROCEDURE update_row(
3624 p_init_msg_list IN VARCHAR2,
3625 x_return_status OUT NOCOPY VARCHAR2,
3626 x_msg_count OUT NOCOPY NUMBER,
3627 x_msg_data OUT NOCOPY VARCHAR2,
3628 p_tbc_rec IN tbc_rec_type,
3629 x_tbc_rec OUT NOCOPY tbc_rec_type) IS
3630
3631 l_api_version CONSTANT NUMBER := 1;
3632 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
3633 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3634 l_tbc_rec tbc_rec_type := p_tbc_rec;
3635 l_def_tbc_rec tbc_rec_type;
3636 l_row_notfound BOOLEAN := TRUE;
3637 ----------------------------------
3638 -- FUNCTION populate_new_record --
3639 ----------------------------------
3640 FUNCTION populate_new_record (
3641 p_tbc_rec IN tbc_rec_type,
3642 x_tbc_rec OUT NOCOPY tbc_rec_type
3643 ) RETURN VARCHAR2 IS
3644 l_tbc_rec tbc_rec_type;
3645 l_row_notfound BOOLEAN := TRUE;
3646 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3647 BEGIN
3648 x_tbc_rec := p_tbc_rec;
3649 -- Get current database values
3650 l_tbc_rec := get_rec(p_tbc_rec, l_return_status);
3651 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
3652 /*IF (x_tbc_rec.id = OKL_API.G_MISS_NUM)
3653 THEN
3654 x_tbc_rec.id := l_tbc_rec.id;
3655 END IF;
3656 IF (x_tbc_rec.org_id = OKL_API.G_MISS_NUM)
3657 THEN
3658 x_tbc_rec.org_id := l_tbc_rec.org_id;
3659 END IF; */
3660
3661 -- modified by dcshanmu for eBTax project - modification start
3662 -- modified tbc_code to result_code
3663 IF (x_tbc_rec.result_code = OKL_API.G_MISS_CHAR)
3664 THEN
3665 x_tbc_rec.result_code := l_tbc_rec.result_code;
3666 END IF;
3667 -- modified by dcshanmu for eBTax project - modification end
3668
3669 IF (x_tbc_rec.purchase_option_code = OKL_API.G_MISS_CHAR)
3670 THEN
3671 x_tbc_rec.purchase_option_code := l_tbc_rec.purchase_option_code;
3672 END IF;
3673 IF (x_tbc_rec.pdt_id = OKL_API.G_MISS_NUM)
3674 THEN
3675 x_tbc_rec.pdt_id := l_tbc_rec.pdt_id;
3676 END IF;
3677 IF (x_tbc_rec.try_id = OKL_API.G_MISS_NUM)
3678 THEN
3679 x_tbc_rec.try_id := l_tbc_rec.try_id;
3680 END IF;
3681 IF (x_tbc_rec.sty_id = OKL_API.G_MISS_NUM)
3682 THEN
3683 x_tbc_rec.sty_id := l_tbc_rec.sty_id;
3684 END IF;
3685 IF (x_tbc_rec.int_disclosed_code = OKL_API.G_MISS_CHAR)
3686 THEN
3687 x_tbc_rec.int_disclosed_code := l_tbc_rec.int_disclosed_code;
3688 END IF;
3689 IF (x_tbc_rec.title_trnsfr_code = OKL_API.G_MISS_CHAR)
3690 THEN
3691 x_tbc_rec.title_trnsfr_code := l_tbc_rec.title_trnsfr_code;
3692 END IF;
3693 IF (x_tbc_rec.sale_lease_back_code = OKL_API.G_MISS_CHAR)
3694 THEN
3695 x_tbc_rec.sale_lease_back_code := l_tbc_rec.sale_lease_back_code;
3696 END IF;
3697 IF (x_tbc_rec.lease_purchased_code = OKL_API.G_MISS_CHAR)
3698 THEN
3699 x_tbc_rec.lease_purchased_code := l_tbc_rec.lease_purchased_code;
3700 END IF;
3701 IF (x_tbc_rec.equip_usage_code = OKL_API.G_MISS_CHAR)
3702 THEN
3703 x_tbc_rec.equip_usage_code := l_tbc_rec.equip_usage_code;
3704 END IF;
3705 IF (x_tbc_rec.vendor_site_id = OKL_API.G_MISS_NUM)
3706 THEN
3707 x_tbc_rec.vendor_site_id := l_tbc_rec.vendor_site_id;
3708 END IF;
3709 IF (x_tbc_rec.age_of_equip_from = OKL_API.G_MISS_NUM)
3710 THEN
3711 x_tbc_rec.age_of_equip_from := l_tbc_rec.age_of_equip_from;
3712 END IF;
3713
3714 IF (x_tbc_rec.age_of_equip_to = OKL_API.G_MISS_NUM)
3715 THEN
3716 x_tbc_rec.age_of_equip_to := l_tbc_rec.age_of_equip_to;
3717 END IF;
3718
3719 IF (x_tbc_rec.object_version_number = OKL_API.G_MISS_NUM)
3720 THEN
3721 x_tbc_rec.object_version_number := l_tbc_rec.object_version_number;
3722 END IF;
3723 IF (x_tbc_rec.attribute_category = OKL_API.G_MISS_CHAR)
3724 THEN
3725 x_tbc_rec.attribute_category := l_tbc_rec.attribute_category;
3726 END IF;
3727 IF (x_tbc_rec.attribute1 = OKL_API.G_MISS_CHAR)
3728 THEN
3729 x_tbc_rec.attribute1 := l_tbc_rec.attribute1;
3730 END IF;
3731 IF (x_tbc_rec.attribute2 = OKL_API.G_MISS_CHAR)
3732 THEN
3733 x_tbc_rec.attribute2 := l_tbc_rec.attribute2;
3734 END IF;
3735 IF (x_tbc_rec.attribute3 = OKL_API.G_MISS_CHAR)
3736 THEN
3737 x_tbc_rec.attribute3 := l_tbc_rec.attribute3;
3738 END IF;
3739 IF (x_tbc_rec.attribute4 = OKL_API.G_MISS_CHAR)
3740 THEN
3741 x_tbc_rec.attribute4 := l_tbc_rec.attribute4;
3742 END IF;
3743 IF (x_tbc_rec.attribute5 = OKL_API.G_MISS_CHAR)
3744 THEN
3745 x_tbc_rec.attribute5 := l_tbc_rec.attribute5;
3746 END IF;
3747 IF (x_tbc_rec.attribute6 = OKL_API.G_MISS_CHAR)
3748 THEN
3749 x_tbc_rec.attribute6 := l_tbc_rec.attribute6;
3750 END IF;
3751 IF (x_tbc_rec.attribute7 = OKL_API.G_MISS_CHAR)
3752 THEN
3753 x_tbc_rec.attribute7 := l_tbc_rec.attribute7;
3754 END IF;
3755 IF (x_tbc_rec.attribute8 = OKL_API.G_MISS_CHAR)
3756 THEN
3757 x_tbc_rec.attribute8 := l_tbc_rec.attribute8;
3758 END IF;
3759 IF (x_tbc_rec.attribute9 = OKL_API.G_MISS_CHAR)
3760 THEN
3761 x_tbc_rec.attribute9 := l_tbc_rec.attribute9;
3762 END IF;
3763 IF (x_tbc_rec.attribute10 = OKL_API.G_MISS_CHAR)
3764 THEN
3765 x_tbc_rec.attribute10 := l_tbc_rec.attribute10;
3766 END IF;
3767 IF (x_tbc_rec.attribute11 = OKL_API.G_MISS_CHAR)
3768 THEN
3769 x_tbc_rec.attribute11 := l_tbc_rec.attribute11;
3770 END IF;
3771 IF (x_tbc_rec.attribute12 = OKL_API.G_MISS_CHAR)
3772 THEN
3773 x_tbc_rec.attribute12 := l_tbc_rec.attribute12;
3774 END IF;
3775 IF (x_tbc_rec.attribute13 = OKL_API.G_MISS_CHAR)
3776 THEN
3777 x_tbc_rec.attribute13 := l_tbc_rec.attribute13;
3778 END IF;
3779 IF (x_tbc_rec.attribute14 = OKL_API.G_MISS_CHAR)
3780 THEN
3781 x_tbc_rec.attribute14 := l_tbc_rec.attribute14;
3782 END IF;
3783 IF (x_tbc_rec.attribute15 = OKL_API.G_MISS_CHAR)
3784 THEN
3785 x_tbc_rec.attribute15 := l_tbc_rec.attribute15;
3786 END IF;
3787 IF (x_tbc_rec.created_by = OKL_API.G_MISS_NUM)
3788 THEN
3789 x_tbc_rec.created_by := l_tbc_rec.created_by;
3790 END IF;
3791 IF (x_tbc_rec.creation_date = OKL_API.G_MISS_DATE)
3792 THEN
3793 x_tbc_rec.creation_date := l_tbc_rec.creation_date;
3794 END IF;
3795 IF (x_tbc_rec.last_updated_by = OKL_API.G_MISS_NUM)
3796 THEN
3797 x_tbc_rec.last_updated_by := l_tbc_rec.last_updated_by;
3798 END IF;
3799 IF (x_tbc_rec.last_update_date = OKL_API.G_MISS_DATE)
3800 THEN
3801 x_tbc_rec.last_update_date := l_tbc_rec.last_update_date;
3802 END IF;
3803 IF (x_tbc_rec.last_update_login = OKL_API.G_MISS_NUM)
3804 THEN
3805 x_tbc_rec.last_update_login := l_tbc_rec.last_update_login;
3806 END IF;
3807
3808 -- modified by dcshanmu for eBTax project - modification start
3809 -- added migration code for newly added columns
3810
3811 IF (x_tbc_rec.tax_attribute_def_id = OKL_API.G_MISS_NUM)
3812 THEN
3813 x_tbc_rec.tax_attribute_def_id := l_tbc_rec.tax_attribute_def_id;
3814 END IF;
3815 IF (x_tbc_rec.result_type_code = OKL_API.G_MISS_CHAR)
3816 THEN
3817 x_tbc_rec.result_type_code := l_tbc_rec.result_type_code;
3818 END IF;
3819 IF (x_tbc_rec.book_class_code = OKL_API.G_MISS_CHAR)
3820 THEN
3821 x_tbc_rec.book_class_code := l_tbc_rec.book_class_code;
3822 END IF;
3823 IF (x_tbc_rec.date_effective_from = OKL_API.G_MISS_DATE)
3824 THEN
3825 x_tbc_rec.date_effective_from := l_tbc_rec.date_effective_from;
3826 END IF;
3827 IF (x_tbc_rec.date_effective_to = OKL_API.G_MISS_DATE)
3828 THEN
3829 x_tbc_rec.date_effective_to := l_tbc_rec.date_effective_to;
3830 END IF;
3831 IF (x_tbc_rec.tax_country_code = OKL_API.G_MISS_CHAR)
3832 THEN
3833 x_tbc_rec.tax_country_code := l_tbc_rec.tax_country_code;
3834 END IF;
3835 IF (x_tbc_rec.term_quote_type_code = OKL_API.G_MISS_CHAR)
3836 THEN
3837 x_tbc_rec.term_quote_type_code := l_tbc_rec.term_quote_type_code;
3838 END IF;
3839 IF (x_tbc_rec.term_quote_reason_code = OKL_API.G_MISS_CHAR)
3840 THEN
3841 x_tbc_rec.term_quote_reason_code := l_tbc_rec.term_quote_reason_code;
3842 END IF;
3843 IF (x_tbc_rec.expire_flag = OKL_API.G_MISS_CHAR)
3844 THEN
3845 x_tbc_rec.expire_flag := l_tbc_rec.expire_flag;
3846 END IF;
3847
3848 -- modified by dcshanmu for eBTax project - modification end
3849
3850 END IF;
3851 RETURN(l_return_status);
3852 END populate_new_record;
3853 ----------------------------------------------
3854 -- Set_Attributes for:OKL_TAX_ATTR_DEFINITIONS --
3855 ----------------------------------------------
3856 FUNCTION Set_Attributes (
3857 p_tbc_rec IN tbc_rec_type,
3858 x_tbc_rec OUT NOCOPY tbc_rec_type
3859 ) RETURN VARCHAR2 IS
3860 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3861 BEGIN
3862 x_tbc_rec := p_tbc_rec;
3863 x_tbc_rec.OBJECT_VERSION_NUMBER := p_tbc_rec.OBJECT_VERSION_NUMBER + 1;
3864 RETURN(l_return_status);
3865 END Set_Attributes;
3866 BEGIN
3867 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3868 p_init_msg_list,
3869 '_PVT',
3870 x_return_status);
3871 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3872 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3873 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3874 RAISE OKL_API.G_EXCEPTION_ERROR;
3875 END IF;
3876 --- Setting item attributes
3877 l_return_status := Set_Attributes(
3878 p_tbc_rec, -- IN
3879 l_tbc_rec); -- OUT
3880 --- If any errors happen abort API
3881 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3882 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3883 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3884 RAISE OKL_API.G_EXCEPTION_ERROR;
3885 END IF;
3886 l_return_status := populate_new_record(l_tbc_rec, l_def_tbc_rec);
3887 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3888 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3889 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3890 RAISE OKL_API.G_EXCEPTION_ERROR;
3891 END IF;
3892
3893 UPDATE OKL_TAX_ATTR_DEFINITIONS
3894 SET --ORG_ID = l_def_tbc_rec.org_id,
3895 RESULT_CODE = l_def_tbc_rec.result_code,
3896 PURCHASE_OPTION_CODE = l_def_tbc_rec.purchase_option_code,
3897 PDT_ID = l_def_tbc_rec.pdt_id,
3898 TRY_ID = l_def_tbc_rec.try_id,
3899 STY_ID = l_def_tbc_rec.sty_id,
3900 INT_DISCLOSED_CODE = l_def_tbc_rec.int_disclosed_code,
3901 TITLE_TRNSFR_CODE = l_def_tbc_rec.title_trnsfr_code,
3902 SALE_LEASE_BACK_CODE = l_def_tbc_rec.sale_lease_back_code,
3903 LEASE_PURCHASED_CODE = l_def_tbc_rec.lease_purchased_code,
3904 EQUIP_USAGE_CODE = l_def_tbc_rec.equip_usage_code,
3905 VENDOR_SITE_ID = l_def_tbc_rec.vendor_site_id,
3906 AGE_OF_EQUIP_FROM = l_def_tbc_rec.age_of_equip_from,
3907 AGE_OF_EQUIP_TO = l_def_tbc_rec.age_of_equip_to,
3908 OBJECT_VERSION_NUMBER = l_def_tbc_rec.object_version_number,
3909 ATTRIBUTE_CATEGORY = l_def_tbc_rec.attribute_category,
3910 ATTRIBUTE1 = l_def_tbc_rec.attribute1,
3911 ATTRIBUTE2 = l_def_tbc_rec.attribute2,
3912 ATTRIBUTE3 = l_def_tbc_rec.attribute3,
3913 ATTRIBUTE4 = l_def_tbc_rec.attribute4,
3914 ATTRIBUTE5 = l_def_tbc_rec.attribute5,
3915 ATTRIBUTE6 = l_def_tbc_rec.attribute6,
3916 ATTRIBUTE7 = l_def_tbc_rec.attribute7,
3917 ATTRIBUTE8 = l_def_tbc_rec.attribute8,
3918 ATTRIBUTE9 = l_def_tbc_rec.attribute9,
3919 ATTRIBUTE10 = l_def_tbc_rec.attribute10,
3920 ATTRIBUTE11 = l_def_tbc_rec.attribute11,
3921 ATTRIBUTE12 = l_def_tbc_rec.attribute12,
3922 ATTRIBUTE13 = l_def_tbc_rec.attribute13,
3923 ATTRIBUTE14 = l_def_tbc_rec.attribute14,
3924 ATTRIBUTE15 = l_def_tbc_rec.attribute15,
3925 CREATED_BY = l_def_tbc_rec.created_by,
3926 CREATION_DATE = l_def_tbc_rec.creation_date,
3927 LAST_UPDATED_BY = l_def_tbc_rec.last_updated_by,
3928 LAST_UPDATE_DATE = l_def_tbc_rec.last_update_date,
3929 LAST_UPDATE_LOGIN = l_def_tbc_rec.last_update_login,
3930
3931 -- modified by dcshanmu for eBTax project - modification start
3932 TAX_ATTRIBUTE_DEF_ID = l_def_tbc_rec.tax_attribute_def_id,
3933 RESULT_TYPE_CODE = l_def_tbc_rec.result_type_code,
3934 BOOK_CLASS_CODE = l_def_tbc_rec.book_class_code,
3935 DATE_EFFECTIVE_FROM = l_def_tbc_rec.date_effective_from,
3936 DATE_EFFECTIVE_TO = l_def_tbc_rec.date_effective_to,
3937 TAX_COUNTRY_CODE = l_def_tbc_rec.tax_country_code,
3938 TERM_QUOTE_TYPE_CODE = l_def_tbc_rec.term_quote_type_code,
3939 TERM_QUOTE_REASON_CODE = l_def_tbc_rec.term_quote_reason_code,
3940 EXPIRE_FLAG = l_def_tbc_rec.expire_flag
3941 -- modified by dcshanmu for eBTax project - modification end
3942 -- WHERE ID = l_def_tbc_rec.id;
3943 WHERE tax_attribute_def_id = l_def_tbc_rec.tax_attribute_def_id;
3944
3945 x_tbc_rec := l_tbc_rec;
3946 x_return_status := l_return_status;
3947 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3948 EXCEPTION
3949 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3950 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3951 (
3952 l_api_name,
3953 G_PKG_NAME,
3954 'OKL_API.G_RET_STS_ERROR',
3955 x_msg_count,
3956 x_msg_data,
3957 '_PVT'
3958 );
3959 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3960 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3961 (
3962 l_api_name,
3963 G_PKG_NAME,
3964 'OKL_API.G_RET_STS_UNEXP_ERROR',
3965 x_msg_count,
3966 x_msg_data,
3967 '_PVT'
3968 );
3969 WHEN OTHERS THEN
3970 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3971 (
3972 l_api_name,
3973 G_PKG_NAME,
3974 'OTHERS',
3975 x_msg_count,
3976 x_msg_data,
3977 '_PVT'
3978 );
3979 END update_row;
3980 ------------------------------------------
3981 -- update_row for:OKL_TAX_ATTR_DEFINITIONS --
3982 ------------------------------------------
3983 PROCEDURE update_row(
3984 p_api_version IN NUMBER,
3985 p_init_msg_list IN VARCHAR2,
3986 x_return_status OUT NOCOPY VARCHAR2,
3987 x_msg_count OUT NOCOPY NUMBER,
3988 x_msg_data OUT NOCOPY VARCHAR2,
3989 p_tbcv_rec IN tbcv_rec_type,
3990 x_tbcv_rec OUT NOCOPY tbcv_rec_type) IS
3991
3992 l_api_version CONSTANT NUMBER := 1;
3993 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
3994 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3995 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
3996 l_def_tbcv_rec tbcv_rec_type;
3997 l_db_tbcv_rec tbcv_rec_type;
3998 l_tbc_rec tbc_rec_type;
3999 lx_tbc_rec tbc_rec_type;
4000 -------------------------------
4001 -- FUNCTION fill_who_columns --
4002 -------------------------------
4003 FUNCTION fill_who_columns (
4004 p_tbcv_rec IN tbcv_rec_type
4005 ) RETURN tbcv_rec_type IS
4006 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
4007 BEGIN
4008 l_tbcv_rec.LAST_UPDATE_DATE := SYSDATE;
4009 l_tbcv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
4010 l_tbcv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
4011 RETURN(l_tbcv_rec);
4012 END fill_who_columns;
4013 ----------------------------------
4014 -- FUNCTION populate_new_record --
4015 ----------------------------------
4016 FUNCTION populate_new_record (
4017 p_tbcv_rec IN tbcv_rec_type,
4018 x_tbcv_rec OUT NOCOPY tbcv_rec_type
4019 ) RETURN VARCHAR2 IS
4020 l_row_notfound BOOLEAN := TRUE;
4021 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4022 BEGIN
4023 x_tbcv_rec := p_tbcv_rec;
4024
4025 -- Get current database values
4026 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
4027 -- so it may be verified through LOCK_ROW.
4028 l_db_tbcv_rec := get_rec(p_tbcv_rec, l_return_status);
4029
4030 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
4031 /* IF (x_tbcv_rec.id = OKL_API.G_MISS_NUM)
4032 THEN
4033 x_tbcv_rec.id := l_db_tbcv_rec.id;
4034 END IF;
4035 IF (x_tbcv_rec.org_id = OKL_API.G_MISS_NUM)
4036 THEN
4037 x_tbcv_rec.org_id := l_db_tbcv_rec.org_id;
4038 END IF; */
4039
4040 -- modified by dcshanmu for eBTax project - modification start
4041 IF (x_tbcv_rec.result_code = OKL_API.G_MISS_CHAR)
4042 THEN
4043 x_tbcv_rec.result_code := l_db_tbcv_rec.result_code;
4044 END IF;
4045 -- modified by dcshanmu for eBTax project - modification end
4046
4047 --SECHAWLA : Added code to set Object Version No. because of the locking issue
4048 IF (x_tbcv_rec.object_version_number = OKL_API.G_MISS_NUM)
4049 THEN
4050 x_tbcv_rec.object_version_number := l_db_tbcv_rec.object_version_number;
4051 END IF;
4052
4053
4054 IF (x_tbcv_rec.purchase_option_code = OKL_API.G_MISS_CHAR)
4055 THEN
4056 x_tbcv_rec.purchase_option_code := l_db_tbcv_rec.purchase_option_code;
4057 END IF;
4058 IF (x_tbcv_rec.pdt_id = OKL_API.G_MISS_NUM)
4059 THEN
4060 x_tbcv_rec.pdt_id := l_db_tbcv_rec.pdt_id;
4061 END IF;
4062 IF (x_tbcv_rec.try_id = OKL_API.G_MISS_NUM)
4063 THEN
4064 x_tbcv_rec.try_id := l_db_tbcv_rec.try_id;
4065 END IF;
4066 IF (x_tbcv_rec.sty_id = OKL_API.G_MISS_NUM)
4067 THEN
4068 x_tbcv_rec.sty_id := l_db_tbcv_rec.sty_id;
4069 END IF;
4070 IF (x_tbcv_rec.int_disclosed_code = OKL_API.G_MISS_CHAR)
4071 THEN
4072 x_tbcv_rec.int_disclosed_code := l_db_tbcv_rec.int_disclosed_code;
4073 END IF;
4074 IF (x_tbcv_rec.title_trnsfr_code = OKL_API.G_MISS_CHAR)
4075 THEN
4076 x_tbcv_rec.title_trnsfr_code := l_db_tbcv_rec.title_trnsfr_code;
4077 END IF;
4078 IF (x_tbcv_rec.sale_lease_back_code = OKL_API.G_MISS_CHAR)
4079 THEN
4080 x_tbcv_rec.sale_lease_back_code := l_db_tbcv_rec.sale_lease_back_code;
4081 END IF;
4082 IF (x_tbcv_rec.lease_purchased_code = OKL_API.G_MISS_CHAR)
4083 THEN
4084 x_tbcv_rec.lease_purchased_code := l_db_tbcv_rec.lease_purchased_code;
4085 END IF;
4086 IF (x_tbcv_rec.equip_usage_code = OKL_API.G_MISS_CHAR)
4087 THEN
4088 x_tbcv_rec.equip_usage_code := l_db_tbcv_rec.equip_usage_code;
4089 END IF;
4090 IF (x_tbcv_rec.vendor_site_id = OKL_API.G_MISS_NUM)
4091 THEN
4092 x_tbcv_rec.vendor_site_id := l_db_tbcv_rec.vendor_site_id;
4093 END IF;
4094 IF (x_tbcv_rec.age_of_equip_from = OKL_API.G_MISS_NUM)
4095 THEN
4096 x_tbcv_rec.age_of_equip_from := l_db_tbcv_rec.age_of_equip_from;
4097 END IF;
4098 IF (x_tbcv_rec.age_of_equip_to = OKL_API.G_MISS_NUM)
4099 THEN
4100 x_tbcv_rec.age_of_equip_to := l_db_tbcv_rec.age_of_equip_to;
4101 END IF;
4102
4103 IF (x_tbcv_rec.attribute_category = OKL_API.G_MISS_CHAR)
4104 THEN
4105 x_tbcv_rec.attribute_category := l_db_tbcv_rec.attribute_category;
4106 END IF;
4107 IF (x_tbcv_rec.attribute1 = OKL_API.G_MISS_CHAR)
4108 THEN
4109 x_tbcv_rec.attribute1 := l_db_tbcv_rec.attribute1;
4110 END IF;
4111 IF (x_tbcv_rec.attribute2 = OKL_API.G_MISS_CHAR)
4112 THEN
4113 x_tbcv_rec.attribute2 := l_db_tbcv_rec.attribute2;
4114 END IF;
4115 IF (x_tbcv_rec.attribute3 = OKL_API.G_MISS_CHAR)
4116 THEN
4117 x_tbcv_rec.attribute3 := l_db_tbcv_rec.attribute3;
4118 END IF;
4119 IF (x_tbcv_rec.attribute4 = OKL_API.G_MISS_CHAR)
4120 THEN
4121 x_tbcv_rec.attribute4 := l_db_tbcv_rec.attribute4;
4122 END IF;
4123 IF (x_tbcv_rec.attribute5 = OKL_API.G_MISS_CHAR)
4124 THEN
4125 x_tbcv_rec.attribute5 := l_db_tbcv_rec.attribute5;
4126 END IF;
4127 IF (x_tbcv_rec.attribute6 = OKL_API.G_MISS_CHAR)
4128 THEN
4129 x_tbcv_rec.attribute6 := l_db_tbcv_rec.attribute6;
4130 END IF;
4131 IF (x_tbcv_rec.attribute7 = OKL_API.G_MISS_CHAR)
4132 THEN
4133 x_tbcv_rec.attribute7 := l_db_tbcv_rec.attribute7;
4134 END IF;
4135 IF (x_tbcv_rec.attribute8 = OKL_API.G_MISS_CHAR)
4136 THEN
4137 x_tbcv_rec.attribute8 := l_db_tbcv_rec.attribute8;
4138 END IF;
4139 IF (x_tbcv_rec.attribute9 = OKL_API.G_MISS_CHAR)
4140 THEN
4141 x_tbcv_rec.attribute9 := l_db_tbcv_rec.attribute9;
4142 END IF;
4143 IF (x_tbcv_rec.attribute10 = OKL_API.G_MISS_CHAR)
4144 THEN
4145 x_tbcv_rec.attribute10 := l_db_tbcv_rec.attribute10;
4146 END IF;
4147 IF (x_tbcv_rec.attribute11 = OKL_API.G_MISS_CHAR)
4148 THEN
4149 x_tbcv_rec.attribute11 := l_db_tbcv_rec.attribute11;
4150 END IF;
4151 IF (x_tbcv_rec.attribute12 = OKL_API.G_MISS_CHAR)
4152 THEN
4153 x_tbcv_rec.attribute12 := l_db_tbcv_rec.attribute12;
4154 END IF;
4155 IF (x_tbcv_rec.attribute13 = OKL_API.G_MISS_CHAR)
4156 THEN
4157 x_tbcv_rec.attribute13 := l_db_tbcv_rec.attribute13;
4158 END IF;
4159 IF (x_tbcv_rec.attribute14 = OKL_API.G_MISS_CHAR)
4160 THEN
4161 x_tbcv_rec.attribute14 := l_db_tbcv_rec.attribute14;
4162 END IF;
4163 IF (x_tbcv_rec.attribute15 = OKL_API.G_MISS_CHAR)
4164 THEN
4165 x_tbcv_rec.attribute15 := l_db_tbcv_rec.attribute15;
4166 END IF;
4167 IF (x_tbcv_rec.created_by = OKL_API.G_MISS_NUM)
4168 THEN
4169 x_tbcv_rec.created_by := l_db_tbcv_rec.created_by;
4170 END IF;
4171 IF (x_tbcv_rec.creation_date = OKL_API.G_MISS_DATE)
4172 THEN
4173 x_tbcv_rec.creation_date := l_db_tbcv_rec.creation_date;
4174 END IF;
4175 IF (x_tbcv_rec.last_updated_by = OKL_API.G_MISS_NUM)
4176 THEN
4177 x_tbcv_rec.last_updated_by := l_db_tbcv_rec.last_updated_by;
4178 END IF;
4179 IF (x_tbcv_rec.last_update_date = OKL_API.G_MISS_DATE)
4180 THEN
4181 x_tbcv_rec.last_update_date := l_db_tbcv_rec.last_update_date;
4182 END IF;
4183 IF (x_tbcv_rec.last_update_login = OKL_API.G_MISS_NUM)
4184 THEN
4185 x_tbcv_rec.last_update_login := l_db_tbcv_rec.last_update_login;
4186 END IF;
4187
4188 -- modified by dcshanmu for eBTax project - modification start
4189 IF (x_tbcv_rec.tax_attribute_def_id = OKL_API.G_MISS_NUM)
4190 THEN
4191 x_tbcv_rec.tax_attribute_def_id := l_db_tbcv_rec.tax_attribute_def_id;
4192 END IF;
4193 IF (x_tbcv_rec.result_type_code = OKL_API.G_MISS_CHAR)
4194 THEN
4195 x_tbcv_rec.result_type_code := l_db_tbcv_rec.result_type_code;
4196 END IF;
4197 IF (x_tbcv_rec.book_class_code = OKL_API.G_MISS_CHAR)
4198 THEN
4199 x_tbcv_rec.book_class_code := l_db_tbcv_rec.book_class_code;
4200 END IF;
4201 IF (x_tbcv_rec.date_effective_from = OKL_API.G_MISS_DATE)
4202 THEN
4203 x_tbcv_rec.date_effective_from := l_tbcv_rec.date_effective_from;
4204 END IF;
4205 IF (x_tbcv_rec.date_effective_to = OKL_API.G_MISS_DATE)
4206 THEN
4207 x_tbcv_rec.date_effective_to := l_db_tbcv_rec.date_effective_to;
4208 END IF;
4209 IF (x_tbcv_rec.tax_country_code = OKL_API.G_MISS_CHAR)
4210 THEN
4211 x_tbcv_rec.tax_country_code := l_db_tbcv_rec.tax_country_code;
4212 END IF;
4213 IF (x_tbcv_rec.term_quote_type_code = OKL_API.G_MISS_CHAR)
4214 THEN
4215 x_tbcv_rec.term_quote_type_code := l_db_tbcv_rec.term_quote_type_code;
4216 END IF;
4217 IF (x_tbcv_rec.term_quote_reason_code = OKL_API.G_MISS_CHAR)
4218 THEN
4219 x_tbcv_rec.term_quote_reason_code := l_db_tbcv_rec.term_quote_reason_code;
4220 END IF;
4221 IF (x_tbcv_rec.expire_flag = OKL_API.G_MISS_CHAR)
4222 THEN
4223 x_tbcv_rec.expire_flag := l_db_tbcv_rec.expire_flag;
4224 END IF;
4225 -- modified by dcshanmu for eBTax project - modification end
4226
4227 END IF;
4228 RETURN(l_return_status);
4229 END populate_new_record;
4230 ----------------------------------------------
4231 -- Set_Attributes for:OKL_TAX_ATTR_DEFINITIONS --
4232 ----------------------------------------------
4233 FUNCTION Set_Attributes (
4234 p_tbcv_rec IN tbcv_rec_type,
4235 x_tbcv_rec OUT NOCOPY tbcv_rec_type
4236 ) RETURN VARCHAR2 IS
4237 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4238 BEGIN
4239 x_tbcv_rec := p_tbcv_rec;
4240 RETURN(l_return_status);
4241 END Set_Attributes;
4242 BEGIN
4243 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4244 G_PKG_NAME,
4245 p_init_msg_list,
4246 l_api_version,
4247 p_api_version,
4248 '_PVT',
4249 x_return_status);
4250 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4251 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4252 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4253 RAISE OKL_API.G_EXCEPTION_ERROR;
4254 END IF;
4255
4256 --- Setting item attributes
4257 l_return_status := Set_Attributes(
4258 p_tbcv_rec, -- IN
4259 x_tbcv_rec); -- OUT
4260 --- If any errors happen abort API
4261 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4262 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4263 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4264 RAISE OKL_API.G_EXCEPTION_ERROR;
4265 END IF;
4266
4267 l_return_status := populate_new_record(x_tbcv_rec, l_def_tbcv_rec);
4268 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4269 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4270 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4271 RAISE OKL_API.G_EXCEPTION_ERROR;
4272 END IF;
4273
4274 l_def_tbcv_rec := fill_who_columns(l_def_tbcv_rec);
4275 --- Validate all non-missing attributes (Item Level Validation)
4276 l_return_status := Validate_Attributes(l_def_tbcv_rec);
4277 --- If any errors happen abort API
4278 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4279 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4280 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4281 RAISE OKL_API.G_EXCEPTION_ERROR;
4282 END IF;
4283
4284 /*
4285 l_return_status := Validate_Record(l_def_tbcv_rec, l_db_tbcv_rec);
4286 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4287 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4288 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4289 RAISE OKL_API.G_EXCEPTION_ERROR;
4290 END IF;
4291 */
4292
4293 l_return_status := Validate_Record(l_def_tbcv_rec);
4294 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4295 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4296 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4297 RAISE OKL_API.G_EXCEPTION_ERROR;
4298 END IF;
4299
4300
4301 -- Lock the Record
4302 lock_row(
4303 p_api_version => p_api_version,
4304 p_init_msg_list => p_init_msg_list,
4305 x_return_status => l_return_status,
4306 x_msg_count => x_msg_count,
4307 x_msg_data => x_msg_data,
4308 p_tbcv_rec => l_def_tbcv_rec); --p_tbcv_rec); -- SECHAWLA Changed to pass l_def_tbov_rec becoz of locking issue
4309 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4310 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4311 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4312 RAISE OKL_API.G_EXCEPTION_ERROR;
4313 END IF;
4314
4315 -----------------------------------------
4316 -- Move VIEW record to "Child" records --
4317 -----------------------------------------
4318 migrate(l_def_tbcv_rec, l_tbc_rec);
4319
4320 -----------------------------------------------
4321 -- Call the UPDATE_ROW for each child record --
4322 -----------------------------------------------
4323 update_row(
4324 p_init_msg_list,
4325 l_return_status,
4326 x_msg_count,
4327 x_msg_data,
4328 l_tbc_rec,
4329 lx_tbc_rec
4330 );
4331
4332 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4333 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4334 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4335 RAISE OKL_API.G_EXCEPTION_ERROR;
4336 END IF;
4337 migrate(lx_tbc_rec, l_def_tbcv_rec);
4338 x_tbcv_rec := l_def_tbcv_rec;
4339 x_return_status := l_return_status;
4340 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4341 EXCEPTION
4342 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4343 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4344 (
4345 l_api_name,
4346 G_PKG_NAME,
4347 'OKL_API.G_RET_STS_ERROR',
4348 x_msg_count,
4349 x_msg_data,
4350 '_PVT'
4351 );
4352 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4353 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4354 (
4355 l_api_name,
4356 G_PKG_NAME,
4357 'OKL_API.G_RET_STS_UNEXP_ERROR',
4358 x_msg_count,
4359 x_msg_data,
4360 '_PVT'
4361 );
4362 WHEN OTHERS THEN
4363 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4364 (
4365 l_api_name,
4366 G_PKG_NAME,
4367 'OTHERS',
4368 x_msg_count,
4369 x_msg_data,
4370 '_PVT'
4371 );
4372 END update_row;
4373 ----------------------------------------
4374 -- PL/SQL TBL update_row for:tbcv_tbl --
4375 ----------------------------------------
4376 PROCEDURE update_row(
4377 p_api_version IN NUMBER,
4378 p_init_msg_list IN VARCHAR2,
4379 x_return_status OUT NOCOPY VARCHAR2,
4380 x_msg_count OUT NOCOPY NUMBER,
4381 x_msg_data OUT NOCOPY VARCHAR2,
4382 p_tbcv_tbl IN tbcv_tbl_type,
4383 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type,
4384 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4385
4386 l_api_version CONSTANT NUMBER := 1;
4387 l_api_name CONSTANT VARCHAR2(100) := 'v_err';
4388 i NUMBER := 0;
4389 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4390 BEGIN
4391 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4392 p_init_msg_list,
4393 '_PVT',
4394 x_return_status);
4395 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4396 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4397 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4398 RAISE OKL_API.G_EXCEPTION_ERROR;
4399 END IF;
4400
4401 -- Make sure PL/SQL table has records in it before passing
4402 IF (p_tbcv_tbl.COUNT > 0) THEN
4403 i := p_tbcv_tbl.FIRST;
4404 LOOP
4405 DECLARE
4406 l_error_rec OKL_API.ERROR_REC_TYPE;
4407 BEGIN
4408 l_error_rec.api_name := l_api_name;
4409 l_error_rec.api_package := G_PKG_NAME;
4410 l_error_rec.idx := i;
4411
4412 update_row (
4413 p_api_version => p_api_version,
4414 p_init_msg_list => OKL_API.G_FALSE,
4415 x_return_status => l_error_rec.error_type,
4416 x_msg_count => l_error_rec.msg_count,
4417 x_msg_data => l_error_rec.msg_data,
4418 p_tbcv_rec => p_tbcv_tbl(i),
4419 x_tbcv_rec => x_tbcv_tbl(i));
4420 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4421 l_error_rec.sqlcode := SQLCODE;
4422 load_error_tbl(l_error_rec, px_error_tbl);
4423 ELSE
4424 x_msg_count := l_error_rec.msg_count;
4425 x_msg_data := l_error_rec.msg_data;
4426 END IF;
4427 EXCEPTION
4428 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4429 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4430 l_error_rec.sqlcode := SQLCODE;
4431 load_error_tbl(l_error_rec, px_error_tbl);
4432 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4433 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4434 l_error_rec.sqlcode := SQLCODE;
4435 load_error_tbl(l_error_rec, px_error_tbl);
4436 WHEN OTHERS THEN
4437 l_error_rec.error_type := 'OTHERS';
4438 l_error_rec.sqlcode := SQLCODE;
4439 load_error_tbl(l_error_rec, px_error_tbl);
4440 END;
4441 EXIT WHEN (i = p_tbcv_tbl.LAST);
4442 i := p_tbcv_tbl.NEXT(i);
4443 END LOOP;
4444 END IF;
4445 -- Loop through the error_tbl to find the error with the highest severity
4446 -- and return it.
4447 x_return_status := find_highest_exception(px_error_tbl);
4448 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4449 EXCEPTION
4450 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4451 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4452 (
4453 l_api_name,
4454 G_PKG_NAME,
4455 'OKL_API.G_RET_STS_ERROR',
4456 x_msg_count,
4457 x_msg_data,
4458 '_PVT'
4459 );
4460 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4461 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4462 (
4463 l_api_name,
4464 G_PKG_NAME,
4465 'OKL_API.G_RET_STS_UNEXP_ERROR',
4466 x_msg_count,
4467 x_msg_data,
4468 '_PVT'
4469 );
4470 WHEN OTHERS THEN
4471 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4472 (
4473 l_api_name,
4474 G_PKG_NAME,
4475 'OTHERS',
4476 x_msg_count,
4477 x_msg_data,
4478 '_PVT'
4479 );
4480 END update_row;
4481
4482 ----------------------------------------
4483 -- PL/SQL TBL update_row for:TBCV_TBL --
4484 ----------------------------------------
4485 -- This procedure is the same as the one above except it does not have a "px_error_tbl" argument.
4486 -- This procedure was create for backward compatibility and simply is a wrapper for the one above.
4487 PROCEDURE update_row(
4488 p_api_version IN NUMBER,
4489 p_init_msg_list IN VARCHAR2,
4490 x_return_status OUT NOCOPY VARCHAR2,
4491 x_msg_count OUT NOCOPY NUMBER,
4492 x_msg_data OUT NOCOPY VARCHAR2,
4493 p_tbcv_tbl IN tbcv_tbl_type,
4494 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type) IS
4495
4496 l_api_version CONSTANT NUMBER := 1;
4497 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
4498 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4499 l_error_tbl OKL_API.ERROR_TBL_TYPE;
4500 BEGIN
4501
4502 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4503 p_init_msg_list,
4504 '_PVT',
4505 x_return_status);
4506 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4507 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4508 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4509 RAISE OKL_API.G_EXCEPTION_ERROR;
4510 END IF;
4511 -- Make sure PL/SQL table has records in it before passing
4512 IF (p_tbcv_tbl.COUNT > 0) THEN
4513 update_row (
4514 p_api_version => p_api_version,
4515 p_init_msg_list => OKL_API.G_FALSE,
4516 x_return_status => x_return_status,
4517 x_msg_count => x_msg_count,
4518 x_msg_data => x_msg_data,
4519 p_tbcv_tbl => p_tbcv_tbl,
4520 x_tbcv_tbl => x_tbcv_tbl,
4521 px_error_tbl => l_error_tbl);
4522 END IF;
4523 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4524 EXCEPTION
4525 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4526 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4527 (
4528 l_api_name,
4529 G_PKG_NAME,
4530 'OKL_API.G_RET_STS_ERROR',
4531 x_msg_count,
4532 x_msg_data,
4533 '_PVT'
4534 );
4535 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4536 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4537 (
4538 l_api_name,
4539 G_PKG_NAME,
4540 'OKL_API.G_RET_STS_UNEXP_ERROR',
4541 x_msg_count,
4542 x_msg_data,
4543 '_PVT'
4544 );
4545 WHEN OTHERS THEN
4546 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4547 (
4548 l_api_name,
4549 G_PKG_NAME,
4550 'OTHERS',
4551 x_msg_count,
4552 x_msg_data,
4553 '_PVT'
4554 );
4555 END update_row;
4556
4557 ---------------------------------------------------------------------------
4558 -- PROCEDURE delete_row
4559 ---------------------------------------------------------------------------
4560 ------------------------------------------
4561 -- delete_row for:OKL_TAX_ATTR_DEFINITIONS--
4562 ------------------------------------------
4563 PROCEDURE delete_row(
4564 p_init_msg_list IN VARCHAR2,
4565 x_return_status OUT NOCOPY VARCHAR2,
4566 x_msg_count OUT NOCOPY NUMBER,
4567 x_msg_data OUT NOCOPY VARCHAR2,
4568 p_tbc_rec IN tbc_rec_type) IS
4569
4570 l_api_version CONSTANT NUMBER := 1;
4571 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
4572 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4573 l_tbc_rec tbc_rec_type := p_tbc_rec;
4574 l_row_notfound BOOLEAN := TRUE;
4575 BEGIN
4576 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4577 p_init_msg_list,
4578 '_PVT',
4579 x_return_status);
4580 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4581 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4582 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4583 RAISE OKL_API.G_EXCEPTION_ERROR;
4584 END IF;
4585
4586 DELETE FROM OKL_TAX_ATTR_DEFINITIONS
4587 -- WHERE ID = p_tbc_rec.id;
4588 WHERE tax_attribute_def_id = p_tbc_rec.tax_attribute_def_id;
4589
4590 x_return_status := l_return_status;
4591 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4592 EXCEPTION
4593 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4594 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4595 (
4596 l_api_name,
4597 G_PKG_NAME,
4598 'OKL_API.G_RET_STS_ERROR',
4599 x_msg_count,
4600 x_msg_data,
4601 '_PVT'
4602 );
4603 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4604 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4605 (
4606 l_api_name,
4607 G_PKG_NAME,
4608 'OKL_API.G_RET_STS_UNEXP_ERROR',
4609 x_msg_count,
4610 x_msg_data,
4611 '_PVT'
4612 );
4613 WHEN OTHERS THEN
4614 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4615 (
4616 l_api_name,
4617 G_PKG_NAME,
4618 'OTHERS',
4619 x_msg_count,
4620 x_msg_data,
4621 '_PVT'
4622 );
4623 END delete_row;
4624 ------------------------------------------
4625 -- delete_row for:OKL_TAX_ATTR_DEFINITIONS --
4626 ------------------------------------------
4627 PROCEDURE delete_row(
4628 p_api_version IN NUMBER,
4629 p_init_msg_list IN VARCHAR2,
4630 x_return_status OUT NOCOPY VARCHAR2,
4631 x_msg_count OUT NOCOPY NUMBER,
4632 x_msg_data OUT NOCOPY VARCHAR2,
4633 p_tbcv_rec IN tbcv_rec_type) IS
4634
4635 l_api_version CONSTANT NUMBER := 1;
4636 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
4637 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4638 l_tbcv_rec tbcv_rec_type := p_tbcv_rec;
4639 l_tbc_rec tbc_rec_type;
4640 BEGIN
4641 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
4642 G_PKG_NAME,
4643 p_init_msg_list,
4644 l_api_version,
4645 p_api_version,
4646 '_PVT',
4647 x_return_status);
4648 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4649 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4650 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4651 RAISE OKL_API.G_EXCEPTION_ERROR;
4652 END IF;
4653 -----------------------------------------
4654 -- Move VIEW record to "Child" records --
4655 -----------------------------------------
4656 migrate(l_tbcv_rec, l_tbc_rec);
4657 -----------------------------------------------
4658 -- Call the DELETE_ROW for each child record --
4659 -----------------------------------------------
4660 delete_row(
4661 p_init_msg_list,
4662 l_return_status,
4663 x_msg_count,
4664 x_msg_data,
4665 l_tbc_rec
4666 );
4667 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
4668 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
4669 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
4670 RAISE OKL_API.G_EXCEPTION_ERROR;
4671 END IF;
4672 x_return_status := l_return_status;
4673 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4674 EXCEPTION
4675 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4676 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4677 (
4678 l_api_name,
4679 G_PKG_NAME,
4680 'OKL_API.G_RET_STS_ERROR',
4681 x_msg_count,
4682 x_msg_data,
4683 '_PVT'
4684 );
4685 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4686 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4687 (
4688 l_api_name,
4689 G_PKG_NAME,
4690 'OKL_API.G_RET_STS_UNEXP_ERROR',
4691 x_msg_count,
4692 x_msg_data,
4693 '_PVT'
4694 );
4695 WHEN OTHERS THEN
4696 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4697 (
4698 l_api_name,
4699 G_PKG_NAME,
4700 'OTHERS',
4701 x_msg_count,
4702 x_msg_data,
4703 '_PVT'
4704 );
4705 END delete_row;
4706 -----------------------------------------------------
4707 -- PL/SQL TBL delete_row for:OKL_TAX_ATTR_DEFINITIONS --
4708 -----------------------------------------------------
4709 PROCEDURE delete_row(
4710 p_api_version IN NUMBER,
4711 p_init_msg_list IN VARCHAR2,
4712 x_return_status OUT NOCOPY VARCHAR2,
4713 x_msg_count OUT NOCOPY NUMBER,
4714 x_msg_data OUT NOCOPY VARCHAR2,
4715 p_tbcv_tbl IN tbcv_tbl_type,
4716 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
4717
4718 l_api_version CONSTANT NUMBER := 1;
4719 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
4720 i NUMBER := 0;
4721 BEGIN
4722 OKL_API.init_msg_list(p_init_msg_list);
4723 -- Make sure PL/SQL table has records in it before passing
4724 IF (p_tbcv_tbl.COUNT > 0) THEN
4725 i := p_tbcv_tbl.FIRST;
4726 LOOP
4727 DECLARE
4728 l_error_rec OKL_API.ERROR_REC_TYPE;
4729 BEGIN
4730 l_error_rec.api_name := l_api_name;
4731 l_error_rec.api_package := G_PKG_NAME;
4732 l_error_rec.idx := i;
4733 delete_row (
4734 p_api_version => p_api_version,
4735 p_init_msg_list => OKL_API.G_FALSE,
4736 x_return_status => l_error_rec.error_type,
4737 x_msg_count => l_error_rec.msg_count,
4738 x_msg_data => l_error_rec.msg_data,
4739 p_tbcv_rec => p_tbcv_tbl(i));
4740 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
4741 l_error_rec.sqlcode := SQLCODE;
4742 load_error_tbl(l_error_rec, px_error_tbl);
4743 ELSE
4744 x_msg_count := l_error_rec.msg_count;
4745 x_msg_data := l_error_rec.msg_data;
4746 END IF;
4747 EXCEPTION
4748 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4749 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
4750 l_error_rec.sqlcode := SQLCODE;
4751 load_error_tbl(l_error_rec, px_error_tbl);
4752 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4753 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
4754 l_error_rec.sqlcode := SQLCODE;
4755 load_error_tbl(l_error_rec, px_error_tbl);
4756 WHEN OTHERS THEN
4757 l_error_rec.error_type := 'OTHERS';
4758 l_error_rec.sqlcode := SQLCODE;
4759 load_error_tbl(l_error_rec, px_error_tbl);
4760 END;
4761 EXIT WHEN (i = p_tbcv_tbl.LAST);
4762 i := p_tbcv_tbl.NEXT(i);
4763 END LOOP;
4764 END IF;
4765 -- Loop through the error_tbl to find the error with the highest severity
4766 -- and return it.
4767 x_return_status := find_highest_exception(px_error_tbl);
4768 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4769 EXCEPTION
4770 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4771 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4772 (
4773 l_api_name,
4774 G_PKG_NAME,
4775 'OKL_API.G_RET_STS_ERROR',
4776 x_msg_count,
4777 x_msg_data,
4778 '_PVT'
4779 );
4780 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4781 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4782 (
4783 l_api_name,
4784 G_PKG_NAME,
4785 'OKL_API.G_RET_STS_UNEXP_ERROR',
4786 x_msg_count,
4787 x_msg_data,
4788 '_PVT'
4789 );
4790 WHEN OTHERS THEN
4791 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4792 (
4793 l_api_name,
4794 G_PKG_NAME,
4795 'OTHERS',
4796 x_msg_count,
4797 x_msg_data,
4798 '_PVT'
4799 );
4800 END delete_row;
4801
4802 -----------------------------------------------------
4803 -- PL/SQL TBL delete_row for:OKL_TAX_ATTR_DEFINITIONS --
4804 -----------------------------------------------------
4805 PROCEDURE delete_row(
4806 p_api_version IN NUMBER,
4807 p_init_msg_list IN VARCHAR2,
4808 x_return_status OUT NOCOPY VARCHAR2,
4809 x_msg_count OUT NOCOPY NUMBER,
4810 x_msg_data OUT NOCOPY VARCHAR2,
4811 p_tbcv_tbl IN tbcv_tbl_type) IS
4812
4813 l_api_version CONSTANT NUMBER := 1;
4814 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
4815 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
4816 l_error_tbl OKL_API.ERROR_TBL_TYPE;
4817 BEGIN
4818 OKL_API.init_msg_list(p_init_msg_list);
4819 -- Make sure PL/SQL table has records in it before passing
4820 IF (p_tbcv_tbl.COUNT > 0) THEN
4821 delete_row (
4822 p_api_version => p_api_version,
4823 p_init_msg_list => OKL_API.G_FALSE,
4824 x_return_status => x_return_status,
4825 x_msg_count => x_msg_count,
4826 x_msg_data => x_msg_data,
4827 p_tbcv_tbl => p_tbcv_tbl,
4828 px_error_tbl => l_error_tbl);
4829 END IF;
4830 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
4831 EXCEPTION
4832 WHEN OKL_API.G_EXCEPTION_ERROR THEN
4833 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4834 (
4835 l_api_name,
4836 G_PKG_NAME,
4837 'OKL_API.G_RET_STS_ERROR',
4838 x_msg_count,
4839 x_msg_data,
4840 '_PVT'
4841 );
4842 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
4843 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4844 (
4845 l_api_name,
4846 G_PKG_NAME,
4847 'OKL_API.G_RET_STS_UNEXP_ERROR',
4848 x_msg_count,
4849 x_msg_data,
4850 '_PVT'
4851 );
4852 WHEN OTHERS THEN
4853 x_return_status := OKL_API.HANDLE_EXCEPTIONS
4854 (
4855 l_api_name,
4856 G_PKG_NAME,
4857 'OTHERS',
4858 x_msg_count,
4859 x_msg_data,
4860 '_PVT'
4861 );
4862 END delete_row;
4863
4864 END OKL_TBC_PVT;