6: */
7: PROCEDURE Update_contract_usages(p_api_version IN NUMBER,
8: p_contract_rec IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_rec_type,
9: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
10: p_commit IN VARCHAR2 := fnd_api.g_false,
11: x_msg_data OUT NOCOPY VARCHAR2,
12: x_msg_count OUT NOCOPY NUMBER,
13: x_return_status OUT NOCOPY VARCHAR2
14: ) IS
27: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
28: END IF;
29:
30: -- Standard call to check for call compatibility.
31: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
32: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
33: END IF;
34:
35: --Update the okc_rep_contract_usages table
28: END IF;
29:
30: -- Standard call to check for call compatibility.
31: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
32: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
33: END IF;
34:
35: --Update the okc_rep_contract_usages table
36: INSERT INTO okc_rep_contract_usages ( sequence_id,
96: */
97: PROCEDURE delete_contract_usages(p_api_version IN NUMBER,
98: p_contract_rec IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_rec_type,
99: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
100: p_commit IN VARCHAR2 := fnd_api.g_false,
101: x_msg_data OUT NOCOPY VARCHAR2,
102: x_msg_count OUT NOCOPY NUMBER,
103: x_return_status OUT NOCOPY VARCHAR2
104: ) IS
116: FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,G_MODULE||l_api_name,
117: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
118: END IF;
119:
120: x_return_status := FND_API.G_RET_STS_SUCCESS;
121:
122: -- Standard call to check for call compatibility.
123: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
124: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
119:
120: x_return_status := FND_API.G_RET_STS_SUCCESS;
121:
122: -- Standard call to check for call compatibility.
123: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
124: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
125: END IF;
126:
127: --Delete from the okc_rep_contract_usages table
120: x_return_status := FND_API.G_RET_STS_SUCCESS;
121:
122: -- Standard call to check for call compatibility.
123: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
124: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
125: END IF;
126:
127: --Delete from the okc_rep_contract_usages table
128: DELETE FROM okc_rep_contract_usages
148: p_token1_value => sqlcode,
149: p_token2 => G_SQLERRM_TOKEN,
150: p_token2_value => sqlerrm);
151:
152: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
153: FND_MSG_PUB.Count_And_Get(
154: p_count => x_msg_count,
155: p_data => x_msg_data
156: );
162: p_contract_rec IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_rec_type,
163: p_contract_parties_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_parties_tbl_type,
164: p_party_contacts_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.party_contacts_tbl_type,
165: p_risks_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_risks_tbl_type,
166: p_create_contract IN VARCHAR2 := fnd_api.g_true,
167: p_commit IN VARCHAR2 := fnd_api.g_false,
168: x_msg_data OUT NOCOPY VARCHAR2,
169: x_msg_count OUT NOCOPY NUMBER,
170: x_return_status OUT NOCOPY VARCHAR2
163: p_contract_parties_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_parties_tbl_type,
164: p_party_contacts_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.party_contacts_tbl_type,
165: p_risks_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_risks_tbl_type,
166: p_create_contract IN VARCHAR2 := fnd_api.g_true,
167: p_commit IN VARCHAR2 := fnd_api.g_false,
168: x_msg_data OUT NOCOPY VARCHAR2,
169: x_msg_count OUT NOCOPY NUMBER,
170: x_return_status OUT NOCOPY VARCHAR2
171: )
186: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
187: END IF;
188:
189: -- Standard call to check for call compatibility.
190: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
191: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
192: END IF;
193:
194: -- Initialize API return status to success
187: END IF;
188:
189: -- Standard call to check for call compatibility.
190: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
191: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
192: END IF;
193:
194: -- Initialize API return status to success
195: x_return_status := FND_API.G_RET_STS_SUCCESS;
191: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
192: END IF;
193:
194: -- Initialize API return status to success
195: x_return_status := FND_API.G_RET_STS_SUCCESS;
196:
197: IF p_create_contract = fnd_api.g_true THEN
198: SELECT okc_rep_import_run_id_s.NEXTVAL INTO l_run_id FROM dual;
199: END IF;
193:
194: -- Initialize API return status to success
195: x_return_status := FND_API.G_RET_STS_SUCCESS;
196:
197: IF p_create_contract = fnd_api.g_true THEN
198: SELECT okc_rep_import_run_id_s.NEXTVAL INTO l_run_id FROM dual;
199: END IF;
200:
201: --Call API to populate Header and controls
241: x_msg_count => x_msg_count,
242: x_return_status => x_return_status);
243: END IF;
244:
245: IF p_create_contract = fnd_api.g_true THEN
246: --Call validate and insert contract method to do the validation
247: OKC_REP_UTIL_PVT.validate_and_insert_contracts(p_api_version => p_api_version,
248: p_init_msg_list => fnd_api.g_FALSE,
249: p_run_id => l_run_id,
244:
245: IF p_create_contract = fnd_api.g_true THEN
246: --Call validate and insert contract method to do the validation
247: OKC_REP_UTIL_PVT.validate_and_insert_contracts(p_api_version => p_api_version,
248: p_init_msg_list => fnd_api.g_FALSE,
249: p_run_id => l_run_id,
250: x_msg_data => x_msg_data,
251: x_msg_count => x_msg_count,
252: x_return_status => x_return_status,
252: x_return_status => x_return_status,
253: x_number_inserted => l_number_inserted);
254: END IF;
255:
256: IF(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
257: SELECT contract_type, contract_id, contract_version_num, run_id, valid_flag
258: INTO p_contract_rec.contract_type, p_contract_rec.contract_id,
259: p_contract_rec.contract_version_num, p_contract_rec.run_id, p_contract_rec.valid_flag
260: FROM okc_rep_imp_contracts_t
261: WHERE run_id = l_run_id;
262: END IF;
263:
264: IF (p_contract_rec.valid_flag <> 'Y') THEN
265: x_return_status := FND_API.G_RET_STS_ERROR;
266: x_msg_count := 1;
267: SELECT error_message INTO x_msg_data
268: FROM okc_rep_imp_errors_t
269: WHERE run_id = p_contract_rec.run_id;
299: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
300: END IF;
301:
302: -- Standard call to check for call compatibility.
303: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
304: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
305: END IF;
306:
307: SELECT OKC_REP_IMP_CONTRACTS_T_S.NEXTVAL INTO x_imp_contract_id FROM dual;
300: END IF;
301:
302: -- Standard call to check for call compatibility.
303: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
304: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
305: END IF;
306:
307: SELECT OKC_REP_IMP_CONTRACTS_T_S.NEXTVAL INTO x_imp_contract_id FROM dual;
308:
438: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
439: END IF;
440:
441: -- Standard call to check for call compatibility.
442: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
443: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444: END IF;
445:
446: IF p_contract_parties_tbl.COUNT > 0
439: END IF;
440:
441: -- Standard call to check for call compatibility.
442: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
443: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
444: END IF;
445:
446: IF p_contract_parties_tbl.COUNT > 0
447: THEN
498: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
499: END IF;
500:
501: -- Standard call to check for call compatibility.
502: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
503: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
504: END IF;
505:
506:
499: END IF;
500:
501: -- Standard call to check for call compatibility.
502: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
503: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
504: END IF;
505:
506:
507: IF p_party_contacts_tbl.COUNT > 0
574: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
575: END IF;
576:
577: -- Standard call to check for call compatibility.
578: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
579: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
580: END IF;
581:
582:
575: END IF;
576:
577: -- Standard call to check for call compatibility.
578: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
579: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
580: END IF;
581:
582:
583: IF p_risks_tbl.COUNT > 0
616:
617: END populate_contract_risks;
618:
619: Procedure delete_contract(p_api_version IN NUMBER,
620: p_commit IN VARCHAR2 := fnd_api.g_false,
621: p_contract_id IN NUMBER,
622: x_msg_data OUT NOCOPY VARCHAR2,
623: x_msg_count OUT NOCOPY NUMBER,
624: x_return_status OUT NOCOPY VARCHAR2
640: FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,G_MODULE||l_api_name,
641: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
642: END IF;
643:
644: x_return_status := FND_API.G_RET_STS_SUCCESS;
645:
646: -- Standard call to check for call compatibility.
647: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
643:
644: x_return_status := FND_API.G_RET_STS_SUCCESS;
645:
646: -- Standard call to check for call compatibility.
647: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
649: END IF;
650:
651: OPEN c_get_contract_status;
644: x_return_status := FND_API.G_RET_STS_SUCCESS;
645:
646: -- Standard call to check for call compatibility.
647: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
648: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
649: END IF;
650:
651: OPEN c_get_contract_status;
652: FETCH c_get_contract_status INTO l_contract_status;
655: IF l_contract_status NOT IN ('SIGNED', 'TERMINATED') THEN
656:
657: -- Delete contract
658: okc_rep_contract_process_pvt.delete_contract( p_api_version => 1.0,
659: p_init_msg_list => FND_API.G_FALSE,
660: p_commit => p_commit,
661: p_contract_id => p_contract_id,
662: x_msg_data => x_msg_data,
663: x_msg_count => x_msg_count,
692: --close cursors
693: IF (c_get_contract_status%ISOPEN) THEN
694: CLOSE c_get_contract_status ;
695: END IF;
696: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
697: FND_MSG_PUB.Count_And_Get(
698: p_count => x_msg_count,
699: p_data => x_msg_data
700: );
766: okc_debug.log('200: Org row not found', 2);
767: END IF;
768: FND_MESSAGE.SET_NAME(G_APP_NAME, 'OKC_REP_IMP_INV_ORG');
769: FND_MSG_PUB.add;
770: FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MSG_PUB.Get(1, p_encoded =>FND_API.G_FALSE ));
771: retcode := 2;
772: return;
773: END IF;
774: END IF;
785: okc_debug.log('300: Contract Type not found', 2);
786: END IF;
787: FND_MESSAGE.SET_NAME(G_APP_NAME, 'OKC_REP_INV_CONTRACT_TYPE');
788: FND_MSG_PUB.add;
789: FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MSG_PUB.Get(1, p_encoded =>FND_API.G_FALSE ));
790: retcode := 2;
791: return;
792: END IF;
793: END IF;
837: okc_debug.log('600: No Rows found to import');
838: END IF;
839: FND_MESSAGE.SET_NAME(G_APP_NAME, 'OKC_REP_IMP_NO_VALID_ROWS');
840: FND_MSG_PUB.add;
841: FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MSG_PUB.Get(1, p_encoded =>FND_API.G_FALSE ));
842: retcode := 1;
843: return;
844: END IF;
845:
903:
904: --call the OKC_REP_UTIL_PVT.validate_and_insert_contracts
905:
906: okc_rep_util_pvt.validate_and_insert_contracts( p_api_version => 1.0,
907: p_init_msg_list => FND_API.G_FALSE,
908: p_run_id => l_run_id,
909: p_call_source => 'CP_SQL',
910: p_validate_only => p_validate_only,
911: x_msg_data => l_msg_data,
976: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
977: END IF;
978:
979: -- Standard call to check for call compatibility.
980: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
981: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
982: END IF;
983:
984:
977: END IF;
978:
979: -- Standard call to check for call compatibility.
980: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
981: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
982: END IF;
983:
984:
985: IF p_risks_tbl.COUNT > 0
1129: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
1130: END IF;
1131:
1132: -- Standard call to check for call compatibility.
1133: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1134: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1135: END IF;
1136:
1137:
1130: END IF;
1131:
1132: -- Standard call to check for call compatibility.
1133: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1134: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1135: END IF;
1136:
1137:
1138: IF p_party_contacts_tbl.COUNT > 0
1156: p_contract_rec IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_rec_type,
1157: p_contract_parties_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_parties_tbl_type,
1158: p_party_contacts_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.party_contacts_tbl_type,
1159: p_risks_tbl IN OUT NOCOPY OKC_IMP_RECORD_TYPES.contract_risks_tbl_type,
1160: p_commit IN VARCHAR2 := fnd_api.g_false,
1161: x_msg_data OUT NOCOPY VARCHAR2,
1162: x_msg_count OUT NOCOPY NUMBER,
1163: x_return_status OUT NOCOPY VARCHAR2
1164: ) IS
1183: 'Entered OKC_REP_CONTRACT_IMP_PUB.'||l_api_name);
1184: END IF;
1185:
1186: -- Standard call to check for call compatibility.
1187: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1188: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1189: END IF;
1190:
1191: x_return_status := FND_API.G_RET_STS_SUCCESS;
1184: END IF;
1185:
1186: -- Standard call to check for call compatibility.
1187: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1188: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1189: END IF;
1190:
1191: x_return_status := FND_API.G_RET_STS_SUCCESS;
1192:
1187: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1188: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1189: END IF;
1190:
1191: x_return_status := FND_API.G_RET_STS_SUCCESS;
1192:
1193: --Call first create Contract API to create the contract
1194: create_contract(p_api_version => p_api_version,
1195: p_contract_rec => p_contract_rec,
1195: p_contract_rec => p_contract_rec,
1196: p_contract_parties_tbl => p_contract_parties_tbl,
1197: p_party_contacts_tbl => p_party_contacts_tbl,
1198: p_risks_tbl => p_risks_tbl,
1199: p_create_contract => fnd_api.g_true,
1200: p_commit => p_commit,
1201: x_msg_data => l_msg_data,
1202: x_msg_count => l_msg_count,
1203: x_return_status => l_return_status);
1211: x_msg_data => l_msg_data,
1212: x_msg_count => l_msg_count,
1213: x_return_status => l_return_status);
1214: /* ELSE
1215: x_return_status := FND_API.G_RET_STS_ERROR;
1216: x_msg_count := 1
1217: SELECT error_message FROM okc_rep_imp_errors_t
1218: WHERE run_id = p_contract_rec.run_id; */
1219: END IF;
1221: x_msg_data := l_msg_data;
1222: x_msg_count := l_msg_count;
1223: x_return_status := l_return_status;
1224:
1225: IF p_commit = fnd_api.g_true THEN
1226: COMMIT;
1227: END IF;
1228:
1229: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1237: Deletes the Contract for the given document type.
1238: */
1239:
1240: Procedure delete_contract(p_api_version IN NUMBER,
1241: p_commit IN VARCHAR2 := fnd_api.g_false,
1242: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
1243: p_contract_type IN VARCHAR2 DEFAULT NULL,
1244: p_contract_id IN NUMBER DEFAULT NULL,
1245: x_msg_data OUT NOCOPY VARCHAR2,
1268: 'Entered OKC_REP_CONTRACT_IMP_PUB.'||l_api_name);
1269: END IF;
1270:
1271: -- Standard call to check for call compatibility.
1272: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1274: END IF;
1275:
1276: x_return_status := FND_API.G_RET_STS_SUCCESS;
1269: END IF;
1270:
1271: -- Standard call to check for call compatibility.
1272: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1274: END IF;
1275:
1276: x_return_status := FND_API.G_RET_STS_SUCCESS;
1277:
1272: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1273: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1274: END IF;
1275:
1276: x_return_status := FND_API.G_RET_STS_SUCCESS;
1277:
1278: --Find the contracts to be deleted w.r.t the document
1279:
1280: l_query := 'SELECT contract_id FROM okc_rep_contract_usages
1341: x_return_status => x_return_status);
1342:
1343: --------------------------------------------
1344: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1345: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1346: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1347: RAISE FND_API.G_EXC_ERROR ;
1348: END IF;
1349: --------------------------------------------
1343: --------------------------------------------
1344: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1345: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1346: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1347: RAISE FND_API.G_EXC_ERROR ;
1348: END IF;
1349: --------------------------------------------
1350:
1351: delete_contract_usages(p_api_version => p_api_version,
1357: x_return_status => x_return_status);
1358:
1359: --------------------------------------------
1360: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1362: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1363: RAISE FND_API.G_EXC_ERROR ;
1364: END IF;
1365: --------------------------------------------
1359: --------------------------------------------
1360: IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1361: RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1362: ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1363: RAISE FND_API.G_EXC_ERROR ;
1364: END IF;
1365: --------------------------------------------
1366:
1367: END LOOP;
1365: --------------------------------------------
1366:
1367: END LOOP;
1368: CLOSE c_contract_id_cur;
1369: IF FND_API.To_Boolean( p_commit ) THEN
1370: COMMIT;
1371: END IF;
1372:
1373: -- Standard call to get message count and if count is 1, get message info.
1379: END IF;
1380:
1381: EXCEPTION
1382:
1383: WHEN FND_API.G_EXC_ERROR THEN
1384:
1385: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1386: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
1387: g_module || l_api_name,
1396: --close cursors
1397: IF (c_contract_id_cur%ISOPEN) THEN
1398: CLOSE c_contract_id_cur ;
1399: END IF;
1400: x_return_status := FND_API.G_RET_STS_ERROR;
1401: FND_MSG_PUB.Count_And_Get(
1402: p_count => x_msg_count,
1403: p_data => x_msg_data
1404: );
1402: p_count => x_msg_count,
1403: p_data => x_msg_data
1404: );
1405:
1406: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1407:
1408: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1409: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
1410: g_module || l_api_name,
1419: --close cursors
1420: IF (c_contract_id_cur%ISOPEN) THEN
1421: CLOSE c_contract_id_cur ;
1422: END IF;
1423: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1424: FND_MSG_PUB.Count_And_Get(
1425: p_count => x_msg_count,
1426: p_data => x_msg_data
1427: );
1441: --close cursors
1442: IF (c_contract_id_cur%ISOPEN) THEN
1443: CLOSE c_contract_id_cur ;
1444: END IF;
1445: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1446: FND_MSG_PUB.Count_And_Get(
1447: p_count => x_msg_count,
1448: p_data => x_msg_data
1449: );
1457:
1458: Procedure create_new_contract_version(p_api_version IN NUMBER,
1459: p_contract_id IN NUMBER,
1460: p_run_id IN NUMBER,
1461: p_commit IN VARCHAR2 := fnd_api.g_false,
1462: x_msg_data OUT NOCOPY VARCHAR2,
1463: x_msg_count OUT NOCOPY NUMBER,
1464: x_return_status OUT NOCOPY VARCHAR2
1465: ) IS
1487: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
1488: END IF;
1489:
1490: -- Standard call to check for call compatibility.
1491: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1492: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1493: END IF;
1494:
1495: x_return_status := FND_API.G_RET_STS_SUCCESS;
1488: END IF;
1489:
1490: -- Standard call to check for call compatibility.
1491: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1492: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1493: END IF;
1494:
1495: x_return_status := FND_API.G_RET_STS_SUCCESS;
1496:
1491: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1492: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1493: END IF;
1494:
1495: x_return_status := FND_API.G_RET_STS_SUCCESS;
1496:
1497: OPEN c_get_contract_status;
1498: FETCH c_get_contract_status INTO l_contract_status;
1499: CLOSE c_get_contract_status;
1502:
1503: -- OKC_REP_CONTRACT_PROCESS_PVT.version_contract_details API copies the record from okc_rep_contracts_all
1504: -- table to okc_rep_contract_vers table and versions Terms, Deliverables, Attachments and UDA's
1505: OKC_REP_CONTRACT_PROCESS_PVT.version_contract_details(p_api_version => p_api_version,
1506: p_init_msg_list => fnd_api.g_false,
1507: p_commit => p_commit,
1508: p_contract_id => p_contract_id,
1509: p_version_from_api => fnd_api.g_true,
1510: x_msg_data => x_msg_data,
1505: OKC_REP_CONTRACT_PROCESS_PVT.version_contract_details(p_api_version => p_api_version,
1506: p_init_msg_list => fnd_api.g_false,
1507: p_commit => p_commit,
1508: p_contract_id => p_contract_id,
1509: p_version_from_api => fnd_api.g_true,
1510: x_msg_data => x_msg_data,
1511: x_msg_count => x_msg_count,
1512: x_return_status => x_return_status);
1513:
1547: END IF; -- IF l_contract_status IN ('SIGNED', 'APPROVED', 'CANCELLED')
1548:
1549: --Populate the error message table
1550: IF(l_valid_flag = 'N' AND l_error_msg IS NOT NULL) THEN
1551: OKC_REP_UTIL_PVT.populate_import_errors(p_init_msg_list => FND_API.G_FALSE,
1552: p_api_version => 1.0,
1553: p_contract_id => p_contract_id,
1554: p_error_obj_type => G_NEW_VERSION_ERROR,
1555: p_error_obj_id => p_contract_id,
1569: END IF;
1570:
1571: EXCEPTION
1572:
1573: WHEN FND_API.G_EXC_ERROR THEN
1574:
1575: IF c_get_contract_status%ISOPEN THEN
1576: CLOSE c_get_contract_status;
1577: END IF;
1577: END IF;
1578:
1579: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1580: fnd_log.string(FND_LOG.LEVEL_EXCEPTION, g_module || l_api_name,
1581: 'Leaving '||l_api_name||':FND_API.G_EXC_ERROR Exception');
1582: END IF;
1583:
1584: x_return_status := FND_API.G_RET_STS_ERROR;
1585: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1580: fnd_log.string(FND_LOG.LEVEL_EXCEPTION, g_module || l_api_name,
1581: 'Leaving '||l_api_name||':FND_API.G_EXC_ERROR Exception');
1582: END IF;
1583:
1584: x_return_status := FND_API.G_RET_STS_ERROR;
1585: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1586: p_data => x_msg_data);
1587:
1588: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1584: x_return_status := FND_API.G_RET_STS_ERROR;
1585: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1586: p_data => x_msg_data);
1587:
1588: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1589:
1590: IF c_get_contract_status%ISOPEN THEN
1591: CLOSE c_get_contract_status;
1592: END IF;
1592: END IF;
1593:
1594: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1595: fnd_log.string(FND_LOG.LEVEL_EXCEPTION, g_module || l_api_name,
1596: 'Leaving '||l_api_name||':FND_API.G_EXC_UNEXPECTED_ERROR Exception');
1597: END IF;
1598:
1599: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1600: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1595: fnd_log.string(FND_LOG.LEVEL_EXCEPTION, g_module || l_api_name,
1596: 'Leaving '||l_api_name||':FND_API.G_EXC_UNEXPECTED_ERROR Exception');
1597: END IF;
1598:
1599: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1600: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1601: p_data => x_msg_data);
1602:
1603: WHEN OTHERS THEN
1616: p_token1 => G_SQLCODE_TOKEN,
1617: p_token1_value => sqlcode,
1618: p_token2 => G_SQLERRM_TOKEN,
1619: p_token2_value => sqlerrm);
1620: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1621: FND_MSG_PUB.Count_And_Get(p_count => x_msg_count,
1622: p_data => x_msg_data);
1623:
1624: END create_new_contract_version;
1635: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
1636: p_contract_type IN VARCHAR2 DEFAULT NULL,
1637: p_contract_id IN NUMBER DEFAULT NULL,
1638: p_run_id IN NUMBER,
1639: p_commit IN VARCHAR2 := fnd_api.g_false,
1640: x_msg_data OUT NOCOPY VARCHAR2,
1641: x_msg_count OUT NOCOPY NUMBER,
1642: x_return_status OUT NOCOPY VARCHAR2
1643: ) IS
1666: 'Entered OKC_REP_CONTRACT_IMP_PUB.'||l_api_name);
1667: END IF;
1668:
1669: -- Standard call to check for call compatibility.
1670: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: END IF;
1673:
1674: x_return_status := FND_API.G_RET_STS_SUCCESS;
1667: END IF;
1668:
1669: -- Standard call to check for call compatibility.
1670: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: END IF;
1673:
1674: x_return_status := FND_API.G_RET_STS_SUCCESS;
1675:
1670: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1671: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1672: END IF;
1673:
1674: x_return_status := FND_API.G_RET_STS_SUCCESS;
1675:
1676: l_query := 'SELECT contract_id FROM okc_rep_contract_usages
1677: WHERE business_document_type = ''' || p_document_rec.business_document_type ||
1678: ''' AND business_document_id = ' || p_document_rec.business_document_id;
1769: --close cursors
1770: IF (c_contract_id_cur%ISOPEN) THEN
1771: CLOSE c_contract_id_cur ;
1772: END IF;
1773: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1774: FND_MSG_PUB.Count_And_Get(
1775: p_count => x_msg_count,
1776: p_data => x_msg_data
1777: );
1812: 'Entered OKC_REP_CONTRACT_IMP_PUB.'||l_api_name);
1813: END IF;
1814:
1815: -- Standard call to check for call compatibility.
1816: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1817: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1818: END IF;
1819:
1820: -- Initialize API return status to success
1813: END IF;
1814:
1815: -- Standard call to check for call compatibility.
1816: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1817: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1818: END IF;
1819:
1820: -- Initialize API return status to success
1821: x_return_status := FND_API.G_RET_STS_SUCCESS;
1817: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1818: END IF;
1819:
1820: -- Initialize API return status to success
1821: x_return_status := FND_API.G_RET_STS_SUCCESS;
1822:
1823: --Find the contracts associated to the document
1824:
1825: OPEN c_contract_exist_csr;
1874: contract_rec contract_csr%ROWTYPE;
1875:
1876: BEGIN
1877:
1878: l_phy_complete_date_match_flag := FND_API.G_FALSE;
1879:
1880: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1881: FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,G_MODULE||l_api_name,
1882: 'Entered OKC_REP_CONTRACT_PROCESS_PVT.sign_contract_closeout');
1889: -- Standard Start of API savepoint
1890: SAVEPOINT sign_contract_PVT;
1891:
1892: -- Standard call to check for call compatibility.
1893: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1894: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1895: END IF;
1896: -- Initialize message list if p_init_msg_list is set to TRUE.
1897: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1890: SAVEPOINT sign_contract_PVT;
1891:
1892: -- Standard call to check for call compatibility.
1893: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1894: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1895: END IF;
1896: -- Initialize message list if p_init_msg_list is set to TRUE.
1897: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1898: FND_MSG_PUB.initialize;
1893: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1894: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1895: END IF;
1896: -- Initialize message list if p_init_msg_list is set to TRUE.
1897: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1898: FND_MSG_PUB.initialize;
1899: END IF;
1900:
1901: -- Initialize API return status to success
1898: FND_MSG_PUB.initialize;
1899: END IF;
1900:
1901: -- Initialize API return status to success
1902: x_return_status := FND_API.G_RET_STS_SUCCESS;
1903:
1904: --find the contract associated to this business document
1905: OPEN c_get_contract_id_csr;
1906: FETCH c_get_contract_id_csr INTO l_contract_type, l_contract_id;
1917: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1918: p_msg_name => G_INVALID_BUS_DOC_ID_MSG,
1919: p_token1 => 'BUS_DOC_ID',
1920: p_token1_value => to_char(p_document_rec.business_document_id));
1921: RAISE FND_API.G_EXC_ERROR;
1922: -- RAISE NO_DATA_FOUND;
1923: END IF;
1924:
1925: -- Get effective dates and version of the contract.
1934: Okc_Api.Set_Message(p_app_name => G_APP_NAME,
1935: p_msg_name => G_INVALID_CONTRACT_ID_MSG,
1936: p_token1 => 'CONTRACT_ID',
1937: p_token1_value => to_char(l_contract_id));
1938: RAISE FND_API.G_EXC_ERROR;
1939: -- RAISE NO_DATA_FOUND;
1940: END IF;
1941:
1942: -- Lock the contract header
1971: END IF;
1972: -- Update the contract status and add a record in OKC_REP_CON_STATUS_HIST table.
1973: OKC_REP_UTIL_PVT.change_contract_status(
1974: p_api_version => 1.0,
1975: p_init_msg_list => FND_API.G_FALSE,
1976: p_contract_id => l_contract_id,
1977: p_contract_version => contract_rec.contract_version_num,
1978: p_status_code => G_STATUS_SIGNED,
1979: p_user_id => fnd_global.user_id,
2001: END IF;
2002:
2003: OKC_DELIVERABLE_PROCESS_PVT.version_deliverables (
2004: p_api_version => 1.0,
2005: p_init_msg_list => FND_API.G_FALSE,
2006: p_doc_id => l_contract_id,
2007: p_doc_version => contract_rec.contract_version_num,
2008: p_doc_type => contract_rec.contract_type,
2009: x_return_status => x_return_status,
2029: || contract_rec.latest_signed_ver_number);
2030: END IF;
2031: -- Now we need to activate deliverables
2032: if (contract_rec.latest_signed_ver_number IS NULL) THEN
2033: l_sync_flag := FND_API.G_FALSE;
2034: ELSE
2035: l_sync_flag := FND_API.G_TRUE;
2036: END IF;
2037:
2031: -- Now we need to activate deliverables
2032: if (contract_rec.latest_signed_ver_number IS NULL) THEN
2033: l_sync_flag := FND_API.G_FALSE;
2034: ELSE
2035: l_sync_flag := FND_API.G_TRUE;
2036: END IF;
2037:
2038: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2039: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
2049: END IF;
2050:
2051: OKC_MANAGE_DELIVERABLES_GRP.activateDeliverables (
2052: p_api_version => 1.0,
2053: p_init_msg_list => FND_API.G_FALSE,
2054: p_commit => FND_API.G_FALSE,
2055: p_bus_doc_id => l_contract_id,
2056: p_bus_doc_type => contract_rec.contract_type,
2057: p_bus_doc_version => contract_rec.contract_version_num,
2050:
2051: OKC_MANAGE_DELIVERABLES_GRP.activateDeliverables (
2052: p_api_version => 1.0,
2053: p_init_msg_list => FND_API.G_FALSE,
2054: p_commit => FND_API.G_FALSE,
2055: p_bus_doc_id => l_contract_id,
2056: p_bus_doc_type => contract_rec.contract_type,
2057: p_bus_doc_version => contract_rec.contract_version_num,
2058: p_event_code => 'PO_PHYSICAL_COMPLETE',
2076: END IF;
2077: --------------------------------------------------------
2078:
2079: -- Checking if we need to call deliverable's APIs for synch-ing
2080: IF (l_sync_flag = FND_API.G_TRUE) THEN
2081:
2082: IF ( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2083: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
2084: 'Before checking if we need to call updateDeliverable and disableDeliverable()');
2094: 'Calling OKC_MANAGE_DELIVERABLES_GRP.updateDeliverables');
2095: END IF;
2096: OKC_MANAGE_DELIVERABLES_GRP.updateDeliverables (
2097: p_api_version => 1.0,
2098: p_init_msg_list => FND_API.G_FALSE,
2099: p_commit => FND_API.G_FALSE,
2100: p_bus_doc_id => l_contract_id,
2101: p_bus_doc_type => contract_rec.contract_type,
2102: p_bus_doc_version => contract_rec.contract_version_num,
2095: END IF;
2096: OKC_MANAGE_DELIVERABLES_GRP.updateDeliverables (
2097: p_api_version => 1.0,
2098: p_init_msg_list => FND_API.G_FALSE,
2099: p_commit => FND_API.G_FALSE,
2100: p_bus_doc_id => l_contract_id,
2101: p_bus_doc_type => contract_rec.contract_type,
2102: p_bus_doc_version => contract_rec.contract_version_num,
2103: p_bus_doc_date_events_tbl => l_update_event_tbl,
2125: 'Calling OKC_MANAGE_DELIVERABLES_GRP.disableDeliverables');
2126: END IF;
2127: OKC_MANAGE_DELIVERABLES_GRP.disableDeliverables (
2128: p_api_version => 1.0,
2129: p_init_msg_list => FND_API.G_FALSE,
2130: p_commit => FND_API.G_FALSE,
2131: p_bus_doc_id => l_contract_id,
2132: p_bus_doc_type => contract_rec.contract_type,
2133: p_bus_doc_version => contract_rec.latest_signed_ver_number,
2126: END IF;
2127: OKC_MANAGE_DELIVERABLES_GRP.disableDeliverables (
2128: p_api_version => 1.0,
2129: p_init_msg_list => FND_API.G_FALSE,
2130: p_commit => FND_API.G_FALSE,
2131: p_bus_doc_id => l_contract_id,
2132: p_bus_doc_type => contract_rec.contract_type,
2133: p_bus_doc_version => contract_rec.latest_signed_ver_number,
2134: x_msg_data => x_msg_data,
2159: WHERE contract_id = l_contract_id;
2160: CLOSE contract_csr;
2161:
2162: -- Standard check of p_commit
2163: IF FND_API.To_Boolean( p_commit ) THEN
2164: COMMIT WORK;
2165: END IF;
2166:
2167: -- Standard call to get message count and if count is 1, get message info.
2173: END IF;
2174:
2175:
2176: EXCEPTION
2177: WHEN FND_API.G_EXC_ERROR THEN
2178: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2179: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2180: g_module || l_api_name,
2181: 'Leaving sign_contract:FND_API.G_EXC_ERROR Exception');
2177: WHEN FND_API.G_EXC_ERROR THEN
2178: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2179: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2180: g_module || l_api_name,
2181: 'Leaving sign_contract:FND_API.G_EXC_ERROR Exception');
2182: END IF;
2183: --close cursors
2184: IF (contract_csr%ISOPEN) THEN
2185: CLOSE contract_csr ;
2187: IF (c_get_contract_id_csr%ISOPEN) THEN
2188: CLOSE c_get_contract_id_csr ;
2189: END IF;
2190: ROLLBACK TO sign_contract_PVT;
2191: x_return_status := FND_API.G_RET_STS_ERROR;
2192: FND_MSG_PUB.Count_And_Get(
2193: p_count => x_msg_count,
2194: p_data => x_msg_data
2195: );
2193: p_count => x_msg_count,
2194: p_data => x_msg_data
2195: );
2196:
2197: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2198: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2199: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2200: g_module || l_api_name,
2201: 'Leaving sign_contract:FND_API.G_EXC_UNEXPECTED_ERROR Exception');
2197: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2198: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2199: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2200: g_module || l_api_name,
2201: 'Leaving sign_contract:FND_API.G_EXC_UNEXPECTED_ERROR Exception');
2202: END IF;
2203: --close cursors
2204: IF (contract_csr%ISOPEN) THEN
2205: CLOSE contract_csr ;
2207: IF (c_get_contract_id_csr%ISOPEN) THEN
2208: CLOSE c_get_contract_id_csr ;
2209: END IF;
2210: ROLLBACK TO sign_contract_PVT;
2211: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2212: FND_MSG_PUB.Count_And_Get(
2213: p_count => x_msg_count,
2214: p_data => x_msg_data
2215: );
2233: END IF;
2234: IF (c_get_contract_id_csr%ISOPEN) THEN
2235: CLOSE c_get_contract_id_csr ;
2236: END IF;
2237: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2238: FND_MSG_PUB.Count_And_Get(
2239: p_count => x_msg_count,
2240: p_data => x_msg_data
2241: );
2275: 'Entered OKC_REP_CONTRACT_IMP_PUB.'||l_api_name);
2276: END IF;
2277:
2278: -- Standard call to check for call compatibility.
2279: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2281: END IF;
2282:
2283: -- Initialize API return status to success
2276: END IF;
2277:
2278: -- Standard call to check for call compatibility.
2279: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2281: END IF;
2282:
2283: -- Initialize API return status to success
2284: x_return_status := FND_API.G_RET_STS_SUCCESS;
2280: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2281: END IF;
2282:
2283: -- Initialize API return status to success
2284: x_return_status := FND_API.G_RET_STS_SUCCESS;
2285:
2286: --Find the contracts associated to the document
2287:
2288: OPEN c_contract_exist_csr;
2309: Deletes/ Cancels the Contract for the given document type based on the status
2310: */
2311:
2312: Procedure delete_cancel_contract(p_api_version IN NUMBER,
2313: p_commit IN VARCHAR2 := fnd_api.g_false,
2314: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
2315: p_contract_type IN VARCHAR2 DEFAULT NULL,
2316: p_contract_id IN NUMBER DEFAULT NULL,
2317: x_msg_data OUT NOCOPY VARCHAR2,
2343: 'Entered OKC_REP_CONTRACT_IMP_PVT.'||l_api_name);
2344: END IF;
2345:
2346: -- Standard call to check for call compatibility.
2347: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2348: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2349: END IF;
2350:
2351: x_return_status := FND_API.G_RET_STS_SUCCESS;
2344: END IF;
2345:
2346: -- Standard call to check for call compatibility.
2347: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2348: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2349: END IF;
2350:
2351: x_return_status := FND_API.G_RET_STS_SUCCESS;
2352:
2347: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2348: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2349: END IF;
2350:
2351: x_return_status := FND_API.G_RET_STS_SUCCESS;
2352:
2353: --Find the contracts to be deleted w.r.t the document
2354:
2355: l_query := 'SELECT contract_id, contract_version FROM okc_rep_contract_usages
2504: --close cursors
2505: IF (c_contract_id_cur%ISOPEN) THEN
2506: CLOSE c_contract_id_cur ;
2507: END IF;
2508: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2509: FND_MSG_PUB.Count_And_Get(
2510: p_count => x_msg_count,
2511: p_data => x_msg_data
2512: );
2513:
2514: END delete_cancel_contract;
2515:
2516: PROCEDURE cancel_contract(p_api_version IN NUMBER,
2517: p_commit IN VARCHAR2 := fnd_api.g_false,
2518: p_contract_id IN NUMBER,
2519: x_msg_data OUT NOCOPY VARCHAR2,
2520: x_msg_count OUT NOCOPY NUMBER,
2521: x_return_status OUT NOCOPY VARCHAR2
2543:
2544: -- Standard Start of API savepoint
2545: SAVEPOINT cancel_contract_PVT;
2546:
2547: x_return_status := FND_API.G_RET_STS_SUCCESS;
2548:
2549: -- Standard call to check for call compatibility.
2550: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2551: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2546:
2547: x_return_status := FND_API.G_RET_STS_SUCCESS;
2548:
2549: -- Standard call to check for call compatibility.
2550: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2551: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2552: END IF;
2553:
2554: OPEN c_get_contract_status;
2547: x_return_status := FND_API.G_RET_STS_SUCCESS;
2548:
2549: -- Standard call to check for call compatibility.
2550: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2551: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2552: END IF;
2553:
2554: OPEN c_get_contract_status;
2555: FETCH c_get_contract_status INTO l_contract_type, l_contract_status;
2558: IF l_contract_status NOT IN ('PENDING_APPROVAL', 'PENDING_SIGN') THEN
2559:
2560: -- Delete contract
2561: OKC_REP_CONTRACT_PROCESS_PVT.terminate_contract(p_api_version => 1.0,
2562: p_init_msg_list => FND_API.G_FALSE,
2563: p_commit => p_commit,
2564: p_contract_id => p_contract_id,
2565: p_termination_date => SYSDATE,
2566: x_msg_data => x_msg_data,
2592: FND_LOG.STRING( FND_LOG.LEVEL_STATEMENT ,G_MODULE||l_api_name,
2593: 'Cancel cannot be performed on a contract in status pending signed/pending approval');
2594: END IF;
2595:
2596: x_return_status := FND_API.G_RET_STS_ERROR;
2597:
2598: l_resolved_msg_name := OKC_API.resolve_message('OKC_IMP_INVALID_STATUS',l_contract_type);
2599: l_resolved_token := OKC_API.resolve_hdr_token(l_contract_type);
2600:
2613: END IF;
2614:
2615: EXCEPTION
2616:
2617: WHEN FND_API.G_EXC_ERROR THEN
2618: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2619: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2620: g_module || l_api_name,
2621: 'Leaving cancel_contract:FND_API.G_EXC_ERROR Exception');
2617: WHEN FND_API.G_EXC_ERROR THEN
2618: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2619: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2620: g_module || l_api_name,
2621: 'Leaving cancel_contract:FND_API.G_EXC_ERROR Exception');
2622: END IF;
2623: --close cursors
2624: IF (c_get_contract_status%ISOPEN) THEN
2625: CLOSE c_get_contract_status ;
2624: IF (c_get_contract_status%ISOPEN) THEN
2625: CLOSE c_get_contract_status ;
2626: END IF;
2627: ROLLBACK TO cancel_contract_PVT;
2628: x_return_status := FND_API.G_RET_STS_ERROR;
2629: FND_MSG_PUB.Count_And_Get(
2630: p_count => x_msg_count,
2631: p_data => x_msg_data
2632: );
2646: --close cursors
2647: IF (c_get_contract_status%ISOPEN) THEN
2648: CLOSE c_get_contract_status ;
2649: END IF;
2650: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2651: FND_MSG_PUB.Count_And_Get(
2652: p_count => x_msg_count,
2653: p_data => x_msg_data
2654: );
2663: Procedure cancel_contract(p_api_version IN NUMBER,
2664: p_document_rec IN OKC_IMP_RECORD_TYPES.document_rec_type,
2665: p_contract_type IN VARCHAR2 DEFAULT NULL,
2666: p_contract_id IN NUMBER DEFAULT NULL,
2667: p_commit IN VARCHAR2 := fnd_api.g_false,
2668: x_msg_data OUT NOCOPY VARCHAR2,
2669: x_msg_count OUT NOCOPY NUMBER,
2670: x_return_status OUT NOCOPY VARCHAR2
2671: )
2701: 'p_document_rec.business_document_version '||p_document_rec.business_document_version);
2702: END IF;
2703:
2704: -- Standard call to check for call compatibility.
2705: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2706: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2707: END IF;
2708:
2709: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2702: END IF;
2703:
2704: -- Standard call to check for call compatibility.
2705: IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2706: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2707: END IF;
2708:
2709: IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2710: FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,G_MODULE||l_api_name,
2792: END IF;
2793:
2794: EXCEPTION
2795:
2796: WHEN FND_API.G_EXC_ERROR THEN
2797: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2798: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2799: g_module || l_api_name,
2800: 'Leaving cancel_contract:FND_API.G_EXC_ERROR Exception');
2796: WHEN FND_API.G_EXC_ERROR THEN
2797: IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2798: fnd_log.string(FND_LOG.LEVEL_EXCEPTION,
2799: g_module || l_api_name,
2800: 'Leaving cancel_contract:FND_API.G_EXC_ERROR Exception');
2801: END IF;
2802: --close cursors
2803: IF (c_contract_id_cur%ISOPEN) THEN
2804: CLOSE c_contract_id_cur ;
2803: IF (c_contract_id_cur%ISOPEN) THEN
2804: CLOSE c_contract_id_cur ;
2805: END IF;
2806: ROLLBACK TO cancel_contract_PVT;
2807: x_return_status := FND_API.G_RET_STS_ERROR;
2808: FND_MSG_PUB.Count_And_Get(
2809: p_count => x_msg_count,
2810: p_data => x_msg_data
2811: );
2825: --close cursors
2826: IF (c_contract_id_cur%ISOPEN) THEN
2827: CLOSE c_contract_id_cur ;
2828: END IF;
2829: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2830: FND_MSG_PUB.Count_And_Get(
2831: p_count => x_msg_count,
2832: p_data => x_msg_data
2833: );