126: /*--------------------------------------------------------------+
127: | Initialize message list if p_init_msg_list is set to TRUE |
128: +--------------------------------------------------------------*/
129:
130: IF FND_API.to_Boolean( p_init_msg_list )
131: THEN
132: FND_MSG_PUB.initialize;
133: END IF;
134:
156: /*-----------------------------------------+
157: | Initialize return status to SUCCESS |
158: +-----------------------------------------*/
159:
160: x_return_status := FND_API.G_RET_STS_SUCCESS;
161: l_application_date := p_application_date;
162: l_application_number := p_application_number;
163: l_credit_request_status := p_credit_request_status;
164: l_requestor_type := p_requestor_type;
183: END IF;
184: FND_MESSAGE.SET_NAME('AR','OCM_INVALID_REQUESTOR_TYPE');
185: FND_MSG_PUB.Add;
186: x_msg_data := 'OCM_INVALID_REQUESTOR_TYPE';
187: x_return_status := FND_API.G_RET_STS_ERROR;
188: return;
189: END IF;
190:
191: debug ( 'l_requestor_type ' || l_requestor_type );
220: FETCH cFndUser INTO l_char;
221: IF cFndUser%NOTFOUND
222: THEN
223: debug('p_requestor_type is passed as NULL, FND_USER check failed');
224: x_return_status := FND_API.G_RET_STS_ERROR;
225: ELSE
226: -- The Requestor is a FND User, set the Requestor Type
227: l_requestor_type := 'FND_USER';
228: END IF;
244: OPEN employee(l_requestor_id);
245: FETCH employee INTO l_char;
246: IF employee%NOTFOUND THEN
247: debug('p_requestor_type is passed, Employee check is failed');
248: x_return_status := FND_API.G_RET_STS_ERROR;
249: END IF;
250: CLOSE employee;
251: ELSIF l_requestor_id IS NOT NULL and l_requestor_type = 'FND_USER'
252: THEN
254: FETCH cFndUser INTO l_char;
255: IF cFndUser%NOTFOUND
256: THEN
257: debug('p_requestor_type is passed, FND USER check is failed');
258: x_return_status := FND_API.G_RET_STS_ERROR;
259: END IF;
260: CLOSE cFndUser;
261: ELSE
262: debug('p_requestor_type is NOT passed OR Request ID is passed as NULL');
259: END IF;
260: CLOSE cFndUser;
261: ELSE
262: debug('p_requestor_type is NOT passed OR Request ID is passed as NULL');
263: x_return_status := FND_API.G_RET_STS_ERROR;
264: END IF;
265:
266: /*---------------------------------------------+
267: | ========== Start of API Body ========== |
290: EXCEPTION
291: WHEN OTHERS THEN
292: FND_MESSAGE.SET_NAME('AR','OCM_UNKNOWN_CREDIT_REQUEST');
293: FND_MSG_PUB.Add;
294: x_return_status := FND_API.G_RET_STS_ERROR;
295: return;
296: END;
297:
298: IF l_char IS NOT NULL
354: debug ( 'Appeal request is Out of date range');
355: END IF;
356: FND_MESSAGE.SET_NAME('AR','OCM_APPEAL_EXPIRATION_REQUEST');
357: FND_MSG_PUB.Add;
358: x_return_status := FND_API.G_RET_STS_ERROR;
359: END IF;
360: EXCEPTION
361: WHEN NO_DATA_FOUND THEN
362: -- reject the application
361: WHEN NO_DATA_FOUND THEN
362: -- reject the application
363: FND_MESSAGE.SET_NAME('AR','OCM_NO_RECO_APPEAL_REQUEST');
364: FND_MSG_PUB.Add;
365: x_return_status := FND_API.G_RET_STS_ERROR;
366: WHEN OTHERS THEN
367: -- reject the application
368: FND_MESSAGE.SET_NAME('AR','OCM_NO_RECO_APPEAL_REQUEST');
369: FND_MSG_PUB.Add;
366: WHEN OTHERS THEN
367: -- reject the application
368: FND_MESSAGE.SET_NAME('AR','OCM_NO_RECO_APPEAL_REQUEST');
369: FND_MSG_PUB.Add;
370: x_return_status := FND_API.G_RET_STS_ERROR;
371: END;
372: END IF; -- end APPEAL/APPEAL_REJECTION
373:
374: ELSE
374: ELSE
375: -- reject the application as parent request is not closed
376: FND_MESSAGE.SET_NAME('AR','OCM_NO_PARENT_APPEAL_REQUEST');
377: FND_MSG_PUB.Add;
378: x_return_status := FND_API.G_RET_STS_ERROR;
379: END IF;
380:
381: EXCEPTION
382: WHEN NO_DATA_FOUND THEN
382: WHEN NO_DATA_FOUND THEN
383: -- reject the application
384: FND_MESSAGE.SET_NAME('AR','OCM_NO_PARENT_APPEAL_REQUEST');
385: FND_MSG_PUB.Add;
386: x_return_status := FND_API.G_RET_STS_ERROR;
387: WHEN OTHERS THEN
388: -- reject the application
389: FND_MESSAGE.SET_NAME('AR','OCM_NO_PARENT_APPEAL_REQUEST');
390: FND_MSG_PUB.Add;
387: WHEN OTHERS THEN
388: -- reject the application
389: FND_MESSAGE.SET_NAME('AR','OCM_NO_PARENT_APPEAL_REQUEST');
390: FND_MSG_PUB.Add;
391: x_return_status := FND_API.G_RET_STS_ERROR;
392: END;
393:
394: ELSE
395: -- reject the application parent credit request id is null
394: ELSE
395: -- reject the application parent credit request id is null
396: FND_MESSAGE.SET_NAME('AR','OCM_NO_PARENT_APPEAL_REQUEST');
397: FND_MSG_PUB.Add;
398: x_return_status := FND_API.G_RET_STS_ERROR;
399: END IF; -- end parent_credit_request_id is not null
400: END IF; -- end APPEAL/REJECTION/RESUBMISSION
401:
402: ELSE
402: ELSE
403: -- reject the application as request type is unknown
404: FND_MESSAGE.SET_NAME('AR','OCM_UNKNOWN_CREDIT_REQUEST');
405: FND_MSG_PUB.Add;
406: x_return_status := FND_API.G_RET_STS_ERROR;
407: END IF; -- end 'unknown' credit_request_type
408:
409:
410: -- Bug 4137766, In case request comes from OM
408:
409:
410: -- Bug 4137766, In case request comes from OM
411: -- need to verify update is possible or not.
412: IF p_source_name = 'OM' and x_return_status = FND_API.G_RET_STS_SUCCESS
413: THEN
414: -- Get the credit request Id
415: p_credit_request_rec.credit_request_status := 'SUBMIT';
416:
446:
447: l_isupdateable := 'Y'; -- 7185336
448: EXCEPTION
449: WHEN OTHERS THEN
450: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
451: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
452: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',
453: 'GETTING_MAX_CREDIT_REQUEST_FOR_UPDATE : '||SQLERRM);
454: FND_MSG_PUB.Add;
455: return;
456: END;
457:
458: WHEN OTHERS THEN
459: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
460: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
461: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',
462: 'GETTING_CREDIT_REQUEST_FOR_UPDATE : '||SQLERRM);
463: FND_MSG_PUB.Add;
517: return;
518: END IF;
519: END IF;
520: WHEN OTHERS THEN
521: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
522: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
523: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT',
524: 'GETTING_CASE_FOLDER_FOR_UPDATE : '||SQLERRM);
525: FND_MSG_PUB.Add;
588: --person_id existing in the HR
589: OPEN employee(l_requestor_id);
590: FETCH employee INTO l_char;
591: IF employee%NOTFOUND THEN
592: x_return_status := FND_API.G_RET_STS_ERROR;
593: END IF;
594: CLOSE employee;
595: ELSIF l_requestor_id IS NOT NULL and l_requestor_type =
596: 'FND_USER'
598: OPEN cFndUser(l_requestor_id);
599: FETCH cFndUser INTO l_char;
600: IF cFndUser%NOTFOUND
601: THEN
602: x_return_status := FND_API.G_RET_STS_ERROR;
603: END IF;
604: CLOSE cFndUser;
605: ELSE
606: x_return_status := FND_API.G_RET_STS_ERROR;
602: x_return_status := FND_API.G_RET_STS_ERROR;
603: END IF;
604: CLOSE cFndUser;
605: ELSE
606: x_return_status := FND_API.G_RET_STS_ERROR;
607: END IF;
608:
609: IF p_party_id IS NULL
610: THEN
610: THEN
611: --raise error message
612: FND_MESSAGE.SET_NAME('AR','AR_CMGT_NULL_PARTY_ID');
613: FND_MSG_PUB.Add;
614: x_return_status := FND_API.G_RET_STS_ERROR;
615: END IF;
616:
617: IF p_review_type IS NULL
618: THEN
619: --raise error message
620: debug('AR_CMGT_NULL_REVIEW_TYPE');
621: FND_MESSAGE.SET_NAME('AR','AR_CMGT_NULL_REVIEW_TYPE');
622: FND_MSG_PUB.Add;
623: x_return_status := FND_API.G_RET_STS_ERROR;
624: END IF;
625:
626: IF p_requested_currency IS NULL
627: THEN
628: --raise error message
629: debug('AR_CMGT_NULL_REQ_CURR');
630: FND_MESSAGE.SET_NAME('AR','AR_CMGT_NULL_REQ_CURR');
631: FND_MSG_PUB.Add;
632: x_return_status := FND_API.G_RET_STS_ERROR;
633: END IF;
634:
635: IF p_credit_type IS NULL
636: THEN
637: --raise error
638: debug('AR_CMGT_NULL_CREDIT_TYPE');
639: FND_MESSAGE.SET_NAME('AR','AR_CMGT_NULL_CREDIT_TYPE');
640: FND_MSG_PUB.Add;
641: x_return_status := FND_API.G_RET_STS_ERROR;
642: ELSE
643: --verify the specified value is from lookups
644: BEGIN
645: SELECT lookup_code INTO l_credit_type
651: WHEN OTHERS THEN
652: debug('AR_CMGT_INVALID_CREDIT_TYPE');
653: FND_MESSAGE.SET_NAME('AR','AR_CMGT_INVALID_CREDIT_TYPE');
654: FND_MSG_PUB.Add;
655: x_return_status := FND_API.G_RET_STS_ERROR;
656: END;
657: END IF;
658:
659: IF l_credit_request_status IS NULL
666: --raise error
667: debug('AR_CMGT_INVALID_CR_STATUS');
668: FND_MESSAGE.SET_NAME('AR','AR_CMGT_INVALID_CR_STATUS');
669: FND_MSG_PUB.Add;
670: x_return_status := FND_API.G_RET_STS_ERROR;
671: END IF;
672:
673: END IF;
674:
687: WHEN NO_DATA_FOUND THEN
688: debug('AR_CMGT_SCORE_NAME_INVALID');
689: FND_MESSAGE.SET_NAME('AR','AR_CMGT_SCORE_NAME_INVALID');
690: FND_MSG_PUB.Add;
691: x_return_status := FND_API.G_RET_STS_ERROR;
692: WHEN OTHERS THEN
693: debug('AR_CMGT_SCORE_NAME_INVALID, SQLERRM :'||SQLERRM);
694: x_return_status := FND_API.G_RET_STS_ERROR;
695: END;
690: FND_MSG_PUB.Add;
691: x_return_status := FND_API.G_RET_STS_ERROR;
692: WHEN OTHERS THEN
693: debug('AR_CMGT_SCORE_NAME_INVALID, SQLERRM :'||SQLERRM);
694: x_return_status := FND_API.G_RET_STS_ERROR;
695: END;
696: END IF;
697:
698: /*-----------------------------------------+
699: | CREATION |
700: +-----------------------------------------*/
701: /* bug4414414 : Added columns parent_credit_request_id and credit_request_type
702: */
703: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
704: INSERT INTO AR_CMGT_CREDIT_REQUESTS
705: (credit_request_id,
706: last_update_date,
707: last_updated_by,
813: p_credit_request_id := l_credit_request_id;
814:
815: ELSE
816: --error was raised during the validation
817: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
818: p_count => x_msg_count,
819: p_data => x_msg_data
820: );
821: return;
825: THEN
826: debug ( 'AR_CMGT_CREDIT_REQUEST_API(-)');
827: END IF;
828: EXCEPTION
829: WHEN FND_API.G_EXC_ERROR THEN
830:
831: ROLLBACK TO CREATE_CREDIT_REQ_PVT;
832: x_return_status := FND_API.G_RET_STS_ERROR ;
833:
828: EXCEPTION
829: WHEN FND_API.G_EXC_ERROR THEN
830:
831: ROLLBACK TO CREATE_CREDIT_REQ_PVT;
832: x_return_status := FND_API.G_RET_STS_ERROR ;
833:
834: --Display_Parameters;
835:
836: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
832: x_return_status := FND_API.G_RET_STS_ERROR ;
833:
834: --Display_Parameters;
835:
836: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
837: p_count => x_msg_count,
838: p_data => x_msg_data
839: );
840: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
836: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
837: p_count => x_msg_count,
838: p_data => x_msg_data
839: );
840: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
841: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
842:
843: ROLLBACK TO CREATE_CREDIT_REQ_PVT;
844: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
837: p_count => x_msg_count,
838: p_data => x_msg_data
839: );
840: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
841: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
842:
843: ROLLBACK TO CREATE_CREDIT_REQ_PVT;
844: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
845:
840: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
841: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
842:
843: ROLLBACK TO CREATE_CREDIT_REQ_PVT;
844: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
845:
846: -- Display_Parameters;
847:
848: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
844: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
845:
846: -- Display_Parameters;
847:
848: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
849: p_count => x_msg_count,
850: p_data => x_msg_data
851: );
852: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
848: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
849: p_count => x_msg_count,
850: p_data => x_msg_data
851: );
852: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
853: WHEN OTHERS THEN
854:
855: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
856: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
851: );
852: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
853: WHEN OTHERS THEN
854:
855: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
856: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
857: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','CREATE_CREDIT_REQUEST : '||SQLERRM);
858: FND_MSG_PUB.Add;
859:
861: ROLLBACK TO Create_credit_req_PVT;
862:
863:
864: -- Display_Parameters;
865: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
866: p_count => x_msg_count,
867: p_data => x_msg_data
868: );
869: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
865: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
866: p_count => x_msg_count,
867: p_data => x_msg_data
868: );
869: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
870: END create_credit_request;
871:
872: /* Overloaded create_credit_request to handle hold_reasons */
873: PROCEDURE create_credit_request
1027: THEN
1028: debug ( 'Overloaded AR_CMGT_CREDIT_REQUEST_API(-)');
1029: END IF;
1030: EXCEPTION
1031: WHEN FND_API.G_EXC_ERROR THEN
1032:
1033: x_return_status := FND_API.G_RET_STS_ERROR ;
1034:
1035: --Display_Parameters;
1029: END IF;
1030: EXCEPTION
1031: WHEN FND_API.G_EXC_ERROR THEN
1032:
1033: x_return_status := FND_API.G_RET_STS_ERROR ;
1034:
1035: --Display_Parameters;
1036:
1037: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1033: x_return_status := FND_API.G_RET_STS_ERROR ;
1034:
1035: --Display_Parameters;
1036:
1037: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1038: p_count => x_msg_count,
1039: p_data => x_msg_data
1040: );
1041: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1037: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1038: p_count => x_msg_count,
1039: p_data => x_msg_data
1040: );
1041: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1042: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1043:
1044: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1045:
1038: p_count => x_msg_count,
1039: p_data => x_msg_data
1040: );
1041: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1042: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1043:
1044: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1045:
1046: -- Display_Parameters;
1040: );
1041: debug('FND_API.G_EXC_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1042: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1043:
1044: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1045:
1046: -- Display_Parameters;
1047:
1048: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1044: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1045:
1046: -- Display_Parameters;
1047:
1048: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1050: p_data => x_msg_data
1051: );
1052: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1048: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1050: p_data => x_msg_data
1051: );
1052: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1053: WHEN OTHERS THEN
1054:
1055: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1056: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1051: );
1052: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1053: WHEN OTHERS THEN
1054:
1055: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1056: FND_MESSAGE.SET_NAME ('AR','GENERIC_MESSAGE');
1057: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','CREATE_CREDIT_REQUEST : '||SQLERRM);
1058: FND_MSG_PUB.Add;
1059:
1057: FND_MESSAGE.SET_TOKEN('GENERIC_TEXT','CREATE_CREDIT_REQUEST : '||SQLERRM);
1058: FND_MSG_PUB.Add;
1059:
1060: -- Display_Parameters;
1061: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1062: p_count => x_msg_count,
1063: p_data => x_msg_data
1064: );
1065: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1061: FND_MSG_PUB.Count_And_Get(p_encoded => FND_API.G_FALSE,
1062: p_count => x_msg_count,
1063: p_data => x_msg_data
1064: );
1065: debug('FND_API.G_EXC_UNEXPECTED_ERROR, x_msg_data :'||x_msg_data|| ' SQLERRM :'||SQLERRM);
1066: END create_credit_request;
1067:
1068: FUNCTION is_Credit_Management_Installed
1069: RETURN BOOLEAN