DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGC_CC_MC_HEADERS_PKG

Source


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