49: AND SYSDATE BETWEEN start_date_active
50: AND NVL(end_date_active,SYSDATE);
51: END IF;
52:
53: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
54: EXCEPTION
55: WHEN NO_DATA_FOUND THEN
56: x_return_status := Fnd_Api.G_RET_STS_ERROR;
57: WHEN TOO_MANY_ROWS THEN
52:
53: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
54: EXCEPTION
55: WHEN NO_DATA_FOUND THEN
56: x_return_status := Fnd_Api.G_RET_STS_ERROR;
57: WHEN TOO_MANY_ROWS THEN
58: x_return_status := Fnd_Api.G_RET_STS_ERROR;
59: WHEN OTHERS THEN
60: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
54: EXCEPTION
55: WHEN NO_DATA_FOUND THEN
56: x_return_status := Fnd_Api.G_RET_STS_ERROR;
57: WHEN TOO_MANY_ROWS THEN
58: x_return_status := Fnd_Api.G_RET_STS_ERROR;
59: WHEN OTHERS THEN
60: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
61: RAISE;
62: END;
56: x_return_status := Fnd_Api.G_RET_STS_ERROR;
57: WHEN TOO_MANY_ROWS THEN
58: x_return_status := Fnd_Api.G_RET_STS_ERROR;
59: WHEN OTHERS THEN
60: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
61: RAISE;
62: END;
63:
64: --------------------------------------------------------------------
116: IF G_DEBUG='Y' THEN
117: Ahl_Debug_Pub.debug(': Inside Check Serial Number = ' || x_instance_id);
118: END IF;
119:
120: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
121: EXCEPTION
122: WHEN NO_DATA_FOUND THEN
123: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
124: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
119:
120: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
121: EXCEPTION
122: WHEN NO_DATA_FOUND THEN
123: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
124: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
125: WHEN TOO_MANY_ROWS THEN
126: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
127: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
122: WHEN NO_DATA_FOUND THEN
123: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
124: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
125: WHEN TOO_MANY_ROWS THEN
126: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
127: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
128: WHEN OTHERS THEN
129: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
130: RAISE;
125: WHEN TOO_MANY_ROWS THEN
126: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
127: x_error_msg_code:= 'AHL_PP_SERIAL_NOT_EXISTS';
128: WHEN OTHERS THEN
129: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
130: RAISE;
131: END Check_Serial_Name_Or_Id;
132:
133: --------------------------------------------------------------------
208: IF G_DEBUG='Y' THEN
209: Ahl_Debug_Pub.debug(': Inside Check Employee Id= ' || x_Employee_id);
210: END IF;
211:
212: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
213: EXCEPTION
214: WHEN NO_DATA_FOUND THEN
215: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
216: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
211:
212: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
213: EXCEPTION
214: WHEN NO_DATA_FOUND THEN
215: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
216: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
217: WHEN TOO_MANY_ROWS THEN
218: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
219: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
214: WHEN NO_DATA_FOUND THEN
215: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
216: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
217: WHEN TOO_MANY_ROWS THEN
218: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
219: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
220: WHEN OTHERS THEN
221: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
222: RAISE;
217: WHEN TOO_MANY_ROWS THEN
218: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
219: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
220: WHEN OTHERS THEN
221: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
222: RAISE;
223: END Check_Employee_Number_Or_Id;
224:
225: --------------------------------------------------------------------
302: and bre.instance_id = bdri.instance_id
303: and pf.employee_num = p_employee_number;
304:
305: END IF;
306: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
307:
308: EXCEPTION
309: WHEN NO_DATA_FOUND THEN
310: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
306: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
307:
308: EXCEPTION
309: WHEN NO_DATA_FOUND THEN
310: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
311: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
312: WHEN TOO_MANY_ROWS THEN
313: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
314: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
309: WHEN NO_DATA_FOUND THEN
310: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
311: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
312: WHEN TOO_MANY_ROWS THEN
313: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
314: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
315: WHEN OTHERS THEN
316: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
317: RAISE;
312: WHEN TOO_MANY_ROWS THEN
313: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
314: x_error_msg_code:= 'AHL_VWP_EMPLOYEE_NOT_EXISTS';
315: WHEN OTHERS THEN
316: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
317: RAISE;
318: END Check_Employee_Name_Or_Id;
319:
320: ---------------------------------------------------------------------
536: Ahl_Debug_Pub.debug( ': OPERATION_SEQ_NUMBER = ' || p_resrc_assign_rec.OPERATION_SEQ_NUMBER);
537: Ahl_Debug_Pub.debug( ': RESOURCE_SEQ_NUMBER = ' || p_resrc_assign_rec.RESOURCE_SEQ_NUMBER);
538: END IF;
539:
540: IF (p_resrc_assign_rec.ASSIGNMENT_ID IS NULL OR p_resrc_assign_rec.ASSIGNMENT_ID = Fnd_Api.G_MISS_NUM) THEN
541: -- OPERATION_SEQ_NUMBER
542: IF (p_resrc_assign_rec.OPERATION_SEQ_NUMBER IS NULL OR p_resrc_assign_rec.OPERATION_SEQ_NUMBER = Fnd_Api.G_MISS_NUM) THEN
543: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
544: Fnd_Message.set_name ('AHL', 'AHL_PP_OPER_SEQ_MISSING');
538: END IF;
539:
540: IF (p_resrc_assign_rec.ASSIGNMENT_ID IS NULL OR p_resrc_assign_rec.ASSIGNMENT_ID = Fnd_Api.G_MISS_NUM) THEN
541: -- OPERATION_SEQ_NUMBER
542: IF (p_resrc_assign_rec.OPERATION_SEQ_NUMBER IS NULL OR p_resrc_assign_rec.OPERATION_SEQ_NUMBER = Fnd_Api.G_MISS_NUM) THEN
543: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
544: Fnd_Message.set_name ('AHL', 'AHL_PP_OPER_SEQ_MISSING');
545: Fnd_Msg_Pub.ADD;
546: END IF;
543: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
544: Fnd_Message.set_name ('AHL', 'AHL_PP_OPER_SEQ_MISSING');
545: Fnd_Msg_Pub.ADD;
546: END IF;
547: x_return_status := Fnd_Api.g_ret_sts_error;
548: RETURN;
549: END IF;
550:
551: -- OPERATION_SEQ_NUMBER - Positive
548: RETURN;
549: END IF;
550:
551: -- OPERATION_SEQ_NUMBER - Positive
552: IF (p_resrc_assign_rec.OPERATION_SEQ_NUMBER IS NOT NULL AND p_resrc_assign_rec.OPERATION_SEQ_NUMBER <> Fnd_Api.G_MISS_NUM) THEN
553: IF p_resrc_assign_rec.OPERATION_SEQ_NUMBER < 0 THEN
554: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
555: Fnd_Message.set_name ('AHL', 'AHL_PP_ONLY_POSITIVE_VALUE');
556: Fnd_Msg_Pub.ADD;
554: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
555: Fnd_Message.set_name ('AHL', 'AHL_PP_ONLY_POSITIVE_VALUE');
556: Fnd_Msg_Pub.ADD;
557: END IF;
558: x_return_status := Fnd_Api.g_ret_sts_error;
559: RETURN;
560: END IF;
561: END IF;
562:
560: END IF;
561: END IF;
562:
563: -- RESOURCE_SEQ_NUMBER
564: IF (p_resrc_assign_rec.RESOURCE_SEQ_NUMBER IS NULL OR p_resrc_assign_rec.RESOURCE_SEQ_NUMBER = Fnd_Api.G_MISS_NUM) THEN
565: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
566: Fnd_Message.set_name ('AHL', 'AHL_PP_RESRC_SEQ_MISSING');
567: Fnd_Msg_Pub.ADD;
568: RAISE FND_API.G_EXC_ERROR;
564: IF (p_resrc_assign_rec.RESOURCE_SEQ_NUMBER IS NULL OR p_resrc_assign_rec.RESOURCE_SEQ_NUMBER = Fnd_Api.G_MISS_NUM) THEN
565: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
566: Fnd_Message.set_name ('AHL', 'AHL_PP_RESRC_SEQ_MISSING');
567: Fnd_Msg_Pub.ADD;
568: RAISE FND_API.G_EXC_ERROR;
569: END IF;
570: x_return_status := Fnd_Api.g_ret_sts_error;
571: RETURN;
572: END IF;
566: Fnd_Message.set_name ('AHL', 'AHL_PP_RESRC_SEQ_MISSING');
567: Fnd_Msg_Pub.ADD;
568: RAISE FND_API.G_EXC_ERROR;
569: END IF;
570: x_return_status := Fnd_Api.g_ret_sts_error;
571: RETURN;
572: END IF;
573:
574: -- RESOURCE_SEQ_NUMBER - Positive
571: RETURN;
572: END IF;
573:
574: -- RESOURCE_SEQ_NUMBER - Positive
575: IF (p_resrc_assign_rec.RESOURCE_SEQ_NUMBER IS NOT NULL AND p_resrc_assign_rec.RESOURCE_SEQ_NUMBER <> Fnd_Api.G_MISS_NUM) THEN
576: IF p_resrc_assign_rec.RESOURCE_SEQ_NUMBER < 0 THEN
577: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
578: Fnd_Message.set_name ('AHL', 'AHL_PP_ONLY_POSITIVE_VALUE');
579: Fnd_Msg_Pub.ADD;
577: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
578: Fnd_Message.set_name ('AHL', 'AHL_PP_ONLY_POSITIVE_VALUE');
579: Fnd_Msg_Pub.ADD;
580: END IF;
581: x_return_status := Fnd_Api.g_ret_sts_error;
582: RETURN;
583: END IF;
584: END IF;
585: END IF;
596: END IF;
597:
598: --IF (p_resrc_assign_rec.employee_id IS NULL) THEN
599: /*
600: IF (p_resrc_assign_rec.EMPLOYEE_NUMBER IS NULL OR p_resrc_assign_rec.EMPLOYEE_NUMBER = Fnd_Api.G_MISS_CHAR) THEN
601: IF G_DEBUG='Y' THEN
602: Ahl_Debug_Pub.debug( ': Resource Type 22222= ' || p_resrc_assign_rec.RESOURCE_TYPE_CODE);
603: END IF;
604:
605: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
606: Fnd_Message.set_name ('AHL', 'AHL_PP_EMP_NUM_MISSING');
607: Fnd_Msg_Pub.ADD;
608: END IF;
609: x_return_status := Fnd_Api.g_ret_sts_error;
610: RETURN;
611: END IF; */
612: --END IF; -- p_resrc_assign_rec.employee_id IS NULL
613: IF (p_resrc_assign_rec.EMPLOYEE_ID IS NULL OR p_resrc_assign_rec.EMPLOYEE_ID = Fnd_Api.G_MISS_NUM) THEN
609: x_return_status := Fnd_Api.g_ret_sts_error;
610: RETURN;
611: END IF; */
612: --END IF; -- p_resrc_assign_rec.employee_id IS NULL
613: IF (p_resrc_assign_rec.EMPLOYEE_ID IS NULL OR p_resrc_assign_rec.EMPLOYEE_ID = Fnd_Api.G_MISS_NUM) THEN
614: IF G_DEBUG='Y' THEN
615: Ahl_Debug_Pub.debug( ': Resource Type 22222= ' || p_resrc_assign_rec.RESOURCE_TYPE_CODE);
616: END IF;
617:
618: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
619: Fnd_Message.set_name ('AHL', 'AHL_PP_EMP_NUM_MISSING');
620: Fnd_Msg_Pub.ADD;
621: END IF;
622: x_return_status := Fnd_Api.g_ret_sts_error;
623: RETURN;
624: END IF;
625: END IF; -- p_resrc_assign_rec.RESOURCE_TYPE_CODE
626:
625: END IF; -- p_resrc_assign_rec.RESOURCE_TYPE_CODE
626:
627: IF p_resrc_assign_rec.RESOURCE_TYPE_CODE <> 2 THEN
628: -- SERIAL NUMBER
629: IF (p_resrc_assign_rec.SERIAL_NUMBER IS NULL OR p_resrc_assign_rec.SERIAL_NUMBER = Fnd_Api.G_MISS_CHAR) THEN
630: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
631: Fnd_Message.set_name ('AHL', 'AHL_PP_SERIAL_MISSING');
632: Fnd_Msg_Pub.ADD;
633: END IF;
630: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
631: Fnd_Message.set_name ('AHL', 'AHL_PP_SERIAL_MISSING');
632: Fnd_Msg_Pub.ADD;
633: END IF;
634: x_return_status := Fnd_Api.g_ret_sts_error;
635: RETURN;
636: END IF;
637: END IF;
638:
636: END IF;
637: END IF;
638:
639: -- ASSIGN_START_DATE
640: IF (p_resrc_assign_rec.ASSIGN_START_DATE IS NULL OR p_resrc_assign_rec.ASSIGN_START_DATE = Fnd_Api.G_MISS_DATE)THEN
641: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
642: Fnd_Message.set_name ('AHL', 'AHL_PP_ASSIGN_ST_DT_MISSING');
643: Fnd_Msg_Pub.ADD;
644: END IF;
641: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
642: Fnd_Message.set_name ('AHL', 'AHL_PP_ASSIGN_ST_DT_MISSING');
643: Fnd_Msg_Pub.ADD;
644: END IF;
645: x_return_status := Fnd_Api.g_ret_sts_error;
646: RETURN;
647: END IF;
648:
649: -- ASSIGN_END_DATE
646: RETURN;
647: END IF;
648:
649: -- ASSIGN_END_DATE
650: IF (p_resrc_assign_rec.ASSIGN_END_DATE IS NULL OR p_resrc_assign_rec.ASSIGN_END_DATE = Fnd_Api.G_MISS_DATE)THEN
651: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
652: Fnd_Message.set_name ('AHL', 'AHL_PP_ASSIGN_END_DT_MISSING');
653: Fnd_Msg_Pub.ADD;
654: END IF;
651: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
652: Fnd_Message.set_name ('AHL', 'AHL_PP_ASSIGN_END_DT_MISSING');
653: Fnd_Msg_Pub.ADD;
654: END IF;
655: x_return_status := Fnd_Api.g_ret_sts_error;
656: RETURN;
657: END IF;
658: END Check_Resrc_Assign_Req_Items;
659:
665: )
666: IS
667: l_valid_flag VARCHAR2(1);
668: BEGIN
669: x_return_status := Fnd_Api.g_ret_sts_success;
670: --
671: -- For Create_Visit, when ID is passed in, we need to
672: -- check if this ID is unique.
673: RETURN;
691: p_resrc_assign_rec => p_resrc_assign_rec,
692: x_return_status => x_return_status
693: );
694:
695: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
696: RETURN;
697: END IF;
698:
699: --
703: p_validation_mode => p_validation_mode,
704: x_return_status => x_return_status
705: );
706:
707: IF x_return_status <> Fnd_Api.g_ret_sts_success THEN
708: RETURN;
709: END IF;
710:
711: END Check_Resrc_Assign_Items;
716: --
717: --------------------------------------------------------------------
718: PROCEDURE Validate_Resrc_Assign (
719: p_api_version IN NUMBER,
720: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
721: p_commit IN VARCHAR2 := Fnd_Api.g_false,
722: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
723: p_resrc_assign_rec IN Resrc_Assign_Rec_Type,
724:
717: --------------------------------------------------------------------
718: PROCEDURE Validate_Resrc_Assign (
719: p_api_version IN NUMBER,
720: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
721: p_commit IN VARCHAR2 := Fnd_Api.g_false,
722: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
723: p_resrc_assign_rec IN Resrc_Assign_Rec_Type,
724:
725: x_return_status OUT NOCOPY VARCHAR2,
718: PROCEDURE Validate_Resrc_Assign (
719: p_api_version IN NUMBER,
720: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
721: p_commit IN VARCHAR2 := Fnd_Api.g_false,
722: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
723: p_resrc_assign_rec IN Resrc_Assign_Rec_Type,
724:
725: x_return_status OUT NOCOPY VARCHAR2,
726: x_msg_count OUT NOCOPY NUMBER,
779: IF G_DEBUG='Y' THEN
780: Ahl_Debug_Pub.debug( l_full_name ||':Start');
781: END IF;
782:
783: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
784: Fnd_Msg_Pub.initialize;
785: END IF;
786:
787: IF NOT Fnd_Api.compatible_api_call (
783: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
784: Fnd_Msg_Pub.initialize;
785: END IF;
786:
787: IF NOT Fnd_Api.compatible_api_call (
788: l_api_version,
789: p_api_version,
790: l_api_name,
791: G_PKG_NAME
789: p_api_version,
790: l_api_name,
791: G_PKG_NAME
792: ) THEN
793: RAISE Fnd_Api.g_exc_unexpected_error;
794: END IF;
795: x_return_status := Fnd_Api.g_ret_sts_success;
796:
797: ---------------------- validate ------------------------
791: G_PKG_NAME
792: ) THEN
793: RAISE Fnd_Api.g_exc_unexpected_error;
794: END IF;
795: x_return_status := Fnd_Api.g_ret_sts_success;
796:
797: ---------------------- validate ------------------------
798: IF G_DEBUG='Y' THEN
799: Ahl_Debug_Pub.debug( l_full_name ||':Check items');
805: p_validation_mode => Jtf_Plsql_Api.g_create,
806: x_return_status => l_return_status
807: );
808:
809: IF l_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
810: RAISE Fnd_Api.g_exc_unexpected_error;
811: ELSIF l_return_status = Fnd_Api.g_ret_sts_error THEN
812: RAISE Fnd_Api.g_exc_error;
813: END IF;
806: x_return_status => l_return_status
807: );
808:
809: IF l_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
810: RAISE Fnd_Api.g_exc_unexpected_error;
811: ELSIF l_return_status = Fnd_Api.g_ret_sts_error THEN
812: RAISE Fnd_Api.g_exc_error;
813: END IF;
814: END IF;
807: );
808:
809: IF l_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
810: RAISE Fnd_Api.g_exc_unexpected_error;
811: ELSIF l_return_status = Fnd_Api.g_ret_sts_error THEN
812: RAISE Fnd_Api.g_exc_error;
813: END IF;
814: END IF;
815:
808:
809: IF l_return_status = Fnd_Api.g_ret_sts_unexp_error THEN
810: RAISE Fnd_Api.g_exc_unexpected_error;
811: ELSIF l_return_status = Fnd_Api.g_ret_sts_error THEN
812: RAISE Fnd_Api.g_exc_error;
813: END IF;
814: END IF;
815:
816: --
814: END IF;
815:
816: --
817: -- Use local vars to reduce amount of typing.
818: IF p_resrc_assign_rec.assign_start_date IS NOT NULL AND p_resrc_assign_rec.assign_start_date <> Fnd_Api.g_miss_date THEN
819: l_assign_start_date := p_resrc_assign_rec.assign_start_date;
820: END IF;
821:
822: IF p_resrc_assign_rec.assign_end_date IS NOT NULL AND p_resrc_assign_rec.assign_end_date <> Fnd_Api.g_miss_date THEN
818: IF p_resrc_assign_rec.assign_start_date IS NOT NULL AND p_resrc_assign_rec.assign_start_date <> Fnd_Api.g_miss_date THEN
819: l_assign_start_date := p_resrc_assign_rec.assign_start_date;
820: END IF;
821:
822: IF p_resrc_assign_rec.assign_end_date IS NOT NULL AND p_resrc_assign_rec.assign_end_date <> Fnd_Api.g_miss_date THEN
823: l_assign_end_date := p_resrc_assign_rec.assign_end_date;
824: END IF;
825:
826: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
822: IF p_resrc_assign_rec.assign_end_date IS NOT NULL AND p_resrc_assign_rec.assign_end_date <> Fnd_Api.g_miss_date THEN
823: l_assign_end_date := p_resrc_assign_rec.assign_end_date;
824: END IF;
825:
826: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
827: --
828: -- Validate the active dates.
829: IF l_assign_start_date IS NOT NULL AND l_assign_end_date IS NOT NULL THEN
830:
834: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
835: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_FROMDT_GTR_TODT');
836: Fnd_Msg_Pub.ADD;
837: END IF;
838: x_return_status := Fnd_Api.g_ret_sts_error;
839: RETURN;
840: END IF;
841:
842: -----Validate Assignment Dates against Job start-end dates
855: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
856: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_EARLY_ACTUAL');
857: Fnd_Msg_Pub.ADD;
858: END IF;
859: x_return_status := Fnd_Api.g_ret_sts_error;
860: RETURN;
861: END IF;
862:
863: IF l_actual_end_date is not null and l_assign_end_date > l_actual_end_date THEN
865: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
866: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_LATER_ACTUAL');
867: Fnd_Msg_Pub.ADD;
868: END IF;
869: x_return_status := Fnd_Api.g_ret_sts_error;
870: RETURN;
871: END IF;
872:
873: ELSE
877: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
878: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_EARLY_SCHEDULE');
879: Fnd_Msg_Pub.ADD;
880: END IF;
881: x_return_status := Fnd_Api.g_ret_sts_error;
882: RETURN;
883: END IF;
884:
885: IF l_scheduled_end_date is not null and l_assign_end_date > l_scheduled_end_date THEN
887: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
888: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_LATER_SCHEDULE');
889: Fnd_Msg_Pub.ADD;
890: END IF;
891: x_return_status := Fnd_Api.g_ret_sts_error;
892: RETURN;
893: END IF;
894:
895: END IF;
912: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
913: Fnd_Message.set_name ('AHL', 'AHL_PP_ASG_STDT_GTR_EMP_STDT');
914: Fnd_Msg_Pub.ADD;
915: END IF;
916: x_return_status := Fnd_Api.g_ret_sts_error;
917: RETURN;
918: END IF;
919: */
920: IF trunc(l_assign_end_date) > trunc(l_eff_end_date) THEN
921: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_error) THEN
922: Fnd_Message.set_name ('AHL', 'AHL_PP_EMP_ENDDT_GTR_ASG_ENDDT');
923: Fnd_Msg_Pub.ADD;
924: END IF;
925: x_return_status := Fnd_Api.g_ret_sts_error;
926: RETURN;
927: END IF;
928: END IF;
929:
928: END IF;
929:
930: -------------------- finish --------------------------
931: Fnd_Msg_Pub.count_and_get (
932: p_encoded => Fnd_Api.g_false,
933: p_count => x_msg_count,
934: p_data => x_msg_data
935: );
936:
943: Ahl_Debug_Pub.disable_debug;
944: END IF;
945:
946: EXCEPTION
947: WHEN Fnd_Api.g_exc_error THEN
948: x_return_status := Fnd_Api.g_ret_sts_error;
949: Fnd_Msg_Pub.count_and_get (
950: p_encoded => Fnd_Api.g_false,
951: p_count => x_msg_count,
944: END IF;
945:
946: EXCEPTION
947: WHEN Fnd_Api.g_exc_error THEN
948: x_return_status := Fnd_Api.g_ret_sts_error;
949: Fnd_Msg_Pub.count_and_get (
950: p_encoded => Fnd_Api.g_false,
951: p_count => x_msg_count,
952: p_data => x_msg_data
946: EXCEPTION
947: WHEN Fnd_Api.g_exc_error THEN
948: x_return_status := Fnd_Api.g_ret_sts_error;
949: Fnd_Msg_Pub.count_and_get (
950: p_encoded => Fnd_Api.g_false,
951: p_count => x_msg_count,
952: p_data => x_msg_data
953: );
954: WHEN Fnd_Api.g_exc_unexpected_error THEN
950: p_encoded => Fnd_Api.g_false,
951: p_count => x_msg_count,
952: p_data => x_msg_data
953: );
954: WHEN Fnd_Api.g_exc_unexpected_error THEN
955: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
956: Fnd_Msg_Pub.count_and_get (
957: p_encoded => Fnd_Api.g_false,
958: p_count => x_msg_count,
951: p_count => x_msg_count,
952: p_data => x_msg_data
953: );
954: WHEN Fnd_Api.g_exc_unexpected_error THEN
955: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
956: Fnd_Msg_Pub.count_and_get (
957: p_encoded => Fnd_Api.g_false,
958: p_count => x_msg_count,
959: p_data => x_msg_data
953: );
954: WHEN Fnd_Api.g_exc_unexpected_error THEN
955: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
956: Fnd_Msg_Pub.count_and_get (
957: p_encoded => Fnd_Api.g_false,
958: p_count => x_msg_count,
959: p_data => x_msg_data
960: );
961: WHEN OTHERS THEN
958: p_count => x_msg_count,
959: p_data => x_msg_data
960: );
961: WHEN OTHERS THEN
962: x_return_status := Fnd_Api.g_ret_sts_unexp_error;
963: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
964: THEN
965: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
966: END IF;
965: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
966: END IF;
967:
968: Fnd_Msg_Pub.count_and_get (
969: p_encoded => Fnd_Api.g_false,
970: p_count => x_msg_count,
971: p_data => x_msg_data
972: );
973: END Validate_Resrc_Assign;
985: -- Parameters :
986: --
987: -- Standard IN Parameters :
988: -- p_api_version IN NUMBER Required
989: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
990: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
991: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
992: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
993: -- p_module_type IN VARCHAR2 Default NULL.
986: --
987: -- Standard IN Parameters :
988: -- p_api_version IN NUMBER Required
989: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
990: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
991: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
992: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
993: -- p_module_type IN VARCHAR2 Default NULL.
994: --
987: -- Standard IN Parameters :
988: -- p_api_version IN NUMBER Required
989: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
990: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
991: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
992: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
993: -- p_module_type IN VARCHAR2 Default NULL.
994: --
995: -- Standard OUT Parameters :
988: -- p_api_version IN NUMBER Required
989: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
990: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
991: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
992: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
993: -- p_module_type IN VARCHAR2 Default NULL.
994: --
995: -- Standard OUT Parameters :
996: -- x_return_status OUT VARCHAR2 Required
1007: -- End of Comments.
1008:
1009: PROCEDURE Create_Resrc_Assign (
1010: p_api_version IN NUMBER,
1011: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1012: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1013: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1014: p_module_type IN VARCHAR2 := NULL,
1015: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
1008:
1009: PROCEDURE Create_Resrc_Assign (
1010: p_api_version IN NUMBER,
1011: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1012: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1013: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1014: p_module_type IN VARCHAR2 := NULL,
1015: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
1016: x_return_status OUT NOCOPY VARCHAR2,
1009: PROCEDURE Create_Resrc_Assign (
1010: p_api_version IN NUMBER,
1011: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1012: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1013: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1014: p_module_type IN VARCHAR2 := NULL,
1015: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
1016: x_return_status OUT NOCOPY VARCHAR2,
1017: x_msg_count OUT NOCOPY NUMBER,
1212: AHL_DEBUG_PUB.debug( 'Enter AHL_PP_RESRC_ASSIGN_PVT. Create_Resrc_Assign','+PPResrc_Assign_Pvt+');
1213: END IF;
1214:
1215: -- Standard call to check for call compatibility.
1216: IF FND_API.to_boolean(p_init_msg_list)
1217: THEN
1218: FND_MSG_PUB.initialize;
1219: END IF;
1220:
1218: FND_MSG_PUB.initialize;
1219: END IF;
1220:
1221: -- Initialize API return status to success
1222: x_return_status := FND_API.G_RET_STS_SUCCESS;
1223:
1224: -- Initialize message list if p_init_msg_list is set to TRUE.
1225: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1226: p_api_version,
1221: -- Initialize API return status to success
1222: x_return_status := FND_API.G_RET_STS_SUCCESS;
1223:
1224: -- Initialize message list if p_init_msg_list is set to TRUE.
1225: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1226: p_api_version,
1227: l_api_name,G_PKG_NAME)
1228: THEN
1229: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1225: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
1226: p_api_version,
1227: l_api_name,G_PKG_NAME)
1228: THEN
1229: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1230: END IF;
1231:
1232: --------------------Start of API Body-----------------------------------
1233: --------------------Value OR ID conversion------------------------------
1248: END IF;
1249: --
1250: IF p_x_resrc_assign_tbl(i).workorder_id IS NOT NULL THEN
1251: IF p_x_resrc_assign_tbl(i).operation_seq_number IS NOT NULL AND
1252: p_x_resrc_assign_tbl(i).operation_seq_number <> FND_API.G_MISS_NUM AND
1253: p_x_resrc_assign_tbl(i).resource_seq_number IS NOT NULL AND
1254: p_x_resrc_assign_tbl(i).resource_seq_number <> FND_API.G_MISS_NUM THEN
1255: OPEN c_oper_resrc(p_x_resrc_assign_tbl(i).workorder_id, p_x_resrc_assign_tbl(i).operation_seq_number,
1256: p_x_resrc_assign_tbl(i).resource_seq_number);
1250: IF p_x_resrc_assign_tbl(i).workorder_id IS NOT NULL THEN
1251: IF p_x_resrc_assign_tbl(i).operation_seq_number IS NOT NULL AND
1252: p_x_resrc_assign_tbl(i).operation_seq_number <> FND_API.G_MISS_NUM AND
1253: p_x_resrc_assign_tbl(i).resource_seq_number IS NOT NULL AND
1254: p_x_resrc_assign_tbl(i).resource_seq_number <> FND_API.G_MISS_NUM THEN
1255: OPEN c_oper_resrc(p_x_resrc_assign_tbl(i).workorder_id, p_x_resrc_assign_tbl(i).operation_seq_number,
1256: p_x_resrc_assign_tbl(i).resource_seq_number);
1257: FETCH c_oper_resrc INTO l_oper_resrc_id, l_wo_operation_id,l_resource_id;
1258: IF c_oper_resrc%NOTFOUND THEN
1258: IF c_oper_resrc%NOTFOUND THEN
1259: AHL_DEBUG_PUB.debug(l_full_name || 'c_oper_resrc i.e Cursor not found');
1260: Fnd_Message.SET_NAME('AHL','AHL_PP_RESRC_REQ_NOT_EXISTS');
1261: Fnd_Msg_Pub.ADD;
1262: RAISE Fnd_Api.G_EXC_ERROR;
1263: END IF;
1264: CLOSE c_oper_resrc;
1265:
1266: END IF; -- Check resrc sequence number
1274: l_return_status := AHL_PRD_UTIL_PKG.Is_Unit_Locked(p_workorder_id => p_x_resrc_assign_tbl(i).workorder_id,
1275: p_ue_id => NULL,
1276: p_visit_id => NULL,
1277: p_item_instance_id => NULL);
1278: IF l_return_status = FND_API.G_TRUE THEN
1279: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_CRT_RESASG_UNTLCKD');
1280: FND_MSG_PUB.ADD;
1281: RAISE FND_API.G_EXC_ERROR;
1282: END IF;
1277: p_item_instance_id => NULL);
1278: IF l_return_status = FND_API.G_TRUE THEN
1279: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_CRT_RESASG_UNTLCKD');
1280: FND_MSG_PUB.ADD;
1281: RAISE FND_API.G_EXC_ERROR;
1282: END IF;
1283: -- rroy
1284: -- ACL Changes
1285:
1306:
1307: CLOSE c_resource;
1308: Fnd_Message.SET_NAME('AHL','AHL_PP_NO_RES_TYPE_FOUND');
1309: Fnd_Msg_Pub.ADD;
1310: RAISE Fnd_Api.G_EXC_ERROR;
1311: END IF;
1312:
1313: Ahl_Debug_Pub.debug( 'l_resource_type = ' || l_resource_type);
1314: Ahl_Debug_Pub.debug( 'p_x_resrc_assign_tbl(i).instance_id = ' || p_x_resrc_assign_tbl(i).instance_id);
1435: AHL_DEBUG_PUB.debug(l_full_name || 'Serial:' || p_x_resrc_assign_tbl(i).serial_number);
1436: END IF;
1437:
1438: IF l_resource_type <> 2 THEN
1439: /*IF ((l_Resrc_Assign_Rec.employee_number IS NOT NULL AND l_Resrc_Assign_Rec.employee_number <> Fnd_Api.G_MISS_CHAR)
1440: Ot
1441: (l_Resrc_Assign_Rec.employee_name IS NOT NULL AND l_Resrc_Assign_Rec.employee_name <> Fnd_Api.G_MISS_CHAR))
1442: THEN
1443: Fnd_Message.SET_NAME('AHL','AHL_PP_EMPLOYEE_NOT_REQ');
1437:
1438: IF l_resource_type <> 2 THEN
1439: /*IF ((l_Resrc_Assign_Rec.employee_number IS NOT NULL AND l_Resrc_Assign_Rec.employee_number <> Fnd_Api.G_MISS_CHAR)
1440: Ot
1441: (l_Resrc_Assign_Rec.employee_name IS NOT NULL AND l_Resrc_Assign_Rec.employee_name <> Fnd_Api.G_MISS_CHAR))
1442: THEN
1443: Fnd_Message.SET_NAME('AHL','AHL_PP_EMPLOYEE_NOT_REQ');
1444: Fnd_Msg_Pub.ADD;
1445: RAISE Fnd_Api.G_EXC_ERROR;
1441: (l_Resrc_Assign_Rec.employee_name IS NOT NULL AND l_Resrc_Assign_Rec.employee_name <> Fnd_Api.G_MISS_CHAR))
1442: THEN
1443: Fnd_Message.SET_NAME('AHL','AHL_PP_EMPLOYEE_NOT_REQ');
1444: Fnd_Msg_Pub.ADD;
1445: RAISE Fnd_Api.G_EXC_ERROR;
1446: END IF;*/
1447:
1448: -- Convert serial number to instance/ serial id
1449: IF (p_x_resrc_assign_tbl(i).serial_number IS NOT NULL AND
1446: END IF;*/
1447:
1448: -- Convert serial number to instance/ serial id
1449: IF (p_x_resrc_assign_tbl(i).serial_number IS NOT NULL AND
1450: p_x_resrc_assign_tbl(i).serial_number <> Fnd_Api.G_MISS_CHAR ) THEN
1451:
1452: OPEN c_assign (p_x_resrc_assign_tbl(i).workorder_id, p_x_resrc_assign_tbl(i).operation_seq_number,
1453: p_x_resrc_assign_tbl(i).resource_seq_number);
1454: FETCH c_assign INTO l_resource_id;
1472: IF NVL(l_return_status,'x') <> 'S'
1473: THEN
1474: Fnd_Message.SET_NAME('AHL','AHL_PP_SERIAL_NOT_EXISTS');
1475: Fnd_Msg_Pub.ADD;
1476: RAISE Fnd_Api.G_EXC_ERROR;
1477: END IF;
1478: END IF;
1479:
1480: --Assign the returned value
1495: IF G_DEBUG='Y' THEN
1496: AHL_DEBUG_PUB.debug(l_full_name || 'RESOURCE TYPE in Cursor' || l_resource_type);
1497: END IF;
1498:
1499: /*IF (l_Resrc_Assign_Rec.serial_number IS NOT NULL AND l_Resrc_Assign_Rec.serial_number <> Fnd_Api.G_MISS_CHAR)
1500: THEN
1501: Fnd_Message.SET_NAME('AHL','AHL_PP_EMPLOYEE_NOT_REQ');
1502: Fnd_Msg_Pub.ADD;
1503: RAISE Fnd_Api.G_EXC_ERROR;
1499: /*IF (l_Resrc_Assign_Rec.serial_number IS NOT NULL AND l_Resrc_Assign_Rec.serial_number <> Fnd_Api.G_MISS_CHAR)
1500: THEN
1501: Fnd_Message.SET_NAME('AHL','AHL_PP_EMPLOYEE_NOT_REQ');
1502: Fnd_Msg_Pub.ADD;
1503: RAISE Fnd_Api.G_EXC_ERROR;
1504: END IF;*/
1505: IF G_DEBUG='Y' THEN
1506: AHL_DEBUG_PUB.debug(l_full_name || 'RESOURCE TYPE in record -- ' || p_x_resrc_assign_tbl(i).resource_type_code);
1507: END IF;
1506: AHL_DEBUG_PUB.debug(l_full_name || 'RESOURCE TYPE in record -- ' || p_x_resrc_assign_tbl(i).resource_type_code);
1507: END IF;
1508:
1509: -- For Employee Number
1510: IF (p_x_resrc_assign_tbl(i).employee_number IS NOT NULL AND p_x_resrc_assign_tbl(i).employee_number <> Fnd_Api.G_MISS_CHAR)
1511: THEN
1512: IF G_DEBUG='Y' THEN
1513: Ahl_Debug_Pub.debug(': Inside EMployee Number = ' || p_x_resrc_assign_tbl(i).employee_number);
1514: END IF;
1528: IF NVL(l_return_status, 'X') <> 'S'
1529: THEN
1530: Fnd_Message.SET_NAME('AHL','AHL_PP_EMP_NUM_NOT_EXISTS');
1531: Fnd_Msg_Pub.ADD;
1532: RAISE Fnd_Api.G_EXC_ERROR;
1533: END IF;
1534:
1535: END IF;
1536:
1534:
1535: END IF;
1536:
1537: -- For Employee Name
1538: IF (p_x_resrc_assign_tbl(i).employee_name IS NOT NULL AND p_x_resrc_assign_tbl(i).employee_name <> Fnd_Api.G_MISS_CHAR)
1539: THEN
1540: IF G_DEBUG='Y' THEN
1541: Ahl_Debug_Pub.debug( l_full_name ||': Inside Employee Name = ' || p_x_resrc_assign_tbl(i).employee_name);
1542: END IF;
1556: IF NVL(l_return_status, 'X') <> 'S'
1557: THEN
1558: Fnd_Message.SET_NAME('AHL','AHL_PP_EMP_NAME_NOT_EXISTS');
1559: Fnd_Msg_Pub.ADD;
1560: RAISE Fnd_Api.G_EXC_ERROR;
1561: END IF;
1562:
1563: IF p_x_resrc_assign_tbl(i).employee_id <> l_employee_id THEN
1564: Fnd_Message.SET_NAME('AHL','AHL_PP_USE_EMP_NAME_LOV');
1574: p_x_resrc_assign_tbl(i).employee_id := l_employee_id;
1575: END IF;
1576:
1577: -- Get instance id
1578: IF (p_x_resrc_assign_tbl(i).employee_id IS NOT NULL AND p_x_resrc_assign_tbl(i).employee_id <> Fnd_Api.G_MISS_NUM)
1579: THEN
1580: --
1581: OPEN c_instance_cur (p_x_resrc_assign_tbl(i).employee_id,
1582: l_resource_id, p_x_resrc_assign_tbl(i).department_id);
1613: l_msg_count := Fnd_Msg_Pub.count_msg;
1614:
1615: IF l_msg_count > 0 THEN
1616: X_msg_count := l_msg_count;
1617: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1618: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1619: END IF;
1620: -- Call Eam Api to create resource assignment in WIP
1621: IF p_x_resrc_assign_tbl.COUNT > 0 THEN
1614:
1615: IF l_msg_count > 0 THEN
1616: X_msg_count := l_msg_count;
1617: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1618: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1619: END IF;
1620: -- Call Eam Api to create resource assignment in WIP
1621: IF p_x_resrc_assign_tbl.COUNT > 0 THEN
1622: j := 1;
1668: --
1669: IF l_return_status = 'S' THEN
1670: IF p_x_resrc_assign_tbl.COUNT > 0 THEN
1671: FOR i IN p_x_resrc_assign_tbl.FIRST..p_x_resrc_assign_tbl.LAST LOOP
1672: IF p_x_resrc_assign_tbl(i).Assignment_id is null or p_x_resrc_assign_tbl(i).Assignment_id = FND_API.G_MISS_NUM
1673: THEN
1674: -- These conditions are required for optional fields
1675: -- Employee Id
1676: IF p_x_resrc_assign_tbl(i).Employee_id = FND_API.G_MISS_NUM
1672: IF p_x_resrc_assign_tbl(i).Assignment_id is null or p_x_resrc_assign_tbl(i).Assignment_id = FND_API.G_MISS_NUM
1673: THEN
1674: -- These conditions are required for optional fields
1675: -- Employee Id
1676: IF p_x_resrc_assign_tbl(i).Employee_id = FND_API.G_MISS_NUM
1677: THEN
1678: l_resrc_assign_tbl(i).Employee_id := NULL;
1679: ELSE
1680: l_resrc_assign_tbl(i).Employee_id := p_x_resrc_assign_tbl(i).Employee_id;
1680: l_resrc_assign_tbl(i).Employee_id := p_x_resrc_assign_tbl(i).Employee_id;
1681: END IF;
1682:
1683: -- Serial Number
1684: IF p_x_resrc_assign_tbl(i).Serial_Number = FND_API.G_MISS_CHAR
1685: THEN
1686: l_resrc_assign_tbl(i).Serial_Number := NULL;
1687: ELSE
1688: l_resrc_assign_tbl(i).Serial_Number := p_x_resrc_assign_tbl(i).Serial_Number;
1687: ELSE
1688: l_resrc_assign_tbl(i).Serial_Number := p_x_resrc_assign_tbl(i).Serial_Number;
1689: END IF;
1690: -- Instance Id
1691: IF p_x_resrc_assign_tbl(i).Instance_id = FND_API.G_MISS_NUM
1692: THEN
1693: l_resrc_assign_tbl(i).Instance_id := NULL;
1694: ELSE
1695: l_resrc_assign_tbl(i).Instance_id := p_x_resrc_assign_tbl(i).Instance_id;
1694: ELSE
1695: l_resrc_assign_tbl(i).Instance_id := p_x_resrc_assign_tbl(i).Instance_id;
1696: END IF;
1697: -- Last Updated Date
1698: IF p_x_resrc_assign_tbl(i).last_update_login = FND_API.G_MISS_NUM
1699: THEN
1700: l_resrc_assign_tbl(i).last_update_login := NULL;
1701: ELSE
1702: l_resrc_assign_tbl(i).last_update_login := p_x_resrc_assign_tbl(i).last_update_login;
1701: ELSE
1702: l_resrc_assign_tbl(i).last_update_login := p_x_resrc_assign_tbl(i).last_update_login;
1703: END IF;
1704: -- Attribute Category
1705: IF p_x_resrc_assign_tbl(i).attribute_category = FND_API.G_MISS_CHAR
1706: THEN
1707: l_resrc_assign_tbl(i).attribute_category := NULL;
1708: ELSE
1709: l_resrc_assign_tbl(i).attribute_category := p_x_resrc_assign_tbl(i).attribute_category;
1708: ELSE
1709: l_resrc_assign_tbl(i).attribute_category := p_x_resrc_assign_tbl(i).attribute_category;
1710: END IF;
1711: -- Attribute1
1712: IF p_x_resrc_assign_tbl(i).attribute1 = FND_API.G_MISS_CHAR
1713: THEN
1714: l_resrc_assign_tbl(i).attribute1 := NULL;
1715: ELSE
1716: l_Resrc_Assign_tbl(i).attribute1 := p_x_Resrc_Assign_tbl(i).attribute1;
1715: ELSE
1716: l_Resrc_Assign_tbl(i).attribute1 := p_x_Resrc_Assign_tbl(i).attribute1;
1717: END IF;
1718: -- Attribute2
1719: IF p_x_resrc_assign_tbl(i).attribute2 = FND_API.G_MISS_CHAR
1720: THEN
1721: l_Resrc_Assign_tbl(i).attribute2 := NULL;
1722: ELSE
1723: l_Resrc_Assign_tbl(i).attribute2 := p_x_resrc_assign_tbl(i).attribute2;
1722: ELSE
1723: l_Resrc_Assign_tbl(i).attribute2 := p_x_resrc_assign_tbl(i).attribute2;
1724: END IF;
1725: -- Attribute3
1726: IF p_x_resrc_assign_tbl(i).attribute3 = FND_API.G_MISS_CHAR
1727: THEN
1728: l_Resrc_Assign_tbl(i).attribute3 := NULL;
1729: ELSE
1730: l_Resrc_Assign_tbl(i).attribute3 := p_x_resrc_assign_tbl(i).attribute3;
1729: ELSE
1730: l_Resrc_Assign_tbl(i).attribute3 := p_x_resrc_assign_tbl(i).attribute3;
1731: END IF;
1732: -- Attribute4
1733: IF p_x_resrc_assign_tbl(i).attribute4 = FND_API.G_MISS_CHAR
1734: THEN
1735: l_Resrc_Assign_tbl(i).attribute4 := NULL;
1736: ELSE
1737: l_Resrc_Assign_tbl(i).attribute4 := p_x_resrc_assign_tbl(i).attribute4;
1736: ELSE
1737: l_Resrc_Assign_tbl(i).attribute4 := p_x_resrc_assign_tbl(i).attribute4;
1738: END IF;
1739: -- Attribute5
1740: IF p_x_resrc_assign_tbl(i).attribute5 = FND_API.G_MISS_CHAR
1741: THEN
1742: l_Resrc_Assign_tbl(i).attribute5 := NULL;
1743: ELSE
1744: l_Resrc_Assign_tbl(i).attribute5 := p_x_resrc_assign_tbl(i).attribute5;
1743: ELSE
1744: l_Resrc_Assign_tbl(i).attribute5 := p_x_resrc_assign_tbl(i).attribute5;
1745: END IF;
1746: -- Attribute6
1747: IF p_x_resrc_assign_tbl(i).attribute6 = FND_API.G_MISS_CHAR
1748: THEN
1749: l_Resrc_Assign_tbl(i).attribute6 := NULL;
1750: ELSE
1751: l_Resrc_Assign_tbl(i).attribute6 := p_x_resrc_assign_tbl(i).attribute6;
1750: ELSE
1751: l_Resrc_Assign_tbl(i).attribute6 := p_x_resrc_assign_tbl(i).attribute6;
1752: END IF;
1753: -- Attribute7
1754: IF p_x_resrc_assign_tbl(i).attribute7 = FND_API.G_MISS_CHAR
1755: THEN
1756: l_Resrc_Assign_tbl(i).attribute7 := NULL;
1757: ELSE
1758: l_Resrc_Assign_tbl(i).attribute7 := p_x_resrc_assign_tbl(i).attribute7;
1757: ELSE
1758: l_Resrc_Assign_tbl(i).attribute7 := p_x_resrc_assign_tbl(i).attribute7;
1759: END IF;
1760: -- Attribute8
1761: IF p_x_resrc_assign_tbl(i).attribute8 = FND_API.G_MISS_CHAR
1762: THEN
1763: l_Resrc_Assign_tbl(i).attribute8 := NULL;
1764: ELSE
1765: l_Resrc_Assign_tbl(i).attribute8 := p_x_resrc_assign_tbl(i).attribute8;
1764: ELSE
1765: l_Resrc_Assign_tbl(i).attribute8 := p_x_resrc_assign_tbl(i).attribute8;
1766: END IF;
1767: -- Attribute9
1768: IF p_x_resrc_assign_tbl(i).attribute9 = FND_API.G_MISS_CHAR
1769: THEN
1770: l_Resrc_Assign_tbl(i).attribute9 := NULL;
1771: ELSE
1772: l_Resrc_Assign_tbl(i).attribute9 := p_x_resrc_assign_tbl(i).attribute9;
1771: ELSE
1772: l_Resrc_Assign_tbl(i).attribute9 := p_x_resrc_assign_tbl(i).attribute9;
1773: END IF;
1774: -- Attribute10
1775: IF p_x_resrc_assign_tbl(i).attribute10 = FND_API.G_MISS_CHAR
1776: THEN
1777: l_Resrc_Assign_tbl(i).attribute10 := NULL;
1778: ELSE
1779: l_Resrc_Assign_tbl(i).attribute10 := p_x_resrc_assign_tbl(i).attribute10;
1778: ELSE
1779: l_Resrc_Assign_tbl(i).attribute10 := p_x_resrc_assign_tbl(i).attribute10;
1780: END IF;
1781: -- Attribute11
1782: IF p_x_resrc_assign_tbl(i).attribute11 = FND_API.G_MISS_CHAR
1783: THEN
1784: l_Resrc_Assign_tbl(i).attribute11 := NULL;
1785: ELSE
1786: l_Resrc_Assign_tbl(i).attribute11 := p_x_resrc_assign_tbl(i).attribute11;
1785: ELSE
1786: l_Resrc_Assign_tbl(i).attribute11 := p_x_resrc_assign_tbl(i).attribute11;
1787: END IF;
1788: -- Attribute12
1789: IF p_x_resrc_assign_tbl(i).attribute12 = FND_API.G_MISS_CHAR
1790: THEN
1791: l_Resrc_Assign_tbl(i).attribute12 := NULL;
1792: ELSE
1793: l_Resrc_Assign_tbl(i).attribute12 := p_x_resrc_assign_tbl(i).attribute12;
1792: ELSE
1793: l_Resrc_Assign_tbl(i).attribute12 := p_x_resrc_assign_tbl(i).attribute12;
1794: END IF;
1795: -- Attribute13
1796: IF p_x_resrc_assign_tbl(i).attribute13 = FND_API.G_MISS_CHAR
1797: THEN
1798: l_Resrc_Assign_tbl(i).attribute13 := NULL;
1799: ELSE
1800: l_Resrc_Assign_tbl(i).attribute13 := p_x_resrc_assign_tbl(i).attribute13;
1799: ELSE
1800: l_Resrc_Assign_tbl(i).attribute13 := p_x_resrc_assign_tbl(i).attribute13;
1801: END IF;
1802: -- Attribute14
1803: IF p_x_resrc_assign_tbl(i).attribute14 = FND_API.G_MISS_CHAR
1804: THEN
1805: l_Resrc_Assign_tbl(i).attribute14 := NULL;
1806: ELSE
1807: l_Resrc_Assign_tbl(i).attribute14 := p_x_resrc_assign_tbl(i).attribute14;
1806: ELSE
1807: l_Resrc_Assign_tbl(i).attribute14 := p_x_resrc_assign_tbl(i).attribute14;
1808: END IF;
1809: -- Attribute15
1810: IF p_x_resrc_assign_tbl(i).attribute15 = FND_API.G_MISS_CHAR
1811: THEN
1812: l_Resrc_Assign_tbl(i).attribute15 := NULL;
1813: ELSE
1814: l_Resrc_Assign_tbl(i).attribute15 := p_x_resrc_assign_tbl(i).attribute15;
1818: l_msg_count := Fnd_Msg_Pub.count_msg;
1819:
1820: IF l_msg_count > 0 THEN
1821: X_msg_count := l_msg_count;
1822: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1823: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1824: END IF;
1825:
1826: --
1819:
1820: IF l_msg_count > 0 THEN
1821: X_msg_count := l_msg_count;
1822: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1823: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1824: END IF;
1825:
1826: --
1827: -- Get Sequence Number for Resource Assignment ID
1835: --
1836: IF l_dummy IS NOT NULL THEN
1837: Fnd_Message.SET_NAME('AHL','AHL_PP_SEQUENCE_NO_EXISTS');
1838: Fnd_Msg_Pub.ADD;
1839: RAISE FND_API.G_EXC_ERROR;
1840: END IF;
1841:
1842:
1843: -- Create Record in schedule Resources
1887: l_msg_count := Fnd_Msg_Pub.count_msg;
1888:
1889: IF l_msg_count > 0 THEN
1890: X_msg_count := l_msg_count;
1891: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1892: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1893: END IF;
1894:
1895: --Standard check for commit
1888:
1889: IF l_msg_count > 0 THEN
1890: X_msg_count := l_msg_count;
1891: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
1892: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1893: END IF;
1894:
1895: --Standard check for commit
1896: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
1892: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
1893: END IF;
1894:
1895: --Standard check for commit
1896: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
1897: COMMIT;
1898: END IF;
1899: -- Debug info
1900: IF G_DEBUG='Y' THEN
1903: Ahl_Debug_Pub.disable_debug;
1904: END IF;
1905:
1906: EXCEPTION
1907: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1908: ROLLBACK TO Create_Resrc_Assign;
1909: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1910: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1911: p_count => x_msg_count,
1905:
1906: EXCEPTION
1907: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1908: ROLLBACK TO Create_Resrc_Assign;
1909: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1910: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1911: p_count => x_msg_count,
1912: p_data => x_msg_data);
1913:
1906: EXCEPTION
1907: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1908: ROLLBACK TO Create_Resrc_Assign;
1909: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1910: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1911: p_count => x_msg_count,
1912: p_data => x_msg_data);
1913:
1914: IF G_DEBUG='Y' THEN
1918: -- Check if API is called in debug mode. If yes, disable debug.
1919: AHL_DEBUG_PUB.disable_debug;
1920: END IF;
1921:
1922: WHEN FND_API.G_EXC_ERROR THEN
1923: ROLLBACK TO Create_Resrc_Assign;
1924: X_return_status := FND_API.G_RET_STS_ERROR;
1925: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1926: p_count => x_msg_count,
1920: END IF;
1921:
1922: WHEN FND_API.G_EXC_ERROR THEN
1923: ROLLBACK TO Create_Resrc_Assign;
1924: X_return_status := FND_API.G_RET_STS_ERROR;
1925: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1926: p_count => x_msg_count,
1927: p_data => X_msg_data);
1928: IF G_DEBUG='Y' THEN
1921:
1922: WHEN FND_API.G_EXC_ERROR THEN
1923: ROLLBACK TO Create_Resrc_Assign;
1924: X_return_status := FND_API.G_RET_STS_ERROR;
1925: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1926: p_count => x_msg_count,
1927: p_data => X_msg_data);
1928: IF G_DEBUG='Y' THEN
1929: -- Debug info.
1935: END IF;
1936:
1937: WHEN OTHERS THEN
1938: ROLLBACK TO Create_Resrc_Assign;
1939: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1940: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1941: THEN
1942: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
1943: p_procedure_name => 'CREATE_Resrc_Assign',
1942: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
1943: p_procedure_name => 'CREATE_Resrc_Assign',
1944: p_error_text => SUBSTR(SQLERRM,1,240));
1945: END IF;
1946: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
1947: p_count => x_msg_count,
1948: p_data => X_msg_data);
1949:
1950: IF G_DEBUG='Y' THEN
1972: -- Parameters :
1973: --
1974: -- Standard IN Parameters :
1975: -- p_api_version IN NUMBER Required
1976: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
1977: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
1978: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1979: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
1980: -- p_module_type IN VARCHAR2 Default NULL.
1973: --
1974: -- Standard IN Parameters :
1975: -- p_api_version IN NUMBER Required
1976: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
1977: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
1978: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1979: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
1980: -- p_module_type IN VARCHAR2 Default NULL.
1981: --
1974: -- Standard IN Parameters :
1975: -- p_api_version IN NUMBER Required
1976: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
1977: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
1978: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1979: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
1980: -- p_module_type IN VARCHAR2 Default NULL.
1981: --
1982: -- Standard OUT Parameters :
1975: -- p_api_version IN NUMBER Required
1976: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
1977: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
1978: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
1979: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
1980: -- p_module_type IN VARCHAR2 Default NULL.
1981: --
1982: -- Standard OUT Parameters :
1983: -- x_return_status OUT VARCHAR2 Required
1994: -- End of Comments.
1995:
1996: PROCEDURE Update_Resrc_Assign (
1997: p_api_version IN NUMBER,
1998: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1999: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
2000: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
2001: p_module_type IN VARCHAR2 := NULL,
2002: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
1995:
1996: PROCEDURE Update_Resrc_Assign (
1997: p_api_version IN NUMBER,
1998: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1999: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
2000: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
2001: p_module_type IN VARCHAR2 := NULL,
2002: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
2003: x_return_status OUT NOCOPY VARCHAR2,
1996: PROCEDURE Update_Resrc_Assign (
1997: p_api_version IN NUMBER,
1998: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1999: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
2000: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
2001: p_module_type IN VARCHAR2 := NULL,
2002: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_Tbl_Type,
2003: x_return_status OUT NOCOPY VARCHAR2,
2004: x_msg_count OUT NOCOPY NUMBER,
2177: AHL_DEBUG_PUB.debug( 'Enter ahl_pp_assign_pvt. Update Resource reqst','+PPResrc_Assign_Pvt+');
2178: END IF;
2179:
2180: -- Standard call to check for call compatibility.
2181: IF FND_API.to_boolean(p_init_msg_list)
2182: THEN
2183: FND_MSG_PUB.initialize;
2184: END IF;
2185:
2183: FND_MSG_PUB.initialize;
2184: END IF;
2185:
2186: -- Initialize API return status to success
2187: x_return_status := FND_API.G_RET_STS_SUCCESS;
2188:
2189: -- Initialize message list if p_init_msg_list is set to TRUE.
2190: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2191: p_api_version,
2186: -- Initialize API return status to success
2187: x_return_status := FND_API.G_RET_STS_SUCCESS;
2188:
2189: -- Initialize message list if p_init_msg_list is set to TRUE.
2190: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2191: p_api_version,
2192: l_api_name,G_PKG_NAME)
2193: THEN
2194: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2190: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
2191: p_api_version,
2192: l_api_name,G_PKG_NAME)
2193: THEN
2194: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2195: END IF;
2196:
2197: --------------------Start of API Body-----------------------------------
2198: --Start API Body
2240: l_return_status := AHL_PRD_UTIL_PKG.Is_Unit_Locked(p_workorder_id => p_x_resrc_assign_tbl(i).workorder_id,
2241: p_ue_id => NULL,
2242: p_visit_id => NULL,
2243: p_item_instance_id => NULL);
2244: IF l_return_status = FND_API.G_TRUE THEN
2245: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_UPD_RESASG_UNTLCKD');
2246: FND_MSG_PUB.ADD;
2247: RAISE FND_API.G_EXC_ERROR;
2248: END IF;
2243: p_item_instance_id => NULL);
2244: IF l_return_status = FND_API.G_TRUE THEN
2245: FND_MESSAGE.Set_Name('AHL', 'AHL_PP_UPD_RESASG_UNTLCKD');
2246: FND_MSG_PUB.ADD;
2247: RAISE FND_API.G_EXC_ERROR;
2248: END IF;
2249:
2250: -- rroy
2251: -- ACL Changes
2365:
2366: IF l_resource_type <> 2 THEN
2367: -- Convert serial number to instance/ serial id
2368: IF (p_x_resrc_assign_tbl(i).serial_number IS NOT NULL AND
2369: p_x_resrc_assign_tbl(i).serial_number <> Fnd_Api.G_MISS_CHAR ) THEN
2370:
2371: OPEN c_assign1 (p_x_resrc_assign_tbl(i).workorder_id,
2372: p_x_resrc_assign_tbl(i).operation_seq_number,
2373: p_x_resrc_assign_tbl(i).resource_seq_number);
2392: IF NVL(l_return_status,'x') <> 'S'
2393: THEN
2394: Fnd_Message.SET_NAME('AHL','AHL_PP_SERIAL_NOT_EXISTS');
2395: Fnd_Msg_Pub.ADD;
2396: RAISE Fnd_Api.G_EXC_ERROR;
2397: END IF;
2398: END IF;
2399:
2400: --Assign the returned value
2414: IF l_resource_type = 2 THEN
2415:
2416: -- For Employee Number
2417: IF p_x_resrc_assign_tbl(i).employee_number IS NOT NULL AND
2418: p_x_resrc_assign_tbl(i).employee_number <> Fnd_Api.G_MISS_CHAR
2419: THEN
2420: Check_Employee_Number_Or_Id
2421: (p_employee_id => p_x_resrc_assign_tbl(i).employee_id,
2422: p_employee_number => p_x_resrc_assign_tbl(i).employee_number,
2432: IF NVL(l_return_status, 'X') <> 'S'
2433: THEN
2434: Fnd_Message.SET_NAME('AHL','AHL_PP_EMP_NUM_NOT_EXISTS');
2435: Fnd_Msg_Pub.ADD;
2436: RAISE Fnd_Api.G_EXC_ERROR;
2437: END IF;
2438:
2439: -- For Employee Name
2440: IF p_x_resrc_assign_tbl(i).employee_name IS NOT NULL AND
2437: END IF;
2438:
2439: -- For Employee Name
2440: IF p_x_resrc_assign_tbl(i).employee_name IS NOT NULL AND
2441: p_x_resrc_assign_tbl(i).employee_name <> Fnd_Api.G_MISS_CHAR
2442: THEN
2443: Check_Employee_Name_Or_Id
2444: (p_employee_id => l_employee_id,
2445: p_employee_number => p_x_resrc_assign_tbl(i).employee_number,
2456: IF NVL(l_return_status, 'X') <> 'S'
2457: THEN
2458: Fnd_Message.SET_NAME('AHL','AHL_PP_EMP_NAME_NOT_EXISTS');
2459: Fnd_Msg_Pub.ADD;
2460: RAISE Fnd_Api.G_EXC_ERROR;
2461: END IF;
2462:
2463: IF p_x_resrc_assign_tbl(i).employee_id <> l_employee_id THEN
2464: Fnd_Message.SET_NAME('AHL','AHL_PP_USE_EMP_NAME_LOV');
2480: AHL_DEBUG_PUB.debug('Employee id' || p_x_resrc_assign_tbl(i).employee_id);
2481: END IF;
2482:
2483: -- Get instance id
2484: IF (p_x_resrc_assign_tbl(i).employee_id IS NOT NULL AND p_x_resrc_assign_tbl(i).employee_id <> Fnd_Api.G_MISS_NUM)
2485: THEN
2486: --
2487: OPEN c_instance_cur (p_x_resrc_assign_tbl(i).employee_id,
2488: l_resource_id,
2513: l_msg_count := Fnd_Msg_Pub.count_msg;
2514:
2515: IF l_msg_count > 0 THEN
2516: X_msg_count := l_msg_count;
2517: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2518: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2519: END IF;
2520:
2521: --
2514:
2515: IF l_msg_count > 0 THEN
2516: X_msg_count := l_msg_count;
2517: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2518: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2519: END IF;
2520:
2521: --
2522:
2588: IF (p_x_resrc_assign_tbl(i).object_version_number <> c_assign_rec.object_version_number) THEN
2589: AHL_DEBUG_PUB.debug(l_full_name || 'Inside OVN comparison');
2590: Fnd_Message.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
2591: Fnd_Msg_Pub.ADD;
2592: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2593: END IF;
2594:
2595: IF p_x_resrc_assign_tbl(i).Assignment_id <> FND_API.G_MISS_NUM THEN
2596: -- These conditions are required for optional fields
2591: Fnd_Msg_Pub.ADD;
2592: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2593: END IF;
2594:
2595: IF p_x_resrc_assign_tbl(i).Assignment_id <> FND_API.G_MISS_NUM THEN
2596: -- These conditions are required for optional fields
2597: /*
2598: -- Operation Resource Id
2599: IF p_x_resrc_assign_tbl(i).Operation_resource_id = FND_API.G_MISS_NUM
2595: IF p_x_resrc_assign_tbl(i).Assignment_id <> FND_API.G_MISS_NUM THEN
2596: -- These conditions are required for optional fields
2597: /*
2598: -- Operation Resource Id
2599: IF p_x_resrc_assign_tbl(i).Operation_resource_id = FND_API.G_MISS_NUM
2600: THEN
2601: p_x_resrc_assign_tbl(i).Operation_resource_id := NULL;
2602: ELSIF p_x_resrc_assign_tbl(i).Operation_resource_id IS NULL THEN
2603: p_x_resrc_assign_tbl(i).Operation_resource_id := c_assign_rec.Operation_resource_id;
2604: END IF;
2605: */
2606:
2607: -- Employee Id
2608: IF p_x_resrc_assign_tbl(i).Employee_id = FND_API.G_MISS_NUM
2609: THEN
2610: p_x_resrc_assign_tbl(i).Employee_id := NULL;
2611: ELSIF p_x_resrc_assign_tbl(i).Employee_id IS NULL THEN
2612: p_x_resrc_assign_tbl(i).Employee_id := c_assign_rec.Employee_id;
2612: p_x_resrc_assign_tbl(i).Employee_id := c_assign_rec.Employee_id;
2613: END IF;
2614:
2615: -- Serial Number
2616: IF p_x_resrc_assign_tbl(i).serial_number = FND_API.G_MISS_CHAR
2617: THEN
2618: p_x_resrc_assign_tbl(i).serial_number := NULL;
2619: ELSIF p_x_resrc_assign_tbl(i).serial_number IS NULL THEN
2620: p_x_resrc_assign_tbl(i).serial_number := c_assign_rec.serial_number;
2619: ELSIF p_x_resrc_assign_tbl(i).serial_number IS NULL THEN
2620: p_x_resrc_assign_tbl(i).serial_number := c_assign_rec.serial_number;
2621: END IF;
2622: -- Instance Id
2623: IF p_x_resrc_assign_tbl(i).Instance_id = FND_API.G_MISS_NUM
2624: THEN
2625: p_x_resrc_assign_tbl(i).Instance_id := NULL;
2626: ELSIF p_x_resrc_assign_tbl(i).instance_id IS NULL THEN
2627: p_x_resrc_assign_tbl(i).Instance_id := c_assign_rec.Instance_id;
2626: ELSIF p_x_resrc_assign_tbl(i).instance_id IS NULL THEN
2627: p_x_resrc_assign_tbl(i).Instance_id := c_assign_rec.Instance_id;
2628: END IF;
2629: -- Assign start date
2630: IF p_x_resrc_assign_tbl(i).Assign_start_date = FND_API.G_MISS_DATE
2631: THEN
2632: p_x_resrc_assign_tbl(i).Assign_start_date := NULL;
2633: ELSIF p_x_resrc_assign_tbl(i).assign_start_date IS NULL THEN
2634: p_x_resrc_assign_tbl(i).Assign_start_date := c_assign_rec.Assign_start_date;
2634: p_x_resrc_assign_tbl(i).Assign_start_date := c_assign_rec.Assign_start_date;
2635: END IF;
2636:
2637: -- Assign end date
2638: IF p_x_resrc_assign_tbl(i).Assign_end_date = FND_API.G_MISS_DATE
2639: THEN
2640: p_x_resrc_assign_tbl(i).Assign_end_date := NULL;
2641: ELSIF p_x_resrc_assign_tbl(i).assign_end_date IS NULL THEN
2642: p_x_resrc_assign_tbl(i).Assign_end_date := c_assign_rec.Assign_end_date;
2641: ELSIF p_x_resrc_assign_tbl(i).assign_end_date IS NULL THEN
2642: p_x_resrc_assign_tbl(i).Assign_end_date := c_assign_rec.Assign_end_date;
2643: END IF;
2644: -- Attribute Category
2645: IF p_x_resrc_assign_tbl(i).attribute_category = FND_API.G_MISS_CHAR
2646: THEN
2647: p_x_resrc_assign_tbl(i).attribute_category := NULL;
2648: ELSIF p_x_resrc_assign_tbl(i).attribute_category IS NULL THEN
2649: p_x_resrc_assign_tbl(i).attribute_category := c_assign_rec.attribute_category;
2648: ELSIF p_x_resrc_assign_tbl(i).attribute_category IS NULL THEN
2649: p_x_resrc_assign_tbl(i).attribute_category := c_assign_rec.attribute_category;
2650: END IF;
2651: -- Attribute1
2652: IF p_x_resrc_assign_tbl(i).attribute1 = FND_API.G_MISS_CHAR
2653: THEN
2654: p_x_resrc_assign_tbl(i).attribute1 := NULL;
2655: ELSIF p_x_resrc_assign_tbl(i).attribute1 IS NULL THEN
2656: p_x_resrc_assign_tbl(i).attribute1 := c_assign_rec.attribute1;
2655: ELSIF p_x_resrc_assign_tbl(i).attribute1 IS NULL THEN
2656: p_x_resrc_assign_tbl(i).attribute1 := c_assign_rec.attribute1;
2657: END IF;
2658: -- Attribute2
2659: IF p_x_resrc_assign_tbl(i).attribute2 = FND_API.G_MISS_CHAR
2660: THEN
2661: p_x_resrc_assign_tbl(i).attribute2 := NULL;
2662: ELSIF p_x_resrc_assign_tbl(i).attribute2 IS NULL THEN
2663: p_x_resrc_assign_tbl(i).attribute2 := c_assign_rec.attribute2;
2662: ELSIF p_x_resrc_assign_tbl(i).attribute2 IS NULL THEN
2663: p_x_resrc_assign_tbl(i).attribute2 := c_assign_rec.attribute2;
2664: END IF;
2665: -- Attribute3
2666: IF p_x_resrc_assign_tbl(i).attribute3 = FND_API.G_MISS_CHAR
2667: THEN
2668: p_x_resrc_assign_tbl(i).attribute3 := NULL;
2669: ELSIF p_x_resrc_assign_tbl(i).attribute3 IS NULL THEN
2670: p_x_resrc_assign_tbl(i).attribute3 := c_assign_rec.attribute3;
2669: ELSIF p_x_resrc_assign_tbl(i).attribute3 IS NULL THEN
2670: p_x_resrc_assign_tbl(i).attribute3 := c_assign_rec.attribute3;
2671: END IF;
2672: -- Attribute4
2673: IF p_x_resrc_assign_tbl(i).attribute4 = FND_API.G_MISS_CHAR
2674: THEN
2675: p_x_resrc_assign_tbl(i).attribute4 := NULL;
2676: ELSIF p_x_resrc_assign_tbl(i).attribute4 IS NULL THEN
2677: p_x_resrc_assign_tbl(i).attribute4 := c_assign_rec.attribute4;
2676: ELSIF p_x_resrc_assign_tbl(i).attribute4 IS NULL THEN
2677: p_x_resrc_assign_tbl(i).attribute4 := c_assign_rec.attribute4;
2678: END IF;
2679: -- Attribute5
2680: IF p_x_resrc_assign_tbl(i).attribute5 = FND_API.G_MISS_CHAR
2681: THEN
2682: p_x_resrc_assign_tbl(i).attribute5 := NULL;
2683: ELSIF p_x_resrc_assign_tbl(i).attribute5 IS NULL THEN
2684: p_x_resrc_assign_tbl(i).attribute5 := c_assign_rec.attribute5;
2683: ELSIF p_x_resrc_assign_tbl(i).attribute5 IS NULL THEN
2684: p_x_resrc_assign_tbl(i).attribute5 := c_assign_rec.attribute5;
2685: END IF;
2686: -- Attribute6
2687: IF p_x_resrc_assign_tbl(i).attribute6 = FND_API.G_MISS_CHAR
2688: THEN
2689: p_x_resrc_assign_tbl(i).attribute6 := NULL;
2690: ELSIF p_x_resrc_assign_tbl(i).attribute6 IS NULL THEN
2691: p_x_resrc_assign_tbl(i).attribute6 := c_assign_rec.attribute6;
2690: ELSIF p_x_resrc_assign_tbl(i).attribute6 IS NULL THEN
2691: p_x_resrc_assign_tbl(i).attribute6 := c_assign_rec.attribute6;
2692: END IF;
2693: -- Attribute7
2694: IF p_x_resrc_assign_tbl(i).attribute7 = FND_API.G_MISS_CHAR
2695: THEN
2696: p_x_resrc_assign_tbl(i).attribute7 := NULL;
2697: ELSIF p_x_resrc_assign_tbl(i).attribute7 IS NULL THEN
2698: p_x_resrc_assign_tbl(i).attribute7 := c_assign_rec.attribute7;
2697: ELSIF p_x_resrc_assign_tbl(i).attribute7 IS NULL THEN
2698: p_x_resrc_assign_tbl(i).attribute7 := c_assign_rec.attribute7;
2699: END IF;
2700: -- Attribute8
2701: IF p_x_resrc_assign_tbl(i).attribute8 = FND_API.G_MISS_CHAR
2702: THEN
2703: p_x_resrc_assign_tbl(i).attribute8 := NULL;
2704: ELSIF p_x_resrc_assign_tbl(i).attribute8 IS NULL THEN
2705: p_x_resrc_assign_tbl(i).attribute8 := c_assign_rec.attribute8;
2704: ELSIF p_x_resrc_assign_tbl(i).attribute8 IS NULL THEN
2705: p_x_resrc_assign_tbl(i).attribute8 := c_assign_rec.attribute8;
2706: END IF;
2707: -- Attribute9
2708: IF p_x_resrc_assign_tbl(i).attribute9 = FND_API.G_MISS_CHAR
2709: THEN
2710: p_x_resrc_assign_tbl(i).attribute9 := NULL;
2711: ELSIF p_x_resrc_assign_tbl(i).attribute9 IS NULL THEN
2712: p_x_resrc_assign_tbl(i).attribute9 := c_assign_rec.attribute9;
2711: ELSIF p_x_resrc_assign_tbl(i).attribute9 IS NULL THEN
2712: p_x_resrc_assign_tbl(i).attribute9 := c_assign_rec.attribute9;
2713: END IF;
2714: -- Attribute10
2715: IF p_x_resrc_assign_tbl(i).attribute10 = FND_API.G_MISS_CHAR
2716: THEN
2717: p_x_resrc_assign_tbl(i).attribute10 := NULL;
2718: ELSIF p_x_resrc_assign_tbl(i).attribute10 IS NULL THEN
2719: p_x_resrc_assign_tbl(i).attribute10 := c_assign_rec.attribute10;
2718: ELSIF p_x_resrc_assign_tbl(i).attribute10 IS NULL THEN
2719: p_x_resrc_assign_tbl(i).attribute10 := c_assign_rec.attribute10;
2720: END IF;
2721: -- Attribute11
2722: IF p_x_resrc_assign_tbl(i).attribute11 = FND_API.G_MISS_CHAR
2723: THEN
2724: p_x_resrc_assign_tbl(i).attribute11 := NULL;
2725: ELSIF p_x_resrc_assign_tbl(i).attribute11 IS NULL THEN
2726: p_x_resrc_assign_tbl(i).attribute11 := c_assign_rec.attribute11;
2725: ELSIF p_x_resrc_assign_tbl(i).attribute11 IS NULL THEN
2726: p_x_resrc_assign_tbl(i).attribute11 := c_assign_rec.attribute11;
2727: END IF;
2728: -- Attribute12
2729: IF p_x_resrc_assign_tbl(i).attribute12 = FND_API.G_MISS_CHAR
2730: THEN
2731: p_x_resrc_assign_tbl(i).attribute12 := NULL;
2732: ELSIF p_x_resrc_assign_tbl(i).attribute12 IS NULL THEN
2733: p_x_resrc_assign_tbl(i).attribute12 := c_assign_rec.attribute12;
2732: ELSIF p_x_resrc_assign_tbl(i).attribute12 IS NULL THEN
2733: p_x_resrc_assign_tbl(i).attribute12 := c_assign_rec.attribute12;
2734: END IF;
2735: -- Attribute13
2736: IF p_x_resrc_assign_tbl(i).attribute13 = FND_API.G_MISS_CHAR
2737: THEN
2738: p_x_resrc_assign_tbl(i).attribute13 := NULL;
2739: ELSIF p_x_resrc_assign_tbl(i).attribute13 IS NULL THEN
2740: p_x_resrc_assign_tbl(i).attribute13 := c_assign_rec.attribute13;
2739: ELSIF p_x_resrc_assign_tbl(i).attribute13 IS NULL THEN
2740: p_x_resrc_assign_tbl(i).attribute13 := c_assign_rec.attribute13;
2741: END IF;
2742: -- Attribute14
2743: IF p_x_resrc_assign_tbl(i).attribute14 = FND_API.G_MISS_CHAR
2744: THEN
2745: p_x_resrc_assign_tbl(i).attribute14 := NULL;
2746: ELSIF p_x_resrc_assign_tbl(i).attribute14 IS NULL THEN
2747: p_x_resrc_assign_tbl(i).attribute14 := c_assign_rec.attribute14;
2746: ELSIF p_x_resrc_assign_tbl(i).attribute14 IS NULL THEN
2747: p_x_resrc_assign_tbl(i).attribute14 := c_assign_rec.attribute14;
2748: END IF;
2749: -- Attribute15
2750: IF p_x_resrc_assign_tbl(i).attribute15 = FND_API.G_MISS_CHAR
2751: THEN
2752: p_x_resrc_assign_tbl(i).attribute15 := NULL;
2753: ELSIF p_x_resrc_assign_tbl(i).attribute15 IS NULL THEN
2754: p_x_resrc_assign_tbl(i).attribute15 := c_assign_rec.attribute15;
2753: ELSIF p_x_resrc_assign_tbl(i).attribute15 IS NULL THEN
2754: p_x_resrc_assign_tbl(i).attribute15 := c_assign_rec.attribute15;
2755: END IF;
2756: -- Self Assigned Flag
2757: IF p_x_resrc_assign_tbl(i).self_assigned_flag = FND_API.G_MISS_NUM
2758: THEN
2759: p_x_resrc_assign_tbl(i).self_assigned_flag := NULL;
2760: ELSIF p_x_resrc_assign_tbl(i).self_assigned_flag IS NULL THEN
2761: p_x_resrc_assign_tbl(i).self_assigned_flag := c_assign_rec.self_assigned_flag;
2761: p_x_resrc_assign_tbl(i).self_assigned_flag := c_assign_rec.self_assigned_flag;
2762: END IF;
2763: /*
2764: -- Login Date
2765: IF p_x_resrc_assign_tbl(i).login_date = FND_API.G_MISS_DATE
2766: THEN
2767: p_x_resrc_assign_tbl(i).login_date := NULL;
2768: ELSIF p_x_resrc_assign_tbl(i).login_date IS NULL THEN
2769: p_x_resrc_assign_tbl(i).login_date := c_assign_rec.login_date;
2774: l_msg_count := Fnd_Msg_Pub.count_msg;
2775:
2776: IF l_msg_count > 0 THEN
2777: x_msg_count := l_msg_count;
2778: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2779: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2780: END IF;
2781:
2782: IF G_DEBUG='Y' THEN
2775:
2776: IF l_msg_count > 0 THEN
2777: x_msg_count := l_msg_count;
2778: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2779: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2780: END IF;
2781:
2782: IF G_DEBUG='Y' THEN
2783: AHL_DEBUG_PUB.debug(l_full_name || ' Before calling Update Row procedure');
2831: l_msg_count := Fnd_Msg_Pub.count_msg;
2832:
2833: IF l_msg_count > 0 THEN
2834: X_msg_count := l_msg_count;
2835: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2836: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2837: END IF;
2838:
2839: --Standard check for commit
2832:
2833: IF l_msg_count > 0 THEN
2834: X_msg_count := l_msg_count;
2835: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
2836: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2837: END IF;
2838:
2839: --Standard check for commit
2840: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
2836: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2837: END IF;
2838:
2839: --Standard check for commit
2840: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
2841: COMMIT;
2842: END IF;
2843: -- Debug info
2844: IF G_DEBUG='Y' THEN
2847: Ahl_Debug_Pub.disable_debug;
2848: --
2849: END IF;
2850: EXCEPTION
2851: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2852: ROLLBACK TO update_Resrc_Assign;
2853: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2854: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2855: p_count => x_msg_count,
2849: END IF;
2850: EXCEPTION
2851: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2852: ROLLBACK TO update_Resrc_Assign;
2853: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2854: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2855: p_count => x_msg_count,
2856: p_data => x_msg_data);
2857: IF G_DEBUG='Y' THEN
2850: EXCEPTION
2851: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2852: ROLLBACK TO update_Resrc_Assign;
2853: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2854: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2855: p_count => x_msg_count,
2856: p_data => x_msg_data);
2857: IF G_DEBUG='Y' THEN
2858: AHL_DEBUG_PUB.log_app_messages(x_msg_count, x_msg_data, 'ERROR' );
2860: -- Check if API is called in debug mode. If yes, disable debug.
2861: AHL_DEBUG_PUB.disable_debug;
2862: --
2863: END IF;
2864: WHEN FND_API.G_EXC_ERROR THEN
2865: ROLLBACK TO update_Resrc_Assign;
2866: X_return_status := FND_API.G_RET_STS_ERROR;
2867: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2868: p_count => x_msg_count,
2862: --
2863: END IF;
2864: WHEN FND_API.G_EXC_ERROR THEN
2865: ROLLBACK TO update_Resrc_Assign;
2866: X_return_status := FND_API.G_RET_STS_ERROR;
2867: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2868: p_count => x_msg_count,
2869: p_data => X_msg_data);
2870: IF G_DEBUG='Y' THEN
2863: END IF;
2864: WHEN FND_API.G_EXC_ERROR THEN
2865: ROLLBACK TO update_Resrc_Assign;
2866: X_return_status := FND_API.G_RET_STS_ERROR;
2867: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2868: p_count => x_msg_count,
2869: p_data => X_msg_data);
2870: IF G_DEBUG='Y' THEN
2871: -- Debug info.
2876: AHL_DEBUG_PUB.disable_debug;
2877: END IF;
2878: WHEN OTHERS THEN
2879: ROLLBACK TO update_Resrc_Assign;
2880: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2881: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2882: THEN
2883: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
2884: p_procedure_name => 'UPDATE_Resrc_Assign',
2883: fnd_msg_pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
2884: p_procedure_name => 'UPDATE_Resrc_Assign',
2885: p_error_text => SUBSTR(SQLERRM,1,240));
2886: END IF;
2887: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
2888: p_count => x_msg_count,
2889: p_data => X_msg_data);
2890:
2891: IF G_DEBUG='Y' THEN
2898: END Update_Resrc_Assign;
2899: --
2900: PROCEDURE Remove_Resource_Assignment (
2901: p_api_version IN NUMBER,
2902: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
2903: p_commit IN VARCHAR2 := Fnd_Api.g_false,
2904: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
2905: p_module_type IN VARCHAR2 := 'JSP',
2906: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_tbl_Type,
2899: --
2900: PROCEDURE Remove_Resource_Assignment (
2901: p_api_version IN NUMBER,
2902: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
2903: p_commit IN VARCHAR2 := Fnd_Api.g_false,
2904: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
2905: p_module_type IN VARCHAR2 := 'JSP',
2906: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_tbl_Type,
2907: x_return_status OUT NOCOPY VARCHAR2,
2900: PROCEDURE Remove_Resource_Assignment (
2901: p_api_version IN NUMBER,
2902: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
2903: p_commit IN VARCHAR2 := Fnd_Api.g_false,
2904: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
2905: p_module_type IN VARCHAR2 := 'JSP',
2906: p_x_resrc_assign_tbl IN OUT NOCOPY Resrc_Assign_tbl_Type,
2907: x_return_status OUT NOCOPY VARCHAR2,
2908: x_msg_count OUT NOCOPY NUMBER,
2968: IF G_DEBUG='Y' THEN
2969: Ahl_Debug_Pub.debug( 'enter ahl_ltp_reqst_matrl_pvt Remove Resource Assignment ','+MAATP+');
2970: END IF;
2971: -- Standard call to check for call compatibility.
2972: IF Fnd_Api.to_boolean(p_init_msg_list)
2973: THEN
2974: Fnd_Msg_Pub.initialize;
2975: END IF;
2976:
2974: Fnd_Msg_Pub.initialize;
2975: END IF;
2976:
2977: -- Initialize API return status to success
2978: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
2979:
2980: -- Initialize message list if p_init_msg_list is set to TRUE.
2981: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2982: p_api_version,
2977: -- Initialize API return status to success
2978: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
2979:
2980: -- Initialize message list if p_init_msg_list is set to TRUE.
2981: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2982: p_api_version,
2983: l_api_name,G_PKG_NAME)
2984: THEN
2985: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2981: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
2982: p_api_version,
2983: l_api_name,G_PKG_NAME)
2984: THEN
2985: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
2986: END IF;
2987:
2988: ------------------------Start API Body ---------------------------------
2989:
2992: FOR i IN p_x_resrc_assign_tbl.FIRST..p_x_resrc_assign_tbl.LAST
2993: LOOP
2994: --
2995: IF (p_x_resrc_assign_tbl(i).assignment_id IS NOT NULL AND
2996: p_x_resrc_assign_tbl(i).assignment_id <> FND_API.G_MISS_NUM) THEN
2997: --Get the exisitng record
2998: OPEN get_resrc_assign_cur(p_x_resrc_assign_tbl(i).assignment_id);
2999: FETCH get_resrc_assign_cur INTO l_resrc_assign_rec;
3000: IF get_resrc_assign_cur%NOTFOUND THEN
3000: IF get_resrc_assign_cur%NOTFOUND THEN
3001: Fnd_Message.Set_Name('AHL','AHL_COM_INVALID_RECORD');
3002: Fnd_Msg_Pub.ADD;
3003: CLOSE get_resrc_assign_cur;
3004: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3005: END IF;
3006: --
3007: CLOSE get_resrc_assign_cur;
3008: END IF;
3010: IF p_x_resrc_assign_tbl(i).object_version_number <> l_resrc_assign_rec.object_version_number
3011: THEN
3012: Fnd_Message.Set_Name('AHL','AHL_COM_RECORD_CHANGED');
3013: Fnd_Msg_Pub.ADD;
3014: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3015: END IF;
3016: --
3017: -- Get Wip entity ,operation resource details
3018: OPEN get_resource_details(l_resrc_assign_rec.operation_resource_id);
3034: -- rroy
3035: -- ACL Changes
3036: l_return_status := AHL_PRD_UTIL_PKG.IsDelAsg_Enabled(p_assignment_id => p_x_resrc_assign_tbl(i).assignment_id,
3037: p_workorder_id => p_x_resrc_assign_tbl(i).workorder_id);
3038: IF l_return_status = FND_API.G_FALSE THEN
3039: RAISE FND_API.G_EXC_ERROR;
3040: END IF;
3041:
3042:
3035: -- ACL Changes
3036: l_return_status := AHL_PRD_UTIL_PKG.IsDelAsg_Enabled(p_assignment_id => p_x_resrc_assign_tbl(i).assignment_id,
3037: p_workorder_id => p_x_resrc_assign_tbl(i).workorder_id);
3038: IF l_return_status = FND_API.G_FALSE THEN
3039: RAISE FND_API.G_EXC_ERROR;
3040: END IF;
3041:
3042:
3043: -- rroy
3049: l_msg_count := Fnd_Msg_Pub.count_msg;
3050:
3051: IF l_msg_count > 0 THEN
3052: x_msg_count := l_msg_count;
3053: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3054: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3055: END IF;
3056:
3057:
3050:
3051: IF l_msg_count > 0 THEN
3052: x_msg_count := l_msg_count;
3053: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3054: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3055: END IF;
3056:
3057:
3058: -- Call Eam Api to create resource assignment in WIP
3110: l_msg_count := Fnd_Msg_Pub.count_msg;
3111:
3112: IF l_msg_count > 0 THEN
3113: X_msg_count := l_msg_count;
3114: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3115: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3116: END IF;
3117:
3118: --Standard check for commit
3111:
3112: IF l_msg_count > 0 THEN
3113: X_msg_count := l_msg_count;
3114: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3115: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3116: END IF;
3117:
3118: --Standard check for commit
3119: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
3115: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3116: END IF;
3117:
3118: --Standard check for commit
3119: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
3120: COMMIT;
3121: END IF;
3122: -- Debug info
3123: IF G_DEBUG='Y' THEN
3126: Ahl_Debug_Pub.disable_debug;
3127: --
3128: END IF;
3129: EXCEPTION
3130: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
3131: ROLLBACK TO Remove_Resource_Assignment;
3132: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3133: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3134: p_count => x_msg_count,
3128: END IF;
3129: EXCEPTION
3130: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
3131: ROLLBACK TO Remove_Resource_Assignment;
3132: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3133: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3134: p_count => x_msg_count,
3135: p_data => x_msg_data);
3136: IF G_DEBUG='Y' THEN
3129: EXCEPTION
3130: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
3131: ROLLBACK TO Remove_Resource_Assignment;
3132: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3133: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3134: p_count => x_msg_count,
3135: p_data => x_msg_data);
3136: IF G_DEBUG='Y' THEN
3137: Ahl_Debug_Pub.log_app_messages (
3140: -- Check if API is called in debug mode. If yes, disable debug.
3141: Ahl_Debug_Pub.disable_debug;
3142: END IF;
3143:
3144: WHEN Fnd_Api.G_EXC_ERROR THEN
3145: ROLLBACK TO remove_Resource_Assignment;
3146: X_return_status := Fnd_Api.G_RET_STS_ERROR;
3147: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3148: p_count => x_msg_count,
3142: END IF;
3143:
3144: WHEN Fnd_Api.G_EXC_ERROR THEN
3145: ROLLBACK TO remove_Resource_Assignment;
3146: X_return_status := Fnd_Api.G_RET_STS_ERROR;
3147: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3148: p_count => x_msg_count,
3149: p_data => X_msg_data);
3150: IF G_DEBUG='Y' THEN
3143:
3144: WHEN Fnd_Api.G_EXC_ERROR THEN
3145: ROLLBACK TO remove_Resource_Assignment;
3146: X_return_status := Fnd_Api.G_RET_STS_ERROR;
3147: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3148: p_count => x_msg_count,
3149: p_data => X_msg_data);
3150: IF G_DEBUG='Y' THEN
3151: -- Debug info.
3157: END IF;
3158:
3159: WHEN OTHERS THEN
3160: ROLLBACK TO remove_Resource_Assignment;
3161: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3162: IF Fnd_Msg_Pub.check_msg_level(Fnd_Msg_Pub.G_MSG_LVL_UNEXP_ERROR)
3163: THEN
3164: Fnd_Msg_Pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
3165: p_procedure_name => 'REMOVE_Resource_Assignment',
3164: Fnd_Msg_Pub.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
3165: p_procedure_name => 'REMOVE_Resource_Assignment',
3166: p_error_text => SUBSTR(SQLERRM,1,240));
3167: END IF;
3168: Fnd_Msg_Pub.count_and_get( p_encoded => Fnd_Api.G_FALSE,
3169: p_count => x_msg_count,
3170: p_data => X_msg_data);
3171: IF G_DEBUG='Y' THEN
3172: -- Debug info.
3189: -- Parameters :
3190: --
3191: -- Standard IN Parameters :
3192: -- p_api_version IN NUMBER Required
3193: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
3194: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
3195: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
3196: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
3197: -- p_module_type IN VARCHAR2 Default NULL.
3190: --
3191: -- Standard IN Parameters :
3192: -- p_api_version IN NUMBER Required
3193: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
3194: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
3195: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
3196: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
3197: -- p_module_type IN VARCHAR2 Default NULL.
3198: --
3191: -- Standard IN Parameters :
3192: -- p_api_version IN NUMBER Required
3193: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
3194: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
3195: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
3196: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
3197: -- p_module_type IN VARCHAR2 Default NULL.
3198: --
3199: -- Standard OUT Parameters :
3192: -- p_api_version IN NUMBER Required
3193: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
3194: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
3195: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
3196: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
3197: -- p_module_type IN VARCHAR2 Default NULL.
3198: --
3199: -- Standard OUT Parameters :
3200: -- x_return_status OUT VARCHAR2 Required
3211: -- End of Comments.
3212:
3213: PROCEDURE Process_Resrc_Assign (
3214: p_api_version IN NUMBER,
3215: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
3216: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
3217: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
3218: p_module_type IN VARCHAR2 := NULL,
3219: p_operation_flag IN VARCHAR2,
3212:
3213: PROCEDURE Process_Resrc_Assign (
3214: p_api_version IN NUMBER,
3215: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
3216: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
3217: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
3218: p_module_type IN VARCHAR2 := NULL,
3219: p_operation_flag IN VARCHAR2,
3220: p_x_resrc_assign_tbl IN OUT NOCOPY AHL_PP_RESRC_ASSIGN_PVT.Resrc_Assign_Tbl_Type,
3213: PROCEDURE Process_Resrc_Assign (
3214: p_api_version IN NUMBER,
3215: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
3216: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
3217: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
3218: p_module_type IN VARCHAR2 := NULL,
3219: p_operation_flag IN VARCHAR2,
3220: p_x_resrc_assign_tbl IN OUT NOCOPY AHL_PP_RESRC_ASSIGN_PVT.Resrc_Assign_Tbl_Type,
3221: x_return_status OUT NOCOPY VARCHAR2,
3243: IF G_DEBUG='Y' THEN
3244: AHL_DEBUG_PUB.debug( 'Enter AHL_PP_RESRC_ASSIGN.process_resrc_assign','+PPResrc_Assign_Pvt+');
3245: END IF;
3246: -- Standard call to check for call compatibility.
3247: IF FND_API.to_boolean(p_init_msg_list)
3248: THEN
3249: FND_MSG_PUB.initialize;
3250: END IF;
3251:
3249: FND_MSG_PUB.initialize;
3250: END IF;
3251:
3252: -- Initialize API return status to success
3253: x_return_status := FND_API.G_RET_STS_SUCCESS;
3254:
3255: -- Initialize message list if p_init_msg_list is set to TRUE.
3256: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
3257: p_api_version,
3252: -- Initialize API return status to success
3253: x_return_status := FND_API.G_RET_STS_SUCCESS;
3254:
3255: -- Initialize message list if p_init_msg_list is set to TRUE.
3256: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
3257: p_api_version,
3258: l_api_name,G_PKG_NAME)
3259: THEN
3260: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3256: IF NOT FND_API.COMPATIBLE_API_CALL(l_api_version,
3257: p_api_version,
3258: l_api_name,G_PKG_NAME)
3259: THEN
3260: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3261: END IF;
3262:
3263: --------------------Start of API Body-----------------------------------
3264: IF p_x_resrc_assign_tbl.COUNT > 0 THEN
3323: l_msg_count := Fnd_Msg_Pub.count_msg;
3324:
3325: IF l_msg_count > 0 THEN
3326: x_msg_count := l_msg_count;
3327: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3328: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3329: END IF;
3330:
3331: --Standard check for commit
3324:
3325: IF l_msg_count > 0 THEN
3326: x_msg_count := l_msg_count;
3327: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
3328: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3329: END IF;
3330:
3331: --Standard check for commit
3332: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
3328: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
3329: END IF;
3330:
3331: --Standard check for commit
3332: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
3333: COMMIT;
3334: END IF;
3335:
3336: -- Debug info
3342: Ahl_Debug_Pub.disable_debug;
3343: END IF;
3344:
3345: EXCEPTION
3346: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3347: ROLLBACK TO Process_Resrc_Assign;
3348: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3349: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3350: p_count => x_msg_count,
3344:
3345: EXCEPTION
3346: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3347: ROLLBACK TO Process_Resrc_Assign;
3348: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3349: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3350: p_count => x_msg_count,
3351: p_data => x_msg_data);
3352: IF G_DEBUG='Y' THEN
3345: EXCEPTION
3346: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3347: ROLLBACK TO Process_Resrc_Assign;
3348: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3349: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3350: p_count => x_msg_count,
3351: p_data => x_msg_data);
3352: IF G_DEBUG='Y' THEN
3353: AHL_DEBUG_PUB.log_app_messages (
3355: -- Check if API is called in debug mode. If yes, disable debug.
3356: AHL_DEBUG_PUB.disable_debug;
3357: END IF;
3358:
3359: WHEN FND_API.G_EXC_ERROR THEN
3360: ROLLBACK TO Process_Resrc_Assign;
3361: X_return_status := FND_API.G_RET_STS_ERROR;
3362: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3363: p_count => x_msg_count,
3357: END IF;
3358:
3359: WHEN FND_API.G_EXC_ERROR THEN
3360: ROLLBACK TO Process_Resrc_Assign;
3361: X_return_status := FND_API.G_RET_STS_ERROR;
3362: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3363: p_count => x_msg_count,
3364: p_data => X_msg_data);
3365: IF G_DEBUG='Y' THEN
3358:
3359: WHEN FND_API.G_EXC_ERROR THEN
3360: ROLLBACK TO Process_Resrc_Assign;
3361: X_return_status := FND_API.G_RET_STS_ERROR;
3362: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3363: p_count => x_msg_count,
3364: p_data => X_msg_data);
3365: IF G_DEBUG='Y' THEN
3366: -- Debug info.
3370: AHL_DEBUG_PUB.disable_debug;
3371: END IF;
3372: WHEN OTHERS THEN
3373: ROLLBACK TO Process_Resrc_Assign;
3374: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3375: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3376: THEN
3377: FND_MSG_PUB.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
3378: p_procedure_name => 'Process_Resrc_Assign',
3377: FND_MSG_PUB.add_exc_msg(p_pkg_name => 'AHL_PP_RESRC_ASSIGN_PVT',
3378: p_procedure_name => 'Process_Resrc_Assign',
3379: p_error_text => SUBSTR(SQLERRM,1,240));
3380: END IF;
3381: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
3382: p_count => x_msg_count,
3383: p_data => X_msg_data);
3384: IF G_DEBUG='Y' THEN
3385: -- Debug info.