38: -- Procedure to get visit cost details for a specific visit --
39: --------------------------------------------------------------------------
40: PROCEDURE get_visit_cost_details(
41: p_api_version IN NUMBER := 1.0,
42: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
43: p_commit IN VARCHAR2 := FND_API.G_FALSE,
44: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
45: p_module_type IN VARCHAR2 := 'JSP',
46: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
39: --------------------------------------------------------------------------
40: PROCEDURE get_visit_cost_details(
41: p_api_version IN NUMBER := 1.0,
42: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
43: p_commit IN VARCHAR2 := FND_API.G_FALSE,
44: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
45: p_module_type IN VARCHAR2 := 'JSP',
46: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
47: x_return_status OUT NOCOPY VARCHAR2,
40: PROCEDURE get_visit_cost_details(
41: p_api_version IN NUMBER := 1.0,
42: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
43: p_commit IN VARCHAR2 := FND_API.G_FALSE,
44: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
45: p_module_type IN VARCHAR2 := 'JSP',
46: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
47: x_return_status OUT NOCOPY VARCHAR2,
48: x_msg_count OUT NOCOPY NUMBER,
94: -- Standard start of API savepoint
95: SAVEPOINT get_visit_cost_details;
96:
97: -- Initialize message list if p_init_msg_list is set to TRUE
98: IF FND_API.To_Boolean( p_init_msg_list) THEN
99: FND_MSG_PUB.Initialize;
100: END IF;
101:
102: -- Initialize API return status to success
99: FND_MSG_PUB.Initialize;
100: END IF;
101:
102: -- Initialize API return status to success
103: x_return_status := FND_API.G_RET_STS_SUCCESS;
104:
105: -- Standard call to check for call compatibility.
106: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
107: p_api_version,
102: -- Initialize API return status to success
103: x_return_status := FND_API.G_RET_STS_SUCCESS;
104:
105: -- Standard call to check for call compatibility.
106: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
107: p_api_version,
108: l_api_name,G_PKG_NAME)
109: THEN
110: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
106: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
107: p_api_version,
108: l_api_name,G_PKG_NAME)
109: THEN
110: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
111: END IF;
112:
113: l_cost_price_rec:= p_x_cost_price_rec;
114:
133: );
134: END IF;
135:
136: -- make sure that visit id is present in the input
137: IF(p_x_cost_price_rec.visit_id IS NULL OR p_x_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
138: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
139: FND_MSG_PUB.ADD;
140: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
141: fnd_log.string
144: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.get_visit_cost_details',
145: 'Visit id is mandatory but found null in input '
146: );
147: END IF;
148: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
149: END IF;
150:
151: OPEN visit_info_csr(p_x_cost_price_rec.visit_id);
152: FETCH visit_info_csr INTO l_visit_status,
167: 'Visit id not found in ahl_visits_b table'
168: );
169: END IF;
170: CLOSE visit_info_csr;
171: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
172: END IF;
173: CLOSE visit_info_csr;
174:
175:
190: 'Service request associated is invalid as record not found : l_cost_price_rec.service_request_id : '||l_cost_price_rec.service_request_id
191: );
192: END IF;
193: CLOSE customer_id_csr;
194: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
195: END IF;
196: CLOSE customer_id_csr;
197:
198: -- can outside party flag be updated?
225: 'List name not found for stored list id'
226: );
227: END IF;
228: CLOSE price_list_name_csr;
229: RAISE FND_API.G_EXC_ERROR;
230: END IF;
231:
232: CLOSE price_list_name_csr;
233: END IF;
245: -- To call to get cost if calculated
246: AHL_VWP_COST_PVT.Calculate_WO_Cost
247: (
248: p_api_version => 1.0,
249: p_init_msg_list => Fnd_Api.G_FALSE,
250: p_commit=> Fnd_Api.G_FALSE,
251: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
252: p_x_cost_price_rec => l_cost_price_rec,
253: x_return_status => x_return_status
246: AHL_VWP_COST_PVT.Calculate_WO_Cost
247: (
248: p_api_version => 1.0,
249: p_init_msg_list => Fnd_Api.G_FALSE,
250: p_commit=> Fnd_Api.G_FALSE,
251: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
252: p_x_cost_price_rec => l_cost_price_rec,
253: x_return_status => x_return_status
254: );
247: (
248: p_api_version => 1.0,
249: p_init_msg_list => Fnd_Api.G_FALSE,
250: p_commit=> Fnd_Api.G_FALSE,
251: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
252: p_x_cost_price_rec => l_cost_price_rec,
253: x_return_status => x_return_status
254: );
255:
252: p_x_cost_price_rec => l_cost_price_rec,
253: x_return_status => x_return_status
254: );
255:
256: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
257: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
258: fnd_log.string
259: (
260: fnd_log.level_exception,
261: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.get_visit_cost_details',
262: 'AHL_VWP_COST_PVT.Calculate_WO_Cost API threw error : x_return_status : ' || x_return_status
263: );
264: END IF;
265: RAISE FND_API.G_EXC_ERROR;
266: END IF;
267:
268: -- To get visit cost calculated
269: IF(l_cost_price_rec.Is_Cst_Struc_updated = 'N') AND (l_cost_price_rec.workorder_id IS NOT NULL) THEN
276: x_Estimated_cost => l_cost_price_rec.estimated_cost,
277: x_return_status => x_return_status
278: );
279:
280: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
281: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
282: fnd_log.string
283: (
284: fnd_log.level_exception,
285: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.get_visit_cost_details',
286: 'AHL_VWP_COST_PVT.Calculate_Visit_Cost API threw error : x_return_status : ' || x_return_status
287: );
288: END IF;
289: RAISE FND_API.G_EXC_ERROR;
290: END IF;
291:
292: -- To get profit and loss
293: AHL_VWP_COST_PVT.Get_Profit_or_Loss
301: x_return_status => x_return_status
302: );
303: END IF;
304:
305: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
306: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
307: fnd_log.string
308: (
309: fnd_log.level_exception,
310: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.get_visit_cost_details',
311: 'AHL_VWP_COST_PVT.Get_Profit_or_Loss API threw error : x_return_status : ' || x_return_status
312: );
313: END IF;
314: RAISE FND_API.G_EXC_ERROR;
315: END IF;
316: END IF; -- status <> CANCELLED
317:
318: -- Check Error Message stack.
317:
318: -- Check Error Message stack.
319: x_msg_count := FND_MSG_PUB.count_msg;
320: IF x_msg_count > 0 THEN
321: RAISE FND_API.G_EXC_ERROR;
322: END IF;
323:
324: -- Standard check of p_commit
325: IF FND_API.TO_BOOLEAN(p_commit) THEN
321: RAISE FND_API.G_EXC_ERROR;
322: END IF;
323:
324: -- Standard check of p_commit
325: IF FND_API.TO_BOOLEAN(p_commit) THEN
326: COMMIT WORK;
327: END IF;
328:
329: p_x_cost_price_rec.outside_party_flag := l_cost_price_rec.outside_party_flag;
363: );
364: END IF;
365:
366: EXCEPTION
367: WHEN FND_API.G_EXC_ERROR THEN
368: x_return_status := FND_API.G_RET_STS_ERROR;
369: ROLLBACK TO get_visit_cost_details;
370: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
371: p_data => x_msg_data,
364: END IF;
365:
366: EXCEPTION
367: WHEN FND_API.G_EXC_ERROR THEN
368: x_return_status := FND_API.G_RET_STS_ERROR;
369: ROLLBACK TO get_visit_cost_details;
370: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
371: p_data => x_msg_data,
372: p_encoded => fnd_api.g_false);
368: x_return_status := FND_API.G_RET_STS_ERROR;
369: ROLLBACK TO get_visit_cost_details;
370: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
371: p_data => x_msg_data,
372: p_encoded => fnd_api.g_false);
373:
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
371: p_data => x_msg_data,
372: p_encoded => fnd_api.g_false);
373:
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
377: ROLLBACK TO get_visit_cost_details;
378: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
379: p_data => x_msg_data,
372: p_encoded => fnd_api.g_false);
373:
374:
375: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
376: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
377: ROLLBACK TO get_visit_cost_details;
378: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
379: p_data => x_msg_data,
380: p_encoded => fnd_api.g_false);
376: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
377: ROLLBACK TO get_visit_cost_details;
378: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
379: p_data => x_msg_data,
380: p_encoded => fnd_api.g_false);
381:
382:
383: WHEN OTHERS THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380: p_encoded => fnd_api.g_false);
381:
382:
383: WHEN OTHERS THEN
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
385: ROLLBACK TO get_visit_cost_details;
386: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
387: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
388: p_procedure_name => 'get_visit_cost_details',
389: p_error_text => SUBSTR(SQLERRM,1,500));
390: END IF;
391: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
392: p_data => x_msg_data,
393: p_encoded => fnd_api.g_false);
394:
395: END get_visit_cost_details;
396:
397: --------------------------------------------------------------------------
398: -- Procedure to get visit cost details for a specific visit --
399: --------------------------------------------------------------------------
400: PROCEDURE update_visit_cost_details(
401: p_api_version IN NUMBER := 1.0,
402: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
403: p_commit IN VARCHAR2 := FND_API.G_FALSE,
404: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
405: p_module_type IN VARCHAR2 := 'JSP',
406: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
399: --------------------------------------------------------------------------
400: PROCEDURE update_visit_cost_details(
401: p_api_version IN NUMBER := 1.0,
402: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
403: p_commit IN VARCHAR2 := FND_API.G_FALSE,
404: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
405: p_module_type IN VARCHAR2 := 'JSP',
406: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
407: x_return_status OUT NOCOPY VARCHAR2,
400: PROCEDURE update_visit_cost_details(
401: p_api_version IN NUMBER := 1.0,
402: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
403: p_commit IN VARCHAR2 := FND_API.G_FALSE,
404: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
405: p_module_type IN VARCHAR2 := 'JSP',
406: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
407: x_return_status OUT NOCOPY VARCHAR2,
408: x_msg_count OUT NOCOPY NUMBER,
462: -- Standard start of API savepoint
463: SAVEPOINT update_visit_cost_details;
464:
465: -- Initialize message list if p_init_msg_list is set to TRUE
466: IF FND_API.To_Boolean( p_init_msg_list) THEN
467: FND_MSG_PUB.Initialize;
468: END IF;
469:
470: -- Initialize API return status to success
467: FND_MSG_PUB.Initialize;
468: END IF;
469:
470: -- Initialize API return status to success
471: x_return_status := FND_API.G_RET_STS_SUCCESS;
472: l_cost_price_rec := p_x_cost_price_rec;
473:
474: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
475: fnd_log.string
492: );
493: END IF;
494:
495: -- Make sure that visit id is present in the input
496: IF(p_x_cost_price_rec.visit_id IS NULL OR p_x_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
497: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
498: FND_MSG_PUB.ADD;
499: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
500: fnd_log.string
503: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.update_visit_cost_details',
504: 'Visit id is mandatory but found null in input '
505: );
506: END IF;
507: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
508: END IF;
509:
510: --make sure outside party flag is valid
511: IF (NVL(p_x_cost_price_rec.outside_party_flag,'N') NOT IN ('Y','N'))THEN
518: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.update_visit_cost_details',
519: 'Input OSP Flag is invalid : ' || p_x_cost_price_rec.outside_party_flag
520: );
521: END IF;
522: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
523: END IF;
524:
525: OPEN visit_info_csr(p_x_cost_price_rec.visit_id);
526: FETCH visit_info_csr INTO l_outside_party_flag,
532: IF (visit_info_csr%NOTFOUND)THEN
533: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INV_VISIT');
534: FND_MSG_PUB.ADD;
535: CLOSE visit_info_csr;
536: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
537:
538: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
539: fnd_log.string
540: (
547: ELSIF (l_visit_status_code = 'CLOSED')THEN
548: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INV_VISIT_UPDT_STS');
549: FND_MSG_PUB.ADD;
550: CLOSE visit_info_csr;
551: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
552:
553: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
554: fnd_log.string
555: (
562: ELSIF (l_service_request_id IS NULL)THEN
563: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INV_VISIT_UPDT_NOSR');
564: FND_MSG_PUB.ADD;
565: CLOSE visit_info_csr;
566: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
567:
568: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
569: fnd_log.string
570: (
582:
583: IF (visit_tasks_csr%FOUND)THEN
584: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INV_OSP_FLAG_MOD');
585: FND_MSG_PUB.ADD;
586: RAISE FND_API.G_EXC_ERROR;
587:
588: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
589: fnd_log.string
590: (
615: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.update_visit_cost_details',
616: 'Price List is mandatory'
617: );
618: END IF;
619: RAISE FND_API.G_EXC_ERROR;
620:
621: ELSIF (l_cost_price_rec.outside_party_flag = 'Y' AND l_cost_price_rec.price_list_name IS NOT NULL) THEN
622: AHL_VWP_RULES_PVT.Check_Price_List_Name_Or_Id
623: (
625: p_price_list_name => l_cost_price_rec.price_list_name,
626: x_price_list_id => l_cost_price_rec.price_list_id,
627: x_return_status => x_return_status
628: );
629: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
630: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
631: fnd_log.string
632: (
633: fnd_log.level_error,
634: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.update_visit_cost_details',
635: 'AHL_VWP_RULES_PVT.Check_Price_List_Name_Or_Id API Threw error'
636: );
637: END IF;
638: RAISE FND_API.G_EXC_ERROR;
639: END IF;
640: ELSIF(l_cost_price_rec.outside_party_flag = 'N' AND l_cost_price_rec.price_list_name IS NOT NULL)THEN
641: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_OSP_VISIT_PR_LIST');
642: -- Please select check box 'Visit for outside party' or remove price list from LOV.
648: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.update_visit_cost_details',
649: 'Price List is mandatory'
650: );
651: END IF;
652: RAISE FND_API.G_EXC_ERROR;
653: END IF;
654:
655: END IF; -- Check p_module_type if 'JSP'
656:
806:
807: -- Check Error Message stack.
808: x_msg_count := FND_MSG_PUB.count_msg;
809: IF x_msg_count > 0 THEN
810: RAISE FND_API.G_EXC_ERROR;
811: END IF;
812:
813: -- Standard check of p_commit
814: IF FND_API.TO_BOOLEAN(p_commit) THEN
810: RAISE FND_API.G_EXC_ERROR;
811: END IF;
812:
813: -- Standard check of p_commit
814: IF FND_API.TO_BOOLEAN(p_commit) THEN
815: COMMIT WORK;
816: END IF;
817:
818: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
824: );
825: END IF;
826:
827: EXCEPTION
828: WHEN FND_API.G_EXC_ERROR THEN
829: x_return_status := FND_API.G_RET_STS_ERROR;
830: ROLLBACK TO update_visit_cost_details;
831: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
832: p_data => x_msg_data,
825: END IF;
826:
827: EXCEPTION
828: WHEN FND_API.G_EXC_ERROR THEN
829: x_return_status := FND_API.G_RET_STS_ERROR;
830: ROLLBACK TO update_visit_cost_details;
831: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
832: p_data => x_msg_data,
833: p_encoded => fnd_api.g_false);
829: x_return_status := FND_API.G_RET_STS_ERROR;
830: ROLLBACK TO update_visit_cost_details;
831: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
832: p_data => x_msg_data,
833: p_encoded => fnd_api.g_false);
834:
835:
836: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
837: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
832: p_data => x_msg_data,
833: p_encoded => fnd_api.g_false);
834:
835:
836: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
837: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
838: ROLLBACK TO update_visit_cost_details;
839: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
840: p_data => x_msg_data,
833: p_encoded => fnd_api.g_false);
834:
835:
836: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
837: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
838: ROLLBACK TO update_visit_cost_details;
839: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
840: p_data => x_msg_data,
841: p_encoded => fnd_api.g_false);
837: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
838: ROLLBACK TO update_visit_cost_details;
839: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
840: p_data => x_msg_data,
841: p_encoded => fnd_api.g_false);
842:
843:
844: WHEN OTHERS THEN
845: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
841: p_encoded => fnd_api.g_false);
842:
843:
844: WHEN OTHERS THEN
845: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
846: ROLLBACK TO update_visit_cost_details;
847: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
848: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
849: p_procedure_name => 'update_visit_cost_details',
850: p_error_text => SUBSTR(SQLERRM,1,500));
851: END IF;
852: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
853: p_data => x_msg_data,
854: p_encoded => fnd_api.g_false);
855: END update_visit_cost_details;
856:
857: --------------------------------------------------------------------------
858: -- Procedure to estimate visit cost for a specific visit --
858: -- Procedure to estimate visit cost for a specific visit --
859: --------------------------------------------------------------------------
860: PROCEDURE estimate_visit_cost(
861: p_api_version IN NUMBER := 1.0,
862: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
863: p_commit IN VARCHAR2 := FND_API.G_FALSE,
864: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
865: p_module_type IN VARCHAR2 := 'JSP',
866: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
859: --------------------------------------------------------------------------
860: PROCEDURE estimate_visit_cost(
861: p_api_version IN NUMBER := 1.0,
862: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
863: p_commit IN VARCHAR2 := FND_API.G_FALSE,
864: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
865: p_module_type IN VARCHAR2 := 'JSP',
866: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
867: x_return_status OUT NOCOPY VARCHAR2,
860: PROCEDURE estimate_visit_cost(
861: p_api_version IN NUMBER := 1.0,
862: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
863: p_commit IN VARCHAR2 := FND_API.G_FALSE,
864: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
865: p_module_type IN VARCHAR2 := 'JSP',
866: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
867: x_return_status OUT NOCOPY VARCHAR2,
868: x_msg_count OUT NOCOPY NUMBER,
876: l_num_rec NUMBER;
877: l_msg_count NUMBER;
878: l_msg_data VARCHAR2(2000);
879: l_return_status VARCHAR2(1);
880: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
881: l_commit VARCHAR2(30) := Fnd_Api.G_FALSE;
882:
883: l_release_visit_required VARCHAR2(1) :='N';
884:
877: l_msg_count NUMBER;
878: l_msg_data VARCHAR2(2000);
879: l_return_status VARCHAR2(1);
880: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
881: l_commit VARCHAR2(30) := Fnd_Api.G_FALSE;
882:
883: l_release_visit_required VARCHAR2(1) :='N';
884:
885: l_cost_price_rec AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type;
899: SAVEPOINT estimate_visit_cost;
900:
901: -- Initialize message list if p_init_msg_list is set to TRUE
902:
903: IF FND_API.To_Boolean( p_init_msg_list) THEN
904: FND_MSG_PUB.Initialize;
905: END IF;
906:
907: -- Initialize API return status to success
904: FND_MSG_PUB.Initialize;
905: END IF;
906:
907: -- Initialize API return status to success
908: x_return_status := FND_API.G_RET_STS_SUCCESS;
909:
910: -- Standard call to check for call compatibility.
911: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
912: p_api_version,
907: -- Initialize API return status to success
908: x_return_status := FND_API.G_RET_STS_SUCCESS;
909:
910: -- Standard call to check for call compatibility.
911: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
912: p_api_version,
913: l_api_name,G_PKG_NAME)
914: THEN
915: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
911: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
912: p_api_version,
913: l_api_name,G_PKG_NAME)
914: THEN
915: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
916: END IF;
917:
918: l_cost_price_rec:= p_x_cost_price_rec;
919:
941: END IF;
942:
943: -- make sure that visit id is present in the input
944:
945: IF(p_x_cost_price_rec.visit_id IS NULL OR p_x_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
946: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
947: FND_MSG_PUB.ADD;
948:
949: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
953: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_cost',
954: 'Visit id is mandatory but found null in input '
955: );
956: END IF;
957: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
958: END IF;
959:
960: check_for_release_visit
961: (
995: );
996: END IF;
997:
998: -- Check Error Message stack.
999: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1000: l_msg_count := FND_MSG_PUB.count_msg;
1001: IF l_msg_count > 0 THEN
1002: RAISE FND_API.G_EXC_ERROR;
1003: END IF;
998: -- Check Error Message stack.
999: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1000: l_msg_count := FND_MSG_PUB.count_msg;
1001: IF l_msg_count > 0 THEN
1002: RAISE FND_API.G_EXC_ERROR;
1003: END IF;
1004: END IF;
1005:
1006: END IF; -- released required flag
1009:
1010: AHL_VWP_COST_PVT.Estimate_WO_Cost
1011: (
1012: p_api_version => 1.0,
1013: p_init_msg_list => Fnd_Api.G_FALSE,
1014: p_commit=> Fnd_Api.G_FALSE,
1015: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1016: p_x_cost_price_rec => l_cost_price_rec,
1017: x_return_status => x_return_status
1010: AHL_VWP_COST_PVT.Estimate_WO_Cost
1011: (
1012: p_api_version => 1.0,
1013: p_init_msg_list => Fnd_Api.G_FALSE,
1014: p_commit=> Fnd_Api.G_FALSE,
1015: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1016: p_x_cost_price_rec => l_cost_price_rec,
1017: x_return_status => x_return_status
1018: );
1011: (
1012: p_api_version => 1.0,
1013: p_init_msg_list => Fnd_Api.G_FALSE,
1014: p_commit=> Fnd_Api.G_FALSE,
1015: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1016: p_x_cost_price_rec => l_cost_price_rec,
1017: x_return_status => x_return_status
1018: );
1019:
1016: p_x_cost_price_rec => l_cost_price_rec,
1017: x_return_status => x_return_status
1018: );
1019:
1020: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1021: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
1022: fnd_log.string
1023: (
1024: fnd_log.level_exception,
1025: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_cost',
1026: 'AHL_VWP_COST_PVT.Estimate_WO_Cost API threw error : x_return_status : ' || x_return_status
1027: );
1028: END IF;
1029: RAISE FND_API.G_EXC_ERROR;
1030: END IF;
1031:
1032: -- Check Error Message stack.
1033: x_msg_count := FND_MSG_PUB.count_msg;
1032: -- Check Error Message stack.
1033: x_msg_count := FND_MSG_PUB.count_msg;
1034:
1035: IF x_msg_count > 0 THEN
1036: RAISE FND_API.G_EXC_ERROR;
1037: END IF;
1038:
1039: -- Standard check of p_commit
1040: IF FND_API.TO_BOOLEAN(p_commit) THEN
1036: RAISE FND_API.G_EXC_ERROR;
1037: END IF;
1038:
1039: -- Standard check of p_commit
1040: IF FND_API.TO_BOOLEAN(p_commit) THEN
1041: COMMIT WORK;
1042: END IF;
1043:
1044: p_x_cost_price_rec.Is_Cst_Struc_updated := l_cost_price_rec.Is_Cst_Struc_updated;
1055: END IF;
1056:
1057: EXCEPTION
1058:
1059: WHEN FND_API.G_EXC_ERROR THEN
1060:
1061: x_return_status := FND_API.G_RET_STS_ERROR;
1062: ROLLBACK TO estimate_visit_cost;
1063: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1057: EXCEPTION
1058:
1059: WHEN FND_API.G_EXC_ERROR THEN
1060:
1061: x_return_status := FND_API.G_RET_STS_ERROR;
1062: ROLLBACK TO estimate_visit_cost;
1063: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1064: p_data => x_msg_data,
1065: p_encoded => fnd_api.g_false);
1061: x_return_status := FND_API.G_RET_STS_ERROR;
1062: ROLLBACK TO estimate_visit_cost;
1063: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1064: p_data => x_msg_data,
1065: p_encoded => fnd_api.g_false);
1066:
1067: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1068: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1069: ROLLBACK TO estimate_visit_cost;
1063: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1064: p_data => x_msg_data,
1065: p_encoded => fnd_api.g_false);
1066:
1067: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1068: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1069: ROLLBACK TO estimate_visit_cost;
1070: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1071: p_data => x_msg_data,
1064: p_data => x_msg_data,
1065: p_encoded => fnd_api.g_false);
1066:
1067: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1068: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1069: ROLLBACK TO estimate_visit_cost;
1070: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1071: p_data => x_msg_data,
1072: p_encoded => fnd_api.g_false);
1068: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1069: ROLLBACK TO estimate_visit_cost;
1070: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1071: p_data => x_msg_data,
1072: p_encoded => fnd_api.g_false);
1073:
1074: WHEN OTHERS THEN
1075: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1076: ROLLBACK TO estimate_visit_cost;
1071: p_data => x_msg_data,
1072: p_encoded => fnd_api.g_false);
1073:
1074: WHEN OTHERS THEN
1075: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1076: ROLLBACK TO estimate_visit_cost;
1077:
1078: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1079: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
1082: END IF;
1083:
1084: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
1085: p_data => x_msg_data,
1086: p_encoded => fnd_api.g_false);
1087: END estimate_visit_cost;
1088:
1089: --------------------------------------------------------------------------
1090: -- Procedure to estimate price for a specific SR --
1140: );
1141: END IF;
1142:
1143: -- Initialize API return status to success
1144: x_return_status := FND_API.G_RET_STS_SUCCESS;
1145:
1146: l_cost_price_rec:= p_x_cost_price_rec;
1147:
1148: -- Initialize Price variables
1183:
1184: AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price
1185: (
1186: p_api_version => 1.0,
1187: p_init_msg_list => Fnd_Api.g_false,
1188: p_commit => Fnd_Api.g_false,
1189: p_validation_level => Fnd_Api.g_valid_level_full,
1190: p_module_type => 'VST',
1191: p_x_cost_price_rec => l_temp_cost_price_rec,
1184: AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price
1185: (
1186: p_api_version => 1.0,
1187: p_init_msg_list => Fnd_Api.g_false,
1188: p_commit => Fnd_Api.g_false,
1189: p_validation_level => Fnd_Api.g_valid_level_full,
1190: p_module_type => 'VST',
1191: p_x_cost_price_rec => l_temp_cost_price_rec,
1192: x_return_status => x_return_status,
1185: (
1186: p_api_version => 1.0,
1187: p_init_msg_list => Fnd_Api.g_false,
1188: p_commit => Fnd_Api.g_false,
1189: p_validation_level => Fnd_Api.g_valid_level_full,
1190: p_module_type => 'VST',
1191: p_x_cost_price_rec => l_temp_cost_price_rec,
1192: x_return_status => x_return_status,
1193: x_msg_count => l_msg_count,
1193: x_msg_count => l_msg_count,
1194: x_msg_data => l_msg_data
1195: );
1196:
1197: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1198:
1199: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1200: fnd_log.string
1201: (
1203: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.Estimate_SR_Price',
1204: 'AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price API Threw error'
1205: );
1206: END IF;
1207: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1208:
1209: END IF;
1210:
1211: IF(l_temp_cost_price_rec.actual_price IS NOT NULL) THEN
1254:
1255: AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price
1256: (
1257: p_api_version => 1.0,
1258: p_init_msg_list => Fnd_Api.g_false,
1259: p_commit => Fnd_Api.g_false,
1260: p_validation_level => Fnd_Api.g_valid_level_full,
1261: p_module_type => 'VST',
1262: p_x_cost_price_rec => l_temp_cost_price_rec,
1255: AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price
1256: (
1257: p_api_version => 1.0,
1258: p_init_msg_list => Fnd_Api.g_false,
1259: p_commit => Fnd_Api.g_false,
1260: p_validation_level => Fnd_Api.g_valid_level_full,
1261: p_module_type => 'VST',
1262: p_x_cost_price_rec => l_temp_cost_price_rec,
1263: x_return_status => x_return_status,
1256: (
1257: p_api_version => 1.0,
1258: p_init_msg_list => Fnd_Api.g_false,
1259: p_commit => Fnd_Api.g_false,
1260: p_validation_level => Fnd_Api.g_valid_level_full,
1261: p_module_type => 'VST',
1262: p_x_cost_price_rec => l_temp_cost_price_rec,
1263: x_return_status => x_return_status,
1264: x_msg_count => l_msg_count,
1264: x_msg_count => l_msg_count,
1265: x_msg_data => l_msg_data
1266: );
1267:
1268: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1269:
1270: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1271: fnd_log.string
1272: (
1274: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_SR_price',
1275: 'AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price API Threw error'
1276: );
1277: END IF;
1278: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1279: END IF;
1280:
1281: IF(l_temp_cost_price_rec.actual_price IS NOT NULL) THEN
1282:
1320: --------------------------------------------------------------------------
1321:
1322: PROCEDURE estimate_visit_price(
1323: p_api_version IN NUMBER := 1.0,
1324: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1325: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1326: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1327: p_module_type IN VARCHAR2 := 'JSP',
1328: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
1321:
1322: PROCEDURE estimate_visit_price(
1323: p_api_version IN NUMBER := 1.0,
1324: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1325: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1326: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1327: p_module_type IN VARCHAR2 := 'JSP',
1328: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
1329: x_return_status OUT NOCOPY VARCHAR2,
1322: PROCEDURE estimate_visit_price(
1323: p_api_version IN NUMBER := 1.0,
1324: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1325: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1326: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1327: p_module_type IN VARCHAR2 := 'JSP',
1328: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
1329: x_return_status OUT NOCOPY VARCHAR2,
1330: x_msg_count OUT NOCOPY NUMBER,
1349: l_api_version NUMBER := 1.0;
1350: l_num_rec NUMBER;
1351: l_msg_count NUMBER;
1352: l_return_status VARCHAR2(1);
1353: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
1354: l_commit VARCHAR2(30) := Fnd_Api.G_FALSE;
1355: --
1356: CURSOR visit_info_csr(p_visit_id IN NUMBER) IS
1357: Select VISIT_ID,
1350: l_num_rec NUMBER;
1351: l_msg_count NUMBER;
1352: l_return_status VARCHAR2(1);
1353: l_init_msg_list VARCHAR2(10):=FND_API.G_FALSE;
1354: l_commit VARCHAR2(30) := Fnd_Api.G_FALSE;
1355: --
1356: CURSOR visit_info_csr(p_visit_id IN NUMBER) IS
1357: Select VISIT_ID,
1358: PRICE_LIST_ID,
1433: -- Standard start of API savepoint
1434: SAVEPOINT estimate_visit_price;
1435:
1436: -- Initialize message list if p_init_msg_list is set to TRUE
1437: IF FND_API.To_Boolean( p_init_msg_list) THEN
1438: FND_MSG_PUB.Initialize;
1439: END IF;
1440:
1441: -- Initialize API return status to success
1438: FND_MSG_PUB.Initialize;
1439: END IF;
1440:
1441: -- Initialize API return status to success
1442: x_return_status := FND_API.G_RET_STS_SUCCESS;
1443:
1444: -- Standard call to check for call compatibility.
1445: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
1446: p_api_version,
1441: -- Initialize API return status to success
1442: x_return_status := FND_API.G_RET_STS_SUCCESS;
1443:
1444: -- Standard call to check for call compatibility.
1445: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
1446: p_api_version,
1447: l_api_name,G_PKG_NAME)
1448: THEN
1449: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1445: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
1446: p_api_version,
1447: l_api_name,G_PKG_NAME)
1448: THEN
1449: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1450: END IF;
1451:
1452: l_cost_price_rec:= p_x_cost_price_rec;
1453:
1461: END IF;
1462:
1463: -- make sure that visit id is present in the input
1464:
1465: IF(p_x_cost_price_rec.visit_id IS NULL OR p_x_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
1466: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
1467: FND_MSG_PUB.ADD;
1468: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
1469: fnd_log.string
1472: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_price',
1473: 'Visit id is mandatory but found null in input '
1474: );
1475: END IF;
1476: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1477: END IF;
1478:
1479: -- get outside party flag
1480: OPEN visit_info_csr(p_x_cost_price_rec.visit_id);
1493: 'visit info not found for input visit id'
1494: );
1495: END IF;
1496: CLOSE visit_info_csr;
1497: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1498: ELSE
1499: l_cost_price_rec.outside_party_flag := NVL(l_visit_rec.outside_party_flag,'N');
1500: END IF;
1501: CLOSE visit_info_csr;
1512: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_price',
1513: 'Price estimation is restricted to outside party visit only '
1514: );
1515: END IF;
1516: RAISE FND_API.G_EXC_ERROR;
1517: END IF;
1518:
1519: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1520: fnd_log.string
1549: );
1550: END IF;
1551:
1552: -- Check Error Message stack.
1553: if (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1554: l_msg_count := FND_MSG_PUB.count_msg;
1555: IF l_msg_count > 0 THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: END IF;
1552: -- Check Error Message stack.
1553: if (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1554: l_msg_count := FND_MSG_PUB.count_msg;
1555: IF l_msg_count > 0 THEN
1556: RAISE FND_API.G_EXC_ERROR;
1557: END IF;
1558: END IF;
1559:
1560: --Assign the out variable
1590: 'Customer id not found for service request'
1591: );
1592: END IF;
1593: CLOSE customer_id_csr;
1594: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1595: END IF;
1596:
1597: CLOSE customer_id_csr;
1598:
1614: 'ahl.plsql.'||G_PKG_NAME||'.'||L_API_NAME,
1615: 'No curency is defined for the organization of the visit'
1616: );
1617: END IF;
1618: RAISE FND_API.G_EXC_ERROR;
1619: END IF;
1620:
1621:
1622: -- Get the visit price list if not passed
1620:
1621:
1622: -- Get the visit price list if not passed
1623: IF (l_visit_rec.price_list_id IS NULL OR
1624: l_visit_rec.price_list_id = FND_API.G_MISS_NUM ) THEN
1625:
1626: FND_MESSAGE.set_name( 'AHL','AHL_VWP_PRICE_LIST_INVALID' );
1627: FND_MSG_PUB.add;
1628:
1633: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||':',
1634: 'Price list not found for Visit'
1635: );
1636: END IF;
1637: RAISE FND_API.G_EXC_ERROR;
1638: END IF;
1639:
1640: l_cost_price_rec.PRICE_LIST_ID:=l_visit_rec.price_list_id;
1641: l_cost_price_rec.Organization_Id:=l_visit_rec.organization_id;
1707:
1708: IF (l_job_status_code is NULL) THEN
1709: l_msg_count := FND_MSG_PUB.count_msg;
1710: IF l_msg_count > 0 THEN
1711: RAISE FND_API.G_EXC_ERROR;
1712: END IF;
1713: END IF;
1714:
1715:
1755:
1756: AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price
1757: (
1758: p_api_version => 1.0,
1759: p_init_msg_list => Fnd_Api.g_false,
1760: p_commit => Fnd_Api.g_false,
1761: p_validation_level => Fnd_Api.g_valid_level_full,
1762: p_module_type => 'VST',
1763: p_x_cost_price_rec => l_temp_cost_price_rec,
1756: AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price
1757: (
1758: p_api_version => 1.0,
1759: p_init_msg_list => Fnd_Api.g_false,
1760: p_commit => Fnd_Api.g_false,
1761: p_validation_level => Fnd_Api.g_valid_level_full,
1762: p_module_type => 'VST',
1763: p_x_cost_price_rec => l_temp_cost_price_rec,
1764: x_return_status => x_return_status,
1757: (
1758: p_api_version => 1.0,
1759: p_init_msg_list => Fnd_Api.g_false,
1760: p_commit => Fnd_Api.g_false,
1761: p_validation_level => Fnd_Api.g_valid_level_full,
1762: p_module_type => 'VST',
1763: p_x_cost_price_rec => l_temp_cost_price_rec,
1764: x_return_status => x_return_status,
1765: x_msg_count => x_msg_count,
1765: x_msg_count => x_msg_count,
1766: x_msg_data => x_msg_data
1767: );
1768:
1769: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1770:
1771: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1772: fnd_log.string
1773: (
1775: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_price',
1776: 'AHL_VWP_MR_CST_PR_PVT.Estimate_MR_Price API Threw error'
1777: );
1778: END IF;
1779: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1780:
1781: END IF;
1782:
1783: IF(l_temp_cost_price_rec.actual_price IS NOT NULL) THEN
1822: p_x_cost_price_rec => l_temp_cost_price_rec,
1823: x_return_status => x_return_status
1824: );
1825:
1826: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1827:
1828: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1829: fnd_log.string
1830: (
1832: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_price',
1833: 'Estimate_SR_Price API Threw error'
1834: );
1835: END IF;
1836: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1837:
1838: END IF;
1839:
1840: IF(l_temp_cost_price_rec.actual_price IS NOT NULL) THEN
1883:
1884: AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price
1885: (
1886: p_api_version => 1.0,
1887: p_init_msg_list => Fnd_Api.g_false,
1888: p_commit => Fnd_Api.g_false,
1889: p_validation_level => Fnd_Api.g_valid_level_full,
1890: p_module_type => 'VST',
1891: p_x_cost_price_rec => l_temp_cost_price_rec,
1884: AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price
1885: (
1886: p_api_version => 1.0,
1887: p_init_msg_list => Fnd_Api.g_false,
1888: p_commit => Fnd_Api.g_false,
1889: p_validation_level => Fnd_Api.g_valid_level_full,
1890: p_module_type => 'VST',
1891: p_x_cost_price_rec => l_temp_cost_price_rec,
1892: x_return_status => x_return_status,
1885: (
1886: p_api_version => 1.0,
1887: p_init_msg_list => Fnd_Api.g_false,
1888: p_commit => Fnd_Api.g_false,
1889: p_validation_level => Fnd_Api.g_valid_level_full,
1890: p_module_type => 'VST',
1891: p_x_cost_price_rec => l_temp_cost_price_rec,
1892: x_return_status => x_return_status,
1893: x_msg_count => x_msg_count,
1893: x_msg_count => x_msg_count,
1894: x_msg_data => x_msg_data
1895: );
1896:
1897: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1898:
1899: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
1900: fnd_log.string
1901: (
1903: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.estimate_visit_price',
1904: 'AHL_VWP_TASK_CST_PR_PVT.Estimate_Task_Price API Threw error'
1905: );
1906: END IF;
1907: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1908: END IF;
1909:
1910: IF(l_temp_cost_price_rec.actual_price IS NOT NULL) THEN
1911:
2046: x_msg_count := FND_MSG_PUB.count_msg;
2047:
2048: IF x_msg_count > 0 THEN
2049:
2050: RAISE FND_API.G_EXC_ERROR;
2051:
2052: END IF;
2053:
2054:
2054:
2055:
2056: -- Standard check of p_commit
2057:
2058: IF FND_API.TO_BOOLEAN(p_commit) THEN
2059: COMMIT WORK;
2060: END IF;
2061:
2062: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
2069: END IF;
2070:
2071: EXCEPTION
2072:
2073: WHEN FND_API.G_EXC_ERROR THEN
2074:
2075: x_return_status := FND_API.G_RET_STS_ERROR;
2076:
2077: ROLLBACK TO estimate_visit_price;
2071: EXCEPTION
2072:
2073: WHEN FND_API.G_EXC_ERROR THEN
2074:
2075: x_return_status := FND_API.G_RET_STS_ERROR;
2076:
2077: ROLLBACK TO estimate_visit_price;
2078:
2079: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2079: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2080:
2081: p_data => x_msg_data,
2082:
2083: p_encoded => fnd_api.g_false);
2084:
2085:
2086: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2087:
2082:
2083: p_encoded => fnd_api.g_false);
2084:
2085:
2086: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2087:
2088: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2089:
2090: ROLLBACK TO estimate_visit_price;
2084:
2085:
2086: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2087:
2088: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2089:
2090: ROLLBACK TO estimate_visit_price;
2091:
2092: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2092: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2093:
2094: p_data => x_msg_data,
2095:
2096: p_encoded => fnd_api.g_false);
2097:
2098: WHEN OTHERS THEN
2099:
2100: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2096: p_encoded => fnd_api.g_false);
2097:
2098: WHEN OTHERS THEN
2099:
2100: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2101:
2102: ROLLBACK TO estimate_visit_price;
2103:
2104: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2114: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2115:
2116: p_data => x_msg_data,
2117:
2118: p_encoded => fnd_api.g_false);
2119:
2120: END estimate_visit_price;
2121:
2122: --------------------------------------------------------------------------
2123: -- Procedure to take a price snapshot for a specific visit --
2124: --------------------------------------------------------------------------
2125: PROCEDURE create_price_snapshot(
2126: p_api_version IN NUMBER := 1.0,
2127: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2128: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2129: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2130: p_module_type IN VARCHAR2 := 'JSP',
2131: p_visit_id IN NUMBER,
2124: --------------------------------------------------------------------------
2125: PROCEDURE create_price_snapshot(
2126: p_api_version IN NUMBER := 1.0,
2127: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2128: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2129: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2130: p_module_type IN VARCHAR2 := 'JSP',
2131: p_visit_id IN NUMBER,
2132: x_return_status OUT NOCOPY VARCHAR2,
2125: PROCEDURE create_price_snapshot(
2126: p_api_version IN NUMBER := 1.0,
2127: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2128: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2129: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2130: p_module_type IN VARCHAR2 := 'JSP',
2131: p_visit_id IN NUMBER,
2132: x_return_status OUT NOCOPY VARCHAR2,
2133: x_msg_count OUT NOCOPY NUMBER,
2174: SAVEPOINT create_price_snapshot;
2175:
2176: -- Initialize message list if p_init_msg_list is set to TRUE
2177:
2178: IF FND_API.To_Boolean( p_init_msg_list) THEN
2179: FND_MSG_PUB.Initialize;
2180: END IF;
2181:
2182: -- Initialize API return status to success
2180: END IF;
2181:
2182: -- Initialize API return status to success
2183:
2184: x_return_status := FND_API.G_RET_STS_SUCCESS;
2185:
2186: -- Standard call to check for call compatibility.
2187: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2188: p_api_version,
2183:
2184: x_return_status := FND_API.G_RET_STS_SUCCESS;
2185:
2186: -- Standard call to check for call compatibility.
2187: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2188: p_api_version,
2189: l_api_name,G_PKG_NAME)
2190: THEN
2191: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2187: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2188: p_api_version,
2189: l_api_name,G_PKG_NAME)
2190: THEN
2191: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2192: END IF;
2193:
2194: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
2195: fnd_log.string
2201: END IF;
2202:
2203: -- make sure that visit id is present in the input
2204:
2205: IF(p_visit_id IS NULL OR p_visit_id = FND_API.G_MISS_NUM) THEN
2206:
2207: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
2208: FND_MSG_PUB.ADD;
2209:
2214: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.create_price_snapshot',
2215: 'Visit id is mandatory but found null in input '
2216: );
2217: END IF;
2218: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2219:
2220: END IF;
2221:
2222: -- get a snapshot number for ahl_snapshot_number_s for the whole set
2321:
2322: -- Check Error Message stack.
2323: x_msg_count := FND_MSG_PUB.count_msg;
2324: IF x_msg_count > 0 THEN
2325: RAISE FND_API.G_EXC_ERROR;
2326: END IF;
2327:
2328: -- Standard check of p_commit
2329: IF FND_API.TO_BOOLEAN(p_commit) THEN
2325: RAISE FND_API.G_EXC_ERROR;
2326: END IF;
2327:
2328: -- Standard check of p_commit
2329: IF FND_API.TO_BOOLEAN(p_commit) THEN
2330: COMMIT WORK;
2331: END IF;
2332:
2333: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
2340: END IF;
2341:
2342: EXCEPTION
2343:
2344: WHEN FND_API.G_EXC_ERROR THEN
2345:
2346: x_return_status := FND_API.G_RET_STS_ERROR;
2347:
2348: ROLLBACK TO create_price_snapshot;
2342: EXCEPTION
2343:
2344: WHEN FND_API.G_EXC_ERROR THEN
2345:
2346: x_return_status := FND_API.G_RET_STS_ERROR;
2347:
2348: ROLLBACK TO create_price_snapshot;
2349:
2350: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2350: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2351:
2352: p_data => x_msg_data,
2353:
2354: p_encoded => fnd_api.g_false);
2355:
2356: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2357:
2358: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2352: p_data => x_msg_data,
2353:
2354: p_encoded => fnd_api.g_false);
2355:
2356: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2357:
2358: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2359:
2360: ROLLBACK TO create_price_snapshot;
2354: p_encoded => fnd_api.g_false);
2355:
2356: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2357:
2358: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2359:
2360: ROLLBACK TO create_price_snapshot;
2361:
2362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2362: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2363:
2364: p_data => x_msg_data,
2365:
2366: p_encoded => fnd_api.g_false);
2367:
2368: WHEN OTHERS THEN
2369:
2370: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2366: p_encoded => fnd_api.g_false);
2367:
2368: WHEN OTHERS THEN
2369:
2370: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2371:
2372: ROLLBACK TO create_price_snapshot;
2373:
2374: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2384: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2385:
2386: p_data => x_msg_data,
2387:
2388: p_encoded => fnd_api.g_false);
2389:
2390: END create_price_snapshot;
2391:
2392: --------------------------------------------------------------------------
2393: -- Procedure to take a cost snapshot for a specific visit --
2394: --------------------------------------------------------------------------
2395: PROCEDURE create_cost_snapshot(
2396: p_api_version IN NUMBER := 1.0,
2397: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2398: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2399: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2400: p_module_type IN VARCHAR2 := 'JSP',
2401: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
2394: --------------------------------------------------------------------------
2395: PROCEDURE create_cost_snapshot(
2396: p_api_version IN NUMBER := 1.0,
2397: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2398: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2399: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2400: p_module_type IN VARCHAR2 := 'JSP',
2401: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
2402: x_return_status OUT NOCOPY VARCHAR2,
2395: PROCEDURE create_cost_snapshot(
2396: p_api_version IN NUMBER := 1.0,
2397: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2398: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2399: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2400: p_module_type IN VARCHAR2 := 'JSP',
2401: p_x_cost_price_rec IN OUT NOCOPY AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type,
2402: x_return_status OUT NOCOPY VARCHAR2,
2403: x_msg_count OUT NOCOPY NUMBER,
2453: -- Standard start of API savepoint
2454: SAVEPOINT create_cost_snapshot;
2455:
2456: -- Initialize message list if p_init_msg_list is set to TRUE
2457: IF FND_API.To_Boolean( p_init_msg_list) THEN
2458: FND_MSG_PUB.Initialize;
2459: END IF;
2460:
2461: -- Initialize API return status to success
2458: FND_MSG_PUB.Initialize;
2459: END IF;
2460:
2461: -- Initialize API return status to success
2462: x_return_status := FND_API.G_RET_STS_SUCCESS;
2463:
2464: -- Standard call to check for call compatibility.
2465: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2466: p_api_version,
2461: -- Initialize API return status to success
2462: x_return_status := FND_API.G_RET_STS_SUCCESS;
2463:
2464: -- Standard call to check for call compatibility.
2465: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2466: p_api_version,
2467: l_api_name,G_PKG_NAME)
2468: THEN
2469: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2465: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2466: p_api_version,
2467: l_api_name,G_PKG_NAME)
2468: THEN
2469: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2470: END IF;
2471:
2472: l_cost_price_rec := p_x_cost_price_rec;
2473:
2480: );
2481: END IF;
2482:
2483: -- make sure that visit id is present in the input
2484: IF(p_x_cost_price_rec.visit_id IS NULL OR p_x_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
2485: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_INPUT_MISS');
2486: FND_MSG_PUB.ADD;
2487: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
2488: fnd_log.string
2491: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.create_cost_snapshot',
2492: 'Visit id is mandatory but found null in input '
2493: );
2494: END IF;
2495: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2496: END IF;
2497:
2498: -- get a snapshot number for ahl_snapshot_number_s for the whole set
2499: SELECT AHL_SNAPSHOTS_S.NEXTVAL INTO l_snapshot_number FROM DUAL;
2501: -- call calculate workorder cost
2502: AHL_VWP_COST_PVT.Estimate_WO_Cost
2503: (
2504: p_api_version => 1.0,
2505: p_init_msg_list => Fnd_Api.G_FALSE,
2506: p_commit=> Fnd_Api.G_FALSE,
2507: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2508: p_x_cost_price_rec => l_cost_price_rec,
2509: x_return_status => x_return_status
2502: AHL_VWP_COST_PVT.Estimate_WO_Cost
2503: (
2504: p_api_version => 1.0,
2505: p_init_msg_list => Fnd_Api.G_FALSE,
2506: p_commit=> Fnd_Api.G_FALSE,
2507: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2508: p_x_cost_price_rec => l_cost_price_rec,
2509: x_return_status => x_return_status
2510: );
2503: (
2504: p_api_version => 1.0,
2505: p_init_msg_list => Fnd_Api.G_FALSE,
2506: p_commit=> Fnd_Api.G_FALSE,
2507: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2508: p_x_cost_price_rec => l_cost_price_rec,
2509: x_return_status => x_return_status
2510: );
2511:
2508: p_x_cost_price_rec => l_cost_price_rec,
2509: x_return_status => x_return_status
2510: );
2511:
2512: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
2513: IF (fnd_log.level_exception >= fnd_log.g_current_runtime_level)THEN
2514: fnd_log.string
2515: (
2516: fnd_log.level_exception,
2517: 'ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.create_cost_snapshot',
2518: 'AHL_VWP_COST_PVT.Estimate_WO_Cost API threw error : x_return_status : ' || x_return_status
2519: );
2520: END IF;
2521: RAISE FND_API.G_EXC_ERROR;
2522: END IF;
2523:
2524: -- take a snapshot of manually created summary tasks
2525: FOR summary_tasks_rec IN summary_tasks_snapshot_csr(p_x_cost_price_rec.visit_id) LOOP
2535: x_Estimated_cost => l_estimated_cost,
2536: x_return_status => x_return_status
2537: );
2538:
2539: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
2540: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_CALC_TCOST_ERR');
2541: FND_MSG_PUB.ADD;
2542: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
2543: fnd_log.string
2603: x_Estimated_cost => l_estimated_cost,
2604: x_return_status => x_return_status
2605: );
2606:
2607: IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
2608: FND_MESSAGE.Set_Name(G_APP_NAME,'AHL_VWP_CST_CALC_TCOST_ERR');
2609: FND_MSG_PUB.ADD;
2610: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
2611: fnd_log.string
2660:
2661: -- Check Error Message stack.
2662: x_msg_count := FND_MSG_PUB.count_msg;
2663: IF x_msg_count > 0 THEN
2664: RAISE FND_API.G_EXC_ERROR;
2665: END IF;
2666:
2667: -- Standard check of p_commit
2668: IF FND_API.TO_BOOLEAN(p_commit) THEN
2664: RAISE FND_API.G_EXC_ERROR;
2665: END IF;
2666:
2667: -- Standard check of p_commit
2668: IF FND_API.TO_BOOLEAN(p_commit) THEN
2669: COMMIT WORK;
2670: END IF;
2671:
2672: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level)THEN
2677: 'At the end of PLSQL procedure'
2678: );
2679: END IF;
2680: EXCEPTION
2681: WHEN FND_API.G_EXC_ERROR THEN
2682: x_return_status := FND_API.G_RET_STS_ERROR;
2683: ROLLBACK TO create_cost_snapshot;
2684: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2685: p_data => x_msg_data,
2678: );
2679: END IF;
2680: EXCEPTION
2681: WHEN FND_API.G_EXC_ERROR THEN
2682: x_return_status := FND_API.G_RET_STS_ERROR;
2683: ROLLBACK TO create_cost_snapshot;
2684: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2685: p_data => x_msg_data,
2686: p_encoded => fnd_api.g_false);
2682: x_return_status := FND_API.G_RET_STS_ERROR;
2683: ROLLBACK TO create_cost_snapshot;
2684: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2685: p_data => x_msg_data,
2686: p_encoded => fnd_api.g_false);
2687:
2688:
2689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2685: p_data => x_msg_data,
2686: p_encoded => fnd_api.g_false);
2687:
2688:
2689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2691: ROLLBACK TO create_cost_snapshot;
2692: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2693: p_data => x_msg_data,
2686: p_encoded => fnd_api.g_false);
2687:
2688:
2689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2691: ROLLBACK TO create_cost_snapshot;
2692: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2693: p_data => x_msg_data,
2694: p_encoded => fnd_api.g_false);
2690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2691: ROLLBACK TO create_cost_snapshot;
2692: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2693: p_data => x_msg_data,
2694: p_encoded => fnd_api.g_false);
2695:
2696:
2697: WHEN OTHERS THEN
2698: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2694: p_encoded => fnd_api.g_false);
2695:
2696:
2697: WHEN OTHERS THEN
2698: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2699: ROLLBACK TO create_cost_snapshot;
2700: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2701: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
2702: p_procedure_name => 'create_cost_snapshot',
2703: p_error_text => SUBSTR(SQLERRM,1,500));
2704: END IF;
2705: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
2706: p_data => x_msg_data,
2707: p_encoded => fnd_api.g_false);
2708: END create_cost_snapshot;
2709:
2710: --------------------------------------------------------------------------
2711: -- Procedure to find out all visit items which have no price list --
2712: --------------------------------------------------------------------------
2713: PROCEDURE get_visit_items_no_price
2714: (
2715: p_api_version IN NUMBER := 1.0,
2716: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2717: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2718: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2719: p_module_type IN VARCHAR2 := NULL,
2720: x_return_status OUT NOCOPY VARCHAR2,
2713: PROCEDURE get_visit_items_no_price
2714: (
2715: p_api_version IN NUMBER := 1.0,
2716: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2717: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2718: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2719: p_module_type IN VARCHAR2 := NULL,
2720: x_return_status OUT NOCOPY VARCHAR2,
2721: x_msg_count OUT NOCOPY NUMBER,
2714: (
2715: p_api_version IN NUMBER := 1.0,
2716: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2717: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2718: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2719: p_module_type IN VARCHAR2 := NULL,
2720: x_return_status OUT NOCOPY VARCHAR2,
2721: x_msg_count OUT NOCOPY NUMBER,
2722: x_msg_data OUT NOCOPY VARCHAR2,
2727: l_api_name VARCHAR2(30) :='GET_VISIT_ITEMS_NO_PRICE';
2728: l_msg_data VARCHAR2(2000);
2729: l_return_status VARCHAR2(1);
2730: l_flag VARCHAR2(1);
2731: l_commit VARCHAR2(1) := FND_API.G_FALSE;
2732: l_release_visit_required VARCHAR2(1) :='N';
2733: l_module_name VARCHAR2(200):='ahl.plsql.AHL_VWP_VISIT_CST_PR_PVT.get_visit_items_no_price';
2734:
2735: l_cost_price_rec AHL_VWP_VISIT_CST_PR_PVT.cost_price_rec_type:=p_cost_price_rec;
2810: END IF;
2811:
2812: SAVEPOINT Get_Visit_Items_no_price_PVT;
2813:
2814: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2815: p_api_version,
2816: l_api_name,G_PKG_NAME)
2817: THEN
2818: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2814: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2815: p_api_version,
2816: l_api_name,G_PKG_NAME)
2817: THEN
2818: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2819: END IF;
2820:
2821: IF FND_API.to_boolean(p_init_msg_list)
2822: THEN
2817: THEN
2818: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2819: END IF;
2820:
2821: IF FND_API.to_boolean(p_init_msg_list)
2822: THEN
2823: FND_MSG_PUB.initialize;
2824: END IF;
2825:
2822: THEN
2823: FND_MSG_PUB.initialize;
2824: END IF;
2825:
2826: x_return_status:=FND_API.G_RET_STS_SUCCESS;
2827:
2828: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
2829: fnd_log.string
2830: (
2836:
2837:
2838: -- Check for Required Parameters
2839: IF(l_cost_price_rec.visit_id IS NULL OR
2840: l_cost_price_rec.visit_id = FND_API.G_MISS_NUM) THEN
2841: FND_MESSAGE.Set_Name('AHL','AHL_VWP_CST_INPUT_MISS');
2842: FND_MSG_PUB.ADD;
2843:
2844: IF (fnd_log.level_error >= fnd_log.g_current_runtime_level)THEN
2848: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||':',
2849: 'Visit id is mandatory but found null in input '
2850: );
2851: END IF;
2852: RAISE FND_API.G_EXC_ERROR;
2853: END IF;
2854:
2855:
2856:
2861: Then
2862: Fnd_Message.SET_NAME('AHL','AHL_VWP_VISIT_INVALID');
2863: Fnd_Msg_Pub.ADD;
2864: Close c_visit_csr;
2865: RAISE FND_API.G_EXC_ERROR;
2866: End if;
2867: Close c_visit_csr;
2868:
2869: -- Release visit if required
2887:
2888: AHL_VWP_PROJ_PROD_PVT.release_visit
2889: (
2890: p_api_version =>l_api_version,
2891: p_init_msg_list =>Fnd_Api.g_false,
2892: p_commit =>Fnd_Api.g_false,
2893: p_validation_level =>Fnd_Api.g_valid_level_full,
2894: p_module_type => 'CST',
2895: x_return_status =>l_return_Status,
2888: AHL_VWP_PROJ_PROD_PVT.release_visit
2889: (
2890: p_api_version =>l_api_version,
2891: p_init_msg_list =>Fnd_Api.g_false,
2892: p_commit =>Fnd_Api.g_false,
2893: p_validation_level =>Fnd_Api.g_valid_level_full,
2894: p_module_type => 'CST',
2895: x_return_status =>l_return_Status,
2896: x_msg_count =>x_msg_count,
2889: (
2890: p_api_version =>l_api_version,
2891: p_init_msg_list =>Fnd_Api.g_false,
2892: p_commit =>Fnd_Api.g_false,
2893: p_validation_level =>Fnd_Api.g_valid_level_full,
2894: p_module_type => 'CST',
2895: x_return_status =>l_return_Status,
2896: x_msg_count =>x_msg_count,
2897: x_msg_data =>x_msg_data,
2907: );
2908: END IF;
2909:
2910: -- Check Error Message stack.
2911: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2912: l_msg_count := FND_MSG_PUB.count_msg;
2913: IF l_msg_count > 0 THEN
2914: RAISE FND_API.G_EXC_ERROR;
2915: END IF;
2910: -- Check Error Message stack.
2911: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
2912: l_msg_count := FND_MSG_PUB.count_msg;
2913: IF l_msg_count > 0 THEN
2914: RAISE FND_API.G_EXC_ERROR;
2915: END IF;
2916: END IF;
2917:
2918: END IF; -- release required flag
2922: If l_visit_rec.outside_party_flag ='N'
2923: then
2924: FND_MESSAGE.Set_Name('AHL','AHL_VWP_CST_OUTSDPRTY_FLAG');
2925: FND_MSG_PUB.ADD;
2926: RAISE FND_API.G_EXC_ERROR;
2927: --Display an error message `Visit number visit_number is not an outside party.'
2928: END if;
2929:
2930: -- Populate pricing attributes
2930: -- Populate pricing attributes
2931:
2932: -- Populate price list ID
2933:
2934: if l_visit_rec.price_list_id is not Null and l_visit_rec.price_list_id <> FND_API.G_MISS_NUM
2935: then
2936: l_cost_price_rec.price_list_id :=l_visit_rec.price_list_id;
2937: Else
2938: FND_MESSAGE.Set_Name('AHL','AHL_VWP_CST_PRICELISTIDNULL'); --AHL_VWP_PRICE_LIST_ID_NULL
2936: l_cost_price_rec.price_list_id :=l_visit_rec.price_list_id;
2937: Else
2938: FND_MESSAGE.Set_Name('AHL','AHL_VWP_CST_PRICELISTIDNULL'); --AHL_VWP_PRICE_LIST_ID_NULL
2939: FND_MSG_PUB.ADD;
2940: RAISE FND_API.G_EXC_ERROR;
2941:
2942: END IF;
2943:
2944:
2997: 'ahl.plsql.'||G_PKG_NAME||'.'||L_API_NAME,
2998: 'No curency is defined for the organization of the visit'
2999: );
3000: END IF;
3001: RAISE FND_API.G_EXC_ERROR;
3002: END IF;
3003:
3004: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
3005: fnd_log.string
3031:
3032: IF (l_job_status_code is NULL) THEN
3033: l_msg_count := FND_MSG_PUB.count_msg;
3034: IF l_msg_count > 0 THEN
3035: RAISE FND_API.G_EXC_ERROR;
3036: END IF;
3037: END IF;
3038:
3039: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
3087:
3088: AHL_VWP_MR_CST_PR_PVT.get_mr_items_no_price
3089: (
3090: p_api_version =>l_api_version,
3091: p_init_msg_list =>Fnd_Api.g_false,
3092: p_commit =>Fnd_Api.g_false,
3093: p_validation_level =>Fnd_Api.g_valid_level_full,
3094: p_module_type =>'VST',
3095: x_return_status =>l_return_Status,
3088: AHL_VWP_MR_CST_PR_PVT.get_mr_items_no_price
3089: (
3090: p_api_version =>l_api_version,
3091: p_init_msg_list =>Fnd_Api.g_false,
3092: p_commit =>Fnd_Api.g_false,
3093: p_validation_level =>Fnd_Api.g_valid_level_full,
3094: p_module_type =>'VST',
3095: x_return_status =>l_return_Status,
3096: x_msg_count =>x_msg_count,
3089: (
3090: p_api_version =>l_api_version,
3091: p_init_msg_list =>Fnd_Api.g_false,
3092: p_commit =>Fnd_Api.g_false,
3093: p_validation_level =>Fnd_Api.g_valid_level_full,
3094: p_module_type =>'VST',
3095: x_return_status =>l_return_Status,
3096: x_msg_count =>x_msg_count,
3097: x_msg_data =>x_msg_data,
3170:
3171: AHL_VWP_TASK_CST_PR_PVT.get_task_items_no_price
3172: (
3173: p_api_version =>p_api_version,
3174: p_init_msg_list =>fnd_api.g_false,
3175: p_commit =>fnd_api.g_false,
3176: p_validation_level =>p_validation_level,
3177: p_module_type =>'VST',
3178: x_return_status =>l_return_status,
3171: AHL_VWP_TASK_CST_PR_PVT.get_task_items_no_price
3172: (
3173: p_api_version =>p_api_version,
3174: p_init_msg_list =>fnd_api.g_false,
3175: p_commit =>fnd_api.g_false,
3176: p_validation_level =>p_validation_level,
3177: p_module_type =>'VST',
3178: x_return_status =>l_return_status,
3179: x_msg_count =>x_msg_count,
3211: END LOOP; -- All unassociated tasks
3212: CLOSE c_task_csr;
3213:
3214: -- Check Error Message stack.
3215: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3216: l_msg_count := FND_MSG_PUB.count_msg;
3217: IF l_msg_count > 0 THEN
3218: RAISE FND_API.G_EXC_ERROR;
3219: END IF;
3214: -- Check Error Message stack.
3215: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3216: l_msg_count := FND_MSG_PUB.count_msg;
3217: IF l_msg_count > 0 THEN
3218: RAISE FND_API.G_EXC_ERROR;
3219: END IF;
3220: END IF;
3221:
3222: x_cost_price_tbl:=l_cost_price_tbl;
3229: 'Total number of items w/o price for the MR: ' || x_cost_price_tbl.count
3230: );
3231: END IF;
3232:
3233: IF FND_API.TO_BOOLEAN(p_commit) THEN
3234: COMMIT;
3235: END IF;
3236:
3237: IF (fnd_log.level_procedure >= fnd_log.g_current_runtime_level) THEN
3242: 'At the end of the procedure');
3243: END IF;
3244:
3245: EXCEPTION
3246: WHEN FND_API.G_EXC_ERROR THEN
3247: x_return_status := FND_API.G_RET_STS_ERROR;
3248: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3249: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3250: p_data => x_msg_data,
3243: END IF;
3244:
3245: EXCEPTION
3246: WHEN FND_API.G_EXC_ERROR THEN
3247: x_return_status := FND_API.G_RET_STS_ERROR;
3248: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3249: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3250: p_data => x_msg_data,
3251: p_encoded => fnd_api.g_false);
3247: x_return_status := FND_API.G_RET_STS_ERROR;
3248: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3249: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3250: p_data => x_msg_data,
3251: p_encoded => fnd_api.g_false);
3252:
3253: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3254: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3255: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3249: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3250: p_data => x_msg_data,
3251: p_encoded => fnd_api.g_false);
3252:
3253: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3254: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3255: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3256: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3257: p_data => x_msg_data,
3250: p_data => x_msg_data,
3251: p_encoded => fnd_api.g_false);
3252:
3253: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3254: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3255: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3256: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3257: p_data => x_msg_data,
3258: p_encoded => fnd_api.g_false);
3254: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3255: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3256: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3257: p_data => x_msg_data,
3258: p_encoded => fnd_api.g_false);
3259: WHEN OTHERS THEN
3260: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3261: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3262: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3256: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3257: p_data => x_msg_data,
3258: p_encoded => fnd_api.g_false);
3259: WHEN OTHERS THEN
3260: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3261: ROLLBACK TO Get_Visit_Items_no_price_PVT;
3262: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3263: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
3264: p_procedure_name => l_api_name,
3265: p_error_text => SUBSTR(SQLERRM,1,500));
3266: END IF;
3267: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
3268: p_data => x_msg_data,
3269: p_encoded => fnd_api.g_false);
3270: END Get_Visit_Items_no_price;
3271:
3272: --------------------------------------------------------------------------------
3273: ------- Check various conditions and release visit if needed