DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGC_CC_HEADERS_PKG

Source


1 PACKAGE BODY IGC_CC_HEADERS_PKG as
2 /* $Header: IGCCHDRB.pls 120.7.12000000.4 2007/10/19 06:44:14 smannava ship $  */
3 
4   G_PKG_NAME CONSTANT VARCHAR2(30):= 'IGC_CC_HEADERS_PKG';
5   g_debug_flag        VARCHAR2(1) := 'N' ;
6   g_debug_msg         VARCHAR2(10000) := NULL;
7 
8 --  g_debug_mode        VARCHAR2(1) := NVL(FND_PROFILE.VALUE('IGC_DEBUG_ENABLED'),'N');
9   g_debug_mode        VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
10 
11 --Variables for ATG Central logging
12   g_debug_level       NUMBER	:=	FND_LOG.G_CURRENT_RUNTIME_LEVEL;
13   g_state_level       NUMBER	:=	FND_LOG.LEVEL_STATEMENT;
14   g_proc_level        NUMBER	:=	FND_LOG.LEVEL_PROCEDURE;
15   g_event_level       NUMBER	:=	FND_LOG.LEVEL_EVENT;
16   g_excep_level       NUMBER	:=	FND_LOG.LEVEL_EXCEPTION;
17   g_error_level       NUMBER	:=	FND_LOG.LEVEL_ERROR;
18   g_unexp_level       NUMBER	:=	FND_LOG.LEVEL_UNEXPECTED;
19   g_path              VARCHAR2(255) := 'IGC.PLSQL.IGCCHDRB.IGC_CC_HEADERS_PKG.';
20 
21 -- Generic Procedure for putting out debug information
22 
23 /* ================================================================================
24                          PROCEDURE Output_Debug
25    ===============================================================================*/
26 
27 PROCEDURE Output_Debug (
28    p_path           IN VARCHAR2,
29    p_debug_msg      IN VARCHAR2
30 ) IS
31 
32 -- --------------------------------------------------------------------
33 -- Local Variables :
34 -- --------------------------------------------------------------------
35 /*   l_prod             VARCHAR2(3)           := 'IGC';
36    l_sub_comp         VARCHAR2(8)           := 'CC_HDRB';
37    l_profile_name     VARCHAR2(255)         := 'IGC_DEBUG_LOG_DIRECTORY';
38    l_Return_Status    VARCHAR2(1);*/
39    l_api_name         CONSTANT VARCHAR2(30) := 'Output_Debug';
40 
41 BEGIN
42 
43    /*IGC_MSGS_PKG.Put_Debug_Msg (p_debug_message    => p_debug_msg,
44                                p_profile_log_name => l_profile_name,
45                                p_prod             => l_prod,
46                                p_sub_comp         => l_sub_comp,
47                                p_filename_val     => NULL,
48                                x_Return_Status    => l_Return_Status
49                               );
50 
51    IF (l_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN
52       raise FND_API.G_EXC_ERROR;
53    END IF;*/
54 
55    IF(g_state_level >= g_debug_level) THEN
56         FND_LOG.STRING(g_state_level, p_path, p_debug_msg);
57    END IF;
58 
59    RETURN;
60 
61 -- --------------------------------------------------------------------
62 -- Exception handler section for the Output_Debug procedure.
63 -- --------------------------------------------------------------------
64 EXCEPTION
65 
66    /*WHEN FND_API.G_EXC_ERROR THEN
67        RETURN;*/
68 
69    WHEN OTHERS THEN
70        IF (FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)) THEN
71           FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, l_api_name);
72        END IF;
73        RETURN;
74 
75 END Output_Debug;
76 
77 /* ================================================================================
78            PROCEDURE Insert_Row Overloaded Procedure for CC_REF_NUM addition
79    ===============================================================================*/
80 
81 PROCEDURE Insert_Row(
82    p_api_version               IN    NUMBER,
83    p_init_msg_list             IN    VARCHAR2 := FND_API.G_FALSE,
84    p_commit                    IN    VARCHAR2 := FND_API.G_FALSE,
85    p_validation_level          IN    NUMBER   := FND_API.G_VALID_LEVEL_FULL,
86    X_return_status             OUT NOCOPY   VARCHAR2,
87    X_msg_count                 OUT NOCOPY   NUMBER,
88    X_msg_data                  OUT NOCOPY   VARCHAR2,
89    p_Rowid                  IN OUT NOCOPY   VARCHAR2,
90    p_CC_Header_Id                    IGC_CC_HEADERS_ALL.CC_Header_Id%TYPE,
91    p_Org_id                          IGC_CC_HEADERS_ALL.Org_id%TYPE,
92    p_CC_Type                         IGC_CC_HEADERS_ALL.CC_Type%TYPE,
93    p_CC_Num                          IGC_CC_HEADERS_ALL.CC_Num%TYPE,
94    p_CC_Ref_Num                      IGC_CC_HEADERS_ALL.CC_Ref_Num%TYPE,
95    p_CC_Version_num                  IGC_CC_HEADERS_ALL.CC_Version_num%TYPE,
96    p_Parent_Header_Id                IGC_CC_HEADERS_ALL.Parent_Header_Id%TYPE,
97    p_CC_State                        IGC_CC_HEADERS_ALL.CC_State%TYPE,
98    p_CC_ctrl_status                  IGC_CC_HEADERS_ALL.CC_ctrl_status%TYPE,
99    p_CC_Encmbrnc_Status              IGC_CC_HEADERS_ALL.CC_Encmbrnc_Status%TYPE,
100    p_CC_Apprvl_Status                IGC_CC_HEADERS_ALL.CC_Apprvl_Status%TYPE,
101    p_Vendor_Id                       IGC_CC_HEADERS_ALL.Vendor_Id%TYPE,
102    p_Vendor_Site_Id                  IGC_CC_HEADERS_ALL.Vendor_Site_Id%TYPE,
103    p_Vendor_Contact_Id               IGC_CC_HEADERS_ALL.Vendor_Contact_Id%TYPE,
104    p_Term_Id                         IGC_CC_HEADERS_ALL.Term_Id%TYPE,
105    p_Location_Id                     IGC_CC_HEADERS_ALL.Location_Id%TYPE,
106    p_Set_Of_Books_Id                 IGC_CC_HEADERS_ALL.Set_Of_Books_Id%TYPE,
107    p_CC_Acct_Date                    IGC_CC_HEADERS_ALL.CC_Acct_Date%TYPE,
108    p_CC_Desc                         IGC_CC_HEADERS_ALL.CC_Desc%TYPE,
109    p_CC_Start_Date                   IGC_CC_HEADERS_ALL.CC_Start_Date%TYPE,
110    p_CC_End_Date                     IGC_CC_HEADERS_ALL.CC_End_Date%TYPE,
111    p_CC_Owner_User_Id                IGC_CC_HEADERS_ALL.CC_Owner_User_Id%TYPE,
112    p_CC_Preparer_User_Id             IGC_CC_HEADERS_ALL.CC_Preparer_User_Id%TYPE,
113    p_Currency_Code                   IGC_CC_HEADERS_ALL.Currency_Code%TYPE,
114    p_Conversion_Type                 IGC_CC_HEADERS_ALL.Conversion_Type%TYPE,
115    p_Conversion_Date                 IGC_CC_HEADERS_ALL.Conversion_Date%TYPE,
116    p_Conversion_Rate                 IGC_CC_HEADERS_ALL.Conversion_Rate%TYPE,
117    p_Last_Update_Date                IGC_CC_HEADERS_ALL.Last_Update_Date%TYPE,
118    p_Last_Updated_By                 IGC_CC_HEADERS_ALL.Last_Updated_By%TYPE,
119    p_Last_Update_Login               IGC_CC_HEADERS_ALL.Last_Update_Login%TYPE,
120    p_Created_By                      IGC_CC_HEADERS_ALL.Created_By%TYPE,
121    p_Creation_Date                   IGC_CC_HEADERS_ALL.Creation_Date%TYPE,
122    p_CC_Current_User_Id              IGC_CC_HEADERS_ALL.CC_Current_User_Id%TYPE,
123    p_Wf_Item_Type                    IGC_CC_HEADERS_ALL.Wf_Item_Type%TYPE,
124    p_Wf_Item_Key                     IGC_CC_HEADERS_ALL.Wf_Item_Key%TYPE,
125    p_Attribute1                      IGC_CC_HEADERS_ALL.Attribute1%TYPE,
126    p_Attribute2                      IGC_CC_HEADERS_ALL.Attribute2%TYPE,
127    p_Attribute3                      IGC_CC_HEADERS_ALL.Attribute3%TYPE,
128    p_Attribute4                      IGC_CC_HEADERS_ALL.Attribute4%TYPE,
129    p_Attribute5                      IGC_CC_HEADERS_ALL.Attribute5%TYPE,
130    p_Attribute6                      IGC_CC_HEADERS_ALL.Attribute6%TYPE,
131    p_Attribute7                      IGC_CC_HEADERS_ALL.Attribute7%TYPE,
132    p_Attribute8                      IGC_CC_HEADERS_ALL.Attribute8%TYPE,
133    p_Attribute9                      IGC_CC_HEADERS_ALL.Attribute9%TYPE,
134    p_Attribute10                     IGC_CC_HEADERS_ALL.Attribute10%TYPE,
135    p_Attribute11                     IGC_CC_HEADERS_ALL.Attribute11%TYPE,
136    p_Attribute12                     IGC_CC_HEADERS_ALL.Attribute12%TYPE,
137    p_Attribute13                     IGC_CC_HEADERS_ALL.Attribute13%TYPE,
138    p_Attribute14                     IGC_CC_HEADERS_ALL.Attribute14%TYPE,
139    p_Attribute15                     IGC_CC_HEADERS_ALL.Attribute15%TYPE,
140    p_Context                         IGC_CC_HEADERS_ALL.Context%TYPE,
141    p_CC_Guarantee_Flag               IGC_CC_HEADERS_ALL.CC_Guarantee_Flag%TYPE,
142    G_FLAG                    IN OUT NOCOPY  VARCHAR2
143 ) IS
144 
145    l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
146    l_api_version         CONSTANT NUMBER         :=  1.0;
147    l_Application_Id      NUMBER;
148    l_MRC_Enabled         VARCHAR2(1);
149    l_Conversion_Date     DATE;
150    l_action_flag         VARCHAR2(1) := 'I';
151    l_return_status       VARCHAR2(1);
152 --   l_debug               VARCHAR2(1);
153 
154    CURSOR c_cc_header_row_id IS
155      SELECT Rowid
156        FROM IGC_CC_HEADERS_ALL
157       WHERE CC_Header_id = p_CC_Header_id;
158 
159    CURSOR c_igc_app_id IS
160      SELECT Application_Id
161        FROM FND_APPLICATION
162       WHERE Application_Short_Name =  'IGC';
163 
164   l_full_path         VARCHAR2(255);
165 
166 BEGIN
167 
168    l_full_path := g_path || 'Insert_Row';
169 
170    SAVEPOINT Insert_Row_Pvt ;
171 
172 -- -----------------------------------------------------------------
173 -- Ensure that the version requested to be used is correct for
174 -- this API.
175 -- -----------------------------------------------------------------
176    IF NOT FND_API.Compatible_API_Call ( l_api_version,
177                                         p_api_version,
178                                         l_api_name,
179                                         G_PKG_NAME )
180    THEN
181       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
182    END IF;
183 
184 
185    IF FND_API.to_Boolean (p_init_msg_list ) THEN
186       FND_MSG_PUB.initialize ;
187    END IF;
188 
189    X_return_status := FND_API.G_RET_STS_SUCCESS ;
190 --   l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
191 
192 --   IF (l_debug = 'Y') THEN
193 --      l_debug := FND_API.G_TRUE;
194 --   ELSE
195 --      l_debug := FND_API.G_FALSE;
196 --  END IF;
197 --   IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
198 
199 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
200    IF g_debug_mode = 'Y' THEN
201       g_debug_msg := ' IGCCHDRB -- Begin Insert Header ID Overload .....' || p_cc_header_id;
202       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
203    END IF;
204 
205 -- -----------------------------------------------------------------
206 -- Insert the CC Header record as requested.
207 -- -----------------------------------------------------------------
208    INSERT
209      INTO IGC_CC_HEADERS_ALL
210              (CC_Header_Id,
211               Parent_Header_Id,
212               Org_Id,
213               CC_Type,
214               CC_Num,
215               CC_Ref_Num,
216               CC_Version_Num,
217               CC_State,
218               CC_Ctrl_Status,
219               CC_Encmbrnc_Status,
220               CC_Apprvl_Status,
221               Vendor_Id,
222               Vendor_Site_Id,
223               Vendor_Contact_Id,
224               Term_Id,
225               Location_Id,
226               Set_Of_Books_Id,
227               CC_Acct_Date,
228               CC_Desc,
229               CC_Start_Date,
230               CC_End_Date,
231               CC_Owner_User_Id,
232               CC_Preparer_User_Id,
233               Currency_Code,
234               Conversion_Type,
235               Conversion_Date,
236               Conversion_Rate,
237               Last_Update_Date,
238               Last_Updated_By,
239               Last_Update_Login,
240               Created_By,
241               Creation_Date,
242               Wf_Item_Type,
243               Wf_Item_Key,
244               CC_Current_User_Id,
245               Attribute1,
246               Attribute2,
247               Attribute3,
248               Attribute4,
249               Attribute5,
250               Attribute6,
251               Attribute7,
252               Attribute8,
253               Attribute9,
254               Attribute10,
255               Attribute11,
256               Attribute12,
257               Attribute13,
258               Attribute14,
259               Attribute15,
260               Context,
261               CC_Guarantee_Flag
262              )
263        VALUES
264              (p_CC_Header_Id,
265               p_Parent_Header_Id,
266               p_Org_id,
267               p_CC_Type,
268               p_CC_Num,
269               p_CC_Ref_Num,
270               p_CC_Version_num,
271               p_CC_State,
272               p_CC_ctrl_status,
273               p_CC_Encmbrnc_Status,
274               p_CC_Apprvl_Status,
275               p_Vendor_Id,
276               p_Vendor_Site_Id,
277               p_Vendor_Contact_Id,
278               p_Term_Id,
279               p_Location_Id,
280               p_Set_Of_Books_Id,
281               p_CC_Acct_Date,
282               p_CC_Desc,
283               p_CC_Start_Date,
284               p_CC_End_Date,
285               p_CC_Owner_User_Id,
286               p_CC_Preparer_User_Id,
287               p_Currency_Code,
288               p_Conversion_Type,
289               p_Conversion_Date,
290               p_Conversion_Rate,
291               p_Last_Update_Date,
292               p_Last_Updated_By,
293               p_Last_Update_Login,
294               p_Created_By,
295               p_Creation_Date,
296               p_Wf_Item_Type,
297               p_Wf_Item_Key,
298               p_CC_Current_User_Id,
299               p_Attribute1,
300               p_Attribute2,
301               p_Attribute3,
302               p_Attribute4,
303               p_Attribute5,
304               p_Attribute6,
305               p_Attribute7,
306               p_Attribute8,
307               p_Attribute9,
308               p_Attribute10,
309               p_Attribute11,
310               p_Attribute12,
311               p_Attribute13,
312               p_Attribute14,
313               p_Attribute15,
314               p_Context,
315               p_CC_Guarantee_Flag
316              );
317 
318 -- -------------------------------------------------------------------
319 -- Obtain the ROWID of the record that was just inserted to return
320 -- to the caller.
321 -- -------------------------------------------------------------------
322    OPEN c_cc_header_row_id;
323    FETCH c_cc_header_row_id
324     INTO p_Rowid;
325 
326 -- -------------------------------------------------------------------
327 -- If no ROWID can be obtained then exit the procedure with a failure
328 -- -------------------------------------------------------------------
329    IF (c_cc_header_row_id%NOTFOUND) THEN
330 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
331       IF g_debug_mode = 'Y' THEN
332          g_debug_msg := ' IGCCHDRB -- Failure getting rowid for Header ID Overload.....' || p_cc_header_id;
333          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
334       END IF;
335       RAISE FND_API.G_EXC_ERROR ;
336    END IF;
337 
338    CLOSE c_cc_header_row_id;
339 
340 -- ------------------------------------------------------------------
341 -- Obtain the application ID for IGC to be used for the MRC check
342 -- being enabled for this set of books.
343 -- ------------------------------------------------------------------
344    OPEN c_igc_app_id;
345    FETCH c_igc_app_id
346     INTO l_Application_Id;
347 
348 -- ------------------------------------------------------------------
349 -- If the application ID can not be attained then exit the procedure
350 -- ------------------------------------------------------------------
351    IF (c_igc_app_id%NOTFOUND) THEN
352 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
353       IF g_debug_mode = 'Y' THEN
354          g_debug_msg := ' IGCCHDRB -- failure getting appl id for Header ID Overload .....' || p_cc_header_id;
355          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
356       END IF;
357       RAISE FND_API.G_EXC_ERROR;
358    END IF;
359 
360    CLOSE c_igc_app_id;
361 
362 -- ------------------------------------------------------------------
363 -- If the conversion date is NULL then fill in the value with the
364 -- current system date.
365 -- ------------------------------------------------------------------
366 
367    gl_mc_info.mrc_enabled (p_Set_Of_Books_Id,
368                            101, /*--l_Application_Id, commented for MRC uptake*/
369                            p_Org_Id,
370                            NULL,
371                            l_MRC_Enabled
372                           );
373 
374 -- ------------------------------------------------------------------
375 -- If MRC is enabled for this set of books being used then call the
376 -- handler to insert all reporting set of books into the MRC
377 -- table for the account line inserted.
378 -- ------------------------------------------------------------------
379    IF (l_MRC_Enabled = 'Y') THEN
380 
381 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
382       IF g_debug_mode = 'Y' THEN
383          g_debug_msg := ' IGCCHDRB -- MRC enabled for Header ID Overload .....' || p_cc_header_id;
384          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
385       END IF;
386 
387 -- ------------------------------------------------------------------
388 -- MRC Handler For IGC_CC_HEADERS to insert all MRC records for
389 -- the reporting set of books for this PRIMARY set of books.
390 -- ------------------------------------------------------------------
391       IGC_CC_MC_MAIN_PVT.get_rsobs_Headers (l_api_version,
392                                             FND_API.G_FALSE,
393                                             FND_API.G_FALSE,
394                                             p_validation_level,
395                                             l_return_status,
396                                             X_msg_count,
397                                             X_msg_data,
398                                             p_CC_Header_Id,
399                                             p_Set_Of_Books_Id,
400                                             101, /*--l_Application_Id, commented for MRC uptake*/                                            p_org_Id,
401                                             SYSDATE,
402                                             l_action_flag
403                                            );
404 
405 -- ------------------------------------------------------------------
406 -- Make sure that the insertion was a success
407 -- ------------------------------------------------------------------
408        IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
409 --          IF (IGC_MSGS_PKG.g_debug_mode) THEN
410           IF g_debug_mode = 'Y' THEN
411              g_debug_msg := ' IGCCHDRB -- Failure returned from MRC call ID Overload .....' || p_cc_header_id;
412              Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
413           END IF;
414           RAISE FND_API.G_EXC_ERROR;
415        END IF;
416 
417    END IF;
418 
419 -- -----------------------------------------------------------------
420 -- If the records are to be commited in this procedure then
421 -- commit the work now otherwise wait for the caller to do COMMIT.
422 -- -----------------------------------------------------------------
423    IF FND_API.To_Boolean ( p_commit ) THEN
424 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
425       IF g_debug_mode = 'Y' THEN
426          g_debug_msg := ' IGCCHDRB -- Committing Insert Header ID Overload .....' || p_cc_header_id;
427          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
428       END IF;
429       COMMIT WORK;
430    END iF;
431 
432    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
433                                p_data  => X_msg_data );
434 
435 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
436    IF g_debug_mode = 'Y' THEN
437       g_debug_msg := ' IGCCHDRB -- Done Insert Header ID Overload .....' || p_cc_header_id;
438       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
439    END IF;
440 
441    RETURN;
442 
443 EXCEPTION
444 
445     WHEN FND_API.G_EXC_ERROR THEN
446 
447     ROLLBACK TO Insert_Row_Pvt ;
448     X_return_status := FND_API.G_RET_STS_ERROR;
449 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
450     IF g_debug_mode = 'Y' THEN
451        g_debug_msg := ' IGCCHDRB -- Failure Execution on Header ID Overload .....' || p_cc_header_id;
452        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
453     END IF;
454     IF (c_cc_header_row_id%ISOPEN) THEN
455        CLOSE c_cc_header_row_id;
456     END IF;
457     IF (c_igc_app_id%ISOPEN) THEN
458        CLOSE c_igc_app_id;
459     END IF;
460     FND_MSG_PUB.Count_And_Get (p_count => X_msg_count,
461                                 p_data  => X_msg_data );
462     IF (g_excep_level >=  g_debug_level ) THEN
463        FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
464     END IF;
465 
466     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
467 
468     ROLLBACK TO Insert_Row_Pvt ;
469     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
470 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
471     IF g_debug_mode = 'Y' THEN
472        g_debug_msg := ' IGCCHDRB -- Failure Unexpected on Header ID Overload .....' || p_cc_header_id;
473        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
474     END IF;
475     IF (c_cc_header_row_id%ISOPEN) THEN
476        CLOSE c_cc_header_row_id;
477     END IF;
478     IF (c_igc_app_id%ISOPEN) THEN
479        CLOSE c_igc_app_id;
480     END IF;
481     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
482                                 p_data  => X_msg_data );
483     IF (g_excep_level >=  g_debug_level ) THEN
484        FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
485     END IF;
486 
487     WHEN OTHERS THEN
488 
489     ROLLBACK TO Insert_Row_Pvt ;
490     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
491 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
492     IF g_debug_mode = 'Y' THEN
493        g_debug_msg := ' IGCCHDRB -- Failure Others on Header ID Overload .....' || p_cc_header_id;
494        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
495     END IF;
496     IF (c_cc_header_row_id%ISOPEN) THEN
497        CLOSE c_cc_header_row_id;
498     END IF;
499     IF (c_igc_app_id%ISOPEN) THEN
500        CLOSE c_igc_app_id;
501     END IF;
502 
503     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
504       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
505                                 l_api_name);
506     END if;
507 
508     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
509                                 p_data  => X_msg_data );
510 
511     IF ( g_unexp_level >= g_debug_level ) THEN
512        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
513        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
514        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
515        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
516     END IF;
517 
518   END Insert_Row;
519 
520 /* ================================================================================
521                          PROCEDURE Insert_Row
522    ===============================================================================*/
523 
524 PROCEDURE Insert_Row(
525    p_api_version               IN    NUMBER,
526    p_init_msg_list             IN    VARCHAR2 := FND_API.G_FALSE,
527    p_commit                    IN    VARCHAR2 := FND_API.G_FALSE,
528    p_validation_level          IN    NUMBER   := FND_API.G_VALID_LEVEL_FULL,
529    X_return_status             OUT NOCOPY   VARCHAR2,
530    X_msg_count                 OUT NOCOPY   NUMBER,
531    X_msg_data                  OUT NOCOPY   VARCHAR2,
532    p_Rowid                  IN OUT NOCOPY   VARCHAR2,
533    p_CC_Header_Id                    IGC_CC_HEADERS_ALL.CC_Header_Id%TYPE,
534    p_Org_id                          IGC_CC_HEADERS_ALL.Org_id%TYPE,
535    p_CC_Type                         IGC_CC_HEADERS_ALL.CC_Type%TYPE,
536    p_CC_Num                          IGC_CC_HEADERS_ALL.CC_Num%TYPE,
537    p_CC_Version_num                  IGC_CC_HEADERS_ALL.CC_Version_num%TYPE,
538    p_Parent_Header_Id                IGC_CC_HEADERS_ALL.Parent_Header_Id%TYPE,
539    p_CC_State                        IGC_CC_HEADERS_ALL.CC_State%TYPE,
540    p_CC_ctrl_status                  IGC_CC_HEADERS_ALL.CC_ctrl_status%TYPE,
541    p_CC_Encmbrnc_Status              IGC_CC_HEADERS_ALL.CC_Encmbrnc_Status%TYPE,
542    p_CC_Apprvl_Status                IGC_CC_HEADERS_ALL.CC_Apprvl_Status%TYPE,
543    p_Vendor_Id                       IGC_CC_HEADERS_ALL.Vendor_Id%TYPE,
544    p_Vendor_Site_Id                  IGC_CC_HEADERS_ALL.Vendor_Site_Id%TYPE,
545    p_Vendor_Contact_Id               IGC_CC_HEADERS_ALL.Vendor_Contact_Id%TYPE,
546    p_Term_Id                         IGC_CC_HEADERS_ALL.Term_Id%TYPE,
547    p_Location_Id                     IGC_CC_HEADERS_ALL.Location_Id%TYPE,
548    p_Set_Of_Books_Id                 IGC_CC_HEADERS_ALL.Set_Of_Books_Id%TYPE,
549    p_CC_Acct_Date                    IGC_CC_HEADERS_ALL.CC_Acct_Date%TYPE,
550    p_CC_Desc                         IGC_CC_HEADERS_ALL.CC_Desc%TYPE,
551    p_CC_Start_Date                   IGC_CC_HEADERS_ALL.CC_Start_Date%TYPE,
552    p_CC_End_Date                     IGC_CC_HEADERS_ALL.CC_End_Date%TYPE,
553    p_CC_Owner_User_Id                IGC_CC_HEADERS_ALL.CC_Owner_User_Id%TYPE,
554    p_CC_Preparer_User_Id             IGC_CC_HEADERS_ALL.CC_Preparer_User_Id%TYPE,
555    p_Currency_Code                   IGC_CC_HEADERS_ALL.Currency_Code%TYPE,
556    p_Conversion_Type                 IGC_CC_HEADERS_ALL.Conversion_Type%TYPE,
557    p_Conversion_Date                 IGC_CC_HEADERS_ALL.Conversion_Date%TYPE,
558    p_Conversion_Rate                 IGC_CC_HEADERS_ALL.Conversion_Rate%TYPE,
559    p_Last_Update_Date                IGC_CC_HEADERS_ALL.Last_Update_Date%TYPE,
560    p_Last_Updated_By                 IGC_CC_HEADERS_ALL.Last_Updated_By%TYPE,
561    p_Last_Update_Login               IGC_CC_HEADERS_ALL.Last_Update_Login%TYPE,
562    p_Created_By                      IGC_CC_HEADERS_ALL.Created_By%TYPE,
563    p_Creation_Date                   IGC_CC_HEADERS_ALL.Creation_Date%TYPE,
564    p_CC_Current_User_Id              IGC_CC_HEADERS_ALL.CC_Current_User_Id%TYPE,
565    p_Wf_Item_Type                    IGC_CC_HEADERS_ALL.Wf_Item_Type%TYPE,
566    p_Wf_Item_Key                     IGC_CC_HEADERS_ALL.Wf_Item_Key%TYPE,
567    p_Attribute1                      IGC_CC_HEADERS_ALL.Attribute1%TYPE,
568    p_Attribute2                      IGC_CC_HEADERS_ALL.Attribute2%TYPE,
569    p_Attribute3                      IGC_CC_HEADERS_ALL.Attribute3%TYPE,
570    p_Attribute4                      IGC_CC_HEADERS_ALL.Attribute4%TYPE,
571    p_Attribute5                      IGC_CC_HEADERS_ALL.Attribute5%TYPE,
572    p_Attribute6                      IGC_CC_HEADERS_ALL.Attribute6%TYPE,
573    p_Attribute7                      IGC_CC_HEADERS_ALL.Attribute7%TYPE,
574    p_Attribute8                      IGC_CC_HEADERS_ALL.Attribute8%TYPE,
575    p_Attribute9                      IGC_CC_HEADERS_ALL.Attribute9%TYPE,
576    p_Attribute10                     IGC_CC_HEADERS_ALL.Attribute10%TYPE,
577    p_Attribute11                     IGC_CC_HEADERS_ALL.Attribute11%TYPE,
578    p_Attribute12                     IGC_CC_HEADERS_ALL.Attribute12%TYPE,
579    p_Attribute13                     IGC_CC_HEADERS_ALL.Attribute13%TYPE,
580    p_Attribute14                     IGC_CC_HEADERS_ALL.Attribute14%TYPE,
581    p_Attribute15                     IGC_CC_HEADERS_ALL.Attribute15%TYPE,
582    p_Context                         IGC_CC_HEADERS_ALL.Context%TYPE,
583    p_CC_Guarantee_Flag               IGC_CC_HEADERS_ALL.CC_Guarantee_Flag%TYPE,
584    G_FLAG                    IN OUT NOCOPY  VARCHAR2
585 ) IS
586 
587    l_api_name            CONSTANT VARCHAR2(30)   := 'Insert_Row';
588    l_api_version         CONSTANT NUMBER         :=  1.0;
589    l_Application_Id      NUMBER;
590    l_MRC_Enabled         VARCHAR2(1);
591    l_Conversion_Date     DATE;
592    l_action_flag         VARCHAR2(1) := 'I';
593    l_return_status       VARCHAR2(1);
594 --   l_debug               VARCHAR2(1);
595 
596    CURSOR c_cc_header_row_id IS
597      SELECT Rowid
598        FROM IGC_CC_HEADERS_ALL
599       WHERE CC_Header_id = p_CC_Header_id;
600 
601    CURSOR c_igc_app_id IS
602      SELECT Application_Id
603        FROM FND_APPLICATION
604       WHERE Application_Short_Name =  'IGC';
605 
606   l_full_path         VARCHAR2(255);
607 
608 BEGIN
609 
610    l_full_path := g_path || 'Insert_Row';
611 
612    SAVEPOINT Insert_Row_Pvt ;
613 
614 -- -----------------------------------------------------------------
615 -- Ensure that the version requested to be used is correct for
616 -- this API.
617 -- -----------------------------------------------------------------
618    IF NOT FND_API.Compatible_API_Call ( l_api_version,
619                                         p_api_version,
620                                         l_api_name,
621                                         G_PKG_NAME )
622    THEN
623       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
624    END IF;
625 
626 
627    IF FND_API.to_Boolean (p_init_msg_list ) THEN
628       FND_MSG_PUB.initialize ;
629    END IF;
630 
631    X_return_status := FND_API.G_RET_STS_SUCCESS ;
632 --   l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
633 
634 --   IF (l_debug = 'Y') THEN
635 --      l_debug := FND_API.G_TRUE;
636 --   ELSE
637 --      l_debug := FND_API.G_FALSE;
638 --   END IF;
639 --   IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
640 
641 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
642    IF g_debug_mode = 'Y' THEN
643       g_debug_msg := ' IGCCHDRB -- Begin Insert Header ID .....' || p_cc_header_id;
644       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
645    END IF;
646 
647 -- -----------------------------------------------------------------
648 -- Insert the CC Header record as requested.
649 -- -----------------------------------------------------------------
650    INSERT
651      INTO IGC_CC_HEADERS_ALL
652              (CC_Header_Id,
653               Parent_Header_Id,
654               Org_Id,
655               CC_Type,
656               CC_Num,
657               CC_Version_Num,
658               CC_State,
659               CC_Ctrl_Status,
660               CC_Encmbrnc_Status,
661               CC_Apprvl_Status,
662               Vendor_Id,
663               Vendor_Site_Id,
664               Vendor_Contact_Id,
665               Term_Id,
666               Location_Id,
667               Set_Of_Books_Id,
668               CC_Acct_Date,
669               CC_Desc,
670               CC_Start_Date,
671               CC_End_Date,
672               CC_Owner_User_Id,
673               CC_Preparer_User_Id,
674               Currency_Code,
675               Conversion_Type,
676               Conversion_Date,
677               Conversion_Rate,
678               Last_Update_Date,
679               Last_Updated_By,
680               Last_Update_Login,
681               Created_By,
682               Creation_Date,
683               Wf_Item_Type,
684               Wf_Item_Key,
685               CC_Current_User_Id,
686               Attribute1,
687               Attribute2,
688               Attribute3,
689               Attribute4,
690               Attribute5,
691               Attribute6,
692               Attribute7,
693               Attribute8,
694               Attribute9,
695               Attribute10,
696               Attribute11,
697               Attribute12,
698               Attribute13,
699               Attribute14,
700               Attribute15,
701               Context,
702               CC_Guarantee_Flag
703              )
704        VALUES
705              (p_CC_Header_Id,
706               p_Parent_Header_Id,
707               p_Org_id,
708               p_CC_Type,
709               p_CC_Num,
710               p_CC_Version_num,
711               p_CC_State,
712               p_CC_ctrl_status,
713               p_CC_Encmbrnc_Status,
714               p_CC_Apprvl_Status,
715               p_Vendor_Id,
716               p_Vendor_Site_Id,
717               p_Vendor_Contact_Id,
718               p_Term_Id,
719               p_Location_Id,
720               p_Set_Of_Books_Id,
721               p_CC_Acct_Date,
722               p_CC_Desc,
723               p_CC_Start_Date,
724               p_CC_End_Date,
725               p_CC_Owner_User_Id,
726               p_CC_Preparer_User_Id,
727               p_Currency_Code,
728               p_Conversion_Type,
729               p_Conversion_Date,
730               p_Conversion_Rate,
731               p_Last_Update_Date,
732               p_Last_Updated_By,
733               p_Last_Update_Login,
734               p_Created_By,
735               p_Creation_Date,
736               p_Wf_Item_Type,
737               p_Wf_Item_Key,
738               p_CC_Current_User_Id,
739               p_Attribute1,
740               p_Attribute2,
741               p_Attribute3,
742               p_Attribute4,
743               p_Attribute5,
744               p_Attribute6,
745               p_Attribute7,
746               p_Attribute8,
747               p_Attribute9,
748               p_Attribute10,
749               p_Attribute11,
750               p_Attribute12,
751               p_Attribute13,
752               p_Attribute14,
753               p_Attribute15,
754               p_Context,
755               p_CC_Guarantee_Flag
756              );
757 
758 -- -------------------------------------------------------------------
759 -- Obtain the ROWID of the record that was just inserted to return
760 -- to the caller.
761 -- -------------------------------------------------------------------
762    OPEN c_cc_header_row_id;
763    FETCH c_cc_header_row_id
764     INTO p_Rowid;
765 
766 -- -------------------------------------------------------------------
767 -- If no ROWID can be obtained then exit the procedure with a failure
768 -- -------------------------------------------------------------------
769    IF (c_cc_header_row_id%NOTFOUND) THEN
770 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
771       IF g_debug_mode = 'Y' THEN
772          g_debug_msg := ' IGCCHDRB -- Failure getting rowid for Header ID .....' || p_cc_header_id;
773          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
774       END IF;
775       RAISE FND_API.G_EXC_ERROR ;
776    END IF;
777 
778    CLOSE c_cc_header_row_id;
779 
780 -- ------------------------------------------------------------------
781 -- Obtain the application ID for IGC to be used for the MRC check
782 -- being enabled for this set of books.
783 -- ------------------------------------------------------------------
784    OPEN c_igc_app_id;
785    FETCH c_igc_app_id
786     INTO l_Application_Id;
787 
788 -- ------------------------------------------------------------------
789 -- If the application ID can not be attained then exit the procedure
790 -- ------------------------------------------------------------------
791    IF (c_igc_app_id%NOTFOUND) THEN
792 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
793       IF g_debug_mode = 'Y' THEN
794          g_debug_msg := ' IGCCHDRB -- failure getting appl id for Header ID .....' || p_cc_header_id;
795          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
796       END IF;
797       RAISE FND_API.G_EXC_ERROR;
798    END IF;
799 
800    CLOSE c_igc_app_id;
801 
802 -- ------------------------------------------------------------------
803 -- If the conversion date is NULL then fill in the value with the
804 -- current system date.
805 -- ------------------------------------------------------------------
806 
807    gl_mc_info.mrc_enabled (p_Set_Of_Books_Id,
808                            101, /*--l_Application_Id, commented for MRC uptake*/
809                            p_Org_Id,
810                            NULL,
811                            l_MRC_Enabled
812                           );
813 
814 -- ------------------------------------------------------------------
815 -- If MRC is enabled for this set of books being used then call the
816 -- handler to insert all reporting set of books into the MRC
817 -- table for the account line inserted.
818 -- ------------------------------------------------------------------
819    IF (l_MRC_Enabled = 'Y') THEN
820 
821 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
822       IF g_debug_mode = 'Y' THEN
823          g_debug_msg := ' IGCCHDRB -- MRC enabled for Header ID .....' || p_cc_header_id;
824          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
825       END IF;
826 
827 -- ------------------------------------------------------------------
828 -- MRC Handler For IGC_CC_HEADERS to insert all MRC records for
829 -- the reporting set of books for this PRIMARY set of books.
830 -- ------------------------------------------------------------------
831       IGC_CC_MC_MAIN_PVT.get_rsobs_Headers (l_api_version,
832                                             FND_API.G_FALSE,
833                                             FND_API.G_FALSE,
834                                             p_validation_level,
835                                             l_return_status,
836                                             X_msg_count,
837                                             X_msg_data,
838                                             p_CC_Header_Id,
839                                             p_Set_Of_Books_Id,
840                                             101, /*--l_Application_Id, commented for MRC uptake*/                                            p_org_Id,
841                                             SYSDATE,
842                                             l_action_flag
843                                            );
844 
845 -- ------------------------------------------------------------------
846 -- Make sure that the insertion was a success
847 -- ------------------------------------------------------------------
848        IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
849 --          IF (IGC_MSGS_PKG.g_debug_mode) THEN
850           IF g_debug_mode = 'Y' THEN
851              g_debug_msg := ' IGCCHDRB -- Failure returned from MRC call ID .....' || p_cc_header_id;
852              Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
853           END IF;
854           RAISE FND_API.G_EXC_ERROR;
855        END IF;
856 
857    END IF;
858 
859 -- -----------------------------------------------------------------
860 -- If the records are to be commited in this procedure then
861 -- commit the work now otherwise wait for the caller to do COMMIT.
862 -- -----------------------------------------------------------------
863    IF FND_API.To_Boolean ( p_commit ) THEN
864 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
865       IF g_debug_mode = 'Y' THEN
866          g_debug_msg := ' IGCCHDRB -- Committing Insert Header ID .....' || p_cc_header_id;
867          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
868       END IF;
869       COMMIT WORK;
870    END iF;
871 
872    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
873                                p_data  => X_msg_data );
874 
875 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
876    IF g_debug_mode = 'Y' THEN
877       g_debug_msg := ' IGCCHDRB -- Done Insert Header ID .....' || p_cc_header_id;
878       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
879    END IF;
880 
881    RETURN;
882 
883 EXCEPTION
884 
885     WHEN FND_API.G_EXC_ERROR THEN
886 
887     ROLLBACK TO Insert_Row_Pvt ;
888     X_return_status := FND_API.G_RET_STS_ERROR;
889 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
890     IF g_debug_mode = 'Y' THEN
891        g_debug_msg := ' IGCCHDRB -- Failure Execution on Header ID .....' || p_cc_header_id;
892        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
893     END IF;
894     IF (c_cc_header_row_id%ISOPEN) THEN
895        CLOSE c_cc_header_row_id;
896     END IF;
897     IF (c_igc_app_id%ISOPEN) THEN
898        CLOSE c_igc_app_id;
899     END IF;
900     FND_MSG_PUB.Count_And_Get (p_count => X_msg_count,
901                                 p_data  => X_msg_data );
902     IF (g_excep_level >=  g_debug_level ) THEN
903         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
904     END IF;
905 
906     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
907 
908     ROLLBACK TO Insert_Row_Pvt ;
909     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
910 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
911     IF g_debug_mode = 'Y' THEN
912        g_debug_msg := ' IGCCHDRB -- Failure Unexpected on Header ID .....' || p_cc_header_id;
913        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
914     END IF;
915     IF (c_cc_header_row_id%ISOPEN) THEN
916        CLOSE c_cc_header_row_id;
917     END IF;
918     IF (c_igc_app_id%ISOPEN) THEN
919        CLOSE c_igc_app_id;
920     END IF;
921     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
922                                 p_data  => X_msg_data );
923     IF (g_excep_level >=  g_debug_level ) THEN
924         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
925     END IF;
926 
927 
928     WHEN OTHERS THEN
929 
930     ROLLBACK TO Insert_Row_Pvt ;
931     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
932 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
933     IF g_debug_mode = 'Y' THEN
934        g_debug_msg := ' IGCCHDRB -- Failure Others on Header ID .....' || p_cc_header_id;
935        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
936     END IF;
937     IF (c_cc_header_row_id%ISOPEN) THEN
938        CLOSE c_cc_header_row_id;
939     END IF;
940     IF (c_igc_app_id%ISOPEN) THEN
941        CLOSE c_igc_app_id;
942     END IF;
943 
944     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
945       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
946                                 l_api_name);
947     END if;
948 
949     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
950                                 p_data  => X_msg_data );
951     IF ( g_unexp_level >= g_debug_level ) THEN
952        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
953        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
954        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
955        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
956     END IF;
957 
958   END Insert_Row;
959 
960 /* ================================================================================
961                          PROCEDURE Lock_Row
962    ===============================================================================*/
963 
964 PROCEDURE Lock_Row(
965    p_api_version             IN  NUMBER,
966    p_init_msg_list           IN  VARCHAR2 := FND_API.G_FALSE,
967    p_commit                  IN  VARCHAR2 := FND_API.G_FALSE,
968    p_validation_level        IN  NUMBER   := FND_API.G_VALID_LEVEL_FULL,
969    X_return_status           OUT NOCOPY VARCHAR2,
970    X_msg_count               OUT NOCOPY NUMBER,
971    X_msg_data                OUT NOCOPY VARCHAR2,
972    p_Rowid                IN OUT NOCOPY VARCHAR2,
973    p_CC_Header_Id                IGC_CC_HEADERS_ALL.CC_Header_Id%TYPE,
974    p_Org_id                      IGC_CC_HEADERS_ALL.Org_id%TYPE,
975    p_CC_Type                     IGC_CC_HEADERS_ALL.CC_Type%TYPE,
976    p_CC_Num                      IGC_CC_HEADERS_ALL.CC_Num%TYPE,
977    p_CC_Version_num              IGC_CC_HEADERS_ALL.CC_Version_num%TYPE,
978    p_Parent_Header_Id            IGC_CC_HEADERS_ALL.Parent_Header_Id%TYPE,
979    p_CC_State                    IGC_CC_HEADERS_ALL.CC_State%TYPE,
980    p_CC_ctrl_status              IGC_CC_HEADERS_ALL.CC_ctrl_status%TYPE,
981    p_CC_Encmbrnc_Status          IGC_CC_HEADERS_ALL.CC_Encmbrnc_Status%TYPE,
982    p_CC_Apprvl_Status            IGC_CC_HEADERS_ALL.CC_Apprvl_Status%TYPE,
983    p_Vendor_Id                   IGC_CC_HEADERS_ALL.Vendor_Id%TYPE,
984    p_Vendor_Site_Id              IGC_CC_HEADERS_ALL.Vendor_Site_Id%TYPE,
985    p_Vendor_Contact_Id           IGC_CC_HEADERS_ALL.Vendor_Contact_Id%TYPE,
986    p_Term_Id                     IGC_CC_HEADERS_ALL.Term_Id%TYPE,
987    p_Location_Id                 IGC_CC_HEADERS_ALL.Location_Id%TYPE,
988    p_Set_Of_Books_Id             IGC_CC_HEADERS_ALL.Set_Of_Books_Id%TYPE,
989    p_CC_Acct_Date                IGC_CC_HEADERS_ALL.CC_Acct_Date%TYPE,
990    p_CC_Desc                     IGC_CC_HEADERS_ALL.CC_Desc%TYPE,
991    p_CC_Start_Date               IGC_CC_HEADERS_ALL.CC_Start_Date%TYPE,
992    p_CC_End_Date                 IGC_CC_HEADERS_ALL.CC_End_Date%TYPE,
993    p_CC_Owner_User_Id            IGC_CC_HEADERS_ALL.CC_Owner_User_Id%TYPE,
994    p_CC_Preparer_User_Id         IGC_CC_HEADERS_ALL.CC_Preparer_User_Id%TYPE,
995    p_Currency_Code               IGC_CC_HEADERS_ALL.Currency_Code%TYPE,
996    p_Conversion_Type             IGC_CC_HEADERS_ALL.Conversion_Type%TYPE,
997    p_Conversion_Date             IGC_CC_HEADERS_ALL.Conversion_Date%TYPE,
998    p_Conversion_Rate             IGC_CC_HEADERS_ALL.Conversion_Rate%TYPE,
999    p_Last_Update_Date            IGC_CC_HEADERS_ALL.Last_Update_Date%TYPE,
1000    p_Last_Updated_By             IGC_CC_HEADERS_ALL.Last_Updated_By%TYPE,
1001    p_Last_Update_Login           IGC_CC_HEADERS_ALL.Last_Update_Login%TYPE,
1002    p_Created_By                  IGC_CC_HEADERS_ALL.Created_By%TYPE,
1003    p_Creation_Date               IGC_CC_HEADERS_ALL.Creation_Date%TYPE,
1004    p_CC_Current_User_Id          IGC_CC_HEADERS_ALL.CC_Current_User_Id%TYPE,
1005    p_Wf_Item_Type                IGC_CC_HEADERS_ALL.Wf_Item_Type%TYPE,
1006    p_Wf_Item_Key                 IGC_CC_HEADERS_ALL.Wf_Item_Key%TYPE,
1007    p_Attribute1                  IGC_CC_HEADERS_ALL.Attribute1%TYPE,
1008    p_Attribute2                  IGC_CC_HEADERS_ALL.Attribute2%TYPE,
1009    p_Attribute3                  IGC_CC_HEADERS_ALL.Attribute3%TYPE,
1010    p_Attribute4                  IGC_CC_HEADERS_ALL.Attribute4%TYPE,
1011    p_Attribute5                  IGC_CC_HEADERS_ALL.Attribute5%TYPE,
1012    p_Attribute6                  IGC_CC_HEADERS_ALL.Attribute6%TYPE,
1013    p_Attribute7                  IGC_CC_HEADERS_ALL.Attribute7%TYPE,
1014    p_Attribute8                  IGC_CC_HEADERS_ALL.Attribute8%TYPE,
1015    p_Attribute9                  IGC_CC_HEADERS_ALL.Attribute9%TYPE,
1016    p_Attribute10                 IGC_CC_HEADERS_ALL.Attribute10%TYPE,
1017    p_Attribute11                 IGC_CC_HEADERS_ALL.Attribute11%TYPE,
1018    p_Attribute12                 IGC_CC_HEADERS_ALL.Attribute12%TYPE,
1019    p_Attribute13                 IGC_CC_HEADERS_ALL.Attribute13%TYPE,
1020    p_Attribute14                 IGC_CC_HEADERS_ALL.Attribute14%TYPE,
1021    p_Attribute15                 IGC_CC_HEADERS_ALL.Attribute15%TYPE,
1022    p_Context                     IGC_CC_HEADERS_ALL.Context%TYPE,
1023    p_CC_Guarantee_Flag           IGC_CC_HEADERS_ALL.CC_Guarantee_Flag%TYPE,
1024    X_row_locked              OUT NOCOPY VARCHAR2,
1025    G_FLAG                 IN OUT NOCOPY VARCHAR2
1026 ) IS
1027 
1028    l_api_name            CONSTANT VARCHAR2(30)   := 'Lock_Row';
1029    l_api_version         CONSTANT NUMBER         :=  1.0;
1030    Counter               NUMBER;
1031 --   l_debug               VARCHAR2(1);
1032 
1033    CURSOR C IS
1034      SELECT *
1035        FROM IGC_CC_HEADERS_ALL
1036       WHERE rowid = p_Rowid
1037         FOR UPDATE of CC_Header_Id NOWAIT;
1038 
1039     Recinfo C%ROWTYPE;
1040 
1041   l_full_path         VARCHAR2(255);
1042 
1043 BEGIN
1044 
1045     l_full_path := g_path || 'Lock_Row';
1046 
1047     SAVEPOINT Lock_Row_Pvt ;
1048 
1049     IF NOT FND_API.Compatible_API_Call ( l_api_version,
1050                                        p_api_version,
1051                                        l_api_name,
1052                                        G_PKG_NAME )
1053     THEN
1054        RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1055     END IF;
1056 
1057 
1058     IF FND_API.to_Boolean ( p_init_msg_list ) THEN
1059        FND_MSG_PUB.initialize ;
1060     END IF;
1061 
1062     X_return_status := FND_API.G_RET_STS_SUCCESS ;
1063     X_row_locked    := FND_API.G_TRUE ;
1064 --    l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
1065 
1066 --    IF (l_debug = 'Y') THEN
1067 --       l_debug := FND_API.G_TRUE;
1068 --    ELSE
1069 --       l_debug := FND_API.G_FALSE;
1070 --    END IF;
1071 --    IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
1072 
1073 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1074     IF g_debug_mode = 'Y' THEN
1075        g_debug_msg := ' IGCCHDRB -- Begin Lock Row Header ID .....' || p_cc_header_id;
1076        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1077     END IF;
1078 
1079     OPEN C;
1080     FETCH C
1081      INTO Recinfo;
1082 
1083     IF (C%NOTFOUND) THEN
1084       CLOSE C;
1085       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
1086       FND_MSG_PUB.Add;
1087       IF (g_excep_level  >=  g_debug_level ) THEN
1088           FND_LOG.MESSAGE (g_excep_level ,l_full_path,FALSE);
1089       END IF;
1090       RAISE FND_API.G_EXC_ERROR;
1091     END IF;
1092 
1093     CLOSE C;
1094 
1095     IF (
1096                (Recinfo.CC_Header_Id =  p_CC_Header_Id)
1097            AND (Recinfo.Org_Id =  p_Org_Id)
1098            AND (Recinfo.CC_Type =  p_CC_Type)
1099            AND (Recinfo.CC_Num =  p_CC_Num)
1100            AND (Recinfo.CC_Version_Num =  p_CC_Version_Num)
1101           -- AND (Recinfo.CC_state =  p_CC_State)
1102            --AND (Recinfo.CC_Ctrl_Status =  p_CC_Ctrl_Status)
1103            --AND (Recinfo.CC_Apprvl_Status =  p_CC_Apprvl_Status)
1104            AND (Recinfo.Set_Of_Books_Id =  p_Set_Of_Books_Id)
1105            AND (Recinfo.CC_Owner_User_Id =  p_CC_Owner_User_Id)
1106            AND (Recinfo.CC_Preparer_User_Id =  p_CC_Preparer_User_Id)
1107            AND (   (Recinfo.Parent_Header_Id =  p_Parent_Header_Id)
1108                 OR (    (Recinfo.Parent_Header_Id IS NULL)
1109                     AND (p_Parent_Header_Id IS NULL)))
1110          --  AND (   (Recinfo.CC_Encmbrnc_Status =  p_CC_Encmbrnc_Status)
1111           --      OR (    (Recinfo.CC_Encmbrnc_Status IS NULL)
1112            --         AND (p_CC_Encmbrnc_Status IS NULL)))
1113            AND (   (Recinfo.Vendor_Id =  p_Vendor_Id)
1114                 OR (    (Recinfo.Vendor_Id IS NULL)
1115                     AND (p_Vendor_Id IS NULL)))
1116            AND (   (Recinfo.Vendor_Site_Id =  p_Vendor_Site_Id)
1117                 OR (    (Recinfo.Vendor_Site_Id IS NULL)
1118                     AND (p_Vendor_Site_Id IS NULL)))
1119            AND (   (Recinfo.Vendor_Contact_Id =  p_Vendor_Contact_Id)
1120                 OR (    (Recinfo.Vendor_Contact_Id IS NULL)
1121                     AND (p_Vendor_Contact_Id IS NULL)))
1122            AND (   (Recinfo.Term_Id =  p_Term_Id)
1123                 OR (    (Recinfo.Term_Id IS NULL)
1124                     AND (p_Term_Id IS NULL)))
1125            AND (   (Recinfo.Location_Id =  p_Location_Id)
1126                 OR (    (Recinfo.Location_Id IS NULL)
1127                     AND (p_Location_Id IS NULL)))
1128            AND (   (Recinfo.CC_Acct_Date =  p_CC_Acct_Date)
1129                 OR (    (Recinfo.CC_Acct_Date IS NULL)
1130                     AND (p_CC_Acct_Date IS NULL)))
1131            AND (   (Recinfo.CC_Desc =  p_CC_Desc)
1132                 OR (    (Recinfo.CC_Desc IS NULL)
1133                     AND (p_CC_Desc IS NULL)))
1134            AND (   (Recinfo.CC_Start_Date =  p_CC_Start_Date)
1135                 OR (    (Recinfo.CC_Start_Date IS NULL)
1136                     AND (p_CC_Start_Date IS NULL)))
1137            AND (   (Recinfo.CC_End_Date =  p_CC_End_Date)
1138                 OR (    (Recinfo.CC_End_Date IS NULL)
1139                     AND (p_CC_End_Date IS NULL)))
1140            AND (   (Recinfo.Currency_Code =  p_Currency_Code)
1141                 OR (    (Recinfo.Currency_Code IS NULL)
1142                     AND (p_Currency_Code IS NULL)))
1143            AND (   (Recinfo.Conversion_Type =  p_Conversion_Type)
1144                 OR (    (Recinfo.Conversion_Type IS NULL)
1145                     AND (p_Conversion_Type IS NULL)))
1146            AND (   (Recinfo.Conversion_Date =  p_Conversion_Date)
1147                 OR (    (Recinfo.Conversion_Date IS NULL)
1148                     AND (p_Conversion_Date IS NULL)))
1149            AND (   (Recinfo.Conversion_Rate =  p_Conversion_Rate)
1150                 OR (    (Recinfo.Conversion_Rate IS NULL)
1151                     AND (p_Conversion_Rate IS NULL)))
1152 --           AND (   (Recinfo.WF_Item_Type =  p_WF_Item_Type)
1153 --                OR (    (Recinfo.WF_Item_Type IS NULL)
1154 --                    AND (p_WF_Item_Type IS NULL)))
1155 --           AND (   (Recinfo.WF_Item_Key =  p_WF_Item_Key)
1156 --                OR (    (Recinfo.WF_Item_Key IS NULL)
1157 --                    AND (p_WF_Item_Key IS NULL)))
1158 --           AND (   (Recinfo.CC_Current_User_Id =  p_CC_Current_User_Id)
1159 --                OR (    (Recinfo.CC_Current_User_Id IS NULL)
1160 --                    AND (p_CC_Current_User_Id IS NULL)))
1161            AND (   (Recinfo.Attribute1 =  p_Attribute1)
1162                 OR (    (Recinfo.Attribute1 IS NULL)
1163                     AND (p_Attribute1 IS NULL)))
1164            AND (   (Recinfo.Attribute2 =  p_Attribute2)
1165                 OR (    (Recinfo.Attribute2 IS NULL)
1166                     AND (p_Attribute2 IS NULL)))
1167            AND (   (Recinfo.Attribute3 =  p_Attribute3)
1168                 OR (    (Recinfo.Attribute3 IS NULL)
1169                     AND (p_Attribute3 IS NULL)))
1170            AND (   (Recinfo.Attribute4 =  p_Attribute4)
1171                 OR (    (Recinfo.Attribute4 IS NULL)
1172                     AND (p_Attribute4 IS NULL)))
1173            AND (   (Recinfo.Attribute5 =  p_Attribute5)
1174                 OR (    (Recinfo.Attribute5 IS NULL)
1175                     AND (p_Attribute5 IS NULL)))
1176            AND (   (Recinfo.Attribute6 =  p_Attribute6)
1177                 OR (    (Recinfo.Attribute6 IS NULL)
1178                     AND (p_Attribute6 IS NULL)))
1179            AND (   (Recinfo.Attribute7 =  p_Attribute7)
1180                 OR (    (Recinfo.Attribute7 IS NULL)
1181                     AND (p_Attribute7 IS NULL)))
1182            AND (   (Recinfo.Attribute8 =  p_Attribute8)
1183                 OR (    (Recinfo.Attribute8 IS NULL)
1184                     AND (p_Attribute8 IS NULL)))
1185            AND (   (Recinfo.Attribute9 =  p_Attribute9)
1186                 OR (    (Recinfo.Attribute9 IS NULL)
1187                     AND (p_Attribute9 IS NULL)))
1188            AND (   (Recinfo.Attribute10 =  p_Attribute10)
1189                 OR (    (Recinfo.Attribute10 IS NULL)
1190                     AND (p_Attribute10 IS NULL)))
1191            AND (   (Recinfo.Attribute11 =  p_Attribute11)
1192                 OR (    (Recinfo.Attribute11 IS NULL)
1193                     AND (p_Attribute11 IS NULL)))
1194            AND (   (Recinfo.Attribute12 =  p_Attribute12)
1195                 OR (    (Recinfo.Attribute12 IS NULL)
1196                     AND (p_Attribute12 IS NULL)))
1197            AND (   (Recinfo.Attribute13 =  p_Attribute13)
1198                 OR (    (Recinfo.Attribute13 IS NULL)
1199                     AND (p_Attribute13 IS NULL)))
1200            AND (   (Recinfo.Attribute14 =  p_Attribute14)
1201                 OR (    (Recinfo.Attribute14 IS NULL)
1202                     AND (p_Attribute14 IS NULL)))
1203            AND (   (Recinfo.Attribute15 =  p_Attribute15)
1204                 OR (    (Recinfo.Attribute15 IS NULL)
1205                     AND (p_Attribute15 IS NULL)))
1206            AND (   (Recinfo.Context =  p_Context)
1207                 OR (    (Recinfo.Context IS NULL)
1208                     AND (p_Context IS NULL)))
1209            AND (   (Recinfo.CC_Guarantee_Flag = p_CC_Guarantee_Flag)
1210                OR  (    (Recinfo.CC_Guarantee_Flag IS NULL)
1211                     AND (p_CC_Guarantee_Flag IS NULL)))
1212       ) THEN
1213 
1214 --       IF (IGC_MSGS_PKG.g_debug_mode) THEN
1215        IF g_debug_mode = 'Y' THEN
1216           g_debug_msg := ' IGCCHDRB -- Locked Row Header ID .....' || p_cc_header_id;
1217           Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1218        END IF;
1219 
1220        NULL;
1221 
1222    ELSE
1223 
1224 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1225       IF g_debug_mode = 'Y' THEN
1226          g_debug_msg := ' IGCCHDRB -- Failed Lock Row Header ID .....' || p_cc_header_id;
1227          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1228       END IF;
1229 
1230       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
1231       FND_MSG_PUB.Add;
1232       IF (g_excep_level >=  g_debug_level ) THEN
1233           FND_LOG.MESSAGE (g_excep_level , l_full_path,FALSE);
1234       END IF;
1235       RAISE FND_API.G_EXC_ERROR ;
1236 
1237    END IF;
1238 
1239    IF FND_API.To_Boolean ( p_commit ) THEN
1240 --     IF (IGC_MSGS_PKG.g_debug_mode) THEN
1241      IF g_debug_mode = 'Y' THEN
1242         g_debug_msg := ' IGCCHDRB -- Committing Lock Row Header ID .....' || p_cc_header_id;
1243         Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1244      END IF;
1245 
1246       COMMIT WORK;
1247    END iF;
1248 
1249    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1250                                p_data  => X_msg_data );
1251 
1252 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
1253    IF g_debug_mode = 'Y' THEN
1254       g_debug_msg := ' IGCCHDRB -- End Lock Row Header ID .....' || p_cc_header_id;
1255       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1256    END IF;
1257 
1258    RETURN;
1259 
1260 EXCEPTION
1261 
1262   WHEN APP_EXCEPTION.RECORD_LOCK_EXCEPTION THEN
1263 
1264     ROLLBACK TO Lock_Row_Pvt ;
1265     X_row_locked := FND_API.G_FALSE;
1266     X_return_status := FND_API.G_RET_STS_ERROR;
1267 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1268     IF g_debug_mode = 'Y' THEN
1269        g_debug_msg := ' IGCCHDRB -- Failure Record Lock Exc Header ID .....' || p_cc_header_id;
1270        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1271     END IF;
1272 
1273     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1274                                 p_data  => X_msg_data );
1275     IF (g_excep_level >=  g_debug_level ) THEN
1276         FND_LOG.STRING (g_excep_level,l_full_path,'APP_EXCEPTION.RECORD_LOCK_EXCEPTION Exception Raised');
1277     END IF;
1278 
1279   WHEN FND_API.G_EXC_ERROR THEN
1280 
1281     ROLLBACK TO Lock_Row_Pvt ;
1282     X_return_status := FND_API.G_RET_STS_ERROR;
1283 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1284     IF g_debug_mode = 'Y' THEN
1285        g_debug_msg := ' IGCCHDRB -- Failure Execute Lock Header ID .....' || p_cc_header_id;
1286        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1287     END IF;
1288 
1289     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1290                                 p_data  => X_msg_data );
1291     IF (g_excep_level >=  g_debug_level ) THEN
1292         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
1293     END IF;
1294 
1295   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1296 
1297     ROLLBACK TO Lock_Row_Pvt ;
1298     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1299 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1300     IF g_debug_mode = 'Y' THEN
1301        g_debug_msg := ' IGCCHDRB -- Failure Unexpected Lock Header ID .....' || p_cc_header_id;
1302        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1303     END IF;
1304     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1305                                 p_data  => X_msg_data );
1306     IF (g_excep_level >=  g_debug_level ) THEN
1307         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
1308     END IF;
1309 
1310   WHEN OTHERS THEN
1311 
1312     ROLLBACK TO Lock_Row_Pvt ;
1313     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1314 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1315     IF g_debug_mode = 'Y' THEN
1316        g_debug_msg := ' IGCCHDRB -- Failure Others Lock Header ID .....' || p_cc_header_id;
1317        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1318     END IF;
1319 
1320     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1321       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
1322                                 l_api_name);
1323     END if;
1324 
1325     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1326                                 p_data  => X_msg_data );
1327     IF ( g_unexp_level >= g_debug_level ) THEN
1328        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
1329        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
1330        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
1331        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
1332     END IF;
1333 
1334 END Lock_Row;
1335 
1336 /* ================================================================================
1337          PROCEDURE Update_Row Overloaded Procedure for CC_REF_NUM addition
1338    ===============================================================================*/
1339 
1340 PROCEDURE Update_Row(
1341    p_api_version            IN     NUMBER,
1342    p_init_msg_list          IN     VARCHAR2 := FND_API.G_FALSE,
1343    p_commit                 IN     VARCHAR2 := FND_API.G_FALSE,
1344    p_validation_level       IN     NUMBER   := FND_API.G_VALID_LEVEL_FULL,
1345    X_return_status          OUT NOCOPY    VARCHAR2,
1346    X_msg_count              OUT NOCOPY    NUMBER,
1347    X_msg_data               OUT NOCOPY    VARCHAR2,
1348    p_Rowid               IN OUT NOCOPY    VARCHAR2,
1349    p_CC_Header_Id                  IGC_CC_HEADERS_ALL.CC_Header_Id%TYPE,
1350    p_Org_id                        IGC_CC_HEADERS_ALL.Org_id%TYPE,
1351    p_CC_Type                       IGC_CC_HEADERS_ALL.CC_Type%TYPE,
1352    p_CC_Num                        IGC_CC_HEADERS_ALL.CC_Num%TYPE,
1353    p_CC_Ref_Num                    IGC_CC_HEADERS_ALL.CC_Ref_Num%TYPE,
1354    p_CC_Version_num                IGC_CC_HEADERS_ALL.CC_Version_num%TYPE,
1355    p_Parent_Header_Id              IGC_CC_HEADERS_ALL.Parent_Header_Id%TYPE,
1356    p_CC_State                      IGC_CC_HEADERS_ALL.CC_State%TYPE,
1357    p_CC_ctrl_status                IGC_CC_HEADERS_ALL.CC_ctrl_status%TYPE,
1358    p_CC_Encmbrnc_Status            IGC_CC_HEADERS_ALL.CC_Encmbrnc_Status%TYPE,
1359    p_CC_Apprvl_Status              IGC_CC_HEADERS_ALL.CC_Apprvl_Status%TYPE,
1360    p_Vendor_Id                     IGC_CC_HEADERS_ALL.Vendor_Id%TYPE,
1361    p_Vendor_Site_Id                IGC_CC_HEADERS_ALL.Vendor_Site_Id%TYPE,
1362    p_Vendor_Contact_Id             IGC_CC_HEADERS_ALL.Vendor_Contact_Id%TYPE,
1363    p_Term_Id                       IGC_CC_HEADERS_ALL.Term_Id%TYPE,
1364    p_Location_Id                   IGC_CC_HEADERS_ALL.Location_Id%TYPE,
1365    p_Set_Of_Books_Id               IGC_CC_HEADERS_ALL.Set_Of_Books_Id%TYPE,
1366    p_CC_Acct_Date                  IGC_CC_HEADERS_ALL.CC_Acct_Date%TYPE,
1367    p_CC_Desc                       IGC_CC_HEADERS_ALL.CC_Desc%TYPE,
1368    p_CC_Start_Date                 IGC_CC_HEADERS_ALL.CC_Start_Date%TYPE,
1369    p_CC_End_Date                   IGC_CC_HEADERS_ALL.CC_End_Date%TYPE,
1370    p_CC_Owner_User_Id              IGC_CC_HEADERS_ALL.CC_Owner_User_Id%TYPE,
1371    p_CC_Preparer_User_Id           IGC_CC_HEADERS_ALL.CC_Preparer_User_Id%TYPE,
1372    p_Currency_Code                 IGC_CC_HEADERS_ALL.Currency_Code%TYPE,
1373    p_Conversion_Type               IGC_CC_HEADERS_ALL.Conversion_Type%TYPE,
1374    p_Conversion_Date               IGC_CC_HEADERS_ALL.Conversion_Date%TYPE,
1375    p_Conversion_Rate               IGC_CC_HEADERS_ALL.Conversion_Rate%TYPE,
1376    p_Last_Update_Date              IGC_CC_HEADERS_ALL.Last_Update_Date%TYPE,
1377    p_Last_Updated_By               IGC_CC_HEADERS_ALL.Last_Updated_By%TYPE,
1378    p_Last_Update_Login             IGC_CC_HEADERS_ALL.Last_Update_Login%TYPE,
1379    p_Created_By                    IGC_CC_HEADERS_ALL.Created_By%TYPE,
1380    p_Creation_Date                 IGC_CC_HEADERS_ALL.Creation_Date%TYPE,
1381    p_CC_Current_User_Id            IGC_CC_HEADERS_ALL.CC_Current_User_Id%TYPE,
1382    p_Wf_Item_Type                  IGC_CC_HEADERS_ALL.Wf_Item_Type%TYPE,
1383    p_Wf_Item_Key                   IGC_CC_HEADERS_ALL.Wf_Item_Key%TYPE,
1384    p_Attribute1                    IGC_CC_HEADERS_ALL.Attribute1%TYPE,
1385    p_Attribute2                    IGC_CC_HEADERS_ALL.Attribute2%TYPE,
1386    p_Attribute3                    IGC_CC_HEADERS_ALL.Attribute3%TYPE,
1387    p_Attribute4                    IGC_CC_HEADERS_ALL.Attribute4%TYPE,
1388    p_Attribute5                    IGC_CC_HEADERS_ALL.Attribute5%TYPE,
1389    p_Attribute6                    IGC_CC_HEADERS_ALL.Attribute6%TYPE,
1390    p_Attribute7                    IGC_CC_HEADERS_ALL.Attribute7%TYPE,
1391    p_Attribute8                    IGC_CC_HEADERS_ALL.Attribute8%TYPE,
1392    p_Attribute9                    IGC_CC_HEADERS_ALL.Attribute9%TYPE,
1393    p_Attribute10                   IGC_CC_HEADERS_ALL.Attribute10%TYPE,
1394    p_Attribute11                   IGC_CC_HEADERS_ALL.Attribute11%TYPE,
1395    p_Attribute12                   IGC_CC_HEADERS_ALL.Attribute12%TYPE,
1396    p_Attribute13                   IGC_CC_HEADERS_ALL.Attribute13%TYPE,
1397    p_Attribute14                   IGC_CC_HEADERS_ALL.Attribute14%TYPE,
1398    p_Attribute15                   IGC_CC_HEADERS_ALL.Attribute15%TYPe,
1399    p_Context                       IGC_CC_HEADERS_ALL.Context%TYPE,
1400    p_CC_Guarantee_Flag             IGC_CC_HEADERS_ALL.CC_Guarantee_Flag%TYPE,
1401    G_FLAG                   IN OUT NOCOPY VARCHAR2
1402 ) IS
1403 
1404    l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
1405    l_api_version         CONSTANT NUMBER         :=  1.0;
1406    l_Application_Id      NUMBER;
1407    l_MRC_Enabled         VARCHAR2(1);
1408    l_Conversion_Date     DATE;
1409    l_action_flag         VARCHAR2(1) := 'U';
1410    l_return_status       VARCHAR2(1);
1411 --   l_debug               VARCHAR2(1);
1412 
1413    CURSOR c_igc_app_id IS
1414      SELECT Application_Id
1415        FROM FND_APPLICATION
1416       WHERE Application_Short_Name =  'IGC';
1417 
1418   l_full_path         VARCHAR2(255);
1419 
1420 BEGIN
1421 
1422    l_full_path := g_path || 'Update_Row';
1423 
1424    SAVEPOINT Update_Row_Pvt ;
1425 
1426 -- -----------------------------------------------------------------
1427 -- Ensure that the version requested to be used is correct for
1428 -- this API.
1429 -- -----------------------------------------------------------------
1430    IF NOT FND_API.Compatible_API_Call ( l_api_version,
1431                                         p_api_version,
1432                                         l_api_name,
1433                                         G_PKG_NAME )
1434    THEN
1435       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1436    END IF;
1437 
1438    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
1439       FND_MSG_PUB.initialize ;
1440    END IF;
1441 
1442    X_return_status := FND_API.G_RET_STS_SUCCESS ;
1443 --   l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
1444 
1445 --   IF (l_debug = 'Y') THEN
1446 --      l_debug := FND_API.G_TRUE;
1447 --   ELSE
1448 --      l_debug := FND_API.G_FALSE;
1449 --   END IF;
1450 --   IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
1451 
1452 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
1453    IF g_debug_mode = 'Y' THEN
1454       g_debug_msg := ' IGCCHDRB -- Begin Update Row Header ID Overload .....' || p_cc_header_id;
1455       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1456    END IF;
1457 
1458 -- --------------------------------------------------------------------------
1459 -- Update the CC Header Record
1460 -- --------------------------------------------------------------------------
1461    UPDATE IGC_CC_HEADERS_ALL
1462       SET CC_Header_Id        = p_CC_Header_Id,
1463           Parent_Header_Id    = p_Parent_Header_Id,
1464           Org_Id              = p_Org_id,
1465           CC_Type             = p_CC_Type,
1466           CC_Num              = p_CC_Num,
1467           CC_Ref_Num          = p_CC_Ref_Num,
1468           CC_Version_Num      = p_CC_Version_num,
1469           CC_State            = p_CC_State,
1470           CC_ctrl_status      = p_CC_ctrl_status ,
1471           CC_Encmbrnc_Status  = p_CC_Encmbrnc_Status,
1472           CC_Apprvl_Status    = p_CC_Apprvl_Status,
1473           Vendor_Id           = p_Vendor_Id,
1474           Vendor_Site_Id      = p_Vendor_Site_Id,
1475           Vendor_Contact_Id   = p_Vendor_Contact_Id,
1476           Term_Id             = p_Term_Id,
1477           Location_Id         = p_Location_Id,
1478           Set_Of_Books_Id     = p_Set_Of_Books_Id,
1479           CC_Acct_Date        = p_CC_Acct_Date,
1480           CC_Desc             = p_CC_Desc,
1481           CC_Start_Date       = p_CC_Start_Date,
1482           CC_End_Date         = p_CC_End_Date,
1483           CC_Owner_User_Id    = p_CC_Owner_User_Id,
1484           CC_Preparer_User_Id = p_CC_Preparer_User_Id,
1485           Currency_Code       = p_Currency_Code,
1486           Conversion_Type     = p_Conversion_Type,
1487           Conversion_Date     = p_Conversion_Date,
1488           Conversion_Rate     = p_Conversion_Rate,
1489           Last_Update_Date    = p_Last_Update_Date,
1490           Last_Updated_By     = p_Last_Updated_By,
1491           Last_Update_Login   = p_Last_Update_Login,
1492           Created_By          = p_Created_By,
1493           Creation_Date       = p_Creation_Date,
1494           Wf_Item_Type        = p_Wf_Item_Type,
1495           Wf_Item_Key         = p_Wf_Item_Key,
1496           CC_Current_User_Id  = p_CC_Current_User_Id,
1497           Attribute1          = p_Attribute1,
1498           Attribute2          = p_Attribute2,
1499           Attribute3          = p_Attribute3,
1500           Attribute4          = p_Attribute4,
1501           Attribute5          = p_Attribute5,
1502           Attribute6          = p_Attribute6,
1503           Attribute7          = p_Attribute7,
1504           Attribute8          = p_Attribute8,
1505           Attribute9          = p_Attribute9,
1506           Attribute10         = p_Attribute10,
1507           Attribute11         = p_Attribute11,
1508           Attribute12         = p_Attribute12,
1509           Attribute13         = p_Attribute13,
1510           Attribute14         = p_Attribute14,
1511           Attribute15         = p_Attribute15,
1512           Context             = p_Context,
1513           CC_Guarantee_Flag   = p_CC_Guarantee_Flag
1514     WHERE rowid = p_Rowid;
1515 
1516     IF (SQL%NOTFOUND) THEN
1517 --       IF (IGC_MSGS_PKG.g_debug_mode) THEN
1518        IF g_debug_mode = 'Y' THEN
1519           g_debug_msg := ' IGCCHDRB -- Failure Update Row Header ID Overload .....' || p_cc_header_id;
1520           Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1521        END IF;
1522        RAISE NO_DATA_FOUND;
1523     END IF;
1524 
1525 -- -------------------------------------------------------------------------
1526 -- Obtain the information required for doing the update for the MRC
1527 -- records and reporting sets of books.
1528 -- -------------------------------------------------------------------------
1529    OPEN c_igc_app_id;
1530    FETCH c_igc_app_id
1531     INTO l_Application_Id;
1532 
1533 -- ------------------------------------------------------------------
1534 -- If the application ID can not be attained then exit the procedure
1535 -- ------------------------------------------------------------------
1536    IF (c_igc_app_id%NOTFOUND) THEN
1537 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1538       IF g_debug_mode = 'Y' THEN
1539          g_debug_msg := ' IGCCHDRB -- Failure getting appl ID for Upd Header Overload .....' || p_cc_header_id;
1540          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1541       END IF;
1542       RAISE FND_API.G_EXC_ERROR;
1543    END IF;
1544 
1545    CLOSE c_igc_app_id;
1546 
1547 -- ------------------------------------------------------------------
1548 -- If the conversion date is NULL then fill in the value with the
1549 -- current system date.
1550 -- ------------------------------------------------------------------
1551 
1552    gl_mc_info.mrc_enabled (p_Set_Of_Books_Id,
1553                            101, /*--l_Application_Id, commented for MRC uptake*/
1554                            p_Org_Id,
1555                            NULL,
1556                            l_MRC_Enabled
1557                           );
1558 
1559 -- ------------------------------------------------------------------
1560 -- If MRC has been enabled for this set of books then make sure that
1561 -- the records are updated accordingly.
1562 -- ------------------------------------------------------------------
1563    IF (l_MRC_Enabled = 'Y') THEN
1564 
1565 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1566       IF g_debug_mode = 'Y' THEN
1567          g_debug_msg := ' IGCCHDRB -- MRC enabled for Update Row Header ID Overload .....' || p_cc_header_id;
1568          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1569       END IF;
1570 
1571 -- ------------------------------------------------------------------
1572 -- MRC Handler For IGC_CC_CC_HEADERS to insert all MRC records for
1573 -- the reporting set of books for this PRIMARY set of books.
1574 -- ------------------------------------------------------------------
1575       IGC_CC_MC_MAIN_PVT.get_rsobs_Headers (l_api_version,
1576                                             FND_API.G_FALSE,
1577                                             FND_API.G_FALSE,
1578                                             p_validation_level,
1579                                             l_return_status,
1580                                             X_msg_count,
1581                                             X_msg_data,
1582                                             p_CC_Header_Id,
1583                                             p_Set_Of_Books_Id,
1584                                             101, /*--l_Application_Id, commented for MRC uptake*/                                            p_org_Id,
1585                                             SYSDATE,
1586                                             l_action_flag
1587                                            );
1588 
1589 -- ------------------------------------------------------------------
1590 -- Make sure that the insertion was a success
1591 -- ------------------------------------------------------------------
1592       IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1593 --         IF (IGC_MSGS_PKG.g_debug_mode) THEN
1594          IF g_debug_mode = 'Y' THEN
1595             g_debug_msg := ' IGCCHDRB -- Failure Update MRC return Header ID Overload .....' || p_cc_header_id;
1596             Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1597          END IF;
1598          RAISE FND_API.G_EXC_ERROR;
1599       END IF;
1600 
1601 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1602       IF g_debug_mode = 'Y' THEN
1603          g_debug_msg := ' IGCCHDRB -- MRC Updated Header ID Overload .....' || p_cc_header_id;
1604          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1605       END IF;
1606 
1607    END IF;
1608 
1609 -- -----------------------------------------------------------------
1610 -- If the records are to be commited in this procedure then
1611 -- commit the work now otherwise wait for the caller to do COMMIT.
1612 -- -----------------------------------------------------------------
1613    IF FND_API.To_Boolean ( p_commit ) THEN
1614 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1615       IF g_debug_mode = 'Y' THEN
1616          g_debug_msg := ' IGCCHDRB -- Committing Update Row Header ID Overload .....' || p_cc_header_id;
1617          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1618       END IF;
1619       COMMIT WORK;
1620    END iF;
1621 
1622    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1623                                p_data  => X_msg_data );
1624 
1625 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
1626    IF g_debug_mode = 'Y' THEN
1627       g_debug_msg := ' IGCCHDRB -- End Update Row Header ID Overload .....' || p_cc_header_id;
1628       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1629    END IF;
1630 
1631    RETURN;
1632 
1633 EXCEPTION
1634 
1635   WHEN FND_API.G_EXC_ERROR THEN
1636 
1637     ROLLBACK TO Update_Row_Pvt ;
1638     X_return_status := FND_API.G_RET_STS_ERROR;
1639 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1640     IF g_debug_mode = 'Y' THEN
1641        g_debug_msg := ' IGCCHDRB -- Failure Execute Update Header ID Overload .....' || p_cc_header_id;
1642        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1643     END IF;
1644     IF (c_igc_app_id%ISOPEN) THEN
1645        CLOSE c_igc_app_id;
1646     END IF;
1647     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1648                                 p_data  => X_msg_data );
1649     IF (g_excep_level >=  g_debug_level ) THEN
1650         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
1651     END IF;
1652 
1653   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1654 
1655     ROLLBACK TO Update_Row_Pvt ;
1656    X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1657 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1658     IF g_debug_mode = 'Y' THEN
1659        g_debug_msg := ' IGCCHDRB -- Failure Unexpected Update Header ID Overload .....' || p_cc_header_id;
1660        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1661     END IF;
1662     IF (c_igc_app_id%ISOPEN) THEN
1663        CLOSE c_igc_app_id;
1664     END IF;
1665     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1666                                 p_data  => X_msg_data );
1667     IF (g_excep_level >=  g_debug_level ) THEN
1668         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
1669     END IF;
1670 
1671   WHEN OTHERS THEN
1672 
1673     ROLLBACK TO Update_Row_Pvt ;
1674     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1675 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
1676     IF g_debug_mode = 'Y' THEN
1677        g_debug_msg := ' IGCCHDRB -- Failure Others Update Header ID Overload .....' || p_cc_header_id;
1678        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1679     END IF;
1680     IF (c_igc_app_id%ISOPEN) THEN
1681        CLOSE c_igc_app_id;
1682     END IF;
1683 
1684     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1685       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
1686                                 l_api_name);
1687     END if;
1688 
1689     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1690                                 p_data  => X_msg_data );
1691     IF ( g_unexp_level >= g_debug_level ) THEN
1692        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
1693        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
1694        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
1695        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
1696     END IF;
1697 
1698 END Update_Row;
1699 
1700 /* ================================================================================
1701                          PROCEDURE Update_Row
1702    ===============================================================================*/
1703 
1704 PROCEDURE Update_Row(
1705    p_api_version            IN     NUMBER,
1706    p_init_msg_list          IN     VARCHAR2 := FND_API.G_FALSE,
1707    p_commit                 IN     VARCHAR2 := FND_API.G_FALSE,
1708    p_validation_level       IN     NUMBER   := FND_API.G_VALID_LEVEL_FULL,
1709    X_return_status          OUT NOCOPY    VARCHAR2,
1710    X_msg_count              OUT NOCOPY    NUMBER,
1711    X_msg_data               OUT NOCOPY    VARCHAR2,
1712    p_Rowid               IN OUT NOCOPY    VARCHAR2,
1713    p_CC_Header_Id                  IGC_CC_HEADERS_ALL.CC_Header_Id%TYPE,
1714    p_Org_id                        IGC_CC_HEADERS_ALL.Org_id%TYPE,
1715    p_CC_Type                       IGC_CC_HEADERS_ALL.CC_Type%TYPE,
1716    p_CC_Num                        IGC_CC_HEADERS_ALL.CC_Num%TYPE,
1717    p_CC_Version_num                IGC_CC_HEADERS_ALL.CC_Version_num%TYPE,
1718    p_Parent_Header_Id              IGC_CC_HEADERS_ALL.Parent_Header_Id%TYPE,
1719    p_CC_State                      IGC_CC_HEADERS_ALL.CC_State%TYPE,
1720    p_CC_ctrl_status                IGC_CC_HEADERS_ALL.CC_ctrl_status%TYPE,
1721    p_CC_Encmbrnc_Status            IGC_CC_HEADERS_ALL.CC_Encmbrnc_Status%TYPE,
1722    p_CC_Apprvl_Status              IGC_CC_HEADERS_ALL.CC_Apprvl_Status%TYPE,
1723    p_Vendor_Id                     IGC_CC_HEADERS_ALL.Vendor_Id%TYPE,
1724    p_Vendor_Site_Id                IGC_CC_HEADERS_ALL.Vendor_Site_Id%TYPE,
1725    p_Vendor_Contact_Id             IGC_CC_HEADERS_ALL.Vendor_Contact_Id%TYPE,
1726    p_Term_Id                       IGC_CC_HEADERS_ALL.Term_Id%TYPE,
1727    p_Location_Id                   IGC_CC_HEADERS_ALL.Location_Id%TYPE,
1728    p_Set_Of_Books_Id               IGC_CC_HEADERS_ALL.Set_Of_Books_Id%TYPE,
1729    p_CC_Acct_Date                  IGC_CC_HEADERS_ALL.CC_Acct_Date%TYPE,
1730    p_CC_Desc                       IGC_CC_HEADERS_ALL.CC_Desc%TYPE,
1731    p_CC_Start_Date                 IGC_CC_HEADERS_ALL.CC_Start_Date%TYPE,
1732    p_CC_End_Date                   IGC_CC_HEADERS_ALL.CC_End_Date%TYPE,
1733    p_CC_Owner_User_Id              IGC_CC_HEADERS_ALL.CC_Owner_User_Id%TYPE,
1734    p_CC_Preparer_User_Id           IGC_CC_HEADERS_ALL.CC_Preparer_User_Id%TYPE,
1735    p_Currency_Code                 IGC_CC_HEADERS_ALL.Currency_Code%TYPE,
1736    p_Conversion_Type               IGC_CC_HEADERS_ALL.Conversion_Type%TYPE,
1737    p_Conversion_Date               IGC_CC_HEADERS_ALL.Conversion_Date%TYPE,
1738    p_Conversion_Rate               IGC_CC_HEADERS_ALL.Conversion_Rate%TYPE,
1739    p_Last_Update_Date              IGC_CC_HEADERS_ALL.Last_Update_Date%TYPE,
1740    p_Last_Updated_By               IGC_CC_HEADERS_ALL.Last_Updated_By%TYPE,
1741    p_Last_Update_Login             IGC_CC_HEADERS_ALL.Last_Update_Login%TYPE,
1742    p_Created_By                    IGC_CC_HEADERS_ALL.Created_By%TYPE,
1743    p_Creation_Date                 IGC_CC_HEADERS_ALL.Creation_Date%TYPE,
1744    p_CC_Current_User_Id            IGC_CC_HEADERS_ALL.CC_Current_User_Id%TYPE,
1745    p_Wf_Item_Type                  IGC_CC_HEADERS_ALL.Wf_Item_Type%TYPE,
1746    p_Wf_Item_Key                   IGC_CC_HEADERS_ALL.Wf_Item_Key%TYPE,
1747    p_Attribute1                    IGC_CC_HEADERS_ALL.Attribute1%TYPE,
1748    p_Attribute2                    IGC_CC_HEADERS_ALL.Attribute2%TYPE,
1749    p_Attribute3                    IGC_CC_HEADERS_ALL.Attribute3%TYPE,
1750    p_Attribute4                    IGC_CC_HEADERS_ALL.Attribute4%TYPE,
1751    p_Attribute5                    IGC_CC_HEADERS_ALL.Attribute5%TYPE,
1752    p_Attribute6                    IGC_CC_HEADERS_ALL.Attribute6%TYPE,
1753    p_Attribute7                    IGC_CC_HEADERS_ALL.Attribute7%TYPE,
1754    p_Attribute8                    IGC_CC_HEADERS_ALL.Attribute8%TYPE,
1755    p_Attribute9                    IGC_CC_HEADERS_ALL.Attribute9%TYPE,
1756    p_Attribute10                   IGC_CC_HEADERS_ALL.Attribute10%TYPE,
1757    p_Attribute11                   IGC_CC_HEADERS_ALL.Attribute11%TYPE,
1758    p_Attribute12                   IGC_CC_HEADERS_ALL.Attribute12%TYPE,
1759    p_Attribute13                   IGC_CC_HEADERS_ALL.Attribute13%TYPE,
1760    p_Attribute14                   IGC_CC_HEADERS_ALL.Attribute14%TYPE,
1761    p_Attribute15                   IGC_CC_HEADERS_ALL.Attribute15%TYPe,
1762    p_Context                       IGC_CC_HEADERS_ALL.Context%TYPE,
1763    p_CC_Guarantee_Flag             IGC_CC_HEADERS_ALL.CC_Guarantee_Flag%TYPE,
1764    G_FLAG                   IN OUT NOCOPY VARCHAR2
1765 ) IS
1766 
1767    l_api_name            CONSTANT VARCHAR2(30)   := 'Update_Row';
1768    l_api_version         CONSTANT NUMBER         :=  1.0;
1769    l_Application_Id      NUMBER;
1770    l_MRC_Enabled         VARCHAR2(1);
1771    l_Conversion_Date     DATE;
1772    l_action_flag         VARCHAR2(1) := 'U';
1773    l_return_status       VARCHAR2(1);
1774 --   l_debug               VARCHAR2(1);
1775 
1776    CURSOR c_igc_app_id IS
1777      SELECT Application_Id
1778        FROM FND_APPLICATION
1779       WHERE Application_Short_Name =  'IGC';
1780 
1781   l_full_path         VARCHAR2(255);
1782 
1783 BEGIN
1784 
1785    l_full_path := g_path || 'Update_Row';
1786 
1787    SAVEPOINT Update_Row_Pvt ;
1788 
1789 -- -----------------------------------------------------------------
1790 -- Ensure that the version requested to be used is correct for
1794                                         p_api_version,
1791 -- this API.
1792 -- -----------------------------------------------------------------
1793    IF NOT FND_API.Compatible_API_Call ( l_api_version,
1795                                         l_api_name,
1796                                         G_PKG_NAME )
1797    THEN
1798       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1799    END IF;
1800 
1801    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
1802       FND_MSG_PUB.initialize ;
1803    END IF;
1804 
1805    X_return_status := FND_API.G_RET_STS_SUCCESS ;
1806 --   l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
1807 
1808 --   IF (l_debug = 'Y') THEN
1809 --      l_debug := FND_API.G_TRUE;
1810 --   ELSE
1811 --      l_debug := FND_API.G_FALSE;
1812 --   END IF;
1813 --   IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
1814 
1815 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
1816    IF g_debug_mode = 'Y' THEN
1817       g_debug_msg := ' IGCCHDRB -- Begin Update Row Header ID .....' || p_cc_header_id;
1818       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1819    END IF;
1820 
1821 -- --------------------------------------------------------------------------
1822 -- Update the CC Header Record
1823 -- --------------------------------------------------------------------------
1824    UPDATE IGC_CC_HEADERS_ALL
1825       SET CC_Header_Id                 =      p_CC_Header_Id,
1826           Parent_Header_Id             =      p_Parent_Header_Id,
1827           Org_Id                       =      p_Org_id,
1828           CC_Type                      =      p_CC_Type,
1829           CC_Num                       =      p_CC_Num,
1830           CC_Version_Num               =      p_CC_Version_num,
1831           CC_State                     =      p_CC_State,
1832           CC_ctrl_status               =      p_CC_ctrl_status ,
1833           CC_Encmbrnc_Status           =      p_CC_Encmbrnc_Status,
1834           CC_Apprvl_Status             =      p_CC_Apprvl_Status,
1835           Vendor_Id                    =      p_Vendor_Id,
1836           Vendor_Site_Id               =      p_Vendor_Site_Id,
1837           Vendor_Contact_Id            =      p_Vendor_Contact_Id,
1838           Term_Id                      =      p_Term_Id,
1839           Location_Id                  =      p_Location_Id,
1840           Set_Of_Books_Id              =      p_Set_Of_Books_Id,
1841           CC_Acct_Date                 =      p_CC_Acct_Date,
1842           CC_Desc                      =      p_CC_Desc,
1843           CC_Start_Date                =      p_CC_Start_Date,
1844           CC_End_Date                  =      p_CC_End_Date,
1845           CC_Owner_User_Id             =      p_CC_Owner_User_Id,
1846           CC_Preparer_User_Id          =      p_CC_Preparer_User_Id,
1847           Currency_Code                =      p_Currency_Code,
1848           Conversion_Type              =      p_Conversion_Type,
1849           Conversion_Date              =      p_Conversion_Date,
1850           Conversion_Rate              =      p_Conversion_Rate,
1851           Last_Update_Date             =      p_Last_Update_Date,
1852           Last_Updated_By              =      p_Last_Updated_By,
1853           Last_Update_Login            =      p_Last_Update_Login,
1854           Created_By                   =      p_Created_By,
1855           Creation_Date                =      p_Creation_Date,
1856           Wf_Item_Type                 =      p_Wf_Item_Type,
1857           Wf_Item_Key                  =      p_Wf_Item_Key,
1858           CC_Current_User_Id           =      p_CC_Current_User_Id,
1859           Attribute1                   =      p_Attribute1,
1860           Attribute2                   =      p_Attribute2,
1861           Attribute3                   =      p_Attribute3,
1862           Attribute4                   =      p_Attribute4,
1863           Attribute5                   =      p_Attribute5,
1864           Attribute6                   =      p_Attribute6,
1865           Attribute7                   =      p_Attribute7,
1866           Attribute8                   =      p_Attribute8,
1867           Attribute9                   =      p_Attribute9,
1868           Attribute10                  =      p_Attribute10,
1869           Attribute11                  =      p_Attribute11,
1870           Attribute12                  =      p_Attribute12,
1871           Attribute13                  =      p_Attribute13,
1872           Attribute14                  =      p_Attribute14,
1873           Attribute15                  =      p_Attribute15,
1874           Context                      =      p_Context,
1875           CC_Guarantee_Flag            =      p_CC_Guarantee_Flag
1876     WHERE rowid = p_Rowid;
1877 
1878     IF (SQL%NOTFOUND) THEN
1879 --       IF (IGC_MSGS_PKG.g_debug_mode) THEN
1880        IF g_debug_mode = 'Y' THEN
1881           g_debug_msg := ' IGCCHDRB -- Failure Update Row Header ID .....' || p_cc_header_id;
1882           Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1883        END IF;
1884        RAISE NO_DATA_FOUND;
1885     END IF;
1886 
1887 -- -------------------------------------------------------------------------
1888 -- Obtain the information required for doing the update for the MRC
1889 -- records and reporting sets of books.
1890 -- -------------------------------------------------------------------------
1891    OPEN c_igc_app_id;
1892    FETCH c_igc_app_id
1893     INTO l_Application_Id;
1894 
1895 -- ------------------------------------------------------------------
1896 -- If the application ID can not be attained then exit the procedure
1897 -- ------------------------------------------------------------------
1898    IF (c_igc_app_id%NOTFOUND) THEN
1899 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1900       IF g_debug_mode = 'Y' THEN
1901          g_debug_msg := ' IGCCHDRB -- Failure getting appl ID for Upd Header.....' || p_cc_header_id;
1902          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1903       END IF;
1907    CLOSE c_igc_app_id;
1904       RAISE FND_API.G_EXC_ERROR;
1905    END IF;
1906 
1908 
1909 -- ------------------------------------------------------------------
1910 -- If the conversion date is NULL then fill in the value with the
1911 -- current system date.
1912 -- ------------------------------------------------------------------
1913 
1914    gl_mc_info.mrc_enabled (p_Set_Of_Books_Id,
1915                            101, /*--l_Application_Id, commented for MRC uptake*/                           p_Org_Id,
1916                            NULL,
1917                            l_MRC_Enabled
1918                           );
1919 
1920 -- ------------------------------------------------------------------
1921 -- If MRC has been enabled for this set of books then make sure that
1922 -- the records are updated accordingly.
1923 -- ------------------------------------------------------------------
1924    IF (l_MRC_Enabled = 'Y') THEN
1925 
1926 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1927       IF g_debug_mode = 'Y' THEN
1928          g_debug_msg := ' IGCCHDRB -- MRC enabled for Update Row Header ID .....' || p_cc_header_id;
1929          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1930       END IF;
1931 
1932 -- ------------------------------------------------------------------
1933 -- MRC Handler For IGC_CC_CC_HEADERS to insert all MRC records for
1934 -- the reporting set of books for this PRIMARY set of books.
1935 -- ------------------------------------------------------------------
1936       IGC_CC_MC_MAIN_PVT.get_rsobs_Headers (l_api_version,
1937                                             FND_API.G_FALSE,
1938                                             FND_API.G_FALSE,
1939                                             p_validation_level,
1940                                             l_return_status,
1941                                             X_msg_count,
1942                                             X_msg_data,
1943                                             p_CC_Header_Id,
1944                                             p_Set_Of_Books_Id,
1945                                             101, /*--l_Application_Id, commented for MRC uptake*/                                            p_org_Id,
1946                                             SYSDATE,
1947                                             l_action_flag
1948                                            );
1949 
1950 -- ------------------------------------------------------------------
1951 -- Make sure that the insertion was a success
1952 -- ------------------------------------------------------------------
1953       IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1954 --         IF (IGC_MSGS_PKG.g_debug_mode) THEN
1955          IF g_debug_mode = 'Y' THEN
1956             g_debug_msg := ' IGCCHDRB -- Failure Update MRC return Header ID .....' || p_cc_header_id;
1957             Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1958          END IF;
1959          RAISE FND_API.G_EXC_ERROR;
1960       END IF;
1961 
1962 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1963       IF g_debug_mode = 'Y' THEN
1964          g_debug_msg := ' IGCCHDRB -- MRC Updated Header ID .....' || p_cc_header_id;
1965          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1966       END IF;
1967 
1968    END IF;
1969 
1970 -- -----------------------------------------------------------------
1971 -- If the records are to be commited in this procedure then
1972 -- commit the work now otherwise wait for the caller to do COMMIT.
1973 -- -----------------------------------------------------------------
1974    IF FND_API.To_Boolean ( p_commit ) THEN
1975 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
1976       IF g_debug_mode = 'Y' THEN
1977          g_debug_msg := ' IGCCHDRB -- Committing Update Row Header ID .....' || p_cc_header_id;
1978          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1979       END IF;
1980       COMMIT WORK;
1981    END iF;
1982 
1983    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
1984                                p_data  => X_msg_data );
1985 
1986 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
1987    IF g_debug_mode = 'Y' THEN
1988       g_debug_msg := ' IGCCHDRB -- End Update Row Header ID .....' || p_cc_header_id;
1989       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
1990    END IF;
1991 
1992    RETURN;
1993 
1994 EXCEPTION
1995 
1996   WHEN FND_API.G_EXC_ERROR THEN
1997 
1998     ROLLBACK TO Update_Row_Pvt ;
1999     X_return_status := FND_API.G_RET_STS_ERROR;
2000 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2001     IF g_debug_mode = 'Y' THEN
2002        g_debug_msg := ' IGCCHDRB -- Failure Execute Update Header ID .....' || p_cc_header_id;
2003        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2004     END IF;
2005     IF (c_igc_app_id%ISOPEN) THEN
2006        CLOSE c_igc_app_id;
2007     END IF;
2008     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2009                                 p_data  => X_msg_data );
2010     IF (g_excep_level >=  g_debug_level ) THEN
2011         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
2012     END IF;
2013 
2014   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2015 
2016     ROLLBACK TO Update_Row_Pvt ;
2017     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2018 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2019     IF g_debug_mode = 'Y' THEN
2020        g_debug_msg := ' IGCCHDRB -- Failure Unexpected Update Header ID .....' || p_cc_header_id;
2021        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2022     END IF;
2023     IF (c_igc_app_id%ISOPEN) THEN
2024        CLOSE c_igc_app_id;
2025     END IF;
2026     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2027                                 p_data  => X_msg_data );
2028     IF (g_excep_level >=  g_debug_level ) THEN
2032   WHEN OTHERS THEN
2029         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
2030     END IF;
2031 
2033 
2034     ROLLBACK TO Update_Row_Pvt ;
2035     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2036 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2037     IF g_debug_mode = 'Y' THEN
2038        g_debug_msg := ' IGCCHDRB -- Failure Others Update Header ID .....' || p_cc_header_id;
2039        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2040     END IF;
2041     IF (c_igc_app_id%ISOPEN) THEN
2042        CLOSE c_igc_app_id;
2043     END IF;
2044 
2045     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2046       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
2047                                 l_api_name);
2048     END if;
2049 
2050     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2051                                 p_data  => X_msg_data );
2052 
2053     IF ( g_unexp_level >= g_debug_level ) THEN
2054        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
2055        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
2056        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
2057        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
2058     END IF;
2059 
2060 
2061 END Update_Row;
2062 
2063 /* ================================================================================
2064                          PROCEDURE Delete_Row
2065    ===============================================================================*/
2066 
2067 PROCEDURE Delete_Row(
2068    p_api_version               IN       NUMBER,
2069    p_init_msg_list             IN       VARCHAR2 := FND_API.G_FALSE,
2070    p_commit                    IN       VARCHAR2 := FND_API.G_FALSE,
2071    p_validation_level          IN       NUMBER   := FND_API.G_VALID_LEVEL_FULL,
2072    X_return_status             OUT NOCOPY      VARCHAR2,
2073    X_msg_count                 OUT NOCOPY      NUMBER,
2074    X_msg_data                  OUT NOCOPY      VARCHAR2,
2075    p_Rowid                   IN OUT NOCOPY     VARCHAR2,
2076    G_FLAG                    IN OUT NOCOPY     VARCHAR2
2077 ) IS
2078 
2079    l_api_name                CONSTANT VARCHAR2(30)   := 'Delete_Row';
2080    l_api_version             CONSTANT NUMBER         :=  1.0;
2081    l_msg_count               NUMBER ;
2082    l_msg_data                VARCHAR2(2000) ;
2083    l_version_num             IGC_CC_HEADERS_ALL.CC_Version_Num%TYPE;
2084    l_header_row_id           Varchar2(18);
2085    l_return_status           VARCHAR2(1);
2086    l_action_flag             VARCHAR2(1) := 'D';
2087 --   l_debug                   VARCHAR2(1);
2088 
2089 l_bc_return_status           VARCHAR2(2);
2090 l_batch_result_code          VARCHAR2(3);
2091 l_debug                      VARCHAR2(1);
2092 l_bc_success                 BOOLEAN;
2093 
2094    CURSOR c_cc_header_row_id IS
2095      SELECT *
2096        FROM IGC_CC_HEADERS_ALL
2097       WHERE Rowid = p_Rowid;
2098 
2099    Recinfo c_cc_header_row_id%ROWTYPE;
2100 
2101   l_full_path         VARCHAR2(255);
2102 
2103 BEGIN
2104 
2105    l_full_path := g_path || 'Delete_Row';
2106 
2107    SAVEPOINT Delete_Row_Pvt ;
2108 
2109 -- -----------------------------------------------------------------
2110 -- Ensure that the version requested to be used is correct for
2111 -- this API.
2112 -- -----------------------------------------------------------------
2113    IF NOT FND_API.Compatible_API_Call ( l_api_version,
2114                                         p_api_version,
2115                                         l_api_name,
2116                                         G_PKG_NAME )
2117    THEN
2118       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
2119    END IF;
2120 
2121    IF FND_API.to_Boolean ( p_init_msg_list ) THEN
2122       FND_MSG_PUB.initialize ;
2123    END IF ;
2124 
2125    X_return_status := FND_API.G_RET_STS_SUCCESS ;
2126 --   l_debug         := FND_PROFILE.VALUE('IGC_DEBUG_ENABLED');
2127 
2128 --   IF (l_debug = 'Y') THEN
2129 --      l_debug := FND_API.G_TRUE;
2130 --   ELSE
2131 --      l_debug := FND_API.G_FALSE;
2132 --   END IF;
2133 --   IGC_MSGS_PKG.g_debug_mode := FND_API.TO_BOOLEAN(l_debug);
2134 
2135 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2136    IF g_debug_mode = 'Y' THEN
2137        g_debug_msg := ' IGCCHDRB -- Starting Header delete Rowid ...' || p_rowid;
2138        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2139    END IF;
2140 
2141 -- -----------------------------------------------------------------
2142 -- Get The record that is about to be deleted
2143 -- -----------------------------------------------------------------
2144    OPEN c_cc_header_row_id;
2145    FETCH c_cc_header_row_id
2146     INTO Recinfo;
2147 
2148 -- ------------------------------------------------------------------
2149 -- If the row information can not be attained then exit the procedure
2150 -- ------------------------------------------------------------------
2151    IF (c_cc_header_row_id%NOTFOUND) THEN
2152 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
2153       IF g_debug_mode = 'Y' THEN
2154          g_debug_msg := ' IGCCHDRB -- Failure getting Header Rec delete Rowid ...' || p_rowid;
2155          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2156       END IF;
2157 
2158       RAISE NO_DATA_FOUND;
2159    END IF;
2160 
2161    CLOSE c_cc_header_row_id;
2162 
2163 
2164 -- --------------------------------------------------------------
2165 -- Unreserve the Encubracnes if any
2166 -- ----------------------------------------------------
2167 
2168    IF (Recinfo.CC_ENCMBRNC_STATUS =  'P' AND
2169                 Recinfo.CC_APPRVL_STATUS = 'IN') THEN
2170 
2171           l_bc_success := IGC_CBC_PA_BC_PKG.IGCPAFCK( p_sobid  =>  Recinfo.set_of_books_id,
2175                                              p_ret_status        =>  l_bc_return_status,
2172                                              p_header_id         =>  Recinfo.cc_header_id,
2173                                              p_mode              => 'U',
2174                                              p_actual_flag       =>  'E',
2176                                              p_batch_result_code => l_batch_result_code,
2177                                              p_doc_type          =>  'CC',
2178                                              p_debug             =>   g_debug_mode,
2179                                              p_conc_proc         =>   FND_API.G_FALSE);
2180 
2181              IF l_bc_success = TRUE  --No fatal errors
2182                     AND substr(l_bc_return_status,1,1) IN ('N','S','A') --CBC successfull
2183                     AND substr(l_bc_return_status,2,1) IN ('N','S','A') --SBC successfull
2184 
2185              THEN
2186                  l_Return_Status     := FND_API.G_TRUE;
2187              ELSE
2188                  l_Return_Status      := FND_API.G_FALSE;
2189              END IF;
2190 
2191    IF g_debug_mode = 'Y' THEN
2192 	IF  l_Return_Status = FND_API.G_TRUE THEN
2193 	      g_debug_msg := ' IGCCHDRB -- Succesfully Unreserved the Encubracnes';
2194 	ELSE
2195 	      g_debug_msg := ' IGCCHDRB -- Failed to unreserve the Encubracnes';
2196 	END IF;
2197       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2198    END IF;
2199 
2200    IF l_Return_Status = FND_API.G_TRUE THEN
2201       raise FND_API.G_EXC_UNEXPECTED_ERROR;
2202    END IF;
2203 
2204 END IF;
2205 
2206 
2207 -- --------------------------------------------------------------------
2208 -- Delete all MRC PF History Lines for related CC Header IDs.
2209 -- --------------------------------------------------------------------
2210    DELETE
2211      FROM igc_cc_mc_det_pf_history DPH
2212     WHERE DPH.cc_det_pf_line_id IN
2213           ( SELECT DPF.cc_det_pf_line_id
2214               FROM igc_cc_det_pf DPF
2215              WHERE DPF.cc_acct_line_id IN
2216                    ( SELECT ACL.cc_acct_line_id
2217                        FROM igc_cc_acct_lines ACL
2218                       WHERE ACL.cc_header_id = Recinfo.cc_header_id
2219                    )
2220           )
2221        OR DPH.cc_det_pf_line_id IN
2222           ( SELECT DPFH.cc_det_pf_line_id
2223               FROM igc_cc_det_pf_history DPFH
2224              WHERE DPFH.cc_acct_line_id IN
2225                    ( SELECT ACLH.cc_acct_line_id
2226                        FROM igc_cc_acct_line_history ACLH
2227                       WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2228                    )
2229           );
2230 
2231 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2232    IF g_debug_mode = 'Y' THEN
2233       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_DET_PF_HISTORY for CC Header ID : ' ||
2234                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2235       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2236    END IF;
2237 
2238 -- --------------------------------------------------------------------
2239 -- Delete all MRC PF History Lines for related CC Header IDs.
2240 -- --------------------------------------------------------------------
2241    DELETE
2242      FROM igc_cc_mc_det_pf DP
2243     WHERE DP.cc_det_pf_line_id IN
2244           ( SELECT DPF.cc_det_pf_line_id
2245               FROM igc_cc_det_pf DPF
2246              WHERE DPF.cc_acct_line_id IN
2247                    ( SELECT ACL.cc_acct_line_id
2248                        FROM igc_cc_acct_lines ACL
2249                       WHERE ACL.cc_header_id = Recinfo.cc_header_id
2250                    )
2251           )
2252        OR DP.cc_det_pf_line_id IN
2253           ( SELECT DPFH.cc_det_pf_line_id
2254               FROM igc_cc_det_pf_history DPFH
2255              WHERE DPFH.cc_acct_line_id IN
2256                    ( SELECT ACLH.cc_acct_line_id
2257                        FROM igc_cc_acct_line_history ACLH
2258                       WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2259                    )
2260           );
2261 
2262 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2263    IF g_debug_mode = 'Y' THEN
2264       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_DET_PF for CC Header ID : ' ||
2265                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2266       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2267    END IF;
2268 
2269 -- --------------------------------------------------------------------
2270 -- Delete all MRC Account Line History Lines for related CC Header IDs.
2271 -- --------------------------------------------------------------------
2272    DELETE
2273      FROM igc_cc_mc_acct_line_history CALH
2274     WHERE CALH.cc_acct_line_id IN
2275           ( SELECT ACL.cc_acct_line_id
2276               FROM igc_cc_acct_lines ACL
2277              WHERE ACL.cc_header_id = Recinfo.cc_header_id
2278           )
2279        OR CALH.cc_acct_line_id IN
2280           ( SELECT ACLH.cc_acct_line_id
2281               FROM igc_cc_acct_line_history ACLH
2282              WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2283           );
2284 
2285 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2286    IF g_debug_mode = 'Y' THEN
2287       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_ACCT_LINE_HISTORY for CC Header ID : ' ||
2288                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2289       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2290    END IF;
2291 
2292 -- --------------------------------------------------------------------
2293 -- Delete all MRC Account Line History Lines for related CC Header IDs.
2294 -- --------------------------------------------------------------------
2295    DELETE
2296      FROM igc_cc_mc_acct_lines CAL
2297     WHERE CAL.cc_acct_line_id IN
2301           )
2298           ( SELECT ACL.cc_acct_line_id
2299               FROM igc_cc_acct_lines ACL
2300              WHERE ACL.cc_header_id = Recinfo.cc_header_id
2302        OR CAL.cc_acct_line_id IN
2303           ( SELECT ACLH.cc_acct_line_id
2304               FROM igc_cc_acct_line_history ACLH
2305              WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2306           );
2307 
2308 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2309    IF g_debug_mode = 'Y' THEN
2310       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_ACCT_LINES for CC Header ID : ' ||
2311                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2312       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2313    END IF;
2314 
2315 -- --------------------------------------------------------------------
2316 -- Delete all MRC Header History records for related CC Header IDs.
2317 -- --------------------------------------------------------------------
2318    DELETE
2319      FROM igc_cc_mc_header_history
2320     WHERE cc_header_id = Recinfo.cc_header_id;
2321 
2322 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2323    IF g_debug_mode = 'Y' THEN
2324       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_HEADER_HISTORY for CC Header ID : ' ||
2325                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2326       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2327    END IF;
2328 
2329 -- --------------------------------------------------------------------
2330 -- Delete all MRC Header records for related CC Header IDs.
2331 -- --------------------------------------------------------------------
2332    DELETE
2333      FROM igc_cc_mc_headers
2334     WHERE cc_header_id = Recinfo.cc_header_id;
2335 
2336 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2337    IF g_debug_mode = 'Y' THEN
2338       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_MC_HEADERS for CC Header ID : ' ||
2339                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2340       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2341    END IF;
2342 
2343 -- --------------------------------------------------------------------
2344 -- Delete all CC Action records for related CC Header IDs.
2345 -- --------------------------------------------------------------------
2346    DELETE
2347      FROM igc_cc_actions
2348     WHERE cc_header_id = Recinfo.cc_header_id;
2349 
2350 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2351    IF g_debug_mode = 'Y' THEN
2352       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_ACTIONS for CC Header ID : ' ||
2353                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2354       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2355    END IF;
2356 
2357 -- --------------------------------------------------------------------
2358 -- Delete all PF Line History records for related CC Header IDs.
2359 -- --------------------------------------------------------------------
2360    DELETE
2361      FROM igc_cc_det_pf_history CDPH
2362     WHERE CDPH.cc_acct_line_id IN
2363           ( SELECT ACL.cc_acct_line_id
2364               FROM igc_cc_acct_lines ACL
2365              WHERE ACL.cc_header_id = Recinfo.cc_header_id
2366           )
2367        OR CDPH.cc_acct_line_id IN
2368           ( SELECT ACLH.cc_acct_line_id
2369               FROM igc_cc_acct_line_history ACLH
2370              WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2371           );
2372 
2373 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2374    IF g_debug_mode = 'Y' THEN
2375       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_DET_PF_HISTORY for CC Header ID : ' ||
2376                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2377       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2378    END IF;
2379 
2380 -- --------------------------------------------------------------------
2381 -- Delete all PF Line records for related CC Header IDs.
2382 -- --------------------------------------------------------------------
2383    DELETE
2384      FROM igc_cc_det_pf CDP
2385     WHERE CDP.cc_acct_line_id IN
2386           ( SELECT ACL.cc_acct_line_id
2387               FROM igc_cc_acct_lines ACL
2388              WHERE ACL.cc_header_id = Recinfo.cc_header_id
2389           )
2390        OR CDP.cc_acct_line_id IN
2391           ( SELECT ACLH.cc_acct_line_id
2392               FROM igc_cc_acct_line_history ACLH
2393              WHERE ACLH.cc_header_id = Recinfo.cc_header_id
2394           );
2395 
2396 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2397    IF g_debug_mode = 'Y' THEN
2398       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_DET_PF for CC Header ID : ' ||
2399                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2400       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2401    END IF;
2402 
2403 -- --------------------------------------------------------------------
2404 -- Delete all Acct Line History records for related CC Header IDs.
2405 -- --------------------------------------------------------------------
2406    DELETE
2407      FROM igc_cc_acct_line_history ALH
2408     WHERE ALH.cc_header_id = Recinfo.cc_header_id;
2409 
2410 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2411    IF g_debug_mode = 'Y' THEN
2412       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_ACCT_LINE_HISTORY for CC Header ID : ' ||
2413                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2414       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2415    END IF;
2416 
2417 -- --------------------------------------------------------------------
2418 -- Delete all Acct Line records for related CC Header IDs.
2419 -- --------------------------------------------------------------------
2420    DELETE
2421      FROM igc_cc_acct_lines AL
2422     WHERE AL.cc_header_id = Recinfo.cc_header_id;
2423 
2424 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2428       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2425    IF g_debug_mode = 'Y' THEN
2426       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_ACCT_LINES for CC Header ID : ' ||
2427                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2429    END IF;
2430 
2431 -- --------------------------------------------------------------------
2432 -- Delete all CC Interface records for related CC Header IDs.
2433 -- --------------------------------------------------------------------
2434    DELETE
2435      FROM igc_cc_interface CI
2436     WHERE CI.cc_header_id    = Recinfo.cc_header_id;
2437 
2438 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2439    IF g_debug_mode = 'Y' THEN
2440       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_INTERFACE for CC Header ID : ' ||
2441                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2442       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2443    END IF;
2444 
2445 -- --------------------------------------------------------------------
2446 -- Delete all CC Access records for related CC Header IDs.
2447 -- --------------------------------------------------------------------
2448    DELETE
2449      FROM igc_cc_access CA
2450     WHERE CA.cc_header_id    = Recinfo.cc_header_id;
2451 
2452 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2453    IF g_debug_mode = 'Y' THEN
2454       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_ACCESS for CC Header ID : ' ||
2455                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2456       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2457    END IF;
2458 
2459 -- --------------------------------------------------------------------
2460 -- Delete all Header History records for related CC Header IDs.
2461 -- --------------------------------------------------------------------
2462    DELETE
2463      FROM igc_cc_header_history CHH
2464     WHERE CHH.cc_header_id    = Recinfo.cc_header_id;
2465 
2466 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2467    IF g_debug_mode = 'Y' THEN
2468       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_HEADER_HISTORY for CC Header ID : ' ||
2469                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2470       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2471    END IF;
2472 
2473 -- --------------------------------------------------------------------
2474 -- Delete all Header records for related CC Header IDs.
2475 -- --------------------------------------------------------------------
2476    DELETE
2477      FROM IGC_CC_HEADERS_ALL
2478     WHERE cc_header_id = Recinfo.cc_header_id;
2479 
2480 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2481    IF g_debug_mode = 'Y' THEN
2482       g_debug_msg := ' IGCCHDRB -- Num Rows Delete IGC_CC_HEADER for CC Header ID : ' ||
2483                      Recinfo.cc_header_id || ' is : ' || to_char(SQL%ROWCOUNT);
2484       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2485    END IF;
2486 
2487    G_FLAG := 'Y';
2488 
2489 -- -----------------------------------------------------------------
2490 -- If the records are to be commited in this procedure then
2491 -- commit the work now otherwise wait for the caller to do COMMIT.
2492 -- -----------------------------------------------------------------
2493    IF FND_API.To_Boolean ( p_commit ) THEN
2494 --      IF (IGC_MSGS_PKG.g_debug_mode) THEN
2495       IF g_debug_mode = 'Y' THEN
2496          g_debug_msg := ' IGCCHDRB -- Committing Header delete Rowid ...' || p_rowid;
2497          Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2498       END IF;
2499       COMMIT WORK;
2500    END iF;
2501 
2502    FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2503                                p_data  => X_msg_data );
2504 
2505 --   IF (IGC_MSGS_PKG.g_debug_mode) THEN
2506    IF g_debug_mode = 'Y' THEN
2507       g_debug_msg := ' IGCCHDRB -- End Header delete Rowid ...' || p_rowid;
2508       Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2509    END IF;
2510 
2511    RETURN;
2512 
2513 EXCEPTION
2514 
2515   WHEN FND_API.G_EXC_ERROR THEN
2516 
2517     ROLLBACK TO Delete_Row_Pvt ;
2518     X_return_status := FND_API.G_RET_STS_ERROR;
2519 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2520     IF g_debug_mode = 'Y' THEN
2521        g_debug_msg := ' IGCCHDRB -- Failure Execute Header delete Rowid ...' || p_rowid;
2522        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2523     END IF;
2524     IF (c_cc_header_row_id%ISOPEN) THEN
2525        CLOSE c_cc_header_row_id;
2526     END IF;
2527     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2528                                 p_data  => X_msg_data );
2529     IF (g_excep_level >=  g_debug_level ) THEN
2530         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_ERROR Exception Raised');
2531     END IF;
2532 
2533   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2534 
2535     ROLLBACK TO Delete_Row_Pvt ;
2536     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2537 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2538     IF g_debug_mode = 'Y' THEN
2539        g_debug_msg := ' IGCCHDRB -- Failure Unexpected Header delete Rowid ...' || p_rowid;
2540        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2541     END IF;
2542     IF (c_cc_header_row_id%ISOPEN) THEN
2543        CLOSE c_cc_header_row_id;
2544     END IF;
2545     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2546                                 p_data  => X_msg_data );
2547     IF (g_excep_level >=  g_debug_level ) THEN
2548         FND_LOG.STRING (g_excep_level,l_full_path,'FND_API.G_EXC_UNEXPECTED_ERROR Exception Raised');
2549     END IF;
2550 
2551   WHEN OTHERS THEN
2552 
2553     ROLLBACK TO Delete_Row_Pvt ;
2554     X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2555 --    IF (IGC_MSGS_PKG.g_debug_mode) THEN
2556     IF g_debug_mode = 'Y' THEN
2557        g_debug_msg := ' IGCCHDRB -- Failure Others Header delete Rowid ...' || p_rowid;
2558        Output_Debug (l_full_path, p_debug_msg => g_debug_msg);
2559     END IF;
2560     IF (c_cc_header_row_id%ISOPEN) THEN
2561        CLOSE c_cc_header_row_id;
2562     END IF;
2563 
2564     IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2565       FND_MSG_PUB.Add_Exc_Msg ( G_PKG_NAME,
2566                                 l_api_name);
2567     END if;
2568 
2569     FND_MSG_PUB.Count_And_Get ( p_count => X_msg_count,
2570                                 p_data  => X_msg_data );
2571     IF ( g_unexp_level >= g_debug_level ) THEN
2572        FND_MESSAGE.SET_NAME('IGC','IGC_LOGGING_UNEXP_ERROR');
2573        FND_MESSAGE.SET_TOKEN('CODE',SQLCODE);
2574        FND_MESSAGE.SET_TOKEN('MSG',  SQLERRM);
2575        FND_LOG.MESSAGE ( g_unexp_level,l_full_path, TRUE);
2576     END IF;
2577 
2578 
2579 END Delete_Row;
2580 
2581 END IGC_CC_HEADERS_PKG;