[Home] [Help]
PACKAGE BODY: APPS.OKL_TBC_DEFINITIONS_PUB
Source
1 PACKAGE BODY OKL_TBC_DEFINITIONS_PUB AS
2 /* $Header: OKLPTBCB.pls 120.4 2007/03/20 11:24:12 asawanka noship $ */
3
4
5 FUNCTION Validate_Record (
6 p_tbcv_rec IN tbcv_rec_type,
7 p_rec_number IN NUMBER
8
9
10 ) RETURN VARCHAR2 IS
11
12 CURSOR l_checkduplicate_tbc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
13 SELECT result_code
14 FROM OKL_TAX_ATTR_DEFINITIONS
15 WHERE result_type_code = 'TBC_CODE'
16 AND nvl(TRY_ID, -99999) = nvl(p_tbcv_rec.TRY_ID,-99999)
17 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
18 AND nvl(BOOK_CLASS_CODE,'XXXXX') = nvl(p_tbcv_rec.BOOK_CLASS_CODE,'XXXXX')
19 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
20 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
21 AND nvl(EXPIRE_FLAG,'N')<> 'Y' ;
22
23 CURSOR l_checkduplicate_pc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
24 SELECT result_code
25 FROM OKL_TAX_ATTR_DEFINITIONS
26 WHERE result_type_code = 'PC_CODE'
27 AND nvl(PURCHASE_OPTION_CODE,'XXXXX') = nvl(p_tbcv_rec.PURCHASE_OPTION_CODE,'XXXXX')
28 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
29 AND nvl(INT_DISCLOSED_CODE,'N') = nvl(p_tbcv_rec.INT_DISCLOSED_CODE,'N')
30 AND nvl(TITLE_TRNSFR_CODE,'N') = nvl(p_tbcv_rec.TITLE_TRNSFR_CODE,'N')
31 AND nvl(SALE_LEASE_BACK_CODE,'N') = nvl(p_tbcv_rec.SALE_LEASE_BACK_CODE,'N')
32 AND nvl(LEASE_PURCHASED_CODE,'N') = nvl(p_tbcv_rec.LEASE_PURCHASED_CODE,'N')
33 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
34 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
35 AND nvl(EXPIRE_FLAG,'N')<> 'Y' ;
36
37 CURSOR l_checkduplicate_ufc_csr(cp_tax_attribute_def_id IN VARCHAR2) IS
38 SELECT result_code
39 FROM OKL_TAX_ATTR_DEFINITIONS
40 WHERE result_type_code = 'UFC_CODE'
41 AND nvl(PURCHASE_OPTION_CODE,'XXXXX') = nvl(p_tbcv_rec.PURCHASE_OPTION_CODE,'XXXXX')
42 AND nvl(PDT_ID, -99999) = nvl(p_tbcv_rec.PDT_ID,-99999)
43 AND nvl(STY_ID, -99999) = nvl(p_tbcv_rec.STY_ID,-99999)
44 AND nvl(TRY_ID, -99999) = nvl(p_tbcv_rec.TRY_ID,-99999)
45 AND nvl(LEASE_PURCHASED_CODE,'N') = nvl(p_tbcv_rec.LEASE_PURCHASED_CODE,'N')
46 AND nvl(EQUIP_USAGE_CODE,'XXXXX') = nvl(p_tbcv_rec.EQUIP_USAGE_CODE,'XXXXX')
47 AND nvl(VENDOR_SITE_ID,-99999) = nvl(p_tbcv_rec.VENDOR_SITE_ID,-99999)
48 AND nvl(INT_DISCLOSED_CODE,'N') = nvl(p_tbcv_rec.INT_DISCLOSED_CODE,'N')
49 AND nvl(TITLE_TRNSFR_CODE,'N') = nvl(p_tbcv_rec.TITLE_TRNSFR_CODE,'N')
50 AND nvl(SALE_LEASE_BACK_CODE,'N') = nvl(p_tbcv_rec.SALE_LEASE_BACK_CODE,'N')
51 AND nvl(TAX_COUNTRY_CODE,'XXXXX') = nvl(p_tbcv_rec.TAX_COUNTRY_CODE,'XXXXX')
52 AND nvl(TERM_QUOTE_TYPE_CODE,'XXXXX') = nvl(p_tbcv_rec.TERM_QUOTE_TYPE_CODE,'XXXXX')
53 AND nvl(TERM_QUOTE_REASON_CODE,'XXXXX') = nvl(p_tbcv_rec.TERM_QUOTE_REASON_CODE,'XXXXX')
54 AND nvl(EXPIRE_FLAG,'N')<> 'Y'
55 AND nvl(TAX_ATTRIBUTE_DEF_ID, -99999) <> nvl(cp_tax_attribute_def_id,-99999)
56
57 AND ( ( -- This condition will allow cases where DB FROm and To are NULL and also Screen FROM and TO are null
58 --(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 )
59 -- AND
60 -- this condition will prevent exact matches (including cases where some values are null)
61 (nvl(AGE_OF_EQUIP_FROM,-99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,-99999) AND
62 nvl(AGE_OF_EQUIP_TO, -99999) = nvl(p_tbcv_rec.AGE_OF_EQUIP_TO,-99999)
63 )
64 )
65 OR -- age of equipment from can not be null for comparison purposes (when TO is not null),
66 -- as we can assume it is 0, if null
67 -- so this condition takes care of scenarios where both Froms and both Tos have a value
68 -- OR any of the FROMs are null and both Tos have a value
69 (--nvl(AGE_OF_EQUIP_FROM,0) IS NOT NULL AND nvl(p_tbcv_rec.AGE_OF_EQUIP_FROM,0) IS NOT NULL AND
70 AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND
71 ( (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))
72 OR
73 (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)
74 )
75
76 )
77 OR
78 ( AGE_OF_EQUIP_TO IS NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
79 -- In this case Both the FROMs can not be null together or have the same value, as it will get captured in condition 1
80 -- here, either DB FROM is Null and Screen FROM is not null --> This combination is ok
81 -- OR DB FROM is not null and Screen FROM is null --> this combinatio is ok
82 -- OR both FROMs have a value(differenr value) --> restrict this combination
83 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
84 )
85 OR
86 ( 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
87 -- In this case following scenarios are possible
88 -- 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
89 -- DB FROM >=0, SCREEN TO < DB FROM - ok
90 -- DB FROM >=0, SCREEN TO >= DB FROM - restrict this condition
91 AGE_OF_EQUIP_FROM >= 0 AND p_tbcv_rec.AGE_OF_EQUIP_TO >= AGE_OF_EQUIP_FROM
92 )
93 OR
94 ( AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO IS NULL AND
95 -- In this case following scenarios are possible
96 -- 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
97 -- SCREEN FROM is null (TO is always NULL) - OK
98 -- screen from >=0, SCREEN FROM > DB TO - ok
99 -- screen from >=0, screen from <= db to - RESTRICT THIS CONDITION
100 p_tbcv_rec.AGE_OF_EQUIP_FROM >=0 AND p_tbcv_rec.AGE_OF_EQUIP_FROM <= AGE_OF_EQUIP_TO
101 )
102 ) ;
103
104 CURSOR okl_tbc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
105 SELECT classification_name
106 FROM zx_fc_business_categories_v
107 WHERE classification_code = p_lookup_code;
108
109 CURSOR okl_pc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
110 SELECT classification_name
111 FROM zx_fc_product_categories_v
112 WHERE classification_code = p_lookup_code;
113
114 CURSOR okl_ufc_res_code_fk_csr (p_lookup_code IN VARCHAR2) IS
115 SELECT classification_name
116 FROM zx_fc_user_defined_v
117 WHERE classification_code = p_lookup_code;
118
119 l_result_code VARCHAR2(300) := 'XXXXX';
120 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
121 l_meaning VARCHAR2(80);
122
123 l_msg_name VARCHAR2(80);
124 l_token1 VARCHAR2(10);
125
126 BEGIN
127
128 IF ((p_tbcv_rec.RESULT_CODE = OKL_API.G_MISS_CHAR OR p_tbcv_rec.RESULT_CODE IS NULL) ) THEN
129
130 x_return_status := OKC_API.G_RET_STS_ERROR;
131 --Unable to create Category definition as mandatory attributes are provided.
132 OKL_API.set_message(p_app_name => 'OKL',
133 p_msg_name => 'OKL_TX_NO_TBC_ATTR');
134 RAISE G_EXCEPTION_HALT_VALIDATION;
135
136 END IF;
137 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
138 (p_tbcv_rec.AGE_OF_EQUIP_TO IS NOT NULL AND p_tbcv_rec.AGE_OF_EQUIP_TO <> OKL_API.G_MISS_NUM) THEN
139 IF p_tbcv_rec.AGE_OF_EQUIP_TO < p_tbcv_rec.AGE_OF_EQUIP_FROM THEN
140 x_return_status := OKC_API.G_RET_STS_ERROR;
141 --Unable to create Transcation Business Category definition as none of the attributes are provided.
142 OKL_API.set_message(p_app_name => 'OKL',
143 p_msg_name => 'OKL_TX_INVALID_AGE_RANGE');
144 RAISE G_EXCEPTION_HALT_VALIDATION;
145
146 END IF;
147 END IF;
148
149
150 IF (p_tbcv_rec.result_type_code = 'TBC_CODE') THEN
151 OPEN l_checkduplicate_tbc_csr(p_tbcv_rec.tax_attribute_def_id);
152 FETCH l_checkduplicate_tbc_csr INTO l_result_code;
153 CLOSE l_checkduplicate_tbc_csr;
154 IF l_result_code <> 'XXXXX' THEN
155 OPEN okl_tbc_res_code_fk_csr(l_result_code);
156 FETCH okl_tbc_res_code_fk_csr INTO l_meaning;
157 CLOSE okl_tbc_res_code_fk_csr;
158 END IF;
159
160 l_msg_name := 'OKL_TX_DUP_TBC_UI_ERR';
161 l_token1 := 'TBC';
162
163 ELSIF (p_tbcv_rec.result_type_code = 'PC_CODE') THEN
164 OPEN l_checkduplicate_pc_csr(p_tbcv_rec.tax_attribute_def_id);
165 FETCH l_checkduplicate_pc_csr INTO l_result_code;
166 CLOSE l_checkduplicate_pc_csr;
167 IF l_result_code <> 'XXXXX' THEN
168 OPEN okl_pc_res_code_fk_csr(l_result_code);
169 FETCH okl_pc_res_code_fk_csr INTO l_meaning;
170 CLOSE okl_pc_res_code_fk_csr;
171 END IF;
172
173 l_msg_name := 'OKL_TX_DUP_PC_UI_ERR';
174 l_token1 := 'PC_CODE';
175
176 ELSIF (p_tbcv_rec.result_type_code = 'UFC_CODE') THEN
177 OPEN l_checkduplicate_ufc_csr(p_tbcv_rec.tax_attribute_def_id);
178 FETCH l_checkduplicate_ufc_csr INTO l_result_code;
179 CLOSE l_checkduplicate_ufc_csr;
180 IF l_result_code <> 'XXXXX' THEN
181 OPEN okl_ufc_res_code_fk_csr(l_result_code);
182 FETCH okl_ufc_res_code_fk_csr INTO l_meaning;
183 CLOSE okl_ufc_res_code_fk_csr;
184 END IF;
185
186 l_msg_name := 'OKL_TX_DUP_UFC_ERR';
187 l_token1 := 'UFC_CODE';
188
189 END IF;
190
191 -- There can be at the most one duplicate record.
192 IF l_result_code <> 'XXXXX' THEN
193 x_return_status := OKC_API.G_RET_STS_ERROR;
194 -- Another Category already exists for this combination of tax determinants.
195 -- modified by dcshanmu for eBTax project - modification start
196 -- modified default values passed to p_msg_name and p_token1
197 IF l_token1 = 'UFC_CODE' THEN
198 OKL_API.set_message(p_app_name => 'OKL',
199 p_msg_name => l_msg_name,
200 p_token1 => l_token1,
201 p_token1_value => l_meaning);
202
203 ELSE
204
205 OKL_API.set_message(p_app_name => 'OKL',
206 p_msg_name => l_msg_name,
207 p_token1 => l_token1,
208 p_token1_value => l_meaning,
209 p_token2 => 'REC_NO',
210 p_token2_value => p_rec_number);
211 END IF;
212 RAISE G_EXCEPTION_HALT_VALIDATION;
213
214 END IF;
215
216 RETURN (x_return_status);
217 EXCEPTION
218 WHEN G_EXCEPTION_HALT_VALIDATION THEN
219 RETURN(x_return_status);
220 WHEN OTHERS THEN
221 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
222 ,p_msg_name => G_UNEXPECTED_ERROR
223 ,p_token1 => G_SQLCODE_TOKEN
224 ,p_token1_value => SQLCODE
225 ,p_token2 => G_SQLERRM_TOKEN
226 ,p_token2_value => SQLERRM);
227 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
228 RETURN(x_return_status);
229 END Validate_Record;
230
231 PROCEDURE insert_tbc_definition(
232 p_api_version IN NUMBER,
233 p_init_msg_list IN VARCHAR2 DEFAULT FND_API.G_FALSE,
234 x_return_status OUT NOCOPY VARCHAR2,
235 x_msg_count OUT NOCOPY NUMBER,
236 x_msg_data OUT NOCOPY VARCHAR2,
237 p_tbcv_rec IN tbcv_rec_type,
238 x_tbcv_rec OUT NOCOPY tbcv_rec_type) IS
239
240
241 l_api_version NUMBER ;
242 l_init_msg_list VARCHAR2(1) ;
243 l_return_status VARCHAR2(1);
244 l_msg_count NUMBER ;
245 l_msg_data VARCHAR2(2000);
246 lp_tbcv_rec tbcv_rec_type;
247 lx_tbcv_rec tbcv_rec_type;
248
249 BEGIN
250 OKL_API.init_msg_list(p_init_msg_list);
251 SAVEPOINT tbc_insert ;
252
253
254 l_api_version := p_api_version ;
255 l_init_msg_list := p_init_msg_list ;
256 l_return_status := x_return_status ;
257 l_msg_count := x_msg_count ;
258 l_msg_data := x_msg_data ;
259 lp_tbcv_rec := p_tbcv_rec;
260 lx_tbcv_rec := x_tbcv_rec;
261
262
263
264
265
266
267 okl_tbc_pvt.insert_row(
268 l_api_version
269 ,l_init_msg_list
270 ,l_return_status
271 ,l_msg_count
272 ,l_msg_data
273 ,lp_tbcv_rec
274 ,lx_tbcv_rec);
275
276 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
277 RAISE FND_API.G_EXC_ERROR;
278 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
279 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
280 END IF;
281
282 --Copy value of OUT variable in the IN record type
283 lp_tbcv_rec := lx_tbcv_rec;
284
285
286
287
288
289 --Assign value to OUT variables
290 x_tbcv_rec := lx_tbcv_rec;
291 x_return_status := l_return_status ;
292 x_msg_count := l_msg_count ;
293 x_msg_data := l_msg_data ;
294
295 EXCEPTION
296
297 WHEN FND_API.G_EXC_ERROR THEN
298 ROLLBACK TO tbc_insert;
299 x_return_status := FND_API.G_RET_STS_ERROR;
300 x_msg_count := l_msg_count ;
301 x_msg_data := l_msg_data ;
302 FND_MSG_PUB.count_and_get(
303 p_count => x_msg_count
304 ,p_data => x_msg_data);
305 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
306 ROLLBACK TO tbc_insert;
307 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
308 x_msg_count := l_msg_count ;
309 x_msg_data := l_msg_data ;
310 FND_MSG_PUB.count_and_get(
311 p_count => x_msg_count
312 ,p_data => x_msg_data);
313 WHEN OTHERS THEN
314 ROLLBACK TO tbc_insert;
315 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
316 x_msg_count := l_msg_count ;
320 p_count => x_msg_count
317 x_msg_data := l_msg_data ;
318 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','insert_tbc_definition');
319 FND_MSG_PUB.count_and_get(
321 ,p_data => x_msg_data);
322 END insert_tbc_definition;
323
324 PROCEDURE insert_tbc_definition(
325 p_api_version IN NUMBER,
326 p_init_msg_list IN VARCHAR2,
327 x_return_status OUT NOCOPY VARCHAR2,
328 x_msg_count OUT NOCOPY NUMBER,
329 x_msg_data OUT NOCOPY VARCHAR2,
330 p_tbcv_tbl IN tbcv_tbl_type,
331 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type) IS
332
333 l_api_version NUMBER;
334 l_init_msg_list VARCHAR2(1) ;
335 l_msg_data VARCHAR2(2000);
336 l_msg_count NUMBER ;
337 l_return_status VARCHAR2(1);
338 lp_tbcv_tbl tbcv_tbl_type;
339 lx_tbcv_tbl tbcv_tbl_type;
340 lx_tbcv_rec tbcv_rec_type;
341
342 BEGIN
343 OKL_API.init_msg_list(p_init_msg_list);
344 SAVEPOINT tbc_insert;
345
346
347 l_api_version := p_api_version ;
348 l_init_msg_list := p_init_msg_list ;
349 l_return_status := x_return_status ;
350 l_msg_count := x_msg_count ;
351 l_msg_data := x_msg_data ;
352 lp_tbcv_tbl := p_tbcv_tbl;
353 lx_tbcv_tbl := x_tbcv_tbl;
354 FOR i IN lp_tbcv_tbl.FIRST..lp_tbcv_tbl.LAST LOOP
355 IF lp_tbcv_tbl.EXISTS(i) THEN
356 l_return_status := validate_record (lp_tbcv_tbl(i), i);
357
358 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
359 RAISE FND_API.G_EXC_ERROR;
360 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
361 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
362 END IF;
363
364 okl_tbc_pvt.insert_row(
365 l_api_version
366 ,l_init_msg_list
367 ,l_return_status
368 ,l_msg_count
369 ,l_msg_data
370 ,lp_tbcv_tbl(i)
371 ,lx_tbcv_rec);
372 lx_tbcv_tbl(i) := lx_tbcv_rec;
373
374 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
375 RAISE FND_API.G_EXC_ERROR;
376 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
377 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
378 END IF;
379
380 END IF;
381
382 END LOOP;
383
384 --Assign value to OUT variables
385 x_tbcv_tbl := lx_tbcv_tbl;
386 x_return_status := l_return_status ;
387 x_msg_count := l_msg_count ;
388 x_msg_data := l_msg_data ;
389
390
391 EXCEPTION
392
393 WHEN FND_API.G_EXC_ERROR THEN
394 ROLLBACK TO tbc_insert;
395 x_return_status := FND_API.G_RET_STS_ERROR;
396 x_msg_count := l_msg_count ;
397 x_msg_data := l_msg_data ;
398 FND_MSG_PUB.count_and_get(
399 p_count => x_msg_count
400 ,p_data => x_msg_data);
401 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
402 ROLLBACK TO tbc_insert;
403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
404 x_msg_count := l_msg_count ;
405 x_msg_data := l_msg_data ;
406 FND_MSG_PUB.count_and_get(
407 p_count => x_msg_count
408 ,p_data => x_msg_data);
409 WHEN OTHERS THEN
410 ROLLBACK TO tbc_insert;
411 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
412 x_msg_count := l_msg_count ;
413 x_msg_data := l_msg_data ;
414 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','insert_tbc_definition');
415 FND_MSG_PUB.count_and_get(
416 p_count => x_msg_count
417 ,p_data => x_msg_data);
418 END insert_tbc_definition;
419
420 PROCEDURE lock_tbc_definition(
421 p_api_version IN NUMBER,
422 p_init_msg_list IN VARCHAR2,
423 x_return_status OUT NOCOPY VARCHAR2,
424 x_msg_count OUT NOCOPY NUMBER,
425 x_msg_data OUT NOCOPY VARCHAR2,
426 p_tbcv_rec IN tbcv_rec_type) IS
427
428 BEGIN
429 okl_tbc_pvt.lock_row(
430 p_api_version,
431 p_init_msg_list,
432 x_return_status,
433 x_msg_count,
434 x_msg_data,
435 p_tbcv_rec);
436
437 IF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
438 RAISE FND_API.G_EXC_ERROR;
439 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
440 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
441 END IF;
442
443
444 EXCEPTION
445
446 WHEN FND_API.G_EXC_ERROR THEN
447 FND_MSG_PUB.count_and_get(
448 p_count => x_msg_count
449 ,p_data => x_msg_data);
450 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
451 FND_MSG_PUB.count_and_get(
452 p_count => x_msg_count
453 ,p_data => x_msg_data);
454 WHEN OTHERS THEN
455 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','lock_tbc_definition');
457 FND_MSG_PUB.count_and_get(
458 p_count => x_msg_count
459 ,p_data => x_msg_data);
460 END lock_tbc_definition;
461
462
463 PROCEDURE lock_tbc_definition(
464 p_api_version IN NUMBER
465 ,p_init_msg_list IN VARCHAR2
466 ,x_return_status OUT NOCOPY VARCHAR2
467 ,x_msg_count OUT NOCOPY NUMBER
468 ,x_msg_data OUT NOCOPY VARCHAR2
469 ,p_tbcv_tbl IN tbcv_tbl_type) IS
470
471 BEGIN
472 okl_tbc_pvt.lock_row(
473 p_api_version,
474 p_init_msg_list,
475 x_return_status,
476 x_msg_count,
477 x_msg_data,
478 p_tbcv_tbl);
479
480 IF ( x_return_status = FND_API.G_RET_STS_ERROR ) THEN
481 RAISE FND_API.G_EXC_ERROR;
482 ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
483 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
484 END IF;
485
486
487 EXCEPTION
488
489 WHEN FND_API.G_EXC_ERROR THEN
490 FND_MSG_PUB.count_and_get(
491 p_count => x_msg_count
492 ,p_data => x_msg_data);
493 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
494 FND_MSG_PUB.count_and_get(
495 p_count => x_msg_count
496 ,p_data => x_msg_data);
497 WHEN OTHERS THEN
498 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
499 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','lock_tbc_definition');
500 FND_MSG_PUB.count_and_get(
501 p_count => x_msg_count
502 ,p_data => x_msg_data);
503 END lock_tbc_definition;
504
505
506 PROCEDURE update_tbc_definition(
507 p_api_version IN NUMBER
508 ,p_init_msg_list IN VARCHAR2
509 ,x_return_status OUT NOCOPY VARCHAR2
510 ,x_msg_count OUT NOCOPY NUMBER
511 ,x_msg_data OUT NOCOPY VARCHAR2
512 ,p_tbcv_rec IN tbcv_rec_type
513 ,x_tbcv_rec OUT NOCOPY tbcv_rec_type) IS
514
515 l_api_version NUMBER ;
516 l_init_msg_list VARCHAR2(1) ;
517 l_return_status VARCHAR2(1);
518 l_msg_count NUMBER ;
519 l_msg_data VARCHAR2(2000);
520 lp_tbcv_rec tbcv_rec_type;
521 lx_tbcv_rec tbcv_rec_type;
522
523 BEGIN
524
525 SAVEPOINT tbc_update;
526
527
528 l_api_version := p_api_version ;
529 l_init_msg_list := p_init_msg_list ;
530 l_return_status := x_return_status ;
531 l_msg_count := x_msg_count ;
532 l_msg_data := x_msg_data ;
533 lp_tbcv_rec := p_tbcv_rec;
534 lx_tbcv_rec := x_tbcv_rec;
535
536
537
538
539
540 okl_tbc_pvt.update_row(
541 l_api_version
542 ,l_init_msg_list
543 ,l_return_status
544 ,l_msg_count
545 ,l_msg_data
546 ,lp_tbcv_rec
547 ,lx_tbcv_rec);
548
549 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
550 RAISE FND_API.G_EXC_ERROR;
551 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
552 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
553 END IF;
554
555 --Copy value of OUT variable in the IN record type
556 lp_tbcv_rec := lx_tbcv_rec;
557
558
559
560
561 --Assign value to OUT variables
562 x_tbcv_rec := lx_tbcv_rec;
563 x_return_status := l_return_status ;
564 x_msg_count := l_msg_count ;
565 x_msg_data := l_msg_data ;
566
567
568 EXCEPTION
569
570 WHEN FND_API.G_EXC_ERROR THEN
571 ROLLBACK TO tbc_update;
572 x_return_status := FND_API.G_RET_STS_ERROR;
573 x_msg_count := l_msg_count ;
574 x_msg_data := l_msg_data ;
575 FND_MSG_PUB.count_and_get(
576 p_count => x_msg_count
577 ,p_data => x_msg_data);
578 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
579 ROLLBACK TO tbc_update;
580 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
581 x_msg_count := l_msg_count ;
582 x_msg_data := l_msg_data ;
583 FND_MSG_PUB.count_and_get(
584 p_count => x_msg_count
585 ,p_data => x_msg_data);
586 WHEN OTHERS THEN
587 ROLLBACK TO tbc_update;
588 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589 x_msg_count := l_msg_count ;
590 x_msg_data := l_msg_data ;
591 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','update_tbc_definition');
592 FND_MSG_PUB.count_and_get(
593 p_count => x_msg_count
594 ,p_data => x_msg_data);
595 END update_tbc_definition;
596
597 PROCEDURE update_tbc_definition(
598 p_api_version IN NUMBER,
599 p_init_msg_list IN VARCHAR2,
600 x_return_status OUT NOCOPY VARCHAR2,
601 x_msg_count OUT NOCOPY NUMBER,
602 x_msg_data OUT NOCOPY VARCHAR2,
603 p_tbcv_tbl IN tbcv_tbl_type,
604 x_tbcv_tbl OUT NOCOPY tbcv_tbl_type) IS
605
606 l_api_version NUMBER;
607 l_init_msg_list VARCHAR2(200);
608 l_msg_data VARCHAR2(100);
609 l_msg_count NUMBER ;
610 l_return_status VARCHAR2(1);
611 lp_tbcv_tbl tbcv_tbl_type;
612 lx_tbcv_tbl tbcv_tbl_type;
613
614 BEGIN
615
616 SAVEPOINT tbc_update;
617
618
619 lp_tbcv_tbl := p_tbcv_tbl;
620 lx_tbcv_tbl := x_tbcv_tbl;
624 l_msg_count := x_msg_count ;
621 l_api_version := p_api_version ;
622 l_init_msg_list := p_init_msg_list ;
623 l_msg_data := x_msg_data ;
625
626
627
628
629
630 okl_tbc_pvt.update_row(
631 l_api_version
632 ,l_init_msg_list
633 ,l_return_status
634 ,l_msg_count
635 ,l_msg_data
636 ,lp_tbcv_tbl
637 ,lx_tbcv_tbl);
638
639 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
640 RAISE FND_API.G_EXC_ERROR;
641 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
642 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
643 END IF;
644
645 --Copy value of OUT variable in the IN record type
646 lp_tbcv_tbl := lx_tbcv_tbl;
647
648
649
650 --Assign value to OUT variables
651 x_tbcv_tbl := lx_tbcv_tbl;
652 x_return_status := l_return_status ;
653 x_msg_count := l_msg_count ;
654 x_msg_data := l_msg_data ;
655
656
657 EXCEPTION
658
659 WHEN FND_API.G_EXC_ERROR THEN
660 ROLLBACK TO tbc_update;
661 x_return_status := FND_API.G_RET_STS_ERROR;
662 x_msg_count := l_msg_count ;
663 x_msg_data := l_msg_data ;
664 FND_MSG_PUB.count_and_get(
665 p_count => x_msg_count
666 ,p_data => x_msg_data);
667 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
668 ROLLBACK TO tbc_update;
669 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
670 x_msg_count := l_msg_count ;
671 x_msg_data := l_msg_data ;
672 FND_MSG_PUB.count_and_get(
673 p_count => x_msg_count
674 ,p_data => x_msg_data);
675 WHEN OTHERS THEN
676 ROLLBACK TO tbc_update;
677 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
678 x_msg_count := l_msg_count ;
679 x_msg_data := l_msg_data ;
680 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','update_tbc_definition');
681 FND_MSG_PUB.count_and_get(
682 p_count => x_msg_count
683 ,p_data => x_msg_data);
684 END update_tbc_definition;
685
686 --Put custom code for cascade delete by developer
687 PROCEDURE delete_tbc_definition(
688 p_api_version IN NUMBER,
689 p_init_msg_list IN VARCHAR2,
690 x_return_status OUT NOCOPY VARCHAR2,
691 x_msg_count OUT NOCOPY NUMBER,
692 x_msg_data OUT NOCOPY VARCHAR2,
693 p_tbcv_rec IN tbcv_rec_type) IS
694
695 i NUMBER :=0;
696 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
697 l_api_version NUMBER ;
698 l_init_msg_list VARCHAR2(1) ;
702 --lx_tbcv_rec tbcv_rec_type;
699 l_msg_data VARCHAR2(2000);
700 l_msg_count NUMBER ;
701 lp_tbcv_rec tbcv_rec_type;
703
704 BEGIN
705
706 SAVEPOINT tbc_delete;
707
708
709 l_api_version := p_api_version ;
710 l_init_msg_list := p_init_msg_list ;
711 l_msg_data := x_msg_data;
712 l_msg_count := x_msg_count ;
713 lp_tbcv_rec := p_tbcv_rec;
714 --lx_tbcv_rec := p_tbcv_rec;
715
716
717
718
719 --Delete the Master
720 okl_tbc_pvt.delete_row(
721 l_api_version
722 ,l_init_msg_list
723 ,l_return_status
724 ,l_msg_count
725 ,l_msg_data
726 ,lp_tbcv_rec);
727
728 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
729 RAISE FND_API.G_EXC_ERROR;
730 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
731 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
732 END IF;
733
734
735
736
737
738 --Assign value to OUT variables
739 x_msg_count := l_msg_count ;
740 x_msg_data := l_msg_data ;
741 x_return_status := l_return_status ;
742
743 EXCEPTION
744
745 WHEN FND_API.G_EXC_ERROR THEN
746 ROLLBACK TO tbc_delete;
747 x_return_status := FND_API.G_RET_STS_ERROR;
748 x_msg_count := l_msg_count ;
749 x_msg_data := l_msg_data ;
750 FND_MSG_PUB.count_and_get(
751 p_count => x_msg_count
752 ,p_data => x_msg_data);
753 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
754 ROLLBACK TO tbc_delete;
755 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
756 x_msg_count := l_msg_count ;
757 x_msg_data := l_msg_data ;
758 FND_MSG_PUB.count_and_get(
759 p_count => x_msg_count
760 ,p_data => x_msg_data);
761 WHEN OTHERS THEN
762 ROLLBACK TO tbc_delete;
763 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
764 x_msg_count := l_msg_count ;
765 x_msg_data := l_msg_data ;
766 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','delete_tbc_definition');
767 FND_MSG_PUB.count_and_get(
768 p_count => x_msg_count
769 ,p_data => x_msg_data);
770 END delete_tbc_definition;
771
772
773 PROCEDURE delete_tbc_definition(
774 p_api_version IN NUMBER,
775 p_init_msg_list IN VARCHAR2,
776 x_return_status OUT NOCOPY VARCHAR2,
777 x_msg_count OUT NOCOPY NUMBER,
778 x_msg_data OUT NOCOPY VARCHAR2,
779 p_tbcv_tbl IN tbcv_tbl_type) IS
780
781 i NUMBER := 0;
782 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
783 l_api_version NUMBER := p_api_version ;
784 l_init_msg_list VARCHAR2(1) := p_init_msg_list ;
785 l_msg_data VARCHAR2(2000);
786 l_msg_count NUMBER ;
787 lp_tbcv_tbl tbcv_tbl_type;
788 --lx_tbcv_tbl tbcv_tbl_type;
789
790 BEGIN
791
792 SAVEPOINT tbc_delete;
793
794
795 l_api_version := p_api_version ;
796 l_init_msg_list := p_init_msg_list ;
797 l_msg_data := x_msg_data;
798 l_msg_count := x_msg_count ;
799 lp_tbcv_tbl := p_tbcv_tbl;
800 --lx_tbcv_tbl := p_tbcv_tbl;
801
802
803
804
805 --Delete the Master
806 okl_tbc_pvt.delete_row(
807 l_api_version
808 ,l_init_msg_list
809 ,l_return_status
810 ,l_msg_count
811 ,l_msg_data
812 ,lp_tbcv_tbl);
813
814 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
815 RAISE FND_API.G_EXC_ERROR;
816 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
817 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
818 END IF;
819
820
821
822
823
824 --Assign value to OUT variables
825 x_msg_count := l_msg_count ;
826 x_msg_data := l_msg_data ;
827 x_return_status := l_return_status ;
828 EXCEPTION
829
830 WHEN FND_API.G_EXC_ERROR THEN
831 ROLLBACK TO tbc_delete;
832 x_return_status := FND_API.G_RET_STS_ERROR;
833 x_msg_count := l_msg_count ;
834 x_msg_data := l_msg_data ;
835 FND_MSG_PUB.count_and_get(
836 p_count => x_msg_count
837 ,p_data => x_msg_data);
838 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
839 ROLLBACK TO tbc_delete;
840 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
841 x_msg_count := l_msg_count ;
842 x_msg_data := l_msg_data ;
843 FND_MSG_PUB.count_and_get(
844 p_count => x_msg_count
845 ,p_data => x_msg_data);
846 WHEN OTHERS THEN
847 ROLLBACK TO tbc_delete;
848 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
849 x_msg_count := l_msg_count ;
850 x_msg_data := l_msg_data ;
851 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','delete_tbc_definition');
852 FND_MSG_PUB.count_and_get(
853 p_count => x_msg_count
854 ,p_data => x_msg_data);
855 END delete_tbc_definition;
856
857
858
859 PROCEDURE validate_tbc_definition(
860 p_api_version IN NUMBER,
861 p_init_msg_list IN VARCHAR2,
862 x_return_status OUT NOCOPY VARCHAR2,
863 x_msg_count OUT NOCOPY NUMBER,
864 x_msg_data OUT NOCOPY VARCHAR2,
865 p_tbcv_rec IN tbcv_rec_type) IS
866
867 l_api_version NUMBER ;
868 l_init_msg_list VARCHAR2(1) ;
869 l_msg_data VARCHAR2(2000);
870 l_msg_count NUMBER ;
871 lp_tbcv_rec tbcv_rec_type;
872 lx_tbcv_rec tbcv_rec_type;
873 l_return_status VARCHAR2(1);
874
875 BEGIN
876
877 SAVEPOINT tbc_validate;
878
879
880 l_api_version := p_api_version ;
881 l_init_msg_list := p_init_msg_list ;
882 l_msg_data := x_msg_data;
883 l_msg_count := x_msg_count ;
884 lp_tbcv_rec := p_tbcv_rec;
885 lx_tbcv_rec := p_tbcv_rec;
886
887
888
889
890 okl_tbc_pvt.validate_row(
891 l_api_version
892 ,l_init_msg_list
893 ,l_return_status
894 ,l_msg_count
895 ,l_msg_data
896 ,lp_tbcv_rec);
897
898 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
899 RAISE FND_API.G_EXC_ERROR;
900 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
901 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
902 END IF;
903
904 --Copy value of OUT variable in the IN record type
905 lp_tbcv_rec := lx_tbcv_rec;
906
907
908
909
910
911
912
913
914 --Assign value to OUT variables
915 x_msg_count := l_msg_count ;
916 x_msg_data := l_msg_data ;
917
918 x_return_status := l_return_status ;
919
920 EXCEPTION
921
922 WHEN FND_API.G_EXC_ERROR THEN
923 ROLLBACK TO tbc_validate;
924 x_return_status := FND_API.G_RET_STS_ERROR;
925 x_msg_count := l_msg_count ;
926 x_msg_data := l_msg_data ;
927 FND_MSG_PUB.count_and_get(
928 p_count => x_msg_count
929 ,p_data => x_msg_data);
930 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
931 ROLLBACK TO tbc_validate;
932 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
933 x_msg_count := l_msg_count ;
934 x_msg_data := l_msg_data ;
935 FND_MSG_PUB.count_and_get(
936 p_count => x_msg_count
937 ,p_data => x_msg_data);
938 WHEN OTHERS THEN
939 ROLLBACK TO tbc_validate;
940 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
941 x_msg_count := l_msg_count ;
942 x_msg_data := l_msg_data ;
943 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','validate_tbc_definition');
944 FND_MSG_PUB.count_and_get(
945 p_count => x_msg_count
946 ,p_data => x_msg_data);
947 END validate_tbc_definition;
948
949 PROCEDURE validate_tbc_definition(
950 p_api_version IN NUMBER,
951 p_init_msg_list IN VARCHAR2,
952 x_return_status OUT NOCOPY VARCHAR2,
953 x_msg_count OUT NOCOPY NUMBER,
954 x_msg_data OUT NOCOPY VARCHAR2,
955 p_tbcv_tbl IN tbcv_tbl_type) IS
956
957 l_api_version NUMBER ;
958 l_init_msg_list VARCHAR2(1) ;
959 l_msg_data VARCHAR2(2000);
960 l_msg_count NUMBER ;
961 lp_tbcv_tbl tbcv_tbl_type;
962 lx_tbcv_tbl tbcv_tbl_type;
963 l_return_status VARCHAR2(1);
964
965 BEGIN
966
967 SAVEPOINT tbc_validate;
968
969
970 l_api_version := p_api_version ;
971 l_init_msg_list := p_init_msg_list ;
972 l_msg_data := x_msg_data;
973 l_msg_count := x_msg_count ;
974 lp_tbcv_tbl := p_tbcv_tbl;
975 lx_tbcv_tbl := p_tbcv_tbl;
976
977
978
979 okl_tbc_pvt.validate_row(
980 p_api_version
981 ,p_init_msg_list
982 ,x_return_status
983 ,x_msg_count
984 ,x_msg_data
985 ,lp_tbcv_tbl);
986
987 IF ( l_return_status = FND_API.G_RET_STS_ERROR ) THEN
988 RAISE FND_API.G_EXC_ERROR;
989 ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
990 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
991 END IF;
992
993 --Copy value of OUT variable in the IN record type
994 lp_tbcv_tbl := lx_tbcv_tbl;
995
996
997
998
999
1000 --Assign value to OUT variables
1001 x_msg_count := l_msg_count ;
1002 x_msg_data := l_msg_data ;
1003
1004 x_return_status := l_return_status ;
1005
1006 EXCEPTION
1007
1008 WHEN FND_API.G_EXC_ERROR THEN
1009 ROLLBACK TO tbc_validate;
1010 x_return_status := FND_API.G_RET_STS_ERROR;
1011 x_msg_count := l_msg_count ;
1012 x_msg_data := l_msg_data ;
1013 FND_MSG_PUB.count_and_get(
1014 p_count => x_msg_count
1015 ,p_data => x_msg_data);
1016 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1017 ROLLBACK TO tbc_validate;
1018 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1019 x_msg_count := l_msg_count ;
1020 x_msg_data := l_msg_data ;
1021 FND_MSG_PUB.count_and_get(
1022 p_count => x_msg_count
1023 ,p_data => x_msg_data);
1024 WHEN OTHERS THEN
1025 ROLLBACK TO tbc_validate;
1026 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1027 x_msg_count := l_msg_count ;
1028 x_msg_data := l_msg_data ;
1029 FND_MSG_PUB.ADD_EXC_MSG('OKL_TBC_DEFINITIONS_PUB','validate_tbc_definition');
1030 FND_MSG_PUB.count_and_get(
1031 p_count => x_msg_count
1032 ,p_data => x_msg_data);
1033 END validate_tbc_definition;
1034
1035 END OKL_TBC_DEFINITIONS_PUB;