DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGC_CC_ACCT_LINE_HISTORY_PKG

Source


1 PACKAGE BODY IGC_CC_ACCT_LINE_HISTORY_PKG as
2 /* $Header: IGCCALHB.pls 120.3.12000000.4 2007/10/19 07:23:49 smannava ship $  */
3 
4     G_PKG_NAME CONSTANT VARCHAR2(30):= 'IGC_CC_ACCT_LINE_HISTORY_PKG';
5     g_debug_flag        VARCHAR2(1) := 'N' ;
6 
7 
8 
9 /* ================================================================================
10                          PROCEDURE Insert_Row
11    ===============================================================================*/
12 
13 
14 PROCEDURE Insert_Row(
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      p_Rowid                    IN OUT NOCOPY VARCHAR2,
23      p_CC_Acct_Line_Id                 IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Id%TYPE,
24      p_CC_Header_Id                    IGC_CC_ACCT_LINE_HISTORY.CC_Header_Id%TYPE,
25      p_Parent_Header_Id                IGC_CC_ACCT_LINE_HISTORY.Parent_Header_Id%TYPE,
26      p_Parent_Acct_Line_Id             IGC_CC_ACCT_LINE_HISTORY.Parent_Acct_Line_Id%TYPE,
27      p_CC_Acct_Line_Num                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Num%TYPE,
28      p_CC_Acct_Version_Num             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Num%TYPE,
29      p_CC_Acct_Version_Action          IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Action%TYPE,
30      p_CC_Charge_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Charge_Code_Combination_Id%TYPE,
31      p_CC_Budget_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Budget_Code_Combination_Id%TYPE,
32      p_CC_Acct_Entered_Amt             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Entered_Amt%TYPE,
33      p_CC_Acct_Func_Amt                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Func_Amt%TYPE,
34      p_CC_Acct_Desc                    IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Desc%TYPE,
35      p_CC_Acct_Billed_Amt              IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Billed_Amt%TYPE,
36      p_CC_Acct_Unbilled_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Unbilled_Amt%TYPE,
37      p_CC_Acct_Taxable_Flag            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Taxable_Flag%TYPE,
38      p_Tax_Id                          IGC_CC_ACCT_LINE_HISTORY.Tax_Id%TYPE,
39      p_CC_Acct_Encmbrnc_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Amt%TYPE,
40      p_CC_Acct_Encmbrnc_Date           IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Date%TYPE,
41      p_CC_Acct_Encmbrnc_Status         IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Status%TYPE,
42      p_Project_Id                      IGC_CC_ACCT_LINE_HISTORY.Project_Id%TYPE,
43      p_Task_Id                         IGC_CC_ACCT_LINE_HISTORY.Task_Id%TYPE,
44      p_Expenditure_Type                IGC_CC_ACCT_LINE_HISTORY.Expenditure_Type%TYPE,
45      p_Expenditure_Org_Id              IGC_CC_ACCT_LINE_HISTORY.Expenditure_Org_Id%TYPE,
46      p_Expenditure_Item_Date           IGC_CC_ACCT_LINE_HISTORY.Expenditure_Item_Date%TYPE,
47      p_Last_Update_Date                IGC_CC_ACCT_LINE_HISTORY.Last_Update_Date%TYPE,
48      p_Last_Updated_By                 IGC_CC_ACCT_LINE_HISTORY.Last_Updated_By%TYPE,
49      p_Last_Update_Login               IGC_CC_ACCT_LINE_HISTORY.Last_Update_Login%TYPE,
50      p_Creation_Date                   IGC_CC_ACCT_LINE_HISTORY.Creation_Date%TYPE,
51      p_Created_By                      IGC_CC_ACCT_LINE_HISTORY.Created_By%TYPE,
52      p_Attribute1                      IGC_CC_ACCT_LINE_HISTORY.Attribute1%TYPE,
53      p_Attribute2                      IGC_CC_ACCT_LINE_HISTORY.Attribute2%TYPE,
54      p_Attribute3                      IGC_CC_ACCT_LINE_HISTORY.Attribute3%TYPE,
55      p_Attribute4                      IGC_CC_ACCT_LINE_HISTORY.Attribute4%TYPE,
56      p_Attribute5                      IGC_CC_ACCT_LINE_HISTORY.Attribute5%TYPE,
57      p_Attribute6                      IGC_CC_ACCT_LINE_HISTORY.Attribute6%TYPE,
58      p_Attribute7                      IGC_CC_ACCT_LINE_HISTORY.Attribute7%TYPE,
59      p_Attribute8                      IGC_CC_ACCT_LINE_HISTORY.Attribute8%TYPE,
60      p_Attribute9                      IGC_CC_ACCT_LINE_HISTORY.Attribute9%TYPE,
61      p_Attribute10                     IGC_CC_ACCT_LINE_HISTORY.Attribute10%TYPE,
62      p_Attribute11                     IGC_CC_ACCT_LINE_HISTORY.Attribute11%TYPE,
63      p_Attribute12                     IGC_CC_ACCT_LINE_HISTORY.Attribute12%TYPE,
64      p_Attribute13                     IGC_CC_ACCT_LINE_HISTORY.Attribute13%TYPE,
65      p_Attribute14                     IGC_CC_ACCT_LINE_HISTORY.Attribute14%TYPE,
66      p_Attribute15                     IGC_CC_ACCT_LINE_HISTORY.Attribute15%TYPE,
67      p_Context                         IGC_CC_ACCT_LINE_HISTORY.Context%TYPE,
68      p_cc_func_withheld_amt            IGC_CC_ACCT_LINE_HISTORY.cc_func_withheld_amt%TYPE,
69      p_cc_ent_withheld_amt             IGC_CC_ACCT_LINE_HISTORY.cc_ent_withheld_amt%TYPE,
70      G_FLAG                     IN OUT NOCOPY VARCHAR2,
71      P_Tax_Classif_Code                IGC_CC_ACCT_LINE_HISTORY.Tax_Classif_Code%TYPE
72 ) IS
73 
74    l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
75    l_api_version         CONSTANT NUMBER         :=  1.0;
76    l_Application_Id      NUMBER;
77    l_MRC_Enabled         VARCHAR2(1);
78    l_Conversion_Date     DATE;
79    l_Set_Of_Books_Id     NUMBER;
80    l_Org_Id              NUMBER(15);
81    l_return_status       VARCHAR2(1);
82 
83    CURSOR C_acct_hst_row_id IS
84      SELECT Rowid
85        FROM IGC_CC_ACCT_LINE_HISTORY
86       WHERE CC_Acct_Line_Id     = p_CC_Acct_Line_Id
87         AND CC_Acct_Version_Num = p_CC_Acct_Version_Num;
88 
89    CURSOR c_igc_app_id IS
90      SELECT Application_Id
91        FROM FND_APPLICATION
92       WHERE Application_Short_Name =  'IGC';
93 
94    CURSOR c_cc_info IS
95      SELECT SET_OF_BOOKS_ID,
96             ORG_ID,
97             CONVERSION_DATE
98        FROM IGC_CC_HEADERS      ICH,
99             IGC_CC_ACCT_LINES   IAL
100       WHERE ICH.CC_HEADER_ID    = IAL.CC_HEADER_ID
101         AND IAL.CC_ACCT_LINE_ID = p_CC_Acct_Line_Id;
102 
103 
104 BEGIN
105 
106    SAVEPOINT Insert_Row_Pvt ;
107 
108 -- -----------------------------------------------------------------
109 -- Ensure that the version requested to be used is correct for
110 -- this API.
111 -- -----------------------------------------------------------------
112    IF NOT FND_API.Compatible_API_Call ( l_api_version,
113                                         p_api_version,
114                                         l_api_name,
115                                         G_PKG_NAME )
116    THEN
117       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
118    END IF;
119 
120 
121    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
122       FND_MSG_PUB.initialize ;
123    END IF;
124 
125    X_return_status := FND_API.G_RET_STS_SUCCESS ;
126 
127 -- -----------------------------------------------------------------
128 -- Insert the account line history record as requested.
129 -- -----------------------------------------------------------------
130    INSERT
131      INTO IGC_CC_ACCT_LINE_HISTORY
132             (CC_Acct_Line_Id,
133              CC_Header_Id,
134              Parent_Header_Id,
135              Parent_Acct_Line_Id,
136              CC_Acct_Line_Num,
137              CC_Acct_Version_Num,
138              CC_Acct_Version_Action,
139              CC_Charge_Code_Combination_Id,
140              CC_Budget_Code_Combination_Id,
141              CC_Acct_Entered_Amt,
142              CC_Acct_Func_Amt,
143              CC_Acct_Desc,
144              CC_Acct_Billed_Amt,
145              CC_Acct_Unbilled_Amt,
146              CC_Acct_Taxable_Flag,
147              Tax_Id,
148              CC_Acct_Encmbrnc_Amt,
149              CC_Acct_Encmbrnc_Date,
150              CC_Acct_Encmbrnc_Status,
151              Project_Id,
152              Task_Id,
153              Expenditure_Type,
154              Expenditure_Org_Id,
155              Expenditure_Item_Date,
156              Last_Update_Date,
157              Last_Updated_By,
158              Last_Update_Login,
159              Creation_Date,
160              Created_By,
161              Attribute1,
162              Attribute2,
163              Attribute3,
164              Attribute4,
165              Attribute5,
166              Attribute6,
167              Attribute7,
168              Attribute8,
169              Attribute9,
170              Attribute10,
171              Attribute11,
172              Attribute12,
173              Attribute13,
174              Attribute14,
175              Attribute15,
176              Context ,
177              cc_func_withheld_amt,
178              cc_ent_withheld_amt,
179              Tax_Classif_Code
180             )
181      VALUES
182             (p_CC_Acct_Line_Id,
183              p_CC_Header_Id,
184              p_Parent_Header_Id,
185              p_Parent_Acct_Line_Id,
186              p_CC_Acct_Line_Num,
187              p_CC_Acct_Version_Num,
188              p_CC_Acct_Version_Action,
189              p_CC_Charge_Code_Comb_Id,
190              p_CC_Budget_Code_Comb_Id,
191              p_CC_Acct_Entered_Amt,
192              p_CC_Acct_Func_Amt,
193              p_CC_Acct_Desc,
194              p_CC_Acct_Billed_Amt,
195              p_CC_Acct_Unbilled_Amt,
196              p_CC_Acct_Taxable_Flag,
197              p_Tax_Id,
198              p_CC_Acct_Encmbrnc_Amt,
199              p_CC_Acct_Encmbrnc_Date,
200              p_CC_Acct_Encmbrnc_Status,
201              p_Project_Id,
202              p_Task_Id,
203              p_Expenditure_Type,
204              p_Expenditure_Org_Id,
205              p_Expenditure_Item_Date,
206              p_Last_Update_Date,
207              p_Last_Updated_By,
208              p_Last_Update_Login,
209              p_Creation_Date,
210              p_Created_By,
211              p_Attribute1,
212              p_Attribute2,
213              p_Attribute3,
214              p_Attribute4,
215              p_Attribute5,
216              p_Attribute6,
217              p_Attribute7,
218              p_Attribute8,
219              p_Attribute9,
220              p_Attribute10,
221              p_Attribute11,
222              p_Attribute12,
223              p_Attribute13,
224              p_Attribute14,
225              p_Attribute15,
226              p_Context,
227              p_cc_func_withheld_amt,
228              p_cc_ent_withheld_amt,
229              P_Tax_Classif_Code
230             );
231 
232 -- -------------------------------------------------------------------
233 -- Obtain the ROWID of the record that was just inserted to return
234 -- to the caller.
235 -- -------------------------------------------------------------------
236    OPEN C_acct_hst_row_id ;
237    FETCH C_acct_hst_row_id
238     INTO p_Rowid;
239 
240 -- -------------------------------------------------------------------
241 -- If no ROWID can be obtained then exit the procedure with a failure
242 -- -------------------------------------------------------------------
243    IF (C_acct_hst_row_id %NOTFOUND) then
244       RAISE FND_API.G_EXC_ERROR ;
245    END IF;
246 
247    CLOSE C_acct_hst_row_id ;
248 
249 -- ------------------------------------------------------------------
250 -- Obtain the application ID for IGC to be used for the MRC check
251 -- being enabled for this set of books.
252 -- ------------------------------------------------------------------
253    OPEN c_igc_app_id;
254    FETCH c_igc_app_id
255     INTO l_Application_Id;
256 
257 -- ------------------------------------------------------------------
258 -- If the application ID can not be attained then exit the procedure
259 -- ------------------------------------------------------------------
260    IF (c_igc_app_id%NOTFOUND) THEN
261       RAISE FND_API.G_EXC_ERROR;
262    END IF;
263 
264    CLOSE c_igc_app_id;
265 
266 -- ------------------------------------------------------------------
267 -- Obtain the set of books, org id, and the conversion date for the
268 -- CC Header record that the account line is associated to.
269 -- ------------------------------------------------------------------
270    OPEN c_cc_info;
271    FETCH c_cc_info
272     INTO l_Set_Of_Books_Id,
273          l_Org_Id,
274          l_Conversion_Date;
275 
276 -- ------------------------------------------------------------------
277 -- Exit procedure if the values can not be obtained.
278 -- ------------------------------------------------------------------
279    IF (c_cc_info%NOTFOUND) THEN
280       RAISE FND_API.G_EXC_ERROR;
281    END IF;
282 
283    CLOSE c_cc_info;
284 
285 -- ------------------------------------------------------------------
286 -- If the conversion date is NULL then fill in the value with the
287 -- current system date.
288 -- ------------------------------------------------------------------
289 
290    gl_mc_info.mrc_enabled(
291                         l_Set_Of_Books_Id,
292                          101, /*--l_Application_Id, commented for MRC uptake*/
293                         l_Org_Id,
294                         Null,
295                         l_MRC_Enabled);
296 
297 -- ------------------------------------------------------------------
298 -- If MRC is enabled for this set of books being used then call the
299 -- handler to insert all reporting set of books into the MRC
300 -- table for the account line inserted.
301 -- ------------------------------------------------------------------
302    IF (l_MRC_Enabled = 'Y') THEN
303 
304 -- ------------------------------------------------------------------
305 -- MRC Handler For IGC_CC_ACCT_LINE_HISTORY to insert all MRC records for
306 -- the reporting set of books for this PRIMARY set of books.
307 -- ------------------------------------------------------------------
308       IGC_CC_MC_MAIN_HST_PVT.get_rsobs_ACCT_LINES (
309                                  l_api_version,
310                                  FND_API.G_FALSE,
311                                  FND_API.G_FALSE,
312                                  p_validation_level,
313                                  l_return_status,
314                                  X_msg_count,
315                                  X_msg_data,
316                                  p_CC_Acct_Line_Id,
317                                  l_Set_Of_Books_Id,
318                                   101, /*--l_Application_Id, commented for MRC uptake*/
319                                  l_org_Id,
320                                  NVL(l_Conversion_Date,sysdate),
321                                  p_CC_Acct_Func_Amt,
322                                  p_CC_Acct_Encmbrnc_Amt,
323                                  p_CC_Acct_Version_Num,
324                                  p_CC_Acct_Version_Action,
325                                  p_cc_Func_Withheld_Amt
326                                 );
327 
328 -- ------------------------------------------------------------------
329 -- Make sure that the insertion was a success
330 -- ------------------------------------------------------------------
331       IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
332          RAISE FND_API.G_EXC_ERROR;
333       END IF;
334 
335    END IF;
336 
337 -- -----------------------------------------------------------------
338 -- If the records are to be commited in this procedure then
339 -- commit the work now otherwise wait for the caller to do COMMIT.
340 -- -----------------------------------------------------------------
341 
342    IF FND_API.To_Boolean ( p_commit ) THEN
343       COMMIT WORK;
344    END IF;
345 
346    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
347                               p_data  => X_msg_data );
348    RETURN;
349 
350 EXCEPTION
351 
352    WHEN FND_API.G_EXC_ERROR THEN
353 
354     ROLLBACK TO Insert_Row_Pvt ;
355     X_return_status := FND_API.G_RET_STS_ERROR;
356     IF (C_acct_hst_row_id %ISOPEN) THEN
357        CLOSE C_acct_hst_row_id ;
358     END IF;
359     IF (c_igc_app_id%ISOPEN) THEN
360        CLOSE c_igc_app_id;
361     END IF;
362     IF (c_cc_info%ISOPEN) THEN
363        CLOSE c_cc_info;
364     END IF;
365 
366     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
367                                 p_data  => X_msg_data );
368 
369    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
370 
371     ROLLBACK TO Insert_Row_Pvt ;
372     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
373     IF (C_acct_hst_row_id %ISOPEN) THEN
374        CLOSE C_acct_hst_row_id ;
375     END IF;
376     IF (c_igc_app_id%ISOPEN) THEN
377        CLOSE c_igc_app_id;
378     END IF;
379     IF (c_cc_info%ISOPEN) THEN
380        CLOSE c_cc_info;
381     END IF;
382 
383     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
384                                 p_data  => X_msg_data );
385 
386   WHEN OTHERS THEN
387 
388     ROLLBACK TO Insert_Row_Pvt ;
389     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
390     IF (C_acct_hst_row_id %ISOPEN) THEN
391        CLOSE C_acct_hst_row_id ;
392     END IF;
393     IF (c_igc_app_id%ISOPEN) THEN
394        CLOSE c_igc_app_id;
395     END IF;
396     IF (c_cc_info%ISOPEN) THEN
397        CLOSE c_cc_info;
398     END IF;
399 
400     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
401       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
402                                 l_api_name);
403     END if;
404 
405     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
406                                 p_data  => X_msg_data );
407 
408 END Insert_Row;
409 
410 
411 
412 /* ================================================================================
413                          PROCEDURE Lock_Row
414    ===============================================================================*/
415 
416 
417 PROCEDURE Lock_Row(
418      p_api_version                 IN  NUMBER,
419      p_init_msg_list               IN  VARCHAR2 := FND_API.G_FALSE,
420      p_commit                      IN  VARCHAR2 := FND_API.G_FALSE,
421      p_validation_level            IN  NUMBER   := FND_API.G_VALID_LEVEL_FULL,
422      X_return_status               OUT NOCOPY VARCHAR2,
423      X_msg_count                   OUT NOCOPY NUMBER,
424      X_msg_data                    OUT NOCOPY VARCHAR2,
425      p_Rowid                    IN OUT NOCOPY VARCHAR2,
426      p_CC_Acct_Line_Id                 IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Id%TYPE,
427      p_CC_Header_Id                    IGC_CC_ACCT_LINE_HISTORY.CC_Header_Id%TYPE,
428      p_Parent_Header_Id                IGC_CC_ACCT_LINE_HISTORY.Parent_Header_Id%TYPE,
429      p_Parent_Acct_Line_Id             IGC_CC_ACCT_LINE_HISTORY.Parent_Acct_Line_Id%TYPE,
430      p_CC_Acct_Line_Num                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Num%TYPE,
431      p_CC_Acct_Version_Num             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Num%TYPE,
432      p_CC_Acct_Version_Action          IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Action%TYPE,
433      p_CC_Charge_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Charge_Code_Combination_Id%TYPE,
434      p_CC_Budget_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Budget_Code_Combination_Id%TYPE,
435      p_CC_Acct_Entered_Amt             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Entered_Amt%TYPE,
436      p_CC_Acct_Func_Amt                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Func_Amt%TYPE,
437      p_CC_Acct_Desc                    IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Desc%TYPE,
438      p_CC_Acct_Billed_Amt              IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Billed_Amt%TYPE,
439      p_CC_Acct_Unbilled_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Unbilled_Amt%TYPE,
440      p_CC_Acct_Taxable_Flag            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Taxable_Flag%TYPE,
441      p_Tax_Id                          IGC_CC_ACCT_LINE_HISTORY.Tax_Id%TYPE,
442      p_CC_Acct_Encmbrnc_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Amt%TYPE,
443      p_CC_Acct_Encmbrnc_Date           IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Date%TYPE,
444      p_CC_Acct_Encmbrnc_Status         IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Status%TYPE,
445      p_Project_Id                      IGC_CC_ACCT_LINE_HISTORY.Project_Id%TYPE,
446      p_Task_Id                         IGC_CC_ACCT_LINE_HISTORY.Task_Id%TYPE,
447      p_Expenditure_Type                IGC_CC_ACCT_LINE_HISTORY.Expenditure_Type%TYPE,
448      p_Expenditure_Org_Id              IGC_CC_ACCT_LINE_HISTORY.Expenditure_Org_Id%TYPE,
449      p_Expenditure_Item_Date           IGC_CC_ACCT_LINE_HISTORY.Expenditure_Item_Date%TYPE,
450      p_Last_Update_Date                IGC_CC_ACCT_LINE_HISTORY.Last_Update_Date%TYPE,
451      p_Last_Updated_By                 IGC_CC_ACCT_LINE_HISTORY.Last_Updated_By%TYPE,
452      p_Last_Update_Login               IGC_CC_ACCT_LINE_HISTORY.Last_Update_Login%TYPE,
453      p_Creation_Date                   IGC_CC_ACCT_LINE_HISTORY.Creation_Date%TYPE,
454      p_Created_By                      IGC_CC_ACCT_LINE_HISTORY.Created_By%TYPE,
455      p_Attribute1                      IGC_CC_ACCT_LINE_HISTORY.Attribute1%TYPE,
456      p_Attribute2                      IGC_CC_ACCT_LINE_HISTORY.Attribute2%TYPE,
457      p_Attribute3                      IGC_CC_ACCT_LINE_HISTORY.Attribute3%TYPE,
458      p_Attribute4                      IGC_CC_ACCT_LINE_HISTORY.Attribute4%TYPE,
459      p_Attribute5                      IGC_CC_ACCT_LINE_HISTORY.Attribute5%TYPE,
460      p_Attribute6                      IGC_CC_ACCT_LINE_HISTORY.Attribute6%TYPE,
461      p_Attribute7                      IGC_CC_ACCT_LINE_HISTORY.Attribute7%TYPE,
462      p_Attribute8                      IGC_CC_ACCT_LINE_HISTORY.Attribute8%TYPE,
463      p_Attribute9                      IGC_CC_ACCT_LINE_HISTORY.Attribute9%TYPE,
464      p_Attribute10                     IGC_CC_ACCT_LINE_HISTORY.Attribute10%TYPE,
465      p_Attribute11                     IGC_CC_ACCT_LINE_HISTORY.Attribute11%TYPE,
466      p_Attribute12                     IGC_CC_ACCT_LINE_HISTORY.Attribute12%TYPE,
467      p_Attribute13                     IGC_CC_ACCT_LINE_HISTORY.Attribute13%TYPE,
468      p_Attribute14                     IGC_CC_ACCT_LINE_HISTORY.Attribute14%TYPE,
469      p_Attribute15                     IGC_CC_ACCT_LINE_HISTORY.Attribute15%TYPE,
470      p_Context                         IGC_CC_ACCT_LINE_HISTORY.Context%TYPE,
471      p_cc_func_withheld_amt            IGC_CC_ACCT_LINE_HISTORY.cc_func_withheld_amt%TYPE,
472      p_cc_ent_withheld_amt             IGC_CC_ACCT_LINE_HISTORY.cc_ent_withheld_amt%TYPE,
473      X_row_locked                  OUT NOCOPY VARCHAR2,
474      G_FLAG                     IN OUT NOCOPY VARCHAR2,
475      P_Tax_Classif_Code                IGC_CC_ACCT_LINE_HISTORY.Tax_Classif_Code%TYPE
476 ) IS
477 
478    l_api_name            CONSTANT VARCHAR2(30)   := 'Lock_Row';
479    l_api_version         CONSTANT NUMBER         :=  1.0;
480    Counter NUMBER;
481 
482    CURSOR C IS
483      SELECT *
484        FROM IGC_CC_ACCT_LINE_HISTORY
485       WHERE Rowid = p_Rowid
486         FOR UPDATE of CC_Acct_Line_Id NOWAIT;
487 
488     Recinfo C%ROWTYPE;
489 
490 BEGIN
491 
492    SAVEPOINT Lock_Row_Pvt ;
493 
494    IF NOT FND_API.Compatible_API_Call ( l_api_version,
495                                         p_api_version,
496                                         l_api_name,
497                                         G_PKG_NAME )
498    THEN
499       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
500    END IF;
501 
502 
503    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
504       FND_MSG_PUB.initialize ;
505    END IF;
506 
507    X_return_status := FND_API.G_RET_STS_SUCCESS ;
508    X_row_locked    := FND_API.G_TRUE ;
509 
510    OPEN C;
511    FETCH C
512     INTO Recinfo;
513 
514    IF (C%NOTFOUND) THEN
515       CLOSE C;
516       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
517       FND_MSG_PUB.Add;
518       RAISE FND_API.G_EXC_ERROR ;
519    END IF;
520 
521    CLOSE C;
522    IF (
523                (Recinfo.CC_Acct_Line_Id =  p_CC_Acct_Line_Id)
524            AND (Recinfo.CC_Header_Id =  p_CC_Header_Id)
525            AND (Recinfo.CC_Acct_Line_Num =  p_CC_Acct_Line_Num)
526            AND (Recinfo.CC_Acct_Version_Num =  p_CC_Acct_Version_Num)
527            AND (Recinfo.CC_Acct_Version_Action =  p_CC_Acct_Version_Action)
528            AND (   (Recinfo.Parent_Acct_Line_Id =  p_Parent_Acct_Line_Id)
529                 OR (    (Recinfo.Parent_Acct_Line_Id IS NULL)
530                     AND (p_Parent_Acct_Line_Id IS NULL)))
531            AND (   (Recinfo.Parent_Header_Id =  p_Parent_Header_Id)
532                 OR (    (Recinfo.Parent_Header_Id IS NULL)
533                     AND (p_Parent_Header_Id IS NULL)))
534            AND (   (Recinfo.CC_Charge_Code_Combination_Id =  p_CC_Charge_Code_Comb_Id)
535                 OR (    (Recinfo.CC_Charge_Code_Combination_Id IS NULL)
536                     AND (p_CC_Charge_Code_Comb_Id IS NULL)))
537            AND (   (Recinfo.CC_Budget_Code_Combination_Id =  p_CC_Budget_Code_Comb_Id)
538                 OR (    (Recinfo.CC_Budget_Code_Combination_Id IS NULL)
539                     AND (p_CC_Budget_Code_Comb_Id IS NULL)))
540            AND (   (Recinfo.CC_Acct_Entered_Amt =  p_CC_Acct_Entered_Amt)
541                 OR (    (Recinfo.CC_Acct_Entered_Amt IS NULL)
542                     AND (p_CC_Acct_Entered_Amt IS NULL)))
543            AND (   (Recinfo.CC_Acct_Func_Amt =  p_CC_Acct_Func_Amt)
544                 OR (    (Recinfo.CC_Acct_Func_Amt IS NULL)
545                     AND (p_CC_Acct_Func_Amt IS NULL)))
546            AND (   (Recinfo.CC_Acct_Desc =  p_CC_Acct_Desc )
547                 OR (    (Recinfo.CC_Acct_Desc  IS NULL)
548                     AND (p_CC_Acct_Desc IS NULL)))
549            AND (   (Recinfo.CC_Acct_Billed_Amt =  p_CC_Acct_Billed_Amt)
550                 OR (    (Recinfo.CC_Acct_Billed_Amt IS NULL)
551                     AND (p_CC_Acct_Billed_Amt IS NULL)))
552            AND (   (Recinfo.CC_Acct_UnBilled_Amt =  p_CC_Acct_UnBilled_Amt)
553                 OR (    (Recinfo.CC_Acct_UnBilled_Amt IS NULL)
554                     AND (p_CC_Acct_UnBilled_Amt IS NULL)))
555            AND (   (Recinfo.CC_Acct_Taxable_Flag =  p_CC_Acct_Taxable_Flag)
556                 OR (    (Recinfo.CC_Acct_Taxable_Flag IS NULL)
557                     AND (p_CC_Acct_Taxable_Flag IS NULL)))
558            AND (   (Recinfo.Tax_Id =  p_Tax_Id )
559                 OR (    (Recinfo.Tax_Id  IS NULL)
560                     AND (p_Tax_Id IS NULL)))
561            AND (   (Recinfo.CC_Acct_Encmbrnc_Amt =  p_CC_Acct_Encmbrnc_Amt)
562                 OR (    (Recinfo.CC_Acct_Encmbrnc_Amt IS NULL)
563                     AND (p_CC_Acct_Encmbrnc_Amt IS NULL)))
564            AND (   (Recinfo.CC_Acct_Encmbrnc_Date = p_CC_Acct_Encmbrnc_Date)
565                 OR (    (Recinfo.CC_Acct_Encmbrnc_Date IS NULL)
566                     AND (p_CC_Acct_Encmbrnc_Date IS NULL)))
567            AND (   (Recinfo.CC_Acct_Encmbrnc_Status=  p_CC_Acct_Encmbrnc_Status)
568                 OR (    (Recinfo.CC_Acct_Encmbrnc_Status IS NULL)
569                     AND (p_CC_Acct_Encmbrnc_Status IS NULL)))
570            AND (   (Recinfo.Project_Id =  p_Project_Id)
571                 OR (    (Recinfo.Project_Id IS NULL)
572                     AND (p_Project_Id IS NULL)))
573            AND (   (Recinfo.Task_Id =  p_Task_Id)
574                 OR (    (Recinfo.Task_Id IS NULL)
575                     AND (p_Task_Id IS NULL)))
576            AND (   (Recinfo.Expenditure_Type =  p_Expenditure_Type)
577                 OR (    (Recinfo.Expenditure_Type IS NULL)
578                     AND (p_Expenditure_Type IS NULL)))
579            AND (   (Recinfo.Expenditure_Org_Id =  p_Expenditure_Org_Id)
580                 OR (    (Recinfo.Expenditure_Org_Id IS NULL)
581                     AND (p_Expenditure_Org_Id IS NULL)))
582            AND (   (Recinfo.Expenditure_Item_Date =  p_Expenditure_Item_Date)
583                 OR (    (Recinfo.Expenditure_Item_Date IS NULL)
584                     AND (p_Expenditure_Item_Date IS NULL)))
585            AND (   (Recinfo.Attribute1 =  p_Attribute1)
586                 OR (    (Recinfo.Attribute1 IS NULL)
587                     AND (p_Attribute1 IS NULL)))
588            AND (   (Recinfo.Attribute2 =  p_Attribute2)
589                 OR (    (Recinfo.Attribute2 IS NULL)
590                     AND (p_Attribute2 IS NULL)))
591            AND (   (Recinfo.Attribute3 =  p_Attribute3)
592                 OR (    (Recinfo.Attribute3 IS NULL)
593                     AND (p_Attribute3 IS NULL)))
594            AND (   (Recinfo.Attribute4 =  p_Attribute4)
595                 OR (    (Recinfo.Attribute4 IS NULL)
596                     AND (p_Attribute4 IS NULL)))
597            AND (   (Recinfo.Attribute5 =  p_Attribute5)
598                 OR (    (Recinfo.Attribute5 IS NULL)
599                     AND (p_Attribute5 IS NULL)))
600            AND (   (Recinfo.Attribute6 =  p_Attribute6)
601                 OR (    (Recinfo.Attribute6 IS NULL)
602                     AND (p_Attribute6 IS NULL)))
603            AND (   (Recinfo.Attribute7 =  p_Attribute7)
604                 OR (    (Recinfo.Attribute7 IS NULL)
605                     AND (p_Attribute7 IS NULL)))
606            AND (   (Recinfo.Attribute8 =  p_Attribute8)
607                 OR (    (Recinfo.Attribute8 IS NULL)
608                     AND (p_Attribute8 IS NULL)))
609            AND (   (Recinfo.Attribute9 =  p_Attribute9)
610                 OR (    (Recinfo.Attribute9 IS NULL)
611                     AND (p_Attribute9 IS NULL)))
612            AND (   (Recinfo.Attribute10 =  p_Attribute10)
613                 OR (    (Recinfo.Attribute10 IS NULL)
614                     AND (p_Attribute10 IS NULL)))
615            AND (   (Recinfo.Attribute11 =  p_Attribute11)
616                 OR (    (Recinfo.Attribute11 IS NULL)
617                     AND (p_Attribute11 IS NULL)))
618            AND (   (Recinfo.Attribute12 =  p_Attribute12)
619                 OR (    (Recinfo.Attribute12 IS NULL)
620                     AND (p_Attribute12 IS NULL)))
621            AND (   (Recinfo.Attribute13 =  p_Attribute13)
622                 OR (    (Recinfo.Attribute13 IS NULL)
623                     AND (p_Attribute13 IS NULL)))
624            AND (   (Recinfo.Attribute14 =  p_Attribute14)
625                 OR (    (Recinfo.Attribute14 IS NULL)
626                     AND (p_Attribute14 IS NULL)))
627            AND (   (Recinfo.Attribute15 =  p_Attribute15)
628                 OR (    (Recinfo.Attribute15 IS NULL)
629                     AND (p_Attribute15 IS NULL)))
630            AND (   (Recinfo.Context =  p_Context)
631                 OR (    (Recinfo.Context IS NULL)
632                     AND (p_Context IS NULL)))
633            AND (   (Recinfo.CC_Func_Withheld_amt =  p_CC_Func_Withheld_amt)
634                 OR (    (Recinfo.CC_Func_Withheld_amt IS NULL)
635                     AND (p_CC_Func_Withheld_amt IS NULL)))
636            AND (   (Recinfo.CC_Ent_Withheld_Amt =  p_CC_Ent_Withheld_Amt)
637                 OR (    (Recinfo.CC_Ent_Withheld_Amt IS NULL)
638                     AND (p_CC_Ent_Withheld_Amt IS NULL)))
639            AND (   (Recinfo.Tax_Classif_Code =  P_Tax_Classif_Code)
640                 OR (    (Recinfo.Tax_Classif_Code IS NULL)
641                     AND (P_Tax_Classif_Code IS NULL)))
642       ) THEN
643 
644       NULL;
645 
646    ELSE
647 
648       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
649       FND_MSG_PUB.Add;
650       RAISE FND_API.G_EXC_ERROR ;
651    END IF;
652 
653    IF FND_API.To_Boolean ( p_commit ) THEN
654       COMMIT WORK;
655    END iF;
656 
657    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
658                                p_data  => X_msg_data );
659 
660 EXCEPTION
661 
662   WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
663 
664     ROLLBACK TO Lock_Row_Pvt ;
665     X_row_locked := FND_API.G_FALSE;
666     X_return_status := FND_API.G_RET_STS_ERROR;
667     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
668                                 p_data  => X_msg_data );
669 
670   WHEN FND_API.G_EXC_ERROR THEN
671 
672     ROLLBACK TO Lock_Row_Pvt ;
673     X_return_status := FND_API.G_RET_STS_ERROR;
674     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
675                                 p_data  => X_msg_data );
676 
677   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
678 
679     ROLLBACK TO Lock_Row_Pvt ;
680     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
681     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
682                                 p_data  => X_msg_data );
683 
684   WHEN OTHERS THEN
685 
686     ROLLBACK TO Lock_Row_Pvt ;
687     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
688 
689     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
690       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
691                                 l_api_name);
692     END if;
693 
694     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
695                                 p_data  => X_msg_data );
696 
697 END Lock_Row;
698 
699 
700 /* ================================================================================
701                          PROCEDURE Update_Row
702    ===============================================================================*/
703 
704 PROCEDURE Update_Row(
705    p_api_version                 IN  NUMBER,
706    p_init_msg_list               IN  VARCHAR2 := FND_API.G_FALSE,
707    p_commit                      IN  VARCHAR2 := FND_API.G_FALSE,
708    p_validation_level            IN  NUMBER   := FND_API.G_VALID_LEVEL_FULL,
709    X_return_status               OUT NOCOPY VARCHAR2,
710    X_msg_count                   OUT NOCOPY NUMBER,
711    X_msg_data                    OUT NOCOPY VARCHAR2,
712    p_Rowid                    IN OUT NOCOPY VARCHAR2,
713    p_CC_Acct_Line_Id                 IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Id%TYPE,
714    p_CC_Header_Id                    IGC_CC_ACCT_LINE_HISTORY.CC_Header_Id%TYPE,
715    p_Parent_Header_Id                IGC_CC_ACCT_LINE_HISTORY.Parent_Header_Id%TYPE,
716    p_Parent_Acct_Line_Id             IGC_CC_ACCT_LINE_HISTORY.Parent_Acct_Line_Id%TYPE,
717    p_CC_Acct_Line_Num                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Line_Num%TYPE,
718    p_CC_Acct_Version_Num             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Num%TYPE,
719    p_CC_Acct_Version_Action          IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Version_Action%TYPE,
720    p_CC_Charge_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Charge_Code_Combination_Id%TYPE,
721    p_CC_Budget_Code_Comb_Id          IGC_CC_ACCT_LINE_HISTORY.CC_Budget_Code_Combination_Id%TYPE,
722    p_CC_Acct_Entered_Amt             IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Entered_Amt%TYPE,
723    p_CC_Acct_Func_Amt                IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Func_Amt%TYPE,
724    p_CC_Acct_Desc                    IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Desc%TYPE,
725    p_CC_Acct_Billed_Amt              IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Billed_Amt%TYPE,
726    p_CC_Acct_Unbilled_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Unbilled_Amt%TYPE,
727    p_CC_Acct_Taxable_Flag            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Taxable_Flag%TYPE,
728    p_Tax_Id                          IGC_CC_ACCT_LINE_HISTORY.Tax_Id%TYPE,
729    p_CC_Acct_Encmbrnc_Amt            IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Amt%TYPE,
730    p_CC_Acct_Encmbrnc_Date           IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Date%TYPE,
731    p_CC_Acct_Encmbrnc_Status         IGC_CC_ACCT_LINE_HISTORY.CC_Acct_Encmbrnc_Status%TYPE,
732    p_Project_Id                      IGC_CC_ACCT_LINE_HISTORY.Project_Id%TYPE,
733    p_Task_Id                         IGC_CC_ACCT_LINE_HISTORY.Task_Id%TYPE,
734    p_Expenditure_Type                IGC_CC_ACCT_LINE_HISTORY.Expenditure_Type%TYPE,
735    p_Expenditure_Org_Id              IGC_CC_ACCT_LINE_HISTORY.Expenditure_Org_Id%TYPE,
736    p_Expenditure_Item_Date           IGC_CC_ACCT_LINE_HISTORY.Expenditure_Item_Date%TYPE,
737    p_Last_Update_Date                IGC_CC_ACCT_LINE_HISTORY.Last_Update_Date%TYPE,
738    p_Last_Updated_By                 IGC_CC_ACCT_LINE_HISTORY.Last_Updated_By%TYPE,
739    p_Last_Update_Login               IGC_CC_ACCT_LINE_HISTORY.Last_Update_Login%TYPE,
740    p_Creation_Date                   IGC_CC_ACCT_LINE_HISTORY.Creation_Date%TYPE,
741    p_Created_By                      IGC_CC_ACCT_LINE_HISTORY.Created_By%TYPE,
742    p_Attribute1                      IGC_CC_ACCT_LINE_HISTORY.Attribute1%TYPE,
743    p_Attribute2                      IGC_CC_ACCT_LINE_HISTORY.Attribute2%TYPE,
744    p_Attribute3                      IGC_CC_ACCT_LINE_HISTORY.Attribute3%TYPE,
745    p_Attribute4                      IGC_CC_ACCT_LINE_HISTORY.Attribute4%TYPE,
746    p_Attribute5                      IGC_CC_ACCT_LINE_HISTORY.Attribute5%TYPE,
747    p_Attribute6                      IGC_CC_ACCT_LINE_HISTORY.Attribute6%TYPE,
748    p_Attribute7                      IGC_CC_ACCT_LINE_HISTORY.Attribute7%TYPE,
749    p_Attribute8                      IGC_CC_ACCT_LINE_HISTORY.Attribute8%TYPE,
750    p_Attribute9                      IGC_CC_ACCT_LINE_HISTORY.Attribute9%TYPE,
751    p_Attribute10                     IGC_CC_ACCT_LINE_HISTORY.Attribute10%TYPE,
752    p_Attribute11                     IGC_CC_ACCT_LINE_HISTORY.Attribute11%TYPE,
753    p_Attribute12                     IGC_CC_ACCT_LINE_HISTORY.Attribute12%TYPE,
754    p_Attribute13                     IGC_CC_ACCT_LINE_HISTORY.Attribute13%TYPE,
755    p_Attribute14                     IGC_CC_ACCT_LINE_HISTORY.Attribute14%TYPE,
756    p_Attribute15                     IGC_CC_ACCT_LINE_HISTORY.Attribute15%TYPE,
757    p_Context                         IGC_CC_ACCT_LINE_HISTORY.Context%TYPE,
758    p_cc_func_withheld_amt            IGC_CC_ACCT_LINE_HISTORY.cc_func_withheld_amt%TYPE,
759    p_cc_ent_withheld_amt             IGC_CC_ACCT_LINE_HISTORY.cc_ent_withheld_amt%TYPE,
760    G_FLAG                     IN OUT NOCOPY VARCHAR2,
761    P_Tax_Classif_Code                IGC_CC_ACCT_LINE_HISTORY.Tax_Classif_Code%TYPE
762 ) IS
763 
764    l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
765    l_api_version         CONSTANT NUMBER         :=  1.0;
766 
767 BEGIN
768 
769    SAVEPOINT Update_Row_Pvt ;
770 
771    IF NOT FND_API.Compatible_API_Call ( l_api_version,
772                                         p_api_version,
773                                         l_api_name,
774                                         G_PKG_NAME )
775    THEN
776       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
777    END IF;
778 
779 
780    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
781       FND_MSG_PUB.initialize ;
782    END IF;
783 
784    X_return_status := FND_API.G_RET_STS_SUCCESS ;
785 
786    UPDATE IGC_CC_ACCT_LINE_HISTORY
787       SET CC_Acct_Line_Id               =  p_CC_Acct_Line_Id,
788           CC_Header_Id                  =  p_CC_Header_Id,
789           Parent_Header_Id              =  p_Parent_Header_Id,
790           Parent_Acct_Line_Id           =  p_Parent_Acct_Line_Id,
791           CC_Acct_Line_Num              =  p_CC_Acct_Line_Num,
792           CC_Acct_Version_Num           =  p_CC_Acct_Version_Num,
793           CC_Acct_Version_Action        =  p_CC_Acct_Version_Action,
794           CC_Charge_Code_Combination_Id =  p_CC_Charge_Code_Comb_Id,
795           CC_Budget_Code_Combination_Id =  p_CC_Budget_Code_Comb_Id,
796           CC_Acct_Entered_Amt           =  p_CC_Acct_Entered_Amt,
797           CC_Acct_Func_Amt              =  p_CC_Acct_Func_Amt,
798           CC_Acct_Desc                  =  p_CC_Acct_Desc,
799           CC_Acct_Billed_Amt            =  p_CC_Acct_Billed_Amt,
800           CC_Acct_Unbilled_Amt          =  p_CC_Acct_Unbilled_Amt,
801           CC_Acct_Taxable_Flag          =  p_CC_Acct_Taxable_Flag,
802           Tax_Id                        =  p_Tax_Id,
803           CC_Acct_Encmbrnc_Amt          =  p_CC_Acct_Encmbrnc_Amt,
804           CC_Acct_Encmbrnc_Date         =  p_CC_Acct_Encmbrnc_Date,
805           CC_Acct_Encmbrnc_Status       =  p_CC_Acct_Encmbrnc_Status,
806           Project_Id                    =  p_Project_Id,
807           Task_Id                       =  p_Task_Id,
808           Expenditure_Type              =  p_Expenditure_Type,
809           Expenditure_Org_Id            =  p_Expenditure_Org_Id,
810           Expenditure_Item_Date         =  p_Expenditure_Item_Date,
811           Last_Update_Date              =  p_Last_Update_Date,
812           Last_Updated_By               =  p_Last_Updated_By,
813           Last_Update_Login             =  p_Last_Update_Login,
814           Creation_Date                 =  p_Creation_Date,
815           Created_By                    =  p_Created_By,
816           Attribute1                    =  p_Attribute1,
817           Attribute2                    =  p_Attribute2,
818           Attribute3                    =  p_Attribute3,
819           Attribute4                    =  p_Attribute4,
820           Attribute5                    =  p_Attribute5,
821           Attribute6                    =  p_Attribute6,
822           Attribute7                    =  p_Attribute7,
823           Attribute8                    =  p_Attribute8,
824           Attribute9                    =  p_Attribute9,
825           Attribute10                   =  p_Attribute10,
826           Attribute11                   =  p_Attribute11,
827           Attribute12                   =  p_Attribute12,
828           Attribute13                   =  p_Attribute13,
829           Attribute14                   =  p_Attribute14,
830           Attribute15                   =  p_Attribute15,
831           Context                       =  p_Context ,
832           cc_func_withheld_amt          =  p_cc_func_withheld_amt,
833           cc_ent_withheld_amt           =  p_cc_ent_withheld_amt,
834           Tax_Classif_Code              =  P_Tax_Classif_Code
835     WHERE rowid = p_Rowid;
836 
837    IF (SQL%NOTFOUND) THEN
838      RAISE NO_DATA_FOUND;
839    END IF;
840 
841    IF FND_API.To_Boolean ( p_commit ) THEN
842       COMMIT WORK;
843    END iF;
844 
845    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
846                                p_data  => X_msg_data );
847 
848 EXCEPTION
849 
850   WHEN FND_API.G_EXC_ERROR THEN
851 
852     ROLLBACK TO Update_Row_Pvt ;
853     X_return_status := FND_API.G_RET_STS_ERROR;
854     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
855                                 p_data  => X_msg_data );
856 
857   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
858 
859     ROLLBACK TO Update_Row_Pvt ;
860     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
861     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
862                                 p_data  => X_msg_data );
863 
864   WHEN OTHERS THEN
865 
866     ROLLBACK TO Update_Row_Pvt ;
867     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
868 
869     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
870       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
871                                 l_api_name);
872     END if;
873 
874     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
875                                 p_data  => X_msg_data );
876 
877   END Update_Row;
878 
879 
880 /* ================================================================================
881                          PROCEDURE Delete_Row
882    ===============================================================================*/
883 
884 PROCEDURE Delete_Row(
885    p_api_version      IN   NUMBER,
886    p_init_msg_list    IN   VARCHAR2 := FND_API.G_FALSE,
887    p_commit           IN   VARCHAR2 := FND_API.G_FALSE,
888    p_validation_level IN   NUMBER   := FND_API.G_VALID_LEVEL_FULL,
889    X_return_status    OUT NOCOPY  VARCHAR2,
890    X_msg_count        OUT NOCOPY  NUMBER,
891    X_msg_data         OUT NOCOPY  VARCHAR2,
892    p_Rowid                 VARCHAR2,
893    G_FLAG          IN OUT NOCOPY  VARCHAR2
894 ) IS
895 
896    l_api_name                CONSTANT VARCHAR2(30)   := 'Delete_Row';
897    l_api_version             CONSTANT NUMBER         :=  1.0;
898 
899    l_return_status           VARCHAR2(1) ;
900    l_msg_count               NUMBER ;
901    l_msg_data                VARCHAR2(2000) ;
902 
903 BEGIN
904 
905    SAVEPOINT Delete_Row_Pvt ;
906 
907    IF NOT FND_API.Compatible_API_Call ( l_api_version,
908                                         p_api_version,
909                                         l_api_name,
910                                         G_PKG_NAME )
911    THEN
912       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
913    END IF;
914 
915 
916    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
917       FND_MSG_PUB.initialize ;
918    END IF ;
919 
920    X_return_status := FND_API.G_RET_STS_SUCCESS ;
921 
922    DELETE
923      FROM IGC_CC_ACCT_LINE_HISTORY
924     WHERE rowid = p_Rowid;
925 
926    IF (SQL%NOTFOUND) THEN
927       RAISE NO_DATA_FOUND;
928    END IF;
929 
930    IF FND_API.To_Boolean ( p_commit ) THEN
931       COMMIT WORK;
932    END iF;
933 
934    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
935                                p_data  => X_msg_data );
936 
937 EXCEPTION
938 
939   WHEN FND_API.G_EXC_ERROR THEN
940 
941     ROLLBACK TO Delete_Row_Pvt ;
942     X_return_status := FND_API.G_RET_STS_ERROR;
943     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
944                                 p_data  => X_msg_data );
945 
946   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
947 
948     ROLLBACK TO Delete_Row_Pvt ;
949     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
950     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
951                                 p_data  => X_msg_data );
952 
953   WHEN OTHERS THEN
954 
955     ROLLBACK TO Delete_Row_Pvt ;
956     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
957 
958     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
959       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
960                                 l_api_name);
961     END if;
962 
963     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
964                                 p_data  => X_msg_data );
965 
966   END Delete_Row;
967 
968 
969 END IGC_CC_ACCT_LINE_HISTORY_PKG;