DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEX_LITIGATION_PVT

Source


1 PACKAGE BODY IEX_LITIGATION_PVT as
2 /* $Header: iexvltgb.pls 120.3 2010/09/27 09:49:53 gnramasa ship $ */
3 -- Start of Comments
4 -- Package name     : IEX_LITIGATION_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             :
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'IEX_LITIGATION_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'iexvltgb.pls';
13 
14 
15 -- Hint: Primary key needs to be returned.
16 PG_DEBUG NUMBER(2) := TO_NUMBER(NVL(FND_PROFILE.value('IEX_DEBUG_LEVEL'), '20'));
17 
18 PROCEDURE Create_litigation(
19     P_Api_Version_Number         IN   NUMBER,
20     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
21     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
22     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
23     P_Check_Access_Flag          IN   VARCHAR2   := FND_API.G_FALSE,
24     P_Admin_Flag                 IN   VARCHAR2   := FND_API.G_FALSE,
25     P_Admin_Group_Id             IN   NUMBER,
26     P_Identity_Salesforce_Id     IN   NUMBER,
27     -- P_profile_tbl                IN   AS_UTILITY_PUB.PROFILE_TBL_TYPE,
28     P_LTG_Rec     IN    LTG_Rec_Type  := G_MISS_LTG_REC,
29   --Hint: Add detail tables as parameter lists if it's master-detail relationship.
30     X_LITIGATION_ID     OUT NOCOPY  NUMBER,
31     X_Return_Status              OUT NOCOPY  VARCHAR2,
32     X_Msg_Count                  OUT NOCOPY  NUMBER,
33     X_Msg_Data                   OUT NOCOPY  VARCHAR2
34     )
35 
36  IS
37 l_api_name                CONSTANT VARCHAR2(30) := 'Create_litigation';
38 l_api_version_number      CONSTANT NUMBER   := 2.0;
39 l_return_status_full        VARCHAR2(1);
40 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
41 l_access_flag               VARCHAR2(1);
42 BEGIN
43       -- Standard Start of API savepoint
44       SAVEPOINT CREATE_LITIGATION_PVT;
45 
46       -- Standard call to check for call compatibility.
47       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
48                                            p_api_version_number,
49                                            l_api_name,
50                                            G_PKG_NAME)
51       THEN
52           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
53       END IF;
54 
55 
56       -- Initialize message list if p_init_msg_list is set to TRUE.
57       IF FND_API.to_Boolean( p_init_msg_list )
58       THEN
59           FND_MSG_PUB.initialize;
60       END IF;
61 
62 
63 
64       -- Initialize API return status to SUCCESS
65       x_return_status := FND_API.G_RET_STS_SUCCESS;
66 
67       --
68       -- API body
69       --
70       -- ******************************************************************
71       -- Validate Environment
72       -- ******************************************************************
73       IF FND_GLOBAL.User_Id IS NULL
74       THEN
75           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
76           THEN
77               FND_MESSAGE.Set_Name('IEX', 'UT_CANNOT_GET_PROFILE_VALUE');
78               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
79               FND_MSG_PUB.ADD;
80           END IF;
81           RAISE FND_API.G_EXC_ERROR;
82       END IF;
83 
84 
85       IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
86       THEN
87           AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
88               p_api_version_number => 2.0
89              ,p_init_msg_list      => p_init_msg_list
90              ,p_salesforce_id => NULL
91              ,p_admin_group_id => p_admin_group_id
92              ,x_return_status => x_return_status
93              ,x_msg_count => x_msg_count
94              ,x_msg_data => x_msg_data
95              ,x_sales_member_rec => l_identity_sales_member_rec);
96 
97 
98           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
99               RAISE FND_API.G_EXC_ERROR;
100           END IF;
101 
102       END IF;
103 
104 
105       -- Invoke validation procedures
106       Validate_litigation(
107           p_init_msg_list    => FND_API.G_FALSE,
108           p_validation_level => p_validation_level,
109           p_validation_mode  => AS_UTILITY_PVT.G_CREATE,
110           P_LTG_Rec  =>  P_LTG_Rec,
111           x_return_status    => x_return_status,
112           x_msg_count        => x_msg_count,
113           x_msg_data         => x_msg_data);
114 
115       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
116           RAISE FND_API.G_EXC_ERROR;
117       END IF;
118 
119 
120       IF p_check_access_flag = 'Y'
121       THEN
122           -- Please un-comment here and complete it
123 --        AS_ACCESS_PUB.Has_???Access(
124 --            p_api_version_number     => 2.0
125 --           ,p_init_msg_list          => p_init_msg_list
126 --           ,p_validation_level       => p_validation_level
127 --           ,p_profile_tbl            => p_profile_tbl
128 --           ,p_admin_flag             => p_admin_flag
129 --           ,p_admin_group_id         => p_admin_group_id
130 --           ,p_person_id              => l_identity_sales_member_rec.employee_person_id
131 --           ,p_customer_id            =>
132 --           ,p_check_access_flag      => 'Y'
133 --           ,p_identity_salesforce_id => p_identity_salesforce_id
134 --           ,p_partner_cont_party_id  => NULL
135 --           ,x_return_status          => x_return_status
136 --           ,x_msg_count              => x_msg_count
137 --           ,x_msg_data               => x_msg_data
138 --           ,x_access_flag            => l_access_flag);
139 
140 
141 
142           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
143               RAISE FND_API.G_EXC_ERROR;
144           END IF;
145 
146       END IF;
147       -- Hint: Add corresponding Master-Detail business logic here if necessary.
148 
149     -- Start added for bug 6601993 gnramasa 20th Dec 07
150       -- Invoke table handler(IEX_LITIGATIONS_PKG.Insert_Row)
151       IEX_LITIGATIONS_PKG.Insert_Row(
152           px_LITIGATION_ID  => x_LITIGATION_ID
153          ,p_DELINQUENCY_ID  => p_LTG_rec.DELINQUENCY_ID
154          ,p_PARTY_ID  => p_LTG_rec.PARTY_ID
155          ,p_UNPAID_REASON_CODE  => p_LTG_rec.UNPAID_REASON_CODE
156          ,p_JUDGEMENT_DATE  => p_LTG_rec.JUDGEMENT_DATE
157          ,p_DISPOSITION_CODE  => p_LTG_rec.DISPOSITION_CODE
158          ,p_REQUEST_ID  => p_LTG_rec.REQUEST_ID
159          ,p_PROGRAM_APPLICATION_ID  => p_LTG_rec.PROGRAM_APPLICATION_ID
160          ,p_PROGRAM_ID  => p_LTG_rec.PROGRAM_ID
161          ,p_PROGRAM_UPDATE_DATE  => p_LTG_rec.PROGRAM_UPDATE_DATE
162          ,p_ATTRIBUTE_CATEGORY  => p_LTG_rec.ATTRIBUTE_CATEGORY
163          ,p_ATTRIBUTE1  => p_LTG_rec.ATTRIBUTE1
164          ,p_ATTRIBUTE2  => p_LTG_rec.ATTRIBUTE2
165          ,p_ATTRIBUTE3  => p_LTG_rec.ATTRIBUTE3
166          ,p_ATTRIBUTE4  => p_LTG_rec.ATTRIBUTE4
167          ,p_ATTRIBUTE5  => p_LTG_rec.ATTRIBUTE5
168          ,p_ATTRIBUTE6  => p_LTG_rec.ATTRIBUTE6
169          ,p_ATTRIBUTE7  => p_LTG_rec.ATTRIBUTE7
170          ,p_ATTRIBUTE8  => p_LTG_rec.ATTRIBUTE8
171          ,p_ATTRIBUTE9  => p_LTG_rec.ATTRIBUTE9
172          ,p_ATTRIBUTE10  => p_LTG_rec.ATTRIBUTE10
173          ,p_ATTRIBUTE11  => p_LTG_rec.ATTRIBUTE11
174          ,p_ATTRIBUTE12  => p_LTG_rec.ATTRIBUTE12
175          ,p_ATTRIBUTE13  => p_LTG_rec.ATTRIBUTE13
176          ,p_ATTRIBUTE14  => p_LTG_rec.ATTRIBUTE14
177          ,p_ATTRIBUTE15  => p_LTG_rec.ATTRIBUTE15
178          ,p_CREATED_BY  => FND_GLOBAL.USER_ID
179          ,p_CREATION_DATE  => SYSDATE
180          ,p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID
181          ,p_LAST_UPDATE_DATE  => SYSDATE
182          --,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID  --commented for bug 10034220 gnramasa 24th Sep 10
183 	 ,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.USER_ID
184          ,p_CREDIT_HOLD_REQUEST_FLAG  => p_LTG_rec.CREDIT_HOLD_REQUEST_FLAG
185          ,p_CREDIT_HOLD_APPROVED_FLAG  => p_LTG_rec.CREDIT_HOLD_APPROVED_FLAG
186          ,p_SERVICE_HOLD_REQUEST_FLAG  => p_LTG_rec.SERVICE_HOLD_REQUEST_FLAG
187          ,p_SERVICE_HOLD_APPROVED_FLAG  => p_LTG_rec.SERVICE_HOLD_APPROVED_FLAG
188          ,p_SUGGESTION_APPROVED_FLAG  => p_LTG_rec.SUGGESTION_APPROVED_FLAG
189 	 ,p_CUST_ACCOUNT_ID  => p_LTG_rec. CUST_ACCOUNT_ID
190 	 ,p_CUSTOMER_SITE_USE_ID  => p_LTG_rec.CUSTOMER_SITE_USE_ID
191 	 ,p_ORG_ID  => p_LTG_rec.ORG_ID
192 	 ,p_CONTRACT_ID  => p_LTG_rec.CONTRACT_ID
193 	 ,p_CONTRACT_NUMBER  => p_LTG_rec.CONTRACT_NUMBER);
194       -- Hint: Primary key should be returned.
195       -- x_LITIGATION_ID := px_LITIGATION_ID;
196 
197           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
198               RAISE FND_API.G_EXC_ERROR;
199           END IF;
200 
201       --
202       -- End of API body
203       --
204 
205       -- Standard check for p_commit
206       IF FND_API.to_Boolean( p_commit )
207       THEN
208           COMMIT WORK;
209       END IF;
210 
211 
212 
213       -- Standard call to get message count and if count is 1, get message info.
214       FND_MSG_PUB.Count_And_Get
215       (  p_count          =>   x_msg_count,
216          p_data           =>   x_msg_data
217       );
218 
219       EXCEPTION
220           WHEN FND_API.G_EXC_ERROR THEN
221               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
222                    P_API_NAME => L_API_NAME
223                   ,P_PKG_NAME => G_PKG_NAME
224                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
225                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
226                   ,X_MSG_COUNT => X_MSG_COUNT
227                   ,X_MSG_DATA => X_MSG_DATA
228                   ,X_RETURN_STATUS => X_RETURN_STATUS);
229 
230           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
231               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
232                    P_API_NAME => L_API_NAME
233                   ,P_PKG_NAME => G_PKG_NAME
234                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
235                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
236                   ,X_MSG_COUNT => X_MSG_COUNT
237                   ,X_MSG_DATA => X_MSG_DATA
238                   ,X_RETURN_STATUS => X_RETURN_STATUS);
239 
240           WHEN OTHERS THEN
241               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
242                    P_API_NAME => L_API_NAME
243                   ,P_PKG_NAME => G_PKG_NAME
244                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
245                   ,P_SQLCODE => SQLCODE
246                   ,P_SQLERRM => SQLERRM
247                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
248                   ,X_MSG_COUNT => X_MSG_COUNT
249                   ,X_MSG_DATA => X_MSG_DATA
250                   ,X_RETURN_STATUS => X_RETURN_STATUS);
251 End Create_litigation;
252 
253 
254 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
255 PROCEDURE Update_litigation(
256     P_Api_Version_Number         IN   NUMBER,
257     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
258     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
259     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
260     P_Check_Access_Flag          IN   VARCHAR2   := FND_API.G_FALSE,
261     P_Admin_Flag                 IN   VARCHAR2   := FND_API.G_FALSE,
262     P_Admin_Group_Id             IN   NUMBER,
263     P_Identity_Salesforce_Id     IN   NUMBER,
264     -- P_profile_tbl                IN   AS_UTILITY_PUB.PROFILE_TBL_TYPE,
265     P_LTG_Rec     IN    LTG_Rec_Type,
266     X_Return_Status              OUT NOCOPY  VARCHAR2,
267     X_Msg_Count                  OUT NOCOPY  NUMBER,
268     X_Msg_Data                   OUT NOCOPY  VARCHAR2
269     )
270 
271  IS
272 /*
273 Cursor C_Get_litigation(LITIGATION_ID Number) IS
274     Select rowid,
275            LITIGATION_ID,
276            DELINQUENCY_ID,
277            PARTY_ID,
278            UNPAID_REASON_CODE,
279            JUDGEMENT_DATE,
280            DISPOSITION_CODE,
281            REQUEST_ID,
282            PROGRAM_APPLICATION_ID,
283            PROGRAM_ID,
284            PROGRAM_UPDATE_DATE,
285            ATTRIBUTE_CATEGORY,
286            ATTRIBUTE1,
287            ATTRIBUTE2,
288            ATTRIBUTE3,
289            ATTRIBUTE4,
290            ATTRIBUTE5,
291            ATTRIBUTE6,
292            ATTRIBUTE7,
293            ATTRIBUTE8,
294            ATTRIBUTE9,
295            ATTRIBUTE10,
296            ATTRIBUTE11,
297            ATTRIBUTE12,
298            ATTRIBUTE13,
299            ATTRIBUTE14,
300            ATTRIBUTE15,
301            CREATED_BY,
302            CREATION_DATE,
303            LAST_UPDATED_BY,
304            LAST_UPDATE_DATE,
305            LAST_UPDATE_LOGIN,
306            CREDIT_HOLD_REQUEST_FLAG,
307            CREDIT_HOLD_APPROVED_FLAG,
308            SERVICE_HOLD_REQUEST_FLAG,
309            SERVICE_HOLD_APPROVED_FLAG,
310            SUGGESTION_APPROVED_FLAG
311     From  IEX_LITIGATIONS
312     -- Hint: Developer need to provide Where clause
313     For Update NOWAIT;
314 */
315 l_api_name                CONSTANT VARCHAR2(30) := 'Update_litigation';
316 l_api_version_number      CONSTANT NUMBER   := 2.0;
317 -- Local Variables
318 l_identity_sales_member_rec   AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
319 l_ref_LTG_rec  IEX_litigation_PVT.LTG_Rec_Type;
320 l_tar_LTG_rec  IEX_litigation_PVT.LTG_Rec_Type := P_LTG_Rec;
321 l_rowid  ROWID;
322 BEGIN
323       -- Standard Start of API savepoint
324       SAVEPOINT UPDATE_LITIGATION_PVT;
325 
326       -- Standard call to check for call compatibility.
327       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
328                                            p_api_version_number,
329                                            l_api_name,
330                                            G_PKG_NAME)
331       THEN
332           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
333       END IF;
334 
335 
336       -- Initialize message list if p_init_msg_list is set to TRUE.
337       IF FND_API.to_Boolean( p_init_msg_list )
338       THEN
339           FND_MSG_PUB.initialize;
340       END IF;
341 
342 
343 
344       -- Initialize API return status to SUCCESS
345       x_return_status := FND_API.G_RET_STS_SUCCESS;
346 
347       --
348       -- Api body
349       --
350 
351       IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
352       THEN
353           AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
354               p_api_version_number => 2.0
355              ,p_init_msg_list      => p_init_msg_list
356              ,p_salesforce_id => p_identity_salesforce_id
357              ,p_admin_group_id => p_admin_group_id
358              ,x_return_status => x_return_status
359              ,x_msg_count => x_msg_count
360              ,x_msg_data => x_msg_data
361              ,x_sales_member_rec => l_identity_sales_member_rec);
362 
363 
364           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
365               RAISE FND_API.G_EXC_ERROR;
366           END IF;
367 
368       END IF;
369 
370 /*
371       Open C_Get_litigation( l_tar_LTG_rec.LITIGATION_ID);
372 
373       Fetch C_Get_litigation into
374                l_rowid,
375                l_ref_LTG_rec.LITIGATION_ID,
376                l_ref_LTG_rec.DELINQUENCY_ID,
377                l_ref_LTG_rec.PARTY_ID,
378                l_ref_LTG_rec.UNPAID_REASON_CODE,
379                l_ref_LTG_rec.JUDGEMENT_DATE,
380                l_ref_LTG_rec.DISPOSITION_CODE,
381                l_ref_LTG_rec.REQUEST_ID,
382                l_ref_LTG_rec.PROGRAM_APPLICATION_ID,
383                l_ref_LTG_rec.PROGRAM_ID,
384                l_ref_LTG_rec.PROGRAM_UPDATE_DATE,
385                l_ref_LTG_rec.ATTRIBUTE_CATEGORY,
386                l_ref_LTG_rec.ATTRIBUTE1,
387                l_ref_LTG_rec.ATTRIBUTE2,
388                l_ref_LTG_rec.ATTRIBUTE3,
389                l_ref_LTG_rec.ATTRIBUTE4,
390                l_ref_LTG_rec.ATTRIBUTE5,
391                l_ref_LTG_rec.ATTRIBUTE6,
392                l_ref_LTG_rec.ATTRIBUTE7,
393                l_ref_LTG_rec.ATTRIBUTE8,
394                l_ref_LTG_rec.ATTRIBUTE9,
395                l_ref_LTG_rec.ATTRIBUTE10,
396                l_ref_LTG_rec.ATTRIBUTE11,
397                l_ref_LTG_rec.ATTRIBUTE12,
398                l_ref_LTG_rec.ATTRIBUTE13,
399                l_ref_LTG_rec.ATTRIBUTE14,
400                l_ref_LTG_rec.ATTRIBUTE15,
401                l_ref_LTG_rec.CREATED_BY,
402                l_ref_LTG_rec.CREATION_DATE,
403                l_ref_LTG_rec.LAST_UPDATED_BY,
404                l_ref_LTG_rec.LAST_UPDATE_DATE,
405                l_ref_LTG_rec.LAST_UPDATE_LOGIN,
406                l_ref_LTG_rec.CREDIT_HOLD_REQUEST_FLAG,
407                l_ref_LTG_rec.CREDIT_HOLD_APPROVED_FLAG,
408                l_ref_LTG_rec.SERVICE_HOLD_REQUEST_FLAG,
409                l_ref_LTG_rec.SERVICE_HOLD_APPROVED_FLAG,
410                l_ref_LTG_rec.SUGGESTION_APPROVED_FLAG;
411 
412        If ( C_Get_litigation%NOTFOUND) Then
413            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
414            THEN
415                FND_MESSAGE.Set_Name('IEX', 'API_MISSING_UPDATE_TARGET');
416                FND_MESSAGE.Set_Token ('INFO', 'litigation', FALSE);
417                FND_MSG_PUB.Add;
418            END IF;
419            Close C_Get_litigation;
420            raise FND_API.G_EXC_ERROR;
421        END IF;
422        Close     C_Get_litigation;
423 */
424 
425 
426       If (l_tar_LTG_rec.last_update_date is NULL or
427           l_tar_LTG_rec.last_update_date = FND_API.G_MISS_Date ) Then
428           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
429           THEN
430               FND_MESSAGE.Set_Name('IEX', 'API_MISSING_ID');
431               FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
432               FND_MSG_PUB.ADD;
433           END IF;
434           raise FND_API.G_EXC_ERROR;
435       End if;
436       -- Check Whether record has been changed by someone else
437       /*
438       If (l_tar_LTG_rec.last_update_date <> l_ref_LTG_rec.last_update_date) Then
439           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
440           THEN
441               FND_MESSAGE.Set_Name('IEX', 'API_RECORD_CHANGED');
442               FND_MESSAGE.Set_Token('INFO', 'litigation', FALSE);
443               FND_MSG_PUB.ADD;
444           END IF;
445           raise FND_API.G_EXC_ERROR;
446       End if;
447       */
448 
449       -- Invoke validation procedures
450       Validate_litigation(
451           p_init_msg_list    => FND_API.G_FALSE,
452           p_validation_level => p_validation_level,
453           p_validation_mode  => AS_UTILITY_PVT.G_UPDATE,
454           P_LTG_Rec  =>  P_LTG_Rec,
455           x_return_status    => x_return_status,
456           x_msg_count        => x_msg_count,
457           x_msg_data         => x_msg_data);
458 
459       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
460           RAISE FND_API.G_EXC_ERROR;
461       END IF;
462 
463 
464       IF p_check_access_flag = 'Y'
465       THEN
466           -- Please un-comment here and complete it
467 --        AS_ACCESS_PUB.Has_???Access(
468 --            p_api_version_number     => 2.0
469 --           ,p_init_msg_list          => p_init_msg_list
470 --           ,p_validation_level       => p_validation_level
471 --           ,p_profile_tbl            => p_profile_tbl
472 --           ,p_admin_flag             => p_admin_flag
473 --           ,p_admin_group_id         => p_admin_group_id
474 --           ,p_person_id              => l_identity_sales_member_rec.employee_person_id
475 --           ,p_customer_id            =>
476 --           ,p_check_access_flag      => 'Y'
477 --           ,p_identity_salesforce_id => p_identity_salesforce_id
478 --           ,p_partner_cont_party_id  => NULL
479 --           ,x_return_status          => x_return_status
480 --           ,x_msg_count              => x_msg_count
481 --           ,x_msg_data               => x_msg_data
482 --           ,x_access_flag            => l_access_flag);
483 
484 
485 
486           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
487               RAISE FND_API.G_EXC_ERROR;
488           END IF;
489 
490       END IF;
491       -- Hint: Add corresponding Master-Detail business logic here if necessary.
492 
493 
494       -- Invoke table handler(IEX_LITIGATIONS_PKG.Update_Row)
495       IEX_LITIGATIONS_PKG.Update_Row(
496           p_LITIGATION_ID  => p_LTG_rec.LITIGATION_ID
497          ,p_DELINQUENCY_ID  => p_LTG_rec.DELINQUENCY_ID
498          ,p_PARTY_ID  => p_LTG_rec.PARTY_ID
499          ,p_UNPAID_REASON_CODE  => p_LTG_rec.UNPAID_REASON_CODE
500          ,p_JUDGEMENT_DATE  => p_LTG_rec.JUDGEMENT_DATE
501          ,p_DISPOSITION_CODE  => p_LTG_rec.DISPOSITION_CODE
502          ,p_REQUEST_ID  => p_LTG_rec.REQUEST_ID
503          ,p_PROGRAM_APPLICATION_ID  => p_LTG_rec.PROGRAM_APPLICATION_ID
504          ,p_PROGRAM_ID  => p_LTG_rec.PROGRAM_ID
505          ,p_PROGRAM_UPDATE_DATE  => p_LTG_rec.PROGRAM_UPDATE_DATE
506          ,p_ATTRIBUTE_CATEGORY  => p_LTG_rec.ATTRIBUTE_CATEGORY
507          ,p_ATTRIBUTE1  => p_LTG_rec.ATTRIBUTE1
508          ,p_ATTRIBUTE2  => p_LTG_rec.ATTRIBUTE2
509          ,p_ATTRIBUTE3  => p_LTG_rec.ATTRIBUTE3
510          ,p_ATTRIBUTE4  => p_LTG_rec.ATTRIBUTE4
511          ,p_ATTRIBUTE5  => p_LTG_rec.ATTRIBUTE5
512          ,p_ATTRIBUTE6  => p_LTG_rec.ATTRIBUTE6
513          ,p_ATTRIBUTE7  => p_LTG_rec.ATTRIBUTE7
514          ,p_ATTRIBUTE8  => p_LTG_rec.ATTRIBUTE8
515          ,p_ATTRIBUTE9  => p_LTG_rec.ATTRIBUTE9
516          ,p_ATTRIBUTE10  => p_LTG_rec.ATTRIBUTE10
517          ,p_ATTRIBUTE11  => p_LTG_rec.ATTRIBUTE11
518          ,p_ATTRIBUTE12  => p_LTG_rec.ATTRIBUTE12
519          ,p_ATTRIBUTE13  => p_LTG_rec.ATTRIBUTE13
520          ,p_ATTRIBUTE14  => p_LTG_rec.ATTRIBUTE14
521          ,p_ATTRIBUTE15  => p_LTG_rec.ATTRIBUTE15
522          ,p_CREATED_BY     => FND_API.G_MISS_NUM
523          ,p_CREATION_DATE  => FND_API.G_MISS_DATE
524          ,p_LAST_UPDATED_BY  => FND_GLOBAL.USER_ID
525          ,p_LAST_UPDATE_DATE  => SYSDATE
526          --,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.CONC_LOGIN_ID    --commented for bug 10034220 gnramasa 24th Sep 10
527 	 ,p_LAST_UPDATE_LOGIN  => FND_GLOBAL.USER_ID
528          ,p_CREDIT_HOLD_REQUEST_FLAG  => p_LTG_rec.CREDIT_HOLD_REQUEST_FLAG
529          ,p_CREDIT_HOLD_APPROVED_FLAG  => p_LTG_rec.CREDIT_HOLD_APPROVED_FLAG
530          ,p_SERVICE_HOLD_REQUEST_FLAG  => p_LTG_rec.SERVICE_HOLD_REQUEST_FLAG
531          ,p_SERVICE_HOLD_APPROVED_FLAG  => p_LTG_rec.SERVICE_HOLD_APPROVED_FLAG
532          ,p_SUGGESTION_APPROVED_FLAG  => p_LTG_rec.SUGGESTION_APPROVED_FLAG
533 	 ,p_CUST_ACCOUNT_ID  => p_LTG_rec. CUST_ACCOUNT_ID
534 	 ,p_CUSTOMER_SITE_USE_ID  => p_LTG_rec.CUSTOMER_SITE_USE_ID
535 	 ,p_ORG_ID  => p_LTG_rec.ORG_ID
536 	 ,p_CONTRACT_ID  => p_LTG_rec.CONTRACT_ID
537 	 ,p_CONTRACT_NUMBER  => p_LTG_rec.CONTRACT_NUMBER);
538 
539      -- End added for bug 6601993 gnramasa 20th Dec 07
540       --
541       -- End of API body.
542       --
543 
544       -- Standard check for p_commit
545       IF FND_API.to_Boolean( p_commit )
546       THEN
547           COMMIT WORK;
548       END IF;
549 
550 
551 
552       -- Standard call to get message count and if count is 1, get message info.
553       FND_MSG_PUB.Count_And_Get
554       (  p_count          =>   x_msg_count,
555          p_data           =>   x_msg_data
556       );
557 
558       EXCEPTION
559           WHEN FND_API.G_EXC_ERROR THEN
560               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
561                    P_API_NAME => L_API_NAME
562                   ,P_PKG_NAME => G_PKG_NAME
563                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
564                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
565                   ,X_MSG_COUNT => X_MSG_COUNT
566                   ,X_MSG_DATA => X_MSG_DATA
567                   ,X_RETURN_STATUS => X_RETURN_STATUS);
568 
569           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
570               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
571                    P_API_NAME => L_API_NAME
572                   ,P_PKG_NAME => G_PKG_NAME
573                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
574                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
575                   ,X_MSG_COUNT => X_MSG_COUNT
576                   ,X_MSG_DATA => X_MSG_DATA
577                   ,X_RETURN_STATUS => X_RETURN_STATUS);
578 
579           WHEN OTHERS THEN
580               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
581                    P_API_NAME => L_API_NAME
582                   ,P_PKG_NAME => G_PKG_NAME
583                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
584                   ,P_SQLCODE => SQLCODE
585                   ,P_SQLERRM => SQLERRM
586                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
587                   ,X_MSG_COUNT => X_MSG_COUNT
588                   ,X_MSG_DATA => X_MSG_DATA
589                   ,X_RETURN_STATUS => X_RETURN_STATUS);
590 End Update_litigation;
591 
592 
593 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
594 --       The Master delete procedure may not be needed depends on different business requirements.
595 PROCEDURE Delete_litigation(
596     P_Api_Version_Number         IN   NUMBER,
597     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
598     P_Commit                     IN   VARCHAR2   := FND_API.G_FALSE,
599     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
600     P_Check_Access_Flag          IN   VARCHAR2   := FND_API.G_FALSE,
601     P_Admin_Flag                 IN   VARCHAR2   := FND_API.G_FALSE,
602     P_Admin_Group_Id             IN   NUMBER,
603     P_Identity_Salesforce_Id     IN   NUMBER,
604     P_Profile_Tbl                IN   AS_UTILITY_PUB.PROFILE_TBL_TYPE,
605     P_LTG_Rec     IN LTG_Rec_Type,
606     X_Return_Status              OUT NOCOPY  VARCHAR2,
607     X_Msg_Count                  OUT NOCOPY  NUMBER,
608     X_Msg_Data                   OUT NOCOPY  VARCHAR2
609     )
610 
611  IS
612 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_litigation';
613 l_api_version_number      CONSTANT NUMBER   := 2.0;
614 l_identity_sales_member_rec  AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
615 BEGIN
616       -- Standard Start of API savepoint
617       SAVEPOINT DELETE_LITIGATION_PVT;
618 
619       -- Standard call to check for call compatibility.
620       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
621                                            p_api_version_number,
622                                            l_api_name,
623                                            G_PKG_NAME)
624       THEN
625           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
626       END IF;
627 
628 
629       -- Initialize message list if p_init_msg_list is set to TRUE.
630       IF FND_API.to_Boolean( p_init_msg_list )
631       THEN
632           FND_MSG_PUB.initialize;
633       END IF;
634 
635 
636 
637       -- Initialize API return status to SUCCESS
638       x_return_status := FND_API.G_RET_STS_SUCCESS;
639 
640       --
641       -- Api body
642       --
643 
644       IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
645       THEN
646           AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
647               p_api_version_number => 2.0
648              ,p_init_msg_list      => p_init_msg_list
649              ,p_salesforce_id => p_identity_salesforce_id
650              ,p_admin_group_id => p_admin_group_id
651              ,x_return_status => x_return_status
652              ,x_msg_count => x_msg_count
653              ,x_msg_data => x_msg_data
654              ,x_sales_member_rec => l_identity_sales_member_rec);
655 
656 
657           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
658               RAISE FND_API.G_EXC_ERROR;
659           END IF;
660 
661       END IF;
662 
663       IF p_check_access_flag = 'Y'
664       THEN
665           -- Please un-comment here and complete it
666 --        AS_ACCESS_PUB.Has_???Access(
667 --            p_api_version_number     => 2.0
668 --           ,p_init_msg_list          => p_init_msg_list
669 --           ,p_validation_level       => p_validation_level
670 --           ,p_profile_tbl            => p_profile_tbl
671 --           ,p_admin_flag             => p_admin_flag
672 --           ,p_admin_group_id         => p_admin_group_id
673 --           ,p_person_id              => l_identity_sales_member_rec.employee_person_id
674 --           ,p_customer_id            =>
675 --           ,p_check_access_flag      => 'Y'
676 --           ,p_identity_salesforce_id => p_identity_salesforce_id
677 --           ,p_partner_cont_party_id  => NULL
678 --           ,x_return_status          => x_return_status
679 --           ,x_msg_count              => x_msg_count
680 --           ,x_msg_data               => x_msg_data
681 --           ,x_access_flag            => l_access_flag);
682 
683 
684 
685           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
686               RAISE FND_API.G_EXC_ERROR;
687           END IF;
688 
689       END IF;
690 
691       -- Invoke table handler(IEX_LITIGATIONS_PKG.Delete_Row)
692       IEX_LITIGATIONS_PKG.Delete_Row(
693           p_LITIGATION_ID  => p_LTG_rec.LITIGATION_ID);
694       --
695       -- End of API body
696       --
697 
698       -- Standard check for p_commit
699       IF FND_API.to_Boolean( p_commit )
700       THEN
701           COMMIT WORK;
702       END IF;
703 
704 
705 
706       -- Standard call to get message count and if count is 1, get message info.
707       FND_MSG_PUB.Count_And_Get
708       (  p_count          =>   x_msg_count,
709          p_data           =>   x_msg_data
710       );
711 
712       EXCEPTION
713           WHEN FND_API.G_EXC_ERROR THEN
714               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
715                    P_API_NAME => L_API_NAME
716                   ,P_PKG_NAME => G_PKG_NAME
717                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
718                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
719                   ,X_MSG_COUNT => X_MSG_COUNT
720                   ,X_MSG_DATA => X_MSG_DATA
721                   ,X_RETURN_STATUS => X_RETURN_STATUS);
722 
723           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
724               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
725                    P_API_NAME => L_API_NAME
726                   ,P_PKG_NAME => G_PKG_NAME
727                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
728                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
729                   ,X_MSG_COUNT => X_MSG_COUNT
730                   ,X_MSG_DATA => X_MSG_DATA
731                   ,X_RETURN_STATUS => X_RETURN_STATUS);
732 
733           WHEN OTHERS THEN
734               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
735                    P_API_NAME => L_API_NAME
736                   ,P_PKG_NAME => G_PKG_NAME
737                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
738                   ,P_SQLCODE => SQLCODE
739                   ,P_SQLERRM => SQLERRM
740                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
741                   ,X_MSG_COUNT => X_MSG_COUNT
742                   ,X_MSG_DATA => X_MSG_DATA
743                   ,X_RETURN_STATUS => X_RETURN_STATUS);
744 End Delete_litigation;
745 
746 
747 -- This procudure defines the columns for the Dynamic SQL.
748 PROCEDURE Define_Columns(
749     P_LTG_Rec   IN  LTG_Rec_Type,
750     p_cur_get_LTG   IN   NUMBER
751 )
752 IS
753 BEGIN
754 
755       -- define all columns for IEX_LITIGATIONS view
756       dbms_sql.define_column(p_cur_get_LTG, 1, P_LTG_Rec.LITIGATION_ID);
757       dbms_sql.define_column(p_cur_get_LTG, 2, P_LTG_Rec.DELINQUENCY_ID);
758       dbms_sql.define_column(p_cur_get_LTG, 3, P_LTG_Rec.PARTY_ID);
759       dbms_sql.define_column(p_cur_get_LTG, 4, P_LTG_Rec.UNPAID_REASON_CODE, 30);
760       dbms_sql.define_column(p_cur_get_LTG, 5, P_LTG_Rec.JUDGEMENT_DATE);
761       dbms_sql.define_column(p_cur_get_LTG, 6, P_LTG_Rec.DISPOSITION_CODE, 30);
762       dbms_sql.define_column(p_cur_get_LTG, 7, P_LTG_Rec.REQUEST_ID);
763       dbms_sql.define_column(p_cur_get_LTG, 8, P_LTG_Rec.ATTRIBUTE_CATEGORY, 240);
764       dbms_sql.define_column(p_cur_get_LTG, 9, P_LTG_Rec.ATTRIBUTE1, 240);
765       dbms_sql.define_column(p_cur_get_LTG, 10, P_LTG_Rec.ATTRIBUTE2, 240);
766       dbms_sql.define_column(p_cur_get_LTG, 11, P_LTG_Rec.ATTRIBUTE3, 240);
767       dbms_sql.define_column(p_cur_get_LTG, 12, P_LTG_Rec.ATTRIBUTE4, 240);
768       dbms_sql.define_column(p_cur_get_LTG, 13, P_LTG_Rec.ATTRIBUTE5, 240);
769       dbms_sql.define_column(p_cur_get_LTG, 14, P_LTG_Rec.ATTRIBUTE6, 240);
770       dbms_sql.define_column(p_cur_get_LTG, 15, P_LTG_Rec.ATTRIBUTE7, 240);
771       dbms_sql.define_column(p_cur_get_LTG, 16, P_LTG_Rec.ATTRIBUTE8, 240);
772       dbms_sql.define_column(p_cur_get_LTG, 17, P_LTG_Rec.ATTRIBUTE9, 240);
773       dbms_sql.define_column(p_cur_get_LTG, 18, P_LTG_Rec.ATTRIBUTE10, 240);
774       dbms_sql.define_column(p_cur_get_LTG, 19, P_LTG_Rec.ATTRIBUTE11, 240);
775       dbms_sql.define_column(p_cur_get_LTG, 20, P_LTG_Rec.ATTRIBUTE12, 240);
776       dbms_sql.define_column(p_cur_get_LTG, 21, P_LTG_Rec.ATTRIBUTE13, 240);
777       dbms_sql.define_column(p_cur_get_LTG, 22, P_LTG_Rec.ATTRIBUTE14, 240);
778       dbms_sql.define_column(p_cur_get_LTG, 23, P_LTG_Rec.ATTRIBUTE15, 240);
779       dbms_sql.define_column(p_cur_get_LTG, 24, P_LTG_Rec.CREDIT_HOLD_REQUEST_FLAG, 240);
780       dbms_sql.define_column(p_cur_get_LTG, 25, P_LTG_Rec.CREDIT_HOLD_APPROVED_FLAG, 240);
781       dbms_sql.define_column(p_cur_get_LTG, 26, P_LTG_Rec.SERVICE_HOLD_REQUEST_FLAG, 240);
782       dbms_sql.define_column(p_cur_get_LTG, 27, P_LTG_Rec.SERVICE_HOLD_APPROVED_FLAG, 240);
783       dbms_sql.define_column(p_cur_get_LTG, 28, P_LTG_Rec.SUGGESTION_APPROVED_FLAG, 240);
784 
785 END Define_Columns;
786 
787 -- This procudure gets column values by the Dynamic SQL.
788 PROCEDURE Get_Column_Values(
789     p_cur_get_LTG   IN   NUMBER,
790     X_LTG_Rec       OUT NOCOPY  LTG_Rec_Type
791 )
792 IS
793 BEGIN
794 
795       -- get all column values for IEX_LITIGATIONS table
796       dbms_sql.column_value(p_cur_get_LTG, 1, X_LTG_Rec.LITIGATION_ID);
797       dbms_sql.column_value(p_cur_get_LTG, 2, X_LTG_Rec.DELINQUENCY_ID);
798       dbms_sql.column_value(p_cur_get_LTG, 3, X_LTG_Rec.PARTY_ID);
799       dbms_sql.column_value(p_cur_get_LTG, 4, X_LTG_Rec.UNPAID_REASON_CODE);
800       dbms_sql.column_value(p_cur_get_LTG, 5, X_LTG_Rec.JUDGEMENT_DATE);
801       dbms_sql.column_value(p_cur_get_LTG, 6, X_LTG_Rec.DISPOSITION_CODE);
802       dbms_sql.column_value(p_cur_get_LTG, 7, X_LTG_Rec.REQUEST_ID);
803       dbms_sql.column_value(p_cur_get_LTG, 8, X_LTG_Rec.ATTRIBUTE_CATEGORY);
804       dbms_sql.column_value(p_cur_get_LTG, 9, X_LTG_Rec.ATTRIBUTE1);
805       dbms_sql.column_value(p_cur_get_LTG, 10, X_LTG_Rec.ATTRIBUTE2);
806       dbms_sql.column_value(p_cur_get_LTG, 11, X_LTG_Rec.ATTRIBUTE3);
807       dbms_sql.column_value(p_cur_get_LTG, 12, X_LTG_Rec.ATTRIBUTE4);
808       dbms_sql.column_value(p_cur_get_LTG, 13, X_LTG_Rec.ATTRIBUTE5);
809       dbms_sql.column_value(p_cur_get_LTG, 14, X_LTG_Rec.ATTRIBUTE6);
810       dbms_sql.column_value(p_cur_get_LTG, 15, X_LTG_Rec.ATTRIBUTE7);
811       dbms_sql.column_value(p_cur_get_LTG, 16, X_LTG_Rec.ATTRIBUTE8);
812       dbms_sql.column_value(p_cur_get_LTG, 17, X_LTG_Rec.ATTRIBUTE9);
813       dbms_sql.column_value(p_cur_get_LTG, 18, X_LTG_Rec.ATTRIBUTE10);
814       dbms_sql.column_value(p_cur_get_LTG, 19, X_LTG_Rec.ATTRIBUTE11);
815       dbms_sql.column_value(p_cur_get_LTG, 20, X_LTG_Rec.ATTRIBUTE12);
816       dbms_sql.column_value(p_cur_get_LTG, 21, X_LTG_Rec.ATTRIBUTE13);
817       dbms_sql.column_value(p_cur_get_LTG, 22, X_LTG_Rec.ATTRIBUTE14);
818       dbms_sql.column_value(p_cur_get_LTG, 23, X_LTG_Rec.ATTRIBUTE15);
819       dbms_sql.column_value(p_cur_get_LTG, 24, X_LTG_Rec.CREDIT_HOLD_REQUEST_FLAG);
820       dbms_sql.column_value(p_cur_get_LTG, 25, X_LTG_Rec.CREDIT_HOLD_APPROVED_FLAG);
821       dbms_sql.column_value(p_cur_get_LTG, 26, X_LTG_Rec.SERVICE_HOLD_REQUEST_FLAG);
822       dbms_sql.column_value(p_cur_get_LTG, 27, X_LTG_Rec.SERVICE_HOLD_APPROVED_FLAG);
823       dbms_sql.column_value(p_cur_get_LTG, 28, X_LTG_Rec.SUGGESTION_APPROVED_FLAG);
824 
825 END Get_Column_Values;
826 
827 PROCEDURE Gen_LTG_order_cl(
828     p_order_by_rec   IN   LTG_sort_rec_type,
829     x_order_by_cl    OUT NOCOPY  VARCHAR2,
830     x_return_status  OUT NOCOPY  VARCHAR2,
831     x_msg_count      OUT NOCOPY  NUMBER,
832     x_msg_data       OUT NOCOPY  VARCHAR2
833 )
834 IS
835 l_order_by_cl        VARCHAR2(1000)   := NULL;
836 l_util_order_by_tbl  AS_UTILITY_PVT.Util_order_by_tbl_type;
837 BEGIN
838 
839       -- Hint: Developer should add more statements according to IEX_sort_rec_type
840       -- Ex:
841       -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
842       -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
843 
844 
845       AS_UTILITY_PVT.Translate_OrderBy(
846           p_api_version_number   =>   1.0
847          ,p_init_msg_list        =>   FND_API.G_FALSE
848          ,p_validation_level     =>   FND_API.G_VALID_LEVEL_FULL
849          ,p_order_by_tbl         =>   l_util_order_by_tbl
850          ,x_order_by_clause      =>   l_order_by_cl
851          ,x_return_status        =>   x_return_status
852          ,x_msg_count            =>   x_msg_count
853          ,x_msg_data             =>   x_msg_data);
854 
855       IF(l_order_by_cl IS NOT NULL) THEN
856           x_order_by_cl := 'order by' || l_order_by_cl;
857       ELSE
858           x_order_by_cl := NULL;
859       END IF;
860 
861 END Gen_LTG_order_cl;
862 
863 -- This procedure bind the variables for the Dynamic SQL
864 PROCEDURE Bind(
865     P_LTG_Rec   IN   LTG_Rec_Type,
866     -- Hint: Add more binding variables here
867     p_cur_get_LTG   IN   NUMBER
868 )
869 IS
870 BEGIN
871       -- Bind variables
872       -- Only those that are not NULL
873 
874       -- The following example applies to all columns,
875       -- developers can copy and paste them.
876       IF( (P_LTG_Rec.LITIGATION_ID IS NOT NULL) AND (P_LTG_Rec.LITIGATION_ID <> FND_API.G_MISS_NUM) )
877       THEN
878           DBMS_SQL.BIND_VARIABLE(p_cur_get_LTG, ':p_LITIGATION_ID', P_LTG_Rec.LITIGATION_ID);
879       END IF;
880 
881 END Bind;
882 
883 PROCEDURE Gen_Select(
884     x_select_cl   OUT NOCOPY   VARCHAR2
885 )
886 IS
887 BEGIN
888 
889       x_select_cl := 'Select ' ||
890                 'IEX_LITIGATIONS.LITIGATION_ID,' ||
891                 'IEX_LITIGATIONS.DELINQUENCY_ID,' ||
892                 'IEX_LITIGATIONS.PARTY_ID,' ||
893                 'IEX_LITIGATIONS.UNPAID_REASON_CODE,' ||
894                 'IEX_LITIGATIONS.JUDGEMENT_DATE,' ||
895                 'IEX_LITIGATIONS.DISPOSITION_CODE,' ||
896                 'IEX_LITIGATIONS.REQUEST_ID,' ||
897                 'IEX_LITIGATIONS.PROGRAM_APPLICATION_ID,' ||
898                 'IEX_LITIGATIONS.PROGRAM_ID,' ||
899                 'IEX_LITIGATIONS.PROGRAM_UPDATE_DATE,' ||
900                 'IEX_LITIGATIONS.ATTRIBUTE_CATEGORY,' ||
901                 'IEX_LITIGATIONS.ATTRIBUTE1,' ||
902                 'IEX_LITIGATIONS.ATTRIBUTE2,' ||
903                 'IEX_LITIGATIONS.ATTRIBUTE3,' ||
904                 'IEX_LITIGATIONS.ATTRIBUTE4,' ||
905                 'IEX_LITIGATIONS.ATTRIBUTE5,' ||
906                 'IEX_LITIGATIONS.ATTRIBUTE6,' ||
907                 'IEX_LITIGATIONS.ATTRIBUTE7,' ||
908                 'IEX_LITIGATIONS.ATTRIBUTE8,' ||
909                 'IEX_LITIGATIONS.ATTRIBUTE9,' ||
910                 'IEX_LITIGATIONS.ATTRIBUTE10,' ||
911                 'IEX_LITIGATIONS.ATTRIBUTE11,' ||
912                 'IEX_LITIGATIONS.ATTRIBUTE12,' ||
913                 'IEX_LITIGATIONS.ATTRIBUTE13,' ||
914                 'IEX_LITIGATIONS.ATTRIBUTE14,' ||
915                 'IEX_LITIGATIONS.ATTRIBUTE15,' ||
916                 'IEX_LITIGATIONS.CREATED_BY,' ||
917                 'IEX_LITIGATIONS.CREATION_DATE,' ||
918                 'IEX_LITIGATIONS.LAST_UPDATED_BY,' ||
919                 'IEX_LITIGATIONS.LAST_UPDATE_DATE,' ||
920                 'IEX_LITIGATIONS.LAST_UPDATE_LOGIN,' ||
921                 'IEX_LITIGATIONS.SECURITY_GROUP_ID,' ||
922                 'IEX_LITIGATIONS.CREDIT_HOLD_REQUEST_FLAG,' ||
923                 'IEX_LITIGATIONS.CREDIT_HOLD_APPROVED_FLAG,' ||
924                 'IEX_LITIGATIONS.SERVICE_HOLD_REQUEST_FLAG,' ||
925                 'IEX_LITIGATIONS.SERVICE_HOLD_APPROVED_FLAG,' ||
926                 'IEX_LITIGATIONS.SUGGESTION_APPROVED_FLAG,' ||
927                 'from IEX_LITIGATIONS';
928 
929 END Gen_Select;
930 
931 PROCEDURE Gen_LTG_Where(
932     P_LTG_Rec     IN   LTG_Rec_Type,
933     x_LTG_where   OUT NOCOPY   VARCHAR2
934 )
935 IS
936 -- cursors to check if wildcard values '%' and '_' have been passed
937 -- as item values
938 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
939     SELECT INSTR(p_rec_item, '%', 1, 1)
940     FROM DUAL;
941 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
942     SELECT INSTR(p_rec_item, '_', 1, 1)
943     FROM DUAL;
944 
945 -- return values from cursors
946 str_csr1   NUMBER;
947 str_csr2   NUMBER;
948 l_operator VARCHAR2(10);
949 BEGIN
950 
951       -- There are three examples for each kind of datatype:
952       -- NUMBER, DATE, VARCHAR2.
953       -- Developer can copy and paste the following codes for your own record.
954 
955       -- example for NUMBER datatype
956       IF( (P_LTG_Rec.LITIGATION_ID IS NOT NULL) AND (P_LTG_Rec.LITIGATION_ID <> FND_API.G_MISS_NUM) )
957       THEN
958           IF(x_LTG_where IS NULL) THEN
959               x_LTG_where := 'Where';
960           ELSE
961               x_LTG_where := x_LTG_where || ' AND ';
962           END IF;
963           x_LTG_where := x_LTG_where || 'P_LTG_Rec.LITIGATION_ID = :p_LITIGATION_ID';
964       END IF;
965 
966       -- example for DATE datatype
967       IF( (P_LTG_Rec.JUDGEMENT_DATE IS NOT NULL) AND (P_LTG_Rec.JUDGEMENT_DATE <> FND_API.G_MISS_DATE) )
968       THEN
969           -- check if item value contains '%' wildcard
970           OPEN c_chk_str1(P_LTG_Rec.JUDGEMENT_DATE);
971           FETCH c_chk_str1 INTO str_csr1;
972           CLOSE c_chk_str1;
973 
974           IF(str_csr1 <> 0) THEN
975               l_operator := ' LIKE ';
976           ELSE
977               l_operator := ' = ';
978           END IF;
979 
980           -- check if item value contains '_' wildcard
981           OPEN c_chk_str2(P_LTG_Rec.JUDGEMENT_DATE);
982           FETCH c_chk_str2 INTO str_csr2;
983           CLOSE c_chk_str2;
984 
985           IF(str_csr2 <> 0) THEN
986               l_operator := ' LIKE ';
987           ELSE
988               l_operator := ' = ';
989           END IF;
990 
991           IF(x_LTG_where IS NULL) THEN
992               x_LTG_where := 'Where ';
993           ELSE
994               x_LTG_where := x_LTG_where || ' AND ';
995           END IF;
996           x_LTG_where := x_LTG_where || 'P_LTG_Rec.JUDGEMENT_DATE ' || l_operator || ' :p_JUDGEMENT_DATE';
997       END IF;
998 
999       -- example for VARCHAR2 datatype
1000       IF( (P_LTG_Rec.UNPAID_REASON_CODE IS NOT NULL) AND (P_LTG_Rec.UNPAID_REASON_CODE <> FND_API.G_MISS_CHAR) )
1001       THEN
1002           -- check if item value contains '%' wildcard
1003           OPEN c_chk_str1(P_LTG_Rec.UNPAID_REASON_CODE);
1004           FETCH c_chk_str1 INTO str_csr1;
1005           CLOSE c_chk_str1;
1006 
1007           IF(str_csr1 <> 0) THEN
1008               l_operator := ' LIKE ';
1009           ELSE
1010               l_operator := ' = ';
1011           END IF;
1012 
1013           -- check if item value contains '_' wildcard
1014           OPEN c_chk_str2(P_LTG_Rec.UNPAID_REASON_CODE);
1015           FETCH c_chk_str2 INTO str_csr2;
1016           CLOSE c_chk_str2;
1017 
1018           IF(str_csr2 <> 0) THEN
1019               l_operator := ' LIKE ';
1020           ELSE
1021               l_operator := ' = ';
1022           END IF;
1023 
1024           IF(x_LTG_where IS NULL) THEN
1025               x_LTG_where := 'Where ';
1026           ELSE
1027               x_LTG_where := x_LTG_where || ' AND ';
1028           END IF;
1029           x_LTG_where := x_LTG_where || 'P_LTG_Rec.UNPAID_REASON_CODE ' || l_operator || ' :p_UNPAID_REASON_CODE';
1030       END IF;
1031 
1032       -- Add more IF statements for each column below
1033 
1034 
1035 END Gen_LTG_Where;
1036 
1037 PROCEDURE Get_litigation(
1038     P_Api_Version_Number         IN   NUMBER,
1039     P_Init_Msg_List              IN   VARCHAR2   := FND_API.G_FALSE,
1040     p_validation_level           IN   NUMBER     := FND_API.G_VALID_LEVEL_FULL,
1041     P_Admin_Group_id             IN   NUMBER,
1042     P_identity_salesforce_id     IN   NUMBER     := NULL,
1043     P_LTG_Rec                    IN   LTG_Rec_Type,
1044   -- Hint: Add list of bind variables here
1045     p_rec_requested              IN   NUMBER  := G_DEFAULT_NUM_REC_FETCH,
1046     p_start_rec_prt              IN   NUMBER  := 1,
1047     p_return_tot_count           IN   NUMBER  := FND_API.G_FALSE,
1048   -- Hint: user defined record type
1049     p_order_by_rec               IN   LTG_sort_rec_type,
1050     x_return_status              OUT NOCOPY  VARCHAR2,
1051     x_msg_count                  OUT NOCOPY  NUMBER,
1052     x_msg_data                   OUT NOCOPY  VARCHAR2,
1053     X_LTG_Tbl                    OUT NOCOPY  LTG_Tbl_Type,
1054     x_returned_rec_count         OUT NOCOPY  NUMBER,
1055     x_next_rec_ptr               OUT NOCOPY  NUMBER,
1056     x_tot_rec_count              OUT NOCOPY  NUMBER
1057   -- other optional parameters
1058 --  x_tot_rec_amount             OUT NOCOPY  NUMBER
1059     )
1060 
1061  IS
1062 l_api_name                CONSTANT VARCHAR2(30) := 'Get_litigation';
1063 l_api_version_number      CONSTANT NUMBER   := 2.0;
1064 
1065 -- Local identity variables
1066 l_identity_sales_member_rec  AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
1067 
1068 -- Local record counters
1069 l_returned_rec_count     NUMBER := 0; -- number of records returned in x_X_LTG_Rec
1070 l_next_record_ptr        NUMBER := 1;
1071 l_ignore                 NUMBER;
1072 
1073 -- total number of records accessable by caller
1074 l_tot_rec_count          NUMBER := 0;
1075 l_tot_rec_amount         NUMBER := 0;
1076 
1077 -- Status local variables
1078 l_return_status          VARCHAR2(1); -- Return value from procedures
1079 l_return_status_full     VARCHAR2(1); -- Calculated return status from
1080 
1081 -- Dynamic SQL statement elements
1082 l_cur_get_LTG            NUMBER;
1083 l_select_cl              VARCHAR2(2000) := '';
1084 l_order_by_cl            VARCHAR2(2000);
1085 l_LTG_where    VARCHAR2(2000) := '';
1086 
1087 -- For flex field query
1088 l_flex_where_tbl_type    AS_FOUNDATION_PVT.flex_where_tbl_type;
1089 l_flex_where             VARCHAR2(2000) := NULL;
1090 l_counter                NUMBER;
1091 
1092 -- Local scratch record
1093 l_LTG_rec   LTG_Rec_Type;
1094 l_crit_LTG_rec    LTG_Rec_Type;
1095 BEGIN
1096       -- Standard Start of API savepoint
1097       SAVEPOINT GET_LITIGATION_PVT;
1098 
1099       -- Standard call to check for call compatibility.
1100       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1101                                            p_api_version_number,
1102                                            l_api_name,
1103                                            G_PKG_NAME)
1104       THEN
1105           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1106       END IF;
1107 
1108 
1109       -- Initialize message list if p_init_msg_list is set to TRUE.
1110       IF FND_API.to_Boolean( p_init_msg_list )
1111       THEN
1112           FND_MSG_PUB.initialize;
1113       END IF;
1114 
1115 
1116 
1117       -- Initialize API return status to SUCCESS
1118       x_return_status := FND_API.G_RET_STS_SUCCESS;
1119 
1120       --
1121       -- Api body
1122       --
1123 
1124       IF p_validation_level = FND_API.G_VALID_LEVEL_FULL
1125       THEN
1126           AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
1127               p_api_version_number => 2.0
1128              ,p_init_msg_list      => p_init_msg_list
1129              ,p_salesforce_id => p_identity_salesforce_id
1130              ,p_admin_group_id => p_admin_group_id
1131              ,x_return_status => x_return_status
1132              ,x_msg_count => x_msg_count
1133              ,x_msg_data => x_msg_data
1134              ,x_sales_member_rec => l_identity_sales_member_rec);
1135 
1136 
1137           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1138               RAISE FND_API.G_EXC_ERROR;
1139           END IF;
1140 
1141       END IF;
1142       -- *************************************************
1143       -- Generate Dynamic SQL based on criteria passed in.
1144       -- Doing this for performance. Indexes are disabled when using NVL within static SQL statement.
1145       -- Ignore condition when criteria is NULL
1146       -- Generate Select clause and From clause
1147       -- Hint: Developer should modify Gen_Select procedure.
1148       Gen_Select(l_select_cl);
1149 
1150       -- Hint: Developer should modify and implement Gen_Where precedure.
1151       Gen_LTG_Where(l_crit_LTG_rec, l_LTG_where);
1152 
1153       -- Generate Where clause for flex fields
1154       -- Hint: Developer can use table/view alias in the From clause generated in Gen_Select procedure
1155 
1156       FOR l_counter IN 1..15 LOOP
1157           l_flex_where_tbl_type(l_counter).name := 'IEX_LITIGATIONS.attribute' || l_counter;
1158       END LOOP;
1159 
1160       l_flex_where_tbl_type(16).name := 'IEX_LITIGATIONS.attribute_category';
1161       l_flex_where_tbl_type(1).value := P_LTG_Rec.attribute1;
1162       l_flex_where_tbl_type(2).value := P_LTG_Rec.attribute2;
1163       l_flex_where_tbl_type(3).value := P_LTG_Rec.attribute3;
1164       l_flex_where_tbl_type(4).value := P_LTG_Rec.attribute4;
1165       l_flex_where_tbl_type(5).value := P_LTG_Rec.attribute5;
1166       l_flex_where_tbl_type(6).value := P_LTG_Rec.attribute6;
1167       l_flex_where_tbl_type(7).value := P_LTG_Rec.attribute7;
1168       l_flex_where_tbl_type(8).value := P_LTG_Rec.attribute8;
1169       l_flex_where_tbl_type(9).value := P_LTG_Rec.attribute9;
1170       l_flex_where_tbl_type(10).value := P_LTG_Rec.attribute10;
1171       l_flex_where_tbl_type(11).value := P_LTG_Rec.attribute11;
1172       l_flex_where_tbl_type(12).value := P_LTG_Rec.attribute12;
1173       l_flex_where_tbl_type(13).value := P_LTG_Rec.attribute13;
1174       l_flex_where_tbl_type(14).value := P_LTG_Rec.attribute14;
1175       l_flex_where_tbl_type(15).value := P_LTG_Rec.attribute15;
1176       l_flex_where_tbl_type(16).value := P_LTG_Rec.attribute_category;
1177 
1178       AS_FOUNDATION_PVT.Gen_Flexfield_Where(
1179           p_flex_where_tbl_type   => l_flex_where_tbl_type,
1180           x_flex_where_clause     => l_flex_where);
1181 
1182       -- Hint: if master/detail relationship, generate Where clause for lines level criteria
1183       -- Generate order by clause
1184       Gen_LTG_order_cl(p_order_by_rec, l_order_by_cl, l_return_status, x_msg_count, x_msg_data);
1185 
1186 
1187       l_cur_get_LTG := dbms_sql.open_cursor;
1188 
1189       -- Hint: concatenate all where clause (include flex field/line level if any applies)
1190       --    dbms_sql.parse(l_cur_get_LTG, l_select_cl || l_head_where || l_flex_where || l_lines_where
1191       --    || l_steam_where || l_order_by_cl, dbms_sql.native);
1192 
1193       -- Hint: Developer should implement Bind Variables procedure according to bind variables in the parameter list
1194       -- Bind(l_crit_LTG_rec, l_crit_exp_purchase_rec, p_start_date, p_end_date,
1195       --      p_crit_exp_salesforce_id, p_crit_ptr_salesforce_id,
1196       --      p_crit_salesgroup_id, p_crit_ptr_manager_person_id,
1197       --      p_win_prob_ceiling, p_win_prob_floor,
1198       --      p_total_amt_ceiling, p_total_amt_floor,
1199       --      l_cur_get_LTG);
1200 
1201       -- Bind flexfield variables
1202       AS_FOUNDATION_PVT.Bind_Flexfield_Where(
1203           p_cursor_id   =>   l_cur_get_LTG,
1204           p_flex_where_tbl_type => l_flex_where_tbl_type);
1205 
1206       -- Define all Select Columns
1207       Define_Columns(l_crit_LTG_rec, l_cur_get_LTG);
1208 
1209       -- Execute
1210 
1211       l_ignore := dbms_sql.execute(l_cur_get_LTG);
1212 
1213 
1214       -- This loop is here to avoid calling a function in the main
1215       -- cursor. Basically, calling this function seems to disable
1216       -- index, but verification is needed. This is a good
1217       -- place to optimize the code if required.
1218 
1219       LOOP
1220       -- 1. There are more rows in the cursor.
1221       -- 2. User does not care about total records, and we need to return more.
1222       -- 3. Or user cares about total number of records.
1223       IF((dbms_sql.fetch_rows(l_cur_get_LTG)>0) AND ((p_return_tot_count = FND_API.G_TRUE)
1224         OR (l_returned_rec_count<p_rec_requested) OR (p_rec_requested=FND_API.G_MISS_NUM)))
1225       THEN
1226 
1227           -- Hint: Developer need to implement this part
1228           --      dbms_sql.column_value(l_cur_get_opp, 1, l_opp_rec.lead_id);
1229           --      dbms_sql.column_value(l_cur_get_opp, 7, l_opp_rec.customer_id);
1230           --      dbms_sql.column_value(l_cur_get_opp, 8, l_opp_rec.address_id);
1231 
1232           -- Hint: Check access for this record (e.x. AS_ACCESS_PVT.Has_OpportunityAccess)
1233           -- Return this particular record if
1234           -- 1. The caller has access to record.
1235           -- 2. The number of records returned < number of records caller requested in this run.
1236           -- 3. The record comes AFTER or Equal to the start index the caller requested.
1237 
1238           -- Developer should check whether there is access privilege here
1239 --          IF(l_LTG_rec.member_access <> 'N' OR l_LTG_rec.member_role <> 'N') THEN
1240               Get_Column_Values(l_cur_get_LTG, l_LTG_rec);
1241               l_tot_rec_count := l_tot_rec_count + 1;
1242               IF(l_returned_rec_count < p_rec_requested) AND (l_tot_rec_count >= p_start_rec_prt) THEN
1243                   l_returned_rec_count := l_returned_rec_count + 1;
1244                   -- insert into resultant tables
1245                   X_LTG_Tbl(l_returned_rec_count) := l_LTG_rec;
1246               END IF;
1247 --          END IF;
1248       ELSE
1249           EXIT;
1250       END IF;
1251       END LOOP;
1252       --
1253       -- End of API body
1254       --
1255 
1256 
1257       -- Standard call to get message count and if count is 1, get message info.
1258       FND_MSG_PUB.Count_And_Get
1259       (  p_count          =>   x_msg_count,
1260          p_data           =>   x_msg_data
1261       );
1262 
1263       EXCEPTION
1264           WHEN FND_API.G_EXC_ERROR THEN
1265               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1266                    P_API_NAME => L_API_NAME
1267                   ,P_PKG_NAME => G_PKG_NAME
1268                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
1269                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
1270                   ,X_MSG_COUNT => X_MSG_COUNT
1271                   ,X_MSG_DATA => X_MSG_DATA
1272                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1273 
1274           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1275               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1276                    P_API_NAME => L_API_NAME
1277                   ,P_PKG_NAME => G_PKG_NAME
1278                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
1279                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
1280                   ,X_MSG_COUNT => X_MSG_COUNT
1281                   ,X_MSG_DATA => X_MSG_DATA
1282                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1283 
1284           WHEN OTHERS THEN
1285               AS_UTILITY_PVT.HANDLE_EXCEPTIONS(
1286                    P_API_NAME => L_API_NAME
1287                   ,P_PKG_NAME => G_PKG_NAME
1288                   ,P_EXCEPTION_LEVEL => AS_UTILITY_PVT.G_EXC_OTHERS
1289                   ,P_SQLCODE => SQLCODE
1290                   ,P_SQLERRM => SQLERRM
1291                   ,P_PACKAGE_TYPE => AS_UTILITY_PVT.G_PVT
1292                   ,X_MSG_COUNT => X_MSG_COUNT
1293                   ,X_MSG_DATA => X_MSG_DATA
1294                   ,X_RETURN_STATUS => X_RETURN_STATUS);
1295 End Get_litigation;
1296 
1297 
1298 -- Item-level validation procedures
1299 PROCEDURE Validate_LITIGATION_ID (
1300     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1301     P_Validation_mode            IN   VARCHAR2,
1302     P_LITIGATION_ID                IN   NUMBER,
1303     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1304     X_Return_Status              OUT NOCOPY  VARCHAR2,
1305     X_Msg_Count                  OUT NOCOPY  NUMBER,
1306     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1307     )
1308 IS
1309 BEGIN
1310 
1311       -- Initialize message list if p_init_msg_list is set to TRUE.
1312       IF FND_API.to_Boolean( p_init_msg_list )
1313       THEN
1314           FND_MSG_PUB.initialize;
1315       END IF;
1316 
1317 
1318       -- Initialize API return status to SUCCESS
1319       x_return_status := FND_API.G_RET_STS_SUCCESS;
1320 
1321       -- validate NOT NULL column
1322       IF(p_LITIGATION_ID is NULL)
1323       THEN
1324           x_return_status := FND_API.G_RET_STS_ERROR;
1325       END IF;
1326 
1327       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1328       THEN
1329           -- Hint: Validate data
1330           -- IF p_LITIGATION_ID is not NULL and p_LITIGATION_ID <> G_MISS_CHAR
1331           -- verify if data is valid
1332           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1333           NULL;
1334       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1335       THEN
1336           -- Hint: Validate data
1337           -- IF p_LITIGATION_ID <> G_MISS_CHAR
1338           -- verify if data is valid
1339           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1340           NULL;
1341       END IF;
1342 
1343       -- Standard call to get message count and if count is 1, get message info.
1344       FND_MSG_PUB.Count_And_Get
1345       (  p_count          =>   x_msg_count,
1346          p_data           =>   x_msg_data
1347       );
1348 
1349 END Validate_LITIGATION_ID;
1350 
1351 
1352 PROCEDURE Validate_DELINQUENCY_ID (
1353     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1354     P_Validation_mode            IN   VARCHAR2,
1355     P_DELINQUENCY_ID                IN   NUMBER,
1356     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1357     X_Return_Status              OUT NOCOPY  VARCHAR2,
1358     X_Msg_Count                  OUT NOCOPY  NUMBER,
1359     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1360     )
1361 IS
1362 BEGIN
1363 
1364       -- Initialize message list if p_init_msg_list is set to TRUE.
1365       IF FND_API.to_Boolean( p_init_msg_list )
1366       THEN
1367           FND_MSG_PUB.initialize;
1368       END IF;
1369 
1370 
1371       -- Initialize API return status to SUCCESS
1372       x_return_status := FND_API.G_RET_STS_SUCCESS;
1373 
1374       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1375       THEN
1376           -- Hint: Validate data
1377           -- IF p_DELINQUENCY_ID is not NULL and p_DELINQUENCY_ID <> G_MISS_CHAR
1378           -- verify if data is valid
1379           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1380           NULL;
1381       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1382       THEN
1383           -- Hint: Validate data
1384           -- IF p_DELINQUENCY_ID <> G_MISS_CHAR
1385           -- verify if data is valid
1386           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1387           NULL;
1388       END IF;
1389 
1390       -- Standard call to get message count and if count is 1, get message info.
1391       FND_MSG_PUB.Count_And_Get
1392       (  p_count          =>   x_msg_count,
1393          p_data           =>   x_msg_data
1394       );
1395 
1396 END Validate_DELINQUENCY_ID;
1397 
1398 
1399 PROCEDURE Validate_PARTY_ID (
1400     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1401     P_Validation_mode            IN   VARCHAR2,
1402     P_PARTY_ID                IN   NUMBER,
1403     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1404     X_Return_Status              OUT NOCOPY  VARCHAR2,
1405     X_Msg_Count                  OUT NOCOPY  NUMBER,
1406     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1407     )
1408 IS
1409 BEGIN
1410 
1411       -- Initialize message list if p_init_msg_list is set to TRUE.
1412       IF FND_API.to_Boolean( p_init_msg_list )
1413       THEN
1414           FND_MSG_PUB.initialize;
1415       END IF;
1416 
1417 
1418       -- Initialize API return status to SUCCESS
1419       x_return_status := FND_API.G_RET_STS_SUCCESS;
1420 
1421       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1422       THEN
1423           -- Hint: Validate data
1424           -- IF p_PARTY_ID is not NULL and p_PARTY_ID <> G_MISS_CHAR
1425           -- verify if data is valid
1426           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1427           NULL;
1428       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1429       THEN
1430           -- Hint: Validate data
1431           -- IF p_PARTY_ID <> G_MISS_CHAR
1432           -- verify if data is valid
1433           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1434           NULL;
1435       END IF;
1436 
1437       -- Standard call to get message count and if count is 1, get message info.
1438       FND_MSG_PUB.Count_And_Get
1439       (  p_count          =>   x_msg_count,
1440          p_data           =>   x_msg_data
1441       );
1442 
1443 END Validate_PARTY_ID;
1444 
1445 
1446 PROCEDURE Validate_UNPAID_REASON_CODE (
1447     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1448     P_Validation_mode            IN   VARCHAR2,
1449     P_UNPAID_REASON_CODE                IN   VARCHAR2,
1450     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1451     X_Return_Status              OUT NOCOPY  VARCHAR2,
1452     X_Msg_Count                  OUT NOCOPY  NUMBER,
1453     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1454     )
1455 IS
1456 BEGIN
1457 
1458       -- Initialize message list if p_init_msg_list is set to TRUE.
1459       IF FND_API.to_Boolean( p_init_msg_list )
1460       THEN
1461           FND_MSG_PUB.initialize;
1462       END IF;
1463 
1464 
1465       -- Initialize API return status to SUCCESS
1466       x_return_status := FND_API.G_RET_STS_SUCCESS;
1467 
1468       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1469       THEN
1470           -- Hint: Validate data
1471           -- IF p_UNPAID_REASON_CODE is not NULL and p_UNPAID_REASON_CODE <> G_MISS_CHAR
1472           -- verify if data is valid
1473           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1474           NULL;
1475       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1476       THEN
1477           -- Hint: Validate data
1478           -- IF p_UNPAID_REASON_CODE <> G_MISS_CHAR
1479           -- verify if data is valid
1480           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1481           NULL;
1482       END IF;
1483 
1484       -- Standard call to get message count and if count is 1, get message info.
1485       FND_MSG_PUB.Count_And_Get
1486       (  p_count          =>   x_msg_count,
1487          p_data           =>   x_msg_data
1488       );
1489 
1490 END Validate_UNPAID_REASON_CODE;
1491 
1492 
1493 PROCEDURE Validate_JUDGEMENT_DATE (
1494     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1495     P_Validation_mode            IN   VARCHAR2,
1496     P_JUDGEMENT_DATE                IN   DATE,
1497     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1498     X_Return_Status              OUT NOCOPY  VARCHAR2,
1499     X_Msg_Count                  OUT NOCOPY  NUMBER,
1500     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1501     )
1502 IS
1503 BEGIN
1504 
1505       -- Initialize message list if p_init_msg_list is set to TRUE.
1506       IF FND_API.to_Boolean( p_init_msg_list )
1507       THEN
1508           FND_MSG_PUB.initialize;
1509       END IF;
1510 
1511 
1512       -- Initialize API return status to SUCCESS
1513       x_return_status := FND_API.G_RET_STS_SUCCESS;
1514 
1515       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1516       THEN
1517           -- Hint: Validate data
1518           -- IF p_JUDGEMENT_DATE is not NULL and p_JUDGEMENT_DATE <> G_MISS_CHAR
1519           -- verify if data is valid
1520           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1521           NULL;
1522       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1523       THEN
1524           -- Hint: Validate data
1525           -- IF p_JUDGEMENT_DATE <> G_MISS_CHAR
1526           -- verify if data is valid
1527           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1528           NULL;
1529       END IF;
1530 
1531       -- Standard call to get message count and if count is 1, get message info.
1532       FND_MSG_PUB.Count_And_Get
1533       (  p_count          =>   x_msg_count,
1534          p_data           =>   x_msg_data
1535       );
1536 
1537 END Validate_JUDGEMENT_DATE;
1538 
1539 
1540 PROCEDURE Validate_DISPOSITION_CODE (
1541     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1542     P_Validation_mode            IN   VARCHAR2,
1543     P_DISPOSITION_CODE                IN   VARCHAR2,
1544     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1545     X_Return_Status              OUT NOCOPY  VARCHAR2,
1546     X_Msg_Count                  OUT NOCOPY  NUMBER,
1547     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1548     )
1549 IS
1550 BEGIN
1551 
1552       -- Initialize message list if p_init_msg_list is set to TRUE.
1553       IF FND_API.to_Boolean( p_init_msg_list )
1554       THEN
1555           FND_MSG_PUB.initialize;
1556       END IF;
1557 
1558 
1559       -- Initialize API return status to SUCCESS
1560       x_return_status := FND_API.G_RET_STS_SUCCESS;
1561 
1562       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1563       THEN
1564           -- Hint: Validate data
1565           -- IF p_DISPOSITION_CODE is not NULL and p_DISPOSITION_CODE <> G_MISS_CHAR
1566           -- verify if data is valid
1567           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1568           NULL;
1569       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1570       THEN
1571           -- Hint: Validate data
1572           -- IF p_DISPOSITION_CODE <> G_MISS_CHAR
1573           -- verify if data is valid
1574           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1575           NULL;
1576       END IF;
1577 
1578       -- Standard call to get message count and if count is 1, get message info.
1579       FND_MSG_PUB.Count_And_Get
1580       (  p_count          =>   x_msg_count,
1581          p_data           =>   x_msg_data
1582       );
1583 
1584 END Validate_DISPOSITION_CODE;
1585 
1586 
1587 PROCEDURE v_CREDIT_HOLD_REQUEST_FLAG (
1588     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1589     P_Validation_mode            IN   VARCHAR2,
1590     P_CREDIT_HOLD_REQUEST_FLAG                IN   VARCHAR2,
1591     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1592     X_Return_Status              OUT NOCOPY  VARCHAR2,
1593     X_Msg_Count                  OUT NOCOPY  NUMBER,
1594     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1595     )
1596 IS
1597 BEGIN
1598 
1599       -- Initialize message list if p_init_msg_list is set to TRUE.
1600       IF FND_API.to_Boolean( p_init_msg_list )
1601       THEN
1602           FND_MSG_PUB.initialize;
1603       END IF;
1604 
1605 
1606       -- Initialize API return status to SUCCESS
1607       x_return_status := FND_API.G_RET_STS_SUCCESS;
1608 
1609       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1610       THEN
1611           -- Hint: Validate data
1612           -- IF p_CREDIT_HOLD_REQUEST_FLAG is not NULL and p_CREDIT_HOLD_REQUEST_FLAG <> G_MISS_CHAR
1613           -- verify if data is valid
1614           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1615           NULL;
1616       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1617       THEN
1618           -- Hint: Validate data
1619           -- IF p_CREDIT_HOLD_REQUEST_FLAG <> G_MISS_CHAR
1620           -- verify if data is valid
1621           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1622           NULL;
1623       END IF;
1624 
1625       -- Standard call to get message count and if count is 1, get message info.
1626       FND_MSG_PUB.Count_And_Get
1627       (  p_count          =>   x_msg_count,
1628          p_data           =>   x_msg_data
1629       );
1630 
1631 END v_CREDIT_HOLD_REQUEST_FLAG;
1632 
1633 
1634 PROCEDURE v_CREDIT_HOLD_APPROVED_FLAG (
1635     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1636     P_Validation_mode            IN   VARCHAR2,
1637     P_CREDIT_HOLD_APPROVED_FLAG                IN   VARCHAR2,
1638     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1639     X_Return_Status              OUT NOCOPY  VARCHAR2,
1640     X_Msg_Count                  OUT NOCOPY  NUMBER,
1641     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1642     )
1643 IS
1644 BEGIN
1645 
1646       -- Initialize message list if p_init_msg_list is set to TRUE.
1647       IF FND_API.to_Boolean( p_init_msg_list )
1648       THEN
1649           FND_MSG_PUB.initialize;
1650       END IF;
1651 
1652 
1653       -- Initialize API return status to SUCCESS
1654       x_return_status := FND_API.G_RET_STS_SUCCESS;
1655 
1656       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1657       THEN
1658           -- Hint: Validate data
1659           -- IF p_CREDIT_HOLD_APPROVED_FLAG is not NULL and p_CREDIT_HOLD_APPROVED_FLAG <> G_MISS_CHAR
1660           -- verify if data is valid
1661           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1662           NULL;
1663       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1664       THEN
1665           -- Hint: Validate data
1666           -- IF p_CREDIT_HOLD_APPROVED_FLAG <> G_MISS_CHAR
1667           -- verify if data is valid
1668           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1669           NULL;
1670       END IF;
1671 
1672       -- Standard call to get message count and if count is 1, get message info.
1673       FND_MSG_PUB.Count_And_Get
1674       (  p_count          =>   x_msg_count,
1675          p_data           =>   x_msg_data
1676       );
1677 
1678 END v_CREDIT_HOLD_APPROVED_FLAG;
1679 
1680 
1681 PROCEDURE v_SERVICE_HOLD_REQUEST_FLAG (
1682     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1683     P_Validation_mode            IN   VARCHAR2,
1684     P_SERVICE_HOLD_REQUEST_FLAG                IN   VARCHAR2,
1685     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1686     X_Return_Status              OUT NOCOPY  VARCHAR2,
1687     X_Msg_Count                  OUT NOCOPY  NUMBER,
1688     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1689     )
1690 IS
1691 BEGIN
1692 
1693       -- Initialize message list if p_init_msg_list is set to TRUE.
1694       IF FND_API.to_Boolean( p_init_msg_list )
1695       THEN
1696           FND_MSG_PUB.initialize;
1697       END IF;
1698 
1699 
1700       -- Initialize API return status to SUCCESS
1701       x_return_status := FND_API.G_RET_STS_SUCCESS;
1702 
1703       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1704       THEN
1705           -- Hint: Validate data
1706           -- IF p_SERVICE_HOLD_REQUEST_FLAG is not NULL and p_SERVICE_HOLD_REQUEST_FLAG <> G_MISS_CHAR
1707           -- verify if data is valid
1708           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1709           NULL;
1710       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1711       THEN
1712           -- Hint: Validate data
1713           -- IF p_SERVICE_HOLD_REQUEST_FLAG <> G_MISS_CHAR
1714           -- verify if data is valid
1715           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1716           NULL;
1717       END IF;
1718 
1719       -- Standard call to get message count and if count is 1, get message info.
1720       FND_MSG_PUB.Count_And_Get
1721       (  p_count          =>   x_msg_count,
1722          p_data           =>   x_msg_data
1723       );
1724 
1725 END v_SERVICE_HOLD_REQUEST_FLAG;
1726 
1727 
1728 PROCEDURE v_SERVICE_HOLD_APPROVED_FLAG (
1729     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1730     P_Validation_mode            IN   VARCHAR2,
1731     P_SERVICE_HOLD_APPROVED_FLAG                IN   VARCHAR2,
1732     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1733     X_Return_Status              OUT NOCOPY  VARCHAR2,
1734     X_Msg_Count                  OUT NOCOPY  NUMBER,
1735     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1736     )
1737 IS
1738 BEGIN
1739 
1740       -- Initialize message list if p_init_msg_list is set to TRUE.
1741       IF FND_API.to_Boolean( p_init_msg_list )
1742       THEN
1743           FND_MSG_PUB.initialize;
1744       END IF;
1745 
1746 
1747       -- Initialize API return status to SUCCESS
1748       x_return_status := FND_API.G_RET_STS_SUCCESS;
1749 
1750       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1751       THEN
1752           -- Hint: Validate data
1753           -- IF p_SERVICE_HOLD_APPROVED_FLAG is not NULL and p_SERVICE_HOLD_APPROVED_FLAG <> G_MISS_CHAR
1754           -- verify if data is valid
1755           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1756           NULL;
1757       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1758       THEN
1759           -- Hint: Validate data
1760           -- IF p_SERVICE_HOLD_APPROVED_FLAG <> G_MISS_CHAR
1761           -- verify if data is valid
1762           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1763           NULL;
1764       END IF;
1765 
1766       -- Standard call to get message count and if count is 1, get message info.
1767       FND_MSG_PUB.Count_And_Get
1768       (  p_count          =>   x_msg_count,
1769          p_data           =>   x_msg_data
1770       );
1771 
1772 END v_SERVICE_HOLD_APPROVED_FLAG;
1773 
1774 
1775 PROCEDURE v_SUGGESTION_APPROVED_FLAG (
1776     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1777     P_Validation_mode            IN   VARCHAR2,
1778     P_SUGGESTION_APPROVED_FLAG                IN   VARCHAR2,
1779     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     AS_UTILITY_PVT.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1780     X_Return_Status              OUT NOCOPY  VARCHAR2,
1781     X_Msg_Count                  OUT NOCOPY  NUMBER,
1782     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1783     )
1784 IS
1785 BEGIN
1786 
1787       -- Initialize message list if p_init_msg_list is set to TRUE.
1788       IF FND_API.to_Boolean( p_init_msg_list )
1789       THEN
1790           FND_MSG_PUB.initialize;
1791       END IF;
1792 
1793 
1794       -- Initialize API return status to SUCCESS
1795       x_return_status := FND_API.G_RET_STS_SUCCESS;
1796 
1797       IF(p_validation_mode = AS_UTILITY_PVT.G_CREATE)
1798       THEN
1799           -- Hint: Validate data
1800           -- IF p_SUGGESTION_APPROVED_FLAG is not NULL and p_SUGGESTION_APPROVED_FLAG <> G_MISS_CHAR
1801           -- verify if data is valid
1802           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1803           NULL;
1804       ELSIF(p_validation_mode = AS_UTILITY_PVT.G_UPDATE)
1805       THEN
1806           -- Hint: Validate data
1807           -- IF p_SUGGESTION_APPROVED_FLAG <> G_MISS_CHAR
1808           -- verify if data is valid
1809           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1810           NULL;
1811       END IF;
1812 
1813       -- Standard call to get message count and if count is 1, get message info.
1814       FND_MSG_PUB.Count_And_Get
1815       (  p_count          =>   x_msg_count,
1816          p_data           =>   x_msg_data
1817       );
1818 
1819 END v_SUGGESTION_APPROVED_FLAG;
1820 
1821 
1822 -- Hint: inter-field level validation can be added here.
1823 -- Hint: If p_validation_mode = AS_UTILITY_PVT.G_VALIDATE_UPDATE, we should use cursor
1824 --       to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1825 --       stored in database table.
1826 PROCEDURE Validate_LTG_rec(
1827     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1828     P_Validation_mode            IN   VARCHAR2,
1829     P_LTG_Rec     IN    LTG_Rec_Type,
1830     X_Return_Status              OUT NOCOPY  VARCHAR2,
1831     X_Msg_Count                  OUT NOCOPY  NUMBER,
1832     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1833     )
1834 IS
1835 BEGIN
1836 
1837       -- Initialize message list if p_init_msg_list is set to TRUE.
1838       IF FND_API.to_Boolean( p_init_msg_list )
1839       THEN
1840           FND_MSG_PUB.initialize;
1841       END IF;
1842 
1843 
1844       -- Initialize API return status to SUCCESS
1845       x_return_status := FND_API.G_RET_STS_SUCCESS;
1846 
1847       -- Hint: Validate data
1848       -- If data not valid
1849       -- THEN
1850       -- x_return_status := FND_API.G_RET_STS_ERROR;
1851 
1852 
1853       -- Standard call to get message count and if count is 1, get message info.
1854       FND_MSG_PUB.Count_And_Get
1855       (  p_count          =>   x_msg_count,
1856          p_data           =>   x_msg_data
1857       );
1858 
1859 END Validate_LTG_Rec;
1860 
1861 PROCEDURE Validate_litigation(
1862     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1863     P_Validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1864     P_Validation_mode            IN   VARCHAR2,
1865     P_LTG_Rec     IN    LTG_Rec_Type,
1866     X_Return_Status              OUT NOCOPY  VARCHAR2,
1867     X_Msg_Count                  OUT NOCOPY  NUMBER,
1868     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1869     )
1870 IS
1871 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_litigation';
1872 BEGIN
1873 
1874 
1875 
1876       -- Initialize API return status to SUCCESS
1877       x_return_status := FND_API.G_RET_STS_SUCCESS;
1878 
1879       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_ITEM) THEN
1880           -- Hint: We provide validation procedure for every column. Developer should delete
1881           --       unnecessary validation procedures.
1882           Validate_LITIGATION_ID(
1883               p_init_msg_list          => FND_API.G_FALSE,
1884               p_validation_mode        => p_validation_mode,
1885               p_LITIGATION_ID   => P_LTG_Rec.LITIGATION_ID,
1886               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1887               x_return_status          => x_return_status,
1888               x_msg_count              => x_msg_count,
1889               x_msg_data               => x_msg_data);
1890 
1891           Validate_DELINQUENCY_ID(
1892               p_init_msg_list          => FND_API.G_FALSE,
1893               p_validation_mode        => p_validation_mode,
1894               p_DELINQUENCY_ID   => P_LTG_Rec.DELINQUENCY_ID,
1895               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1896               x_return_status          => x_return_status,
1897               x_msg_count              => x_msg_count,
1898               x_msg_data               => x_msg_data);
1899 
1900           Validate_PARTY_ID(
1901               p_init_msg_list          => FND_API.G_FALSE,
1902               p_validation_mode        => p_validation_mode,
1903               p_PARTY_ID   => P_LTG_Rec.PARTY_ID,
1904               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1905               x_return_status          => x_return_status,
1906               x_msg_count              => x_msg_count,
1907               x_msg_data               => x_msg_data);
1908 
1909           Validate_UNPAID_REASON_CODE(
1910               p_init_msg_list          => FND_API.G_FALSE,
1911               p_validation_mode        => p_validation_mode,
1912               p_UNPAID_REASON_CODE   => P_LTG_Rec.UNPAID_REASON_CODE,
1913               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1914               x_return_status          => x_return_status,
1915               x_msg_count              => x_msg_count,
1916               x_msg_data               => x_msg_data);
1917 
1918           Validate_JUDGEMENT_DATE(
1919               p_init_msg_list          => FND_API.G_FALSE,
1920               p_validation_mode        => p_validation_mode,
1921               p_JUDGEMENT_DATE   => P_LTG_Rec.JUDGEMENT_DATE,
1922               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1923               x_return_status          => x_return_status,
1924               x_msg_count              => x_msg_count,
1925               x_msg_data               => x_msg_data);
1926 
1927           Validate_DISPOSITION_CODE(
1928               p_init_msg_list          => FND_API.G_FALSE,
1929               p_validation_mode        => p_validation_mode,
1930               p_DISPOSITION_CODE   => P_LTG_Rec.DISPOSITION_CODE,
1931               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1932               x_return_status          => x_return_status,
1933               x_msg_count              => x_msg_count,
1934               x_msg_data               => x_msg_data);
1935 
1936           v_CREDIT_HOLD_REQUEST_FLAG(
1937               p_init_msg_list          => FND_API.G_FALSE,
1938               p_validation_mode        => p_validation_mode,
1939               p_CREDIT_HOLD_REQUEST_FLAG   => P_LTG_Rec.CREDIT_HOLD_REQUEST_FLAG,
1940               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1941               x_return_status          => x_return_status,
1942               x_msg_count              => x_msg_count,
1943               x_msg_data               => x_msg_data);
1944 
1945           v_CREDIT_HOLD_APPROVED_FLAG(
1946               p_init_msg_list          => FND_API.G_FALSE,
1947               p_validation_mode        => p_validation_mode,
1948               p_CREDIT_HOLD_APPROVED_FLAG   => P_LTG_Rec.CREDIT_HOLD_APPROVED_FLAG,
1949               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1950               x_return_status          => x_return_status,
1951               x_msg_count              => x_msg_count,
1952               x_msg_data               => x_msg_data);
1953 
1954           v_SERVICE_HOLD_REQUEST_FLAG(
1955               p_init_msg_list          => FND_API.G_FALSE,
1956               p_validation_mode        => p_validation_mode,
1957               p_SERVICE_HOLD_REQUEST_FLAG   => P_LTG_Rec.SERVICE_HOLD_REQUEST_FLAG,
1958               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1959               x_return_status          => x_return_status,
1960               x_msg_count              => x_msg_count,
1961               x_msg_data               => x_msg_data);
1962 
1963           v_SERVICE_HOLD_APPROVED_FLAG(
1964               p_init_msg_list          => FND_API.G_FALSE,
1965               p_validation_mode        => p_validation_mode,
1966               p_SERVICE_HOLD_APPROVED_FLAG   => P_LTG_Rec.SERVICE_HOLD_APPROVED_FLAG,
1967               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1968               x_return_status          => x_return_status,
1969               x_msg_count              => x_msg_count,
1970               x_msg_data               => x_msg_data);
1971 
1972           v_SUGGESTION_APPROVED_FLAG(
1973               p_init_msg_list          => FND_API.G_FALSE,
1974               p_validation_mode        => p_validation_mode,
1975               p_SUGGESTION_APPROVED_FLAG   => P_LTG_Rec.SUGGESTION_APPROVED_FLAG,
1976               -- Hint: You may add x_item_property_rec as one of your OUT NOCOPY parameter if you'd like to pass back item property.
1977               x_return_status          => x_return_status,
1978               x_msg_count              => x_msg_count,
1979               x_msg_data               => x_msg_data);
1980 
1981       END IF;
1982 
1983       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_RECORD) THEN
1984           -- Hint: Inter-field level validation can be added here
1985           -- invoke record level validation procedures
1986           Validate_LTG_Rec(
1987               p_init_msg_list          => FND_API.G_FALSE,
1988               p_validation_mode        => p_validation_mode,
1989           P_LTG_Rec     =>    P_LTG_Rec,
1990               x_return_status          => x_return_status,
1991               x_msg_count              => x_msg_count,
1992               x_msg_data               => x_msg_data);
1993 
1994           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1995               raise FND_API.G_EXC_ERROR;
1996           END IF;
1997       END IF;
1998 
1999       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_RECORD) THEN
2000           -- invoke inter-record level validation procedures
2001           NULL;
2002       END IF;
2003 
2004       IF (p_validation_level >= AS_UTILITY_PUB.G_VALID_LEVEL_INTER_ENTITY) THEN
2005           -- invoke inter-entity level validation procedures
2006           NULL;
2007       END IF;
2008 
2009 
2010 END Validate_litigation;
2011 
2012 End IEX_LITIGATION_PVT;