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