DBA Data[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;