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