194: -- Max(Max(WO Released Job Completion Date),Max(Task End Times))
195: --
196: -- Parameters :
197: -- p_visit_id Visit ID to fetch the data
198: -- p_use_actual This is a boolean value equal to FND_API.G_FALSE
199: -- when the call is made from UA or FND_API.G_TRUE
200: -- the call is made internally from VWP.
201: --
202: --------------------------------------------------------------------
195: --
196: -- Parameters :
197: -- p_visit_id Visit ID to fetch the data
198: -- p_use_actual This is a boolean value equal to FND_API.G_FALSE
199: -- when the call is made from UA or FND_API.G_TRUE
200: -- the call is made internally from VWP.
201: --
202: --------------------------------------------------------------------
203: FUNCTION Get_Visit_End_Time(
201: --
202: --------------------------------------------------------------------
203: FUNCTION Get_Visit_End_Time(
204: p_visit_id IN NUMBER,
205: p_use_actuals IN VARCHAR2 := FND_API.G_TRUE
206: )
207: RETURN DATE
208: IS
209: --
270: FETCH c_visit_csr INTO c_visit_rec;
271: CLOSE c_visit_csr;
272:
273: IF (c_visit_rec.START_DATE_TIME IS NOT NULL
274: AND c_visit_rec.START_DATE_TIME <> Fnd_Api.G_MISS_DATE
275: AND c_visit_rec.DEPARTMENT_ID IS NOT NULL
276: AND c_visit_rec.DEPARTMENT_ID <> Fnd_Api.G_MISS_NUM) THEN
277:
278: OPEN get_end_date_csr (p_visit_id);
272:
273: IF (c_visit_rec.START_DATE_TIME IS NOT NULL
274: AND c_visit_rec.START_DATE_TIME <> Fnd_Api.G_MISS_DATE
275: AND c_visit_rec.DEPARTMENT_ID IS NOT NULL
276: AND c_visit_rec.DEPARTMENT_ID <> Fnd_Api.G_MISS_NUM) THEN
277:
278: OPEN get_end_date_csr (p_visit_id);
279: FETCH get_end_date_csr INTO l_end_date;
280: CLOSE get_end_date_csr;
280: CLOSE get_end_date_csr;
281: END IF;
282:
283: IF ((p_use_actuals IS NOT NULL AND --p_use_actuals is not null and
284: NOT(FND_API.TO_BOOLEAN(p_use_actuals)))) THEN --p_use_actuals is false
285: -- Begin changes by rnahata for Bug 6430038
286:
287: -- Closed Visit
288: IF c_visit_rec.STATUS_CODE ='CLOSED' THEN
363: -------------------------------------------------------------------
364: PROCEDURE Calculate_Task_Times
365: (
366: p_api_version IN NUMBER,
367: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
368: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
369: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
370: x_return_status OUT NOCOPY VARCHAR2,
371: x_msg_count OUT NOCOPY NUMBER,
364: PROCEDURE Calculate_Task_Times
365: (
366: p_api_version IN NUMBER,
367: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
368: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
369: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
370: x_return_status OUT NOCOPY VARCHAR2,
371: x_msg_count OUT NOCOPY NUMBER,
372: x_msg_data OUT NOCOPY VARCHAR2,
365: (
366: p_api_version IN NUMBER,
367: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
368: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
369: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
370: x_return_status OUT NOCOPY VARCHAR2,
371: x_msg_count OUT NOCOPY NUMBER,
372: x_msg_data OUT NOCOPY VARCHAR2,
373: p_visit_id IN NUMBER)
475: 'At the start of PL SQL procedure. Visit Id = ' || p_visit_id);
476: END IF;
477:
478: -- Standard call to check for call compatibility
479: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
480: G_PKG_NAME) THEN
481: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
482: END IF;
483:
477:
478: -- Standard call to check for call compatibility
479: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
480: G_PKG_NAME) THEN
481: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
482: END IF;
483:
484: -- Initialize message list if p_init_msg_list is set to TRUE
485: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
481: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
482: END IF;
483:
484: -- Initialize message list if p_init_msg_list is set to TRUE
485: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
486: Fnd_Msg_Pub.Initialize;
487: END IF;
488:
489: -- Initialize API RETURN status to success
486: Fnd_Msg_Pub.Initialize;
487: END IF;
488:
489: -- Initialize API RETURN status to success
490: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
491:
492: -- Calculate Task time for tasks in Planning Status
493: -- Begin Processing
494: -- 1. Fetch the Visit's deparment id and visit start date
595:
596: END LOOP; --get_wo_data_csr;
597:
598: -- Standard check of p_commit
599: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
600: COMMIT WORK;
601: END IF;
602:
603: -- Standard call to get message count and if count is 1, get message info
603: -- Standard call to get message count and if count is 1, get message info
604: Fnd_Msg_Pub.Count_And_Get
605: ( p_count => x_msg_count,
606: p_data => x_msg_data,
607: p_encoded => Fnd_Api.g_false
608: );
609:
610: IF (l_log_procedure >= l_log_current_level) THEN
611: fnd_log.string(l_log_procedure,
613: 'At the end of PL SQL procedure. RETURN Status = ' || x_return_status);
614: END IF;
615:
616: EXCEPTION
617: WHEN Fnd_Api.G_EXC_ERROR THEN
618: ROLLBACK TO calculate_task_Times_pvt;
619: x_return_status := Fnd_Api.G_RET_STS_ERROR;
620: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
621: p_data => x_msg_data,
615:
616: EXCEPTION
617: WHEN Fnd_Api.G_EXC_ERROR THEN
618: ROLLBACK TO calculate_task_Times_pvt;
619: x_return_status := Fnd_Api.G_RET_STS_ERROR;
620: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
621: p_data => x_msg_data,
622: p_encoded => Fnd_Api.g_false);
623:
618: ROLLBACK TO calculate_task_Times_pvt;
619: x_return_status := Fnd_Api.G_RET_STS_ERROR;
620: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
621: p_data => x_msg_data,
622: p_encoded => Fnd_Api.g_false);
623:
624: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
625: ROLLBACK TO calculate_task_Times_pvt;
626: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
620: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
621: p_data => x_msg_data,
622: p_encoded => Fnd_Api.g_false);
623:
624: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
625: ROLLBACK TO calculate_task_Times_pvt;
626: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
627: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
628: p_data => x_msg_data,
622: p_encoded => Fnd_Api.g_false);
623:
624: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
625: ROLLBACK TO calculate_task_Times_pvt;
626: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
627: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
628: p_data => x_msg_data,
629: p_encoded => Fnd_Api.g_false);
630:
625: ROLLBACK TO calculate_task_Times_pvt;
626: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
627: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
628: p_data => x_msg_data,
629: p_encoded => Fnd_Api.g_false);
630:
631: WHEN OTHERS THEN
632: ROLLBACK TO calculate_task_Times_pvt;
633: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
629: p_encoded => Fnd_Api.g_false);
630:
631: WHEN OTHERS THEN
632: ROLLBACK TO calculate_task_Times_pvt;
633: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
634: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR) THEN
635: Fnd_Msg_Pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
636: p_procedure_name => 'Calculate_Task_Times',
637: p_error_text => SUBSTR(SQLERRM,1,240));
637: p_error_text => SUBSTR(SQLERRM,1,240));
638: END IF;
639: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
640: p_data => x_msg_data,
641: p_encoded => Fnd_Api.g_false);
642: END Calculate_Task_Times;
643:
644: --------------------------------------------------------------------
645: -- Procedure name : Adjust_task_times
659: --------------------------------------------------------------------
660: PROCEDURE Adjust_Task_Times
661: (
662: p_api_version IN NUMBER,
663: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
664: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
665: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
666: x_return_status OUT NOCOPY VARCHAR2,
667: x_msg_count OUT NOCOPY NUMBER,
660: PROCEDURE Adjust_Task_Times
661: (
662: p_api_version IN NUMBER,
663: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
664: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
665: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
666: x_return_status OUT NOCOPY VARCHAR2,
667: x_msg_count OUT NOCOPY NUMBER,
668: x_msg_data OUT NOCOPY VARCHAR2,
661: (
662: p_api_version IN NUMBER,
663: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
664: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
665: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
666: x_return_status OUT NOCOPY VARCHAR2,
667: x_msg_count OUT NOCOPY NUMBER,
668: x_msg_data OUT NOCOPY VARCHAR2,
669: p_task_id IN NUMBER,
666: x_return_status OUT NOCOPY VARCHAR2,
667: x_msg_count OUT NOCOPY NUMBER,
668: x_msg_data OUT NOCOPY VARCHAR2,
669: p_task_id IN NUMBER,
670: p_reset_sysdate_flag IN VARCHAR2 := FND_API.G_FALSE)
671: IS
672: --
673: --Cursor for fetching visit info
674: CURSOR get_visit_data_csr(p_task_id IN NUMBER) IS
704: 'At the start of PL SQL procedure. Task Id = ' || p_task_id);
705: END IF;
706:
707: -- Standard call to check for call compatibility
708: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
709: G_PKG_NAME) THEN
710: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
711: END IF;
712:
706:
707: -- Standard call to check for call compatibility
708: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
709: G_PKG_NAME) THEN
710: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
711: END IF;
712:
713: -- Initialize message list if p_init_msg_list is set to TRUE
714: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
710: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
711: END IF;
712:
713: -- Initialize message list if p_init_msg_list is set to TRUE
714: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
715: Fnd_Msg_Pub.Initialize;
716: END IF;
717:
718: -- Initialize API RETURN status to success
715: Fnd_Msg_Pub.Initialize;
716: END IF;
717:
718: -- Initialize API RETURN status to success
719: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
720:
721: --Start Processing here
722: -- 1. Fetch the Visit's deparment id and visit start date
723: OPEN get_visit_data_csr(p_task_id);
754: --3. Call the internal recursive loop on task time adjustment
755: Adjust_Task_Times_Internal(p_task_id);
756:
757: -- Standard check of p_commit
758: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
759: COMMIT WORK;
760: END IF;
761:
762: -- Standard call to get message count and if count is 1, get message info
762: -- Standard call to get message count and if count is 1, get message info
763: Fnd_Msg_Pub.Count_And_Get
764: ( p_count => x_msg_count,
765: p_data => x_msg_data,
766: p_encoded => Fnd_Api.g_false
767: );
768:
769: IF (l_log_procedure >= l_log_current_level) THEN
770: fnd_log.string(l_log_procedure,
772: 'At the end of PL SQL procedure. RETURN Status = ' || x_return_status);
773: END IF;
774:
775: EXCEPTION
776: WHEN Fnd_Api.G_EXC_ERROR THEN
777: ROLLBACK TO Adjust_Task_Times_pvt;
778: x_return_status := Fnd_Api.G_RET_STS_ERROR;
779: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
780: p_data => x_msg_data,
774:
775: EXCEPTION
776: WHEN Fnd_Api.G_EXC_ERROR THEN
777: ROLLBACK TO Adjust_Task_Times_pvt;
778: x_return_status := Fnd_Api.G_RET_STS_ERROR;
779: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
780: p_data => x_msg_data,
781: p_encoded => Fnd_Api.g_false);
782:
777: ROLLBACK TO Adjust_Task_Times_pvt;
778: x_return_status := Fnd_Api.G_RET_STS_ERROR;
779: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
780: p_data => x_msg_data,
781: p_encoded => Fnd_Api.g_false);
782:
783: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
784: ROLLBACK TO Adjust_Task_Times_pvt;
785: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
779: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
780: p_data => x_msg_data,
781: p_encoded => Fnd_Api.g_false);
782:
783: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
784: ROLLBACK TO Adjust_Task_Times_pvt;
785: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
786: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
787: p_data => x_msg_data,
781: p_encoded => Fnd_Api.g_false);
782:
783: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
784: ROLLBACK TO Adjust_Task_Times_pvt;
785: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
786: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
787: p_data => x_msg_data,
788: p_encoded => Fnd_Api.g_false);
789:
784: ROLLBACK TO Adjust_Task_Times_pvt;
785: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
786: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
787: p_data => x_msg_data,
788: p_encoded => Fnd_Api.g_false);
789:
790: WHEN OTHERS THEN
791: ROLLBACK TO Adjust_Task_Times_pvt;
792: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
788: p_encoded => Fnd_Api.g_false);
789:
790: WHEN OTHERS THEN
791: ROLLBACK TO Adjust_Task_Times_pvt;
792: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
793: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR) THEN
794: Fnd_Msg_Pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
795: p_procedure_name => 'Adjust_Task_Times',
796: p_error_text => SUBSTR(SQLERRM,1,240));
796: p_error_text => SUBSTR(SQLERRM,1,240));
797: END IF;
798: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
799: p_data => x_msg_data,
800: p_encoded => Fnd_Api.g_false);
801: END Adjust_Task_Times;
802:
803: -----------------------------------------------------------------------------
804: --Function: Private Method for recursion of task derivation
891: CLOSE get_tech_dependency_csr;
892:
893: --Adjust start date for partially released/released tasks to sysdate start date
894: IF ((G_VISIT_STATUS = 'PARTIALLY RELEASED' OR G_VISIT_STATUS = 'RELEASED')
895: AND Fnd_Api.TO_BOOLEAN(G_RESET_SYSDATE_FLAG)) THEN
896: IF (l_start_date < sysdate) THEN
897: l_start_date := COMPUTE_DATE(sysdate, nvl(l_task_dept_id, G_VISIT_DEPT_ID),0);
898: END IF;
899: END IF;
967: -------------------------------------------------------------------
968: PROCEDURE Calculate_Task_Times_For_Dept
969: (
970: p_api_version IN NUMBER,
971: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
972: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
973: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
974: x_return_status OUT NOCOPY VARCHAR2,
975: x_msg_count OUT NOCOPY NUMBER,
968: PROCEDURE Calculate_Task_Times_For_Dept
969: (
970: p_api_version IN NUMBER,
971: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
972: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
973: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
974: x_return_status OUT NOCOPY VARCHAR2,
975: x_msg_count OUT NOCOPY NUMBER,
976: x_msg_data OUT NOCOPY VARCHAR2,
969: (
970: p_api_version IN NUMBER,
971: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
972: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
973: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
974: x_return_status OUT NOCOPY VARCHAR2,
975: x_msg_count OUT NOCOPY NUMBER,
976: x_msg_data OUT NOCOPY VARCHAR2,
977: p_dept_id IN NUMBER)
1001: 'At the start of PL SQL procedure. Dept Id = ' || p_dept_id);
1002: END IF;
1003:
1004: -- Standard call to check for call compatibility
1005: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1006: G_PKG_NAME) THEN
1007: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1008: END IF;
1009:
1003:
1004: -- Standard call to check for call compatibility
1005: IF NOT Fnd_Api.Compatible_API_Call(l_api_version, p_api_version, l_api_name,
1006: G_PKG_NAME) THEN
1007: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1008: END IF;
1009:
1010: -- Initialize message list if p_init_msg_list is set to TRUE
1011: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
1007: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1008: END IF;
1009:
1010: -- Initialize message list if p_init_msg_list is set to TRUE
1011: IF Fnd_Api.To_Boolean(p_init_msg_list) THEN
1012: Fnd_Msg_Pub.Initialize;
1013: END IF;
1014:
1015: -- Initialize API RETURN status to success
1012: Fnd_Msg_Pub.Initialize;
1013: END IF;
1014:
1015: -- Initialize API RETURN status to success
1016: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1017:
1018: OPEN get_all_visits_csr(p_dept_id);
1019: LOOP
1020: FETCH get_all_visits_csr INTO l_visit_id;
1026: 'Before calling CALCULATE_TASK_TIMES.');
1027: END IF;
1028:
1029: Calculate_Task_Times(p_api_version => 1.0,
1030: p_init_msg_list => Fnd_Api.G_FALSE,
1031: p_commit => Fnd_Api.G_FALSE,
1032: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1033: x_return_status => x_return_status,
1034: x_msg_count => x_msg_count,
1027: END IF;
1028:
1029: Calculate_Task_Times(p_api_version => 1.0,
1030: p_init_msg_list => Fnd_Api.G_FALSE,
1031: p_commit => Fnd_Api.G_FALSE,
1032: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1033: x_return_status => x_return_status,
1034: x_msg_count => x_msg_count,
1035: x_msg_data => x_msg_data,
1028:
1029: Calculate_Task_Times(p_api_version => 1.0,
1030: p_init_msg_list => Fnd_Api.G_FALSE,
1031: p_commit => Fnd_Api.G_FALSE,
1032: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
1033: x_return_status => x_return_status,
1034: x_msg_count => x_msg_count,
1035: x_msg_data => x_msg_data,
1036: p_visit_id => l_visit_id);
1041: 'After calling CALCULATE_TASK_TIMES. RETURN Status = ' ||
1042: x_return_status);
1043: END IF;
1044:
1045: IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1046: IF (l_log_statement >= l_log_current_level) THEN
1047: fnd_log.string(l_log_statement,
1048: L_DEBUG_KEY,
1049: 'Errors from CALCULATE_TASK_TIMES. Message count: ' ||
1049: 'Errors from CALCULATE_TASK_TIMES. Message count: ' ||
1050: x_msg_count || ', message data: ' || x_msg_data);
1051: END IF;
1052: CLOSE get_all_visits_csr;
1053: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1054: RAISE FND_API.G_EXC_ERROR;
1055: ELSE
1056: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057: END IF;
1050: x_msg_count || ', message data: ' || x_msg_data);
1051: END IF;
1052: CLOSE get_all_visits_csr;
1053: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1054: RAISE FND_API.G_EXC_ERROR;
1055: ELSE
1056: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057: END IF;
1058: END IF;
1052: CLOSE get_all_visits_csr;
1053: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1054: RAISE FND_API.G_EXC_ERROR;
1055: ELSE
1056: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1057: END IF;
1058: END IF;
1059: END LOOP;
1060: CLOSE get_all_visits_csr;
1059: END LOOP;
1060: CLOSE get_all_visits_csr;
1061:
1062: -- Standard check of p_commit
1063: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
1064: COMMIT WORK;
1065: END IF;
1066:
1067: -- Standard call to get message count and if count is 1, get message info
1067: -- Standard call to get message count and if count is 1, get message info
1068: Fnd_Msg_Pub.Count_And_Get
1069: ( p_count => x_msg_count,
1070: p_data => x_msg_data,
1071: p_encoded => Fnd_Api.g_false
1072: );
1073:
1074: IF (l_log_procedure >= l_log_current_level) THEN
1075: fnd_log.string(l_log_procedure,
1077: 'At the end of PL SQL procedure. RETURN Status = ' || x_return_status);
1078: END IF;
1079:
1080: EXCEPTION
1081: WHEN Fnd_Api.G_EXC_ERROR THEN
1082: ROLLBACK TO calculate_Times_for_dept_pvt;
1083: x_return_status := Fnd_Api.G_RET_STS_ERROR;
1084: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1085: p_data => x_msg_data,
1079:
1080: EXCEPTION
1081: WHEN Fnd_Api.G_EXC_ERROR THEN
1082: ROLLBACK TO calculate_Times_for_dept_pvt;
1083: x_return_status := Fnd_Api.G_RET_STS_ERROR;
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:
1082: ROLLBACK TO calculate_Times_for_dept_pvt;
1083: x_return_status := Fnd_Api.G_RET_STS_ERROR;
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:
1088: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO calculate_Times_for_dept_pvt;
1090: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
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:
1088: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO calculate_Times_for_dept_pvt;
1090: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1091: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1092: p_data => x_msg_data,
1086: p_encoded => Fnd_Api.g_false);
1087:
1088: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
1089: ROLLBACK TO calculate_Times_for_dept_pvt;
1090: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1091: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1092: p_data => x_msg_data,
1093: p_encoded => Fnd_Api.g_false);
1094:
1089: ROLLBACK TO calculate_Times_for_dept_pvt;
1090: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1091: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1092: p_data => x_msg_data,
1093: p_encoded => Fnd_Api.g_false);
1094:
1095: WHEN OTHERS THEN
1096: ROLLBACK TO calculate_Times_for_dept_pvt;
1097: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1093: p_encoded => Fnd_Api.g_false);
1094:
1095: WHEN OTHERS THEN
1096: ROLLBACK TO calculate_Times_for_dept_pvt;
1097: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1098: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR) THEN
1099: Fnd_Msg_Pub.add_exc_msg( p_pkg_name => G_PKG_NAME,
1100: p_procedure_name => 'Calculate_Task_Times_For_Dept',
1101: p_error_text => SUBSTR(SQLERRM,1,240));
1101: p_error_text => SUBSTR(SQLERRM,1,240));
1102: END IF;
1103: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
1104: p_data => x_msg_data,
1105: p_encoded => Fnd_Api.g_false);
1106: END Calculate_Task_Times_For_Dept;
1107:
1108: ----------------END OF TASK/VISIT SECTION ----------------------------------------
1109:
1373: --Fnd_Message.Set_Name('AHL','AHL_LTP_NO_SHIFT_FOR_DEPT');
1374: --Fnd_Message.Set_Token('DEPT_ID', p_department_id);
1375: --Fnd_Msg_Pub.ADD;
1376: CLOSE l_shift_info_csr;
1377: RETURN; --RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1378: END IF;
1379: CLOSE l_shift_info_csr;
1380:
1381: -- Get the Exception (Holidays) days