[Home] [Help]
PACKAGE BODY: APPS.IGC_CC_BC_ENABLE_PKG
Source
1 PACKAGE BODY IGC_CC_BC_ENABLE_PKG AS
2 /*$Header: IGCCENBB.pls 120.3.12000000.1 2007/08/20 12:12:19 mbremkum ship $*/
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):= 'IGC_CC_BC_ENABLE_PKG';
5
6 -- The flag determines whether to print debug information or not.
7 g_debug_flag VARCHAR2(1) := 'N' ;
8
9
10 /*=======================================================================+
11 | PROCEDURE Insert_Row |
12 +=======================================================================*/
13 PROCEDURE Insert_Row
14 (
15 p_api_version IN NUMBER,
16 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
17 p_commit IN VARCHAR2 := FND_API.G_FALSE,
18 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
19 x_return_status OUT NOCOPY VARCHAR2,
20 x_msg_count OUT NOCOPY NUMBER,
21 x_msg_data OUT NOCOPY VARCHAR2,
22
23 p_row_id IN OUT NOCOPY VARCHAR2,
24 p_set_of_books_id NUMBER,
25 p_cc_bc_enable_flag VARCHAR2,
26 p_last_update_date DATE,
27 p_last_updated_by NUMBER,
28 p_last_update_login NUMBER,
29 p_created_by NUMBER,
30 p_creation_date DATE,
31 p_cbc_po_enable VARCHAR2
32 )
33 IS
34
35 l_api_name CONSTANT VARCHAR2(30) := 'Insert_Row';
36 l_api_version CONSTANT NUMBER := 1.0;
37
38 CURSOR C IS SELECT ROWID FROM igc_cc_bc_enable
39 WHERE set_of_books_id = p_set_of_books_id;
40
41 BEGIN
42
43 SAVEPOINT Insert_Row_Pvt ;
44
45 IF NOT FND_API.Compatible_API_Call ( l_api_version,
46 p_api_version,
47 l_api_name,
48 G_PKG_NAME )
49 THEN
50 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
51 END IF;
52
53
54 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
55 FND_MSG_PUB.initialize ;
56 END IF;
57
58 x_return_status := FND_API.G_RET_STS_SUCCESS ;
59
60 INSERT INTO igc_cc_bc_enable
61 (
62 set_of_books_id,
63 cc_bc_enable_flag,
64 last_update_date,
65 last_updated_by,
66 last_update_login,
67 created_by,
68 creation_date,
69 cbc_po_enable
70 )
71 VALUES
72 (
73 p_set_of_books_id,
74 p_cc_bc_enable_flag,
75 p_last_update_date,
76 p_last_updated_by,
77 p_last_update_login,
78 p_created_by,
79 p_creation_date,
80 p_cbc_po_enable
81 );
82 OPEN C;
83 FETCH C INTO p_row_id;
84 IF (C%NOTFOUND) THEN
85 CLOSE C;
86 RAISE FND_API.G_EXC_ERROR ;
87 END IF;
88 CLOSE C;
89
90
91 IF FND_API.To_Boolean ( p_commit ) THEN
92 COMMIT WORK;
93 END iF;
94
95 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
96 p_data => x_msg_data );
97
98 EXCEPTION
99
100 WHEN FND_API.G_EXC_ERROR THEN
101
102 ROLLBACK TO Insert_Row_Pvt ;
103 x_return_status := FND_API.G_RET_STS_ERROR;
104 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
105 p_data => x_msg_data );
106
107 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
108
109 ROLLBACK TO Insert_Row_Pvt ;
110 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
111 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
112 p_data => x_msg_data );
113
114 WHEN OTHERS THEN
115
116 ROLLBACK TO Insert_Row_Pvt ;
117 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
118
119 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
120 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
121 l_api_name);
122 END if;
123
124 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
125 p_data => x_msg_data );
126
127 END Insert_Row;
128 /*-------------------------------------------------------------------------*/
129
130
131
132 /*==========================================================================+
133 | PROCEDURE Lock_Row |
134 +==========================================================================*/
135 PROCEDURE Lock_Row
136 (
137 p_api_version IN NUMBER,
138 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
139 p_commit IN VARCHAR2 := FND_API.G_FALSE,
140 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
141 x_return_status OUT NOCOPY VARCHAR2,
142 x_msg_count OUT NOCOPY NUMBER,
143 x_msg_data OUT NOCOPY VARCHAR2,
144
145 p_row_id IN OUT NOCOPY VARCHAR2,
146 p_set_of_books_id NUMBER,
147 p_cc_bc_enable_flag VARCHAR2,
148 p_cbc_po_enable VARCHAR2,
149
150 p_row_locked OUT NOCOPY VARCHAR2
151
152 )
153 IS
154
155 l_api_name CONSTANT VARCHAR2(30) := 'Lock_Row';
156 l_api_version CONSTANT NUMBER := 1.0;
157
158 Counter NUMBER;
159 CURSOR C IS
160 SELECT * FROM igc_cc_bc_enable
161 WHERE rowid = p_row_id
162 FOR UPDATE NOWAIT;
163 Recinfo C%ROWTYPE;
164
165 BEGIN
166
167 SAVEPOINT Lock_Row_Pvt ;
168
169 IF NOT FND_API.Compatible_API_Call ( l_api_version,
170 p_api_version,
171 l_api_name,
172 G_PKG_NAME )
173 THEN
174 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
175 END IF;
176
177
178 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
179 FND_MSG_PUB.initialize ;
180 END IF;
181
182 x_return_status := FND_API.G_RET_STS_SUCCESS ;
183 p_row_locked := FND_API.G_TRUE ;
184
185 OPEN C;
186
187 FETCH C INTO Recinfo;
188 IF (C%NOTFOUND) then
189 CLOSE C;
190 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
191 FND_MSG_PUB.Add;
192 RAISE FND_API.G_EXC_ERROR ;
193 END IF;
194 CLOSE C;
195 IF ( (Recinfo.set_of_books_id = p_set_of_books_id)
196 AND ( (Recinfo.cc_bc_enable_flag = p_cc_bc_enable_flag)
197 OR ( (Recinfo.cc_bc_enable_flag IS NULL)
198 AND (p_cc_bc_enable_flag IS NULL)))
199 AND ( (Recinfo.cbc_po_enable = p_cbc_po_enable)
200 OR ( (Recinfo.cbc_po_enable IS NULL)
201 AND (p_cbc_po_enable IS NULL)))
202 ) THEN
203 Null;
204 ELSE
205 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
206 FND_MSG_PUB.Add;
207 RAISE FND_API.G_EXC_ERROR ;
208 END IF;
209
210
211 IF FND_API.To_Boolean ( p_commit ) THEN
212 COMMIT WORK;
213 END iF;
214
215 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
216 p_data => x_msg_data );
217
218 EXCEPTION
219
220 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
221
222 ROLLBACK TO Lock_Row_Pvt ;
223 p_row_locked := FND_API.G_FALSE;
224 x_return_status := FND_API.G_RET_STS_ERROR;
225 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
226 p_data => x_msg_data );
227
228 WHEN FND_API.G_EXC_ERROR THEN
229
230 ROLLBACK TO Lock_Row_Pvt ;
231 x_return_status := FND_API.G_RET_STS_ERROR;
232 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
233 p_data => x_msg_data );
234
235 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
236
237 ROLLBACK TO Lock_Row_Pvt ;
238 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
239 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
240 p_data => x_msg_data );
241
242 WHEN OTHERS THEN
243
244 ROLLBACK TO Lock_Row_Pvt ;
245 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
246
247 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
248 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
249 l_api_name);
250 END if;
251
252 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
253 p_data => x_msg_data );
254
255 END Lock_Row;
256 /* ----------------------------------------------------------------------- */
257
258
259
260
261 /*==========================================================================+
262 | PROCEDURE Update_Row |
263 +==========================================================================*/
264 PROCEDURE Update_Row
265 (
266 p_api_version IN NUMBER,
267 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
268 p_commit IN VARCHAR2 := FND_API.G_FALSE,
269 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
270 x_return_status OUT NOCOPY VARCHAR2,
271 x_msg_count OUT NOCOPY NUMBER,
272 x_msg_data OUT NOCOPY VARCHAR2,
273
274 p_row_id IN OUT NOCOPY VARCHAR2,
275 p_set_of_books_id NUMBER,
276 p_cc_bc_enable_flag VARCHAR2,
277 p_last_update_date DATE,
278 p_last_updated_by NUMBER,
279 p_last_update_login NUMBER,
280 p_cbc_po_enable VARCHAR2
281 )
282 IS
283
284 l_api_name CONSTANT VARCHAR2(30) := 'Update_Row';
285 l_api_version CONSTANT NUMBER := 1.0;
286
287 BEGIN
288
289 SAVEPOINT Update_Row_Pvt ;
290
291 IF NOT FND_API.Compatible_API_Call ( l_api_version,
292 p_api_version,
293 l_api_name,
294 G_PKG_NAME )
295 THEN
296 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
297 END IF;
298
299
300 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
301 FND_MSG_PUB.initialize ;
302 END IF;
303
304 x_return_status := FND_API.G_RET_STS_SUCCESS ;
305
306
307 UPDATE igc_cc_bc_enable
308 SET
309 set_of_books_id = p_set_of_books_id,
310 cc_bc_enable_flag = p_cc_bc_enable_flag,
311 last_update_date = p_last_update_date ,
312 last_updated_by = p_last_updated_by ,
313 last_update_login = p_last_update_login,
314 cbc_po_enable = p_cbc_po_enable
315 WHERE rowid = p_row_id;
316
317 IF (SQL%NOTFOUND) THEN
318 RAISE NO_DATA_FOUND ;
319 END IF;
320
321
322 IF FND_API.To_Boolean ( p_commit ) THEN
323 COMMIT WORK;
324 END iF;
325
326 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
327 p_data => x_msg_data );
328
329 EXCEPTION
330
331 WHEN FND_API.G_EXC_ERROR THEN
332
333 ROLLBACK TO Update_Row_Pvt ;
334 x_return_status := FND_API.G_RET_STS_ERROR;
335 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
336 p_data => x_msg_data );
337
338 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
339
340 ROLLBACK TO Update_Row_Pvt ;
341 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
342 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
343 p_data => x_msg_data );
344
345 WHEN OTHERS THEN
346
347 ROLLBACK TO Update_Row_Pvt ;
348 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
349
350 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
351 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
352 l_api_name);
353 END if;
354
355 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
356 p_data => x_msg_data );
357
358 END Update_Row;
359 /* ----------------------------------------------------------------------- */
360
361
362
363
364 /*==========================================================================+
365 | PROCEDURE Delete_Row |
366 +==========================================================================*/
367 PROCEDURE Delete_Row
368 (
369 p_api_version IN NUMBER,
370 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
371 p_commit IN VARCHAR2 := FND_API.G_FALSE,
372 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
373 x_return_status OUT NOCOPY VARCHAR2,
374 x_msg_count OUT NOCOPY NUMBER,
375 x_msg_data OUT NOCOPY VARCHAR2,
376
377 p_row_id IN VARCHAR2
378 )
379 IS
380
381 l_api_name CONSTANT VARCHAR2(30) := 'Delete_Row';
382 l_api_version CONSTANT NUMBER := 1.0;
383
384 l_return_status VARCHAR2(1) ;
385 l_msg_count NUMBER ;
386 l_msg_data VARCHAR2(2000) ;
387
388 BEGIN
389
390 SAVEPOINT Delete_Row_Pvt ;
391
392 IF NOT FND_API.Compatible_API_Call ( l_api_version,
393 p_api_version,
394 l_api_name,
395 G_PKG_NAME )
396 THEN
397 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
398 END IF;
399
400
401 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
402 FND_MSG_PUB.initialize ;
403 END IF ;
404
405 x_return_status := FND_API.G_RET_STS_SUCCESS ;
406
407 -- Deleting the record in igc_cc_bc_enable.
408
409 DELETE FROM igc_cc_bc_enable
410 WHERE rowid = p_row_id;
411
412
413 IF (SQL%NOTFOUND) THEN
414 RAISE NO_DATA_FOUND ;
415 END IF;
416
417
418 IF FND_API.To_Boolean ( p_commit ) THEN
419 COMMIT WORK;
420 END iF;
421
422 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
423 p_data => x_msg_data );
424
425 EXCEPTION
426
427 WHEN FND_API.G_EXC_ERROR THEN
428
429 ROLLBACK TO Delete_Row_Pvt ;
430 x_return_status := FND_API.G_RET_STS_ERROR;
431 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
432 p_data => x_msg_data );
433
434 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
435
436 ROLLBACK TO Delete_Row_Pvt ;
437 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
438 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
439 p_data => x_msg_data );
440
441 WHEN OTHERS THEN
442
443 ROLLBACK TO Delete_Row_Pvt ;
444 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
445
446 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
447 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
448 l_api_name);
449 END if;
450
451 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
452 p_data => x_msg_data );
453
454 END Delete_Row;
455
456
457
458 /*==========================================================================+
459 | PROCEDURE Check_Unique |
460 +==========================================================================*/
461 PROCEDURE Check_Unique
462 (
463 p_api_version IN NUMBER,
464 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
465 p_commit IN VARCHAR2 := FND_API.G_FALSE,
466 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
467 x_return_status OUT NOCOPY VARCHAR2,
468 x_msg_count OUT NOCOPY NUMBER,
469 x_msg_data OUT NOCOPY VARCHAR2,
470
471 p_row_id IN VARCHAR2,
472 p_set_of_books_id IN NUMBER,
473
474 p_return_value IN OUT NOCOPY VARCHAR2
475 )
476 IS
477
478 l_api_name CONSTANT VARCHAR2(30) := 'Check_Unique';
479 l_api_version CONSTANT NUMBER := 1.0;
480
481 l_tmp VARCHAR2(1);
482
483 CURSOR c IS
484 SELECT '1'
485 FROM igc_cc_bc_enable
486 WHERE set_of_books_id = p_set_of_books_id
487 AND (
488 p_row_id IS NULL
489 OR
490 rowid <> p_row_id
491 );
492
493 BEGIN
494
495 SAVEPOINT Check_Unique_Pvt ;
496
497 IF NOT FND_API.Compatible_API_Call ( l_api_version,
498 p_api_version,
499 l_api_name,
500 G_PKG_NAME )
501 THEN
502 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
503 END IF;
504
505
506 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
507 FND_MSG_PUB.initialize ;
508 END IF;
509
510 x_return_status := FND_API.G_RET_STS_SUCCESS ;
511
512 -- Checking the igc_cc_bc_enable table for uniqueness.
513 OPEN c;
514 FETCH c INTO l_tmp;
515
516 -- p_Return_Value specifies whether unique value exists or not.
517 IF l_tmp IS NULL THEN
518 p_Return_Value := 'FALSE';
519 ELSE
520 p_Return_Value := 'TRUE';
521 END IF;
522
523 CLOSE c;
524
525 IF FND_API.To_Boolean ( p_commit ) THEN
526 COMMIT WORK;
527 END iF;
528
529 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
530 p_data => x_msg_data );
531
532 EXCEPTION
533
534 WHEN FND_API.G_EXC_ERROR THEN
535
536 ROLLBACK TO Check_Unique_Pvt ;
537 x_return_status := FND_API.G_RET_STS_ERROR;
538 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
539 p_data => x_msg_data );
540
541 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
542
543 ROLLBACK TO Check_Unique_Pvt ;
544 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
545 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
546 p_data => x_msg_data );
547
548 WHEN OTHERS THEN
549
550 ROLLBACK TO Check_Unique_Pvt ;
551 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
552
553 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
554 FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
555 l_api_name);
556 END if;
557
558 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count,
559 p_data => x_msg_data );
560
561 END Check_Unique;
562 /* ----------------------------------------------------------------------- */
563
564
565 END IGC_CC_BC_ENABLE_PKG;