DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGC_CC_MC_ACCT_LINES_PKG

Source


1 PACKAGE BODY IGC_CC_MC_ACCT_LINES_PKG as
2 /* $Header: IGCCMCAB.pls 120.3.12000000.1 2007/08/20 12:12:50 mbremkum ship $*/
3 
4  G_PKG_NAME CONSTANT VARCHAR2(30):= 'IGC_CC_MC_ACCT_LINES_PKG';
5  g_debug_flag      VARCHAR2(1) := 'N' ;
6 
7 /* ================================================================================
8                        PROCEDURE Insert_Row
9  ===============================================================================*/
10 
11 PROCEDURE Insert_Row(
12                p_api_version               IN       NUMBER,
13                p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
14                p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
15                p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
16                X_return_status             OUT NOCOPY      VARCHAR2,
17                X_msg_count                 OUT NOCOPY      NUMBER,
18                X_msg_data                  OUT NOCOPY      VARCHAR2,
19                p_Rowid               IN OUT NOCOPY      VARCHAR2,
20                p_CC_Acct_Line_Id                 IGC_CC_MC_ACCT_LINES.CC_Acct_Line_Id%TYPE,
21                p_Set_Of_Books_Id                 IGC_CC_MC_ACCT_LINES.Set_Of_Books_Id%TYPE,
22                p_CC_Acct_Func_Amt                IGC_CC_MC_ACCT_LINES.CC_Acct_Func_Amt%TYPE,
23                p_CC_Acct_Encmbrnc_Amt            IGC_CC_MC_ACCT_LINES.CC_Acct_Encmbrnc_Amt%TYPE,
24                p_Conversion_Type                 IGC_CC_MC_ACCT_LINES.Conversion_Type%TYPE,
25                p_Conversion_Date                 IGC_CC_MC_ACCT_LINES.Conversion_Date%TYPE,
26                p_Conversion_Rate                 IGC_CC_MC_ACCT_LINES.Conversion_Rate%TYPE,
27                p_CC_Func_Withheld_Amt            IGC_CC_MC_ACCT_LINES.cc_func_withheld_amt%TYPE
28 
29               )
30 
31  IS
32 
33   l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
34   l_api_version         CONSTANT NUMBER         :=  1.0;
35 
36   CURSOR C IS SELECT Rowid FROM IGC_CC_MC_ACCT_LINES
37                WHERE CC_Acct_Line_Id = p_CC_Acct_Line_Id;
38 
39  BEGIN
40 
41      SAVEPOINT Insert_Row_Pvt ;
42 
43      IF NOT FND_API.Compatible_API_Call ( l_api_version,
44                                           p_api_version,
45                                           l_api_name,
46                                           G_PKG_NAME )
47      THEN
48             RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
49      END IF;
50 
51 
52     IF FND_API.to_Boolean (p_init_msg_list ) THEN
53        FND_MSG_PUB.initialize ;
54     END IF;
55 
56     X_return_status := FND_API.G_RET_STS_SUCCESS ;
57 
58      INSERT INTO IGC_CC_MC_ACCT_LINES (
59                CC_Acct_Line_Id,
60                Set_Of_Books_Id,
61                CC_Acct_Func_Amt,
62                CC_Acct_Encmbrnc_Amt,
63                Conversion_Type,
64                Conversion_Date,
65                Conversion_Rate,
66                cc_func_withheld_amt
67            ) VALUES (
68                p_CC_Acct_Line_Id,
69                p_Set_Of_Books_Id,
70                p_CC_Acct_Func_Amt,
71                p_CC_Acct_Encmbrnc_Amt,
72                p_Conversion_Type,
73                p_Conversion_Date,
74                p_Conversion_Rate,
75                p_cc_func_withheld_amt
76          );
77 
78   OPEN C;
79   FETCH C INTO p_Rowid;
80   if (C%NOTFOUND) then
81     CLOSE C;
82     RAISE FND_API.G_EXC_ERROR ;
83   end if;
84   CLOSE C;
85 
86   IF FND_API.To_Boolean ( p_commit ) THEN
87     COMMIT WORK;
88   END iF;
89 
90   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
91                             p_data  => X_msg_data );
92 
93   EXCEPTION
94 
95   WHEN FND_API.G_EXC_ERROR THEN
96 
97   ROLLBACK TO Insert_Row_Pvt ;
98   X_return_status := FND_API.G_RET_STS_ERROR;
99   FND_MSG_PUB.Count_And_Get (p_count => X_msg_count,
100                               p_data  => X_msg_data );
101 
102   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
103 
104   ROLLBACK TO Insert_Row_Pvt ;
105   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
106   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
107                               p_data  => X_msg_data );
108 
109   WHEN OTHERS THEN
110 
111   ROLLBACK TO Insert_Row_Pvt ;
112   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
113 
114   IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
115     FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
116                               l_api_name);
117   END if;
118 
119   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
120                               p_data  => X_msg_data );
121 
122 END Insert_Row;
123 
124 /* ================================================================================
125                        PROCEDURE Lock_Row
126  ===============================================================================*/
127 
128 PROCEDURE Lock_Row(
129                 p_api_version               IN       NUMBER,
130                 p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
131                 p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
132                 p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
133                 X_return_status             OUT NOCOPY      VARCHAR2,
134                 X_msg_count                 OUT NOCOPY      NUMBER,
135                 X_msg_data                  OUT NOCOPY      VARCHAR2,
136                 p_Rowid               IN OUT NOCOPY      VARCHAR2,
137                 p_CC_Acct_Line_Id                 IGC_CC_MC_ACCT_LINES.CC_Acct_Line_Id%TYPE,
138                 p_Set_Of_Books_Id                 IGC_CC_MC_ACCT_LINES.Set_Of_Books_Id%TYPE,
139                 p_CC_Acct_Func_Amt                IGC_CC_MC_ACCT_LINES.CC_Acct_Func_Amt%TYPE,
140                 p_CC_Acct_Encmbrnc_Amt            IGC_CC_MC_ACCT_LINES.CC_Acct_Encmbrnc_Amt%TYPE,
141                 p_Conversion_Type                 IGC_CC_MC_ACCT_LINES.Conversion_Type%TYPE,
142                 p_Conversion_Date                 IGC_CC_MC_ACCT_LINES.Conversion_Date%TYPE,
143                 p_Conversion_Rate                 IGC_CC_MC_ACCT_LINES.Conversion_Rate%TYPE,
144                 p_CC_Func_Withheld_Amt            IGC_CC_MC_ACCT_LINES.cc_func_withheld_amt%TYPE,
145                 X_row_locked                OUT NOCOPY   VARCHAR2
146 ) IS
147   l_api_name            CONSTANT VARCHAR2(30)   := 'Lock_Row';
148   l_api_version         CONSTANT NUMBER         :=  1.0;
149   Counter               NUMBER;
150 
151   CURSOR C IS
152       SELECT *
153       FROM   IGC_CC_MC_ACCT_LINES
154       WHERE  rowid = p_Rowid
155       FOR UPDATE of CC_Acct_Line_Id NOWAIT;
156   Recinfo C%ROWTYPE;
157 BEGIN
158 
159   SAVEPOINT Lock_Row_Pvt ;
160 
161   IF NOT FND_API.Compatible_API_Call ( l_api_version,
162                                      p_api_version,
163                                      l_api_name,
164                                      G_PKG_NAME )
165   THEN
166     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
167   END IF;
168 
169 
170   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
171     FND_MSG_PUB.initialize ;
172   END IF;
173 
174   X_return_status := FND_API.G_RET_STS_SUCCESS ;
175   X_row_locked    := FND_API.G_TRUE ;
176 
177   OPEN C;
178 
179   FETCH C INTO Recinfo;
180   if (C%NOTFOUND) then
181     CLOSE C;
182     FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
183     FND_MSG_PUB.Add;
184     RAISE FND_API.G_EXC_ERROR;
185   end if;
186   CLOSE C;
187   if (
188              (Recinfo.CC_Acct_Line_Id =  p_CC_Acct_Line_Id)
189          AND (   (Recinfo.Set_Of_Books_Id =  p_Set_Of_Books_Id)
190               OR (    (Recinfo.Set_Of_Books_Id IS NULL)
191                   AND (p_Set_Of_Books_Id IS NULL)))
192          AND (   (Recinfo.CC_Acct_Func_Amt = p_CC_Acct_Func_Amt)
193               OR (    (Recinfo.CC_Acct_Func_Amt IS NULL)
194                   AND (p_CC_Acct_Func_Amt IS NULL)))
195          AND (   (Recinfo.CC_Acct_Encmbrnc_Amt = p_CC_Acct_Encmbrnc_Amt)
196               OR (    (Recinfo.CC_Acct_Encmbrnc_Amt IS NULL)
197                   AND (p_CC_Acct_Encmbrnc_Amt IS NULL)))
198          AND (   (Recinfo.Conversion_Type =  p_Conversion_Type)
199               OR (    (Recinfo.Conversion_Type IS NULL)
200                   AND (p_Conversion_Type IS NULL)))
201          AND (   (Recinfo.Conversion_Date =  p_Conversion_Date)
202               OR (    (Recinfo.Conversion_Date IS NULL)
203                   AND (p_Conversion_Date IS NULL)))
204          AND (   (Recinfo.Conversion_Rate =  p_Conversion_Rate)
205               OR (    (Recinfo.Conversion_Rate IS NULL)
206                   AND (p_Conversion_Rate IS NULL)))
207          AND (   (Recinfo.cc_func_withheld_amt =  p_cc_func_withheld_amt)
208               OR (    (Recinfo.cc_func_withheld_amt IS NULL)
209                   AND (p_cc_func_withheld_amt IS NULL)))
210 
211     ) then
212     null;
213   else
214     FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
215     FND_MSG_PUB.Add;
216     RAISE FND_API.G_EXC_ERROR ;
217   end if;
218 
219 IF FND_API.To_Boolean ( p_commit ) THEN
220   COMMIT WORK;
221 END iF;
222 
223 FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
224                             p_data  => X_msg_data );
225 
226 EXCEPTION
227 
228 WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
229 
230   ROLLBACK TO Lock_Row_Pvt ;
231   X_row_locked := FND_API.G_FALSE;
232   X_return_status := FND_API.G_RET_STS_ERROR;
233   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
234                               p_data  => X_msg_data );
235 
236 WHEN FND_API.G_EXC_ERROR THEN
237 
238   ROLLBACK TO Lock_Row_Pvt ;
239   X_return_status := FND_API.G_RET_STS_ERROR;
240   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
241                               p_data  => X_msg_data );
242 
243 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
244 
245   ROLLBACK TO Lock_Row_Pvt ;
246   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
247   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
248                               p_data  => X_msg_data );
249 
250 WHEN OTHERS THEN
251 
252   ROLLBACK TO Lock_Row_Pvt ;
253   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
254 
255   IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
256     FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
257                               l_api_name);
258   END if;
259 
260   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
261                               p_data  => X_msg_data );
262 
263 END Lock_Row;
264 /* ================================================================================
265                        PROCEDURE Update_Row
266  ===============================================================================*/
267 
268 PROCEDURE Update_Row(
269                 p_api_version               IN       NUMBER,
270                 p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
271                 p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
272                 p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
273                 X_return_status             OUT NOCOPY      VARCHAR2,
274                 X_msg_count                 OUT NOCOPY      NUMBER,
275                 X_msg_data                  OUT NOCOPY      VARCHAR2,
276                 p_Rowid               IN OUT NOCOPY      VARCHAR2,
277                 p_CC_Acct_Line_Id                 IGC_CC_MC_ACCT_LINES.CC_Acct_Line_Id%TYPE,
278                 p_Set_Of_Books_Id                 IGC_CC_MC_ACCT_LINES.Set_Of_Books_Id%TYPE,
279                 p_CC_Acct_Func_Amt                IGC_CC_MC_ACCT_LINES.CC_Acct_Func_Amt%TYPE,
280                 p_CC_Acct_Encmbrnc_Amt            IGC_CC_MC_ACCT_LINES.CC_Acct_Encmbrnc_Amt%TYPE,
281                 p_Conversion_Type                 IGC_CC_MC_ACCT_LINES.Conversion_Type%TYPE,
282                 p_Conversion_Date                 IGC_CC_MC_ACCT_LINES.Conversion_Date%TYPE,
283                 p_Conversion_Rate                 IGC_CC_MC_ACCT_LINES.Conversion_Rate%TYPE,
284                 p_CC_Func_Withheld_Amt            IGC_CC_MC_ACCT_LINES.cc_func_withheld_amt%TYPE
285 ) IS
286 
287 l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
288 l_api_version         CONSTANT NUMBER         :=  1.0;
289 
290 BEGIN
291 
292   SAVEPOINT Update_Row_Pvt ;
293 
294   IF NOT FND_API.Compatible_API_Call ( l_api_version,
295                                      p_api_version,
296                                      l_api_name,
297                                      G_PKG_NAME )
298   THEN
299   RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
300   END IF;
301 
302 
303   IF FND_API.to_Boolean ( p_init_msg_list ) THEN
304   FND_MSG_PUB.initialize ;
305   END IF;
306 
307   X_return_status := FND_API.G_RET_STS_SUCCESS ;
308 
309   UPDATE IGC_CC_MC_ACCT_LINES
310   SET
311                      CC_Acct_Line_Id              =      p_CC_Acct_Line_Id,
312                      Set_Of_Books_Id              =      p_Set_Of_Books_Id,
313 		     CC_Acct_Func_Amt             =      p_CC_Acct_Func_Amt,
314                      CC_Acct_Encmbrnc_Amt         =      p_Cc_Acct_Encmbrnc_Amt,
315                      Conversion_Type              =      p_Conversion_Type,
316 		     Conversion_Date              =      p_Conversion_Date,
317 		     Conversion_Rate              =      p_Conversion_Rate,
318 		     cc_func_withheld_amt         =      p_cc_func_withheld_amt
319   WHERE rowid = p_Rowid;
320   if (SQL%NOTFOUND) then
321     Raise NO_DATA_FOUND;
322   end if;
323 
324 IF FND_API.To_Boolean ( p_commit ) THEN
325   COMMIT WORK;
326 END iF;
327 
328 FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
329                             p_data  => X_msg_data );
330 
331 EXCEPTION
332 
333 WHEN FND_API.G_EXC_ERROR THEN
334 
335   ROLLBACK TO Update_Row_Pvt ;
336   X_return_status := FND_API.G_RET_STS_ERROR;
337   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
338                               p_data  => X_msg_data );
339 
340 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
341 
342   ROLLBACK TO Update_Row_Pvt ;
343   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
344   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
345                               p_data  => X_msg_data );
346 
347 WHEN OTHERS THEN
348 
349   ROLLBACK TO Update_Row_Pvt ;
350   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
351 
352   IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
353     FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
354                               l_api_name);
355   END if;
356 
357   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
358                               p_data  => X_msg_data );
359 
360 END Update_Row;
361 
362 /* ================================================================================
363                        PROCEDURE Delete_Row
364  ===============================================================================*/
365 
366  PROCEDURE Delete_Row(
367 p_api_version               IN       NUMBER,
368 p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
369 p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
370 p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
371 X_return_status             OUT NOCOPY      VARCHAR2,
372 X_msg_count                 OUT NOCOPY      NUMBER,
373 X_msg_data                  OUT NOCOPY      VARCHAR2,
374 p_Rowid                   IN OUT NOCOPY     VARCHAR2
375 
376  ) IS
377 
378 l_api_name                CONSTANT VARCHAR2(30)   := 'Delete_Row';
379 l_api_version             CONSTANT NUMBER         :=  1.0;
380 l_return_status           VARCHAR2(1) ;
384 BEGIN
381 l_msg_count               NUMBER ;
382 l_msg_data                VARCHAR2(2000) ;
383 
385 
386 SAVEPOINT Delete_Row_Pvt ;
387 
388 IF NOT FND_API.Compatible_API_Call ( l_api_version,
389                                      p_api_version,
390                                      l_api_name,
391                                      G_PKG_NAME )
392 THEN
393   RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
394 END IF;
395 
396 
397 IF FND_API.to_Boolean ( p_init_msg_list ) THEN
398   FND_MSG_PUB.initialize ;
399 END IF ;
400 
401 X_return_status := FND_API.G_RET_STS_SUCCESS ;
402 
403 DELETE FROM IGC_CC_MC_ACCT_LINES
404 WHERE rowid = p_Rowid;
405 
406 if (SQL%NOTFOUND) then
407   Raise NO_DATA_FOUND;
408 end if;
409 
410 IF FND_API.To_Boolean ( p_commit ) THEN
411   COMMIT WORK;
412 END iF;
413 
414 FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
415                             p_data  => X_msg_data );
416 
417 EXCEPTION
418 
419 WHEN FND_API.G_EXC_ERROR THEN
420 
421   ROLLBACK TO Delete_Row_Pvt ;
422   X_return_status := FND_API.G_RET_STS_ERROR;
423   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
424                               p_data  => X_msg_data );
425 
426 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
427 
428   ROLLBACK TO Delete_Row_Pvt ;
429   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
430   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
431                               p_data  => X_msg_data );
432 
433 WHEN OTHERS THEN
434 
435   ROLLBACK TO Delete_Row_Pvt ;
436   X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
437 
438   IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
439     FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
440                               l_api_name);
441   END if;
442 
443   FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
444                               p_data  => X_msg_data );
445 
446 
447 END Delete_Row;
448 
449 
450 
451 
452 END IGC_CC_MC_ACCT_LINES_PKG;