101: OPEN CurRouteDet;
102: FETCH CurRouteDet INTO l_route_rec;
103: CLOSE CurRouteDet;
104:
105: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERMINATE_NTF_SUB');
106: FND_MESSAGE.set_token('ROUTE',l_route_Rec.ROUTE_NO,false);
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
102: FETCH CurRouteDet INTO l_route_rec;
103: CLOSE CurRouteDet;
104:
105: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERMINATE_NTF_SUB');
106: FND_MESSAGE.set_token('ROUTE',l_route_Rec.ROUTE_NO,false);
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
110: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERM_NTF_CONTENT');
103: CLOSE CurRouteDet;
104:
105: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERMINATE_NTF_SUB');
106: FND_MESSAGE.set_token('ROUTE',l_route_Rec.ROUTE_NO,false);
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
110: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERM_NTF_CONTENT');
111: l_body:=l_subject||'-'||fnd_message.get;
104:
105: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERMINATE_NTF_SUB');
106: FND_MESSAGE.set_token('ROUTE',l_route_Rec.ROUTE_NO,false);
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
110: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERM_NTF_CONTENT');
111: l_body:=l_subject||'-'||fnd_message.get;
112:
106: FND_MESSAGE.set_token('ROUTE',l_route_Rec.ROUTE_NO,false);
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
110: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERM_NTF_CONTENT');
111: l_body:=l_subject||'-'||fnd_message.get;
112:
113:
114: FOR l_visit_rec in CurRoute
107: FND_MESSAGE.set_token('REVISION',l_route_Rec.REVISION_NUMBER, false);
108: l_subject:=fnd_message.get;
109:
110: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_TERM_NTF_CONTENT');
111: l_body:=l_subject||'-'||fnd_message.get;
112:
113:
114: FOR l_visit_rec in CurRoute
115: LOOP
154: FETCH CurOperDet INTO l_Oper_rec;
155: CLOSE CurOperDet;
156:
157:
158: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERMINATE_NTF_SUB');
159: FND_MESSAGE.set_token('SEGMENT_COMB',l_oper_rec.concatenated_segments,false);
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
155: CLOSE CurOperDet;
156:
157:
158: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERMINATE_NTF_SUB');
159: FND_MESSAGE.set_token('SEGMENT_COMB',l_oper_rec.concatenated_segments,false);
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
163: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERM_NTF_CONTENT');
156:
157:
158: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERMINATE_NTF_SUB');
159: FND_MESSAGE.set_token('SEGMENT_COMB',l_oper_rec.concatenated_segments,false);
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
163: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERM_NTF_CONTENT');
164: l_body:=l_subject||'-'||fnd_message.get;
157:
158: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERMINATE_NTF_SUB');
159: FND_MESSAGE.set_token('SEGMENT_COMB',l_oper_rec.concatenated_segments,false);
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
163: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERM_NTF_CONTENT');
164: l_body:=l_subject||'-'||fnd_message.get;
165:
159: FND_MESSAGE.set_token('SEGMENT_COMB',l_oper_rec.concatenated_segments,false);
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
163: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERM_NTF_CONTENT');
164: l_body:=l_subject||'-'||fnd_message.get;
165:
166:
167:
160: FND_MESSAGE.set_token('REVISION',l_oper_Rec.REVISION_NUMBER, false);
161: l_subject:=fnd_message.get;
162:
163: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_TERM_NTF_CONTENT');
164: l_body:=l_subject||'-'||fnd_message.get;
165:
166:
167:
168: FOR l_visit_rec in CurOper
374: CLOSE get_asso_active_routes;
375:
376: IF l_route_id IS NOT NULL
377: THEN
378: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_DUR_GT_ROU');
379: FND_MESSAGE.set_token('DURATION',l_op_duration);
380: FND_MSG_PUB.ADD;
381: END IF;
382: -- Bug # 8639648 -- end
375:
376: IF l_route_id IS NOT NULL
377: THEN
378: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_DUR_GT_ROU');
379: FND_MESSAGE.set_token('DURATION',l_op_duration);
380: FND_MSG_PUB.ADD;
381: END IF;
382: -- Bug # 8639648 -- end
383:
394: x_msg_data =>l_msg_data);
395: END IF ;
396: IF p_object_Version_number is null or p_object_Version_number=FND_API.G_MISS_NUM
397: THEN
398: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJ_VERSION_NULL');
399: FND_MSG_PUB.ADD;
400: END IF;
401:
402: IF p_source_operation_id is null or p_source_operation_id=FND_API.G_MISS_NUM
400: END IF;
401:
402: IF p_source_operation_id is null or p_source_operation_id=FND_API.G_MISS_NUM
403: THEN
404: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJECT_ID_NULL');
405: FND_MSG_PUB.ADD;
406: ELSE
407: OPEN get_oper_Det(p_source_operation_id);
408: FETCH get_oper_Det INTO l_oper_Rec;
414: l_oper_rec.revision_status_code='APPROVAL_REJECTED'
415: THEN
416: l_upd_status := 'APPROVAL_PENDING';
417: ELSE
418: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_DRFT');
419: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
420: FND_MSG_PUB.ADD;
421: END IF;
422:
415: THEN
416: l_upd_status := 'APPROVAL_PENDING';
417: ELSE
418: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_DRFT');
419: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
420: FND_MSG_PUB.ADD;
421: END IF;
422:
423: AHL_RM_ROUTE_UTIL.Validate_rt_oper_start_date
431: );
432:
433: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
434: THEN
435: FND_MESSAGE.SET_NAME('AHL',l_msg);
436: FND_MESSAGE.set_token('FIELD',l_start_Date);
437: FND_MSG_PUB.ADD;
438: IF G_DEBUG='Y' THEN
439: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
432:
433: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
434: THEN
435: FND_MESSAGE.SET_NAME('AHL',l_msg);
436: FND_MESSAGE.set_token('FIELD',l_start_Date);
437: FND_MSG_PUB.ADD;
438: IF G_DEBUG='Y' THEN
439: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
440: END IF;
439: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
440: END IF;
441: ELSIF TRUNC(l_oper_rec.START_DATE_ACTIVE)
443: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
444: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
445: FND_MSG_PUB.ADD;
446: END IF;
447: ELSIF p_apprvl_type = 'TERMINATE'
440: END IF;
441: ELSIF TRUNC(l_oper_rec.START_DATE_ACTIVE)
443: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
444: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
445: FND_MSG_PUB.ADD;
446: END IF;
447: ELSIF p_apprvl_type = 'TERMINATE'
448: THEN
453:
454: IF ( l_enig_op_id is not null)
455: THEN
456: --if the operation is from enigma do not allow termination.
457: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_ENIG_TERM');
458: FND_MSG_PUB.ADD;
459:
460: END IF;
461: --bachandr Enigma Phase I changes -- end
464: l_oper_rec.revision_status_code = 'TERMINATED'
465: )
466: THEN
467: -- if the operation is terminated
468: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_INV_TERMT');
469: FND_MSG_PUB.ADD;
470:
471: ELSIF
472: (
476: l_oper_rec.revision_status_code = 'COMPLETE'
477: )
478: THEN
479: -- if the operation is coplete and end dated.
480: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_INACTIVE');
481: FND_MSG_PUB.ADD;
482: ELSE
483: -- for all other cases throw all errors;
484: IF l_oper_rec.revision_status_code='COMPLETE' or
492: AND REVISION_NUMBER=l_oper_Rec.revision_number+1;
493:
494: IF l_counter>0
495: THEN
496: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_C_TERM');
497: FND_MSG_PUB.ADD;
498: END IF;
499: ELSE
500: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
496: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_C_TERM');
497: FND_MSG_PUB.ADD;
498: END IF;
499: ELSE
500: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
501: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
502: FND_MSG_PUB.ADD;
503: END IF;
504: END IF;
497: FND_MSG_PUB.ADD;
498: END IF;
499: ELSE
500: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
501: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
502: FND_MSG_PUB.ADD;
503: END IF;
504: END IF;
505: END IF;
524: and OBJECT_VERSION_NUMBER=p_object_Version_number;
525:
526: IF sql%rowcount=0
527: THEN
528: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
529: FND_MSG_PUB.ADD;
530: END IF;
531:
532: Update AHL_OPERATIONS_TL
534: Where OPERATION_ID=p_source_operation_id;
535:
536: IF sql%rowcount=0
537: THEN
538: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
539: FND_MSG_PUB.ADD;
540: END IF;
541:
542: AHL_GENERIC_APRV_PVT.START_WF_PROCESS(
561:
562:
563: IF sql%rowcount=0
564: THEN
565: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
566: FND_MSG_PUB.ADD;
567: END IF;
568: COMPLETE_OPER_REVISION
569: (
742: END IF ;
743:
744: IF p_object_Version_number is null or p_object_Version_number=FND_API.G_MISS_NUM
745: THEN
746: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJ_VERSION_NULL');
747: FND_MSG_PUB.ADD;
748: END IF;
749:
750: IF p_source_route_id is null or p_source_route_id=FND_API.G_MISS_NUM
748: END IF;
749:
750: IF p_source_route_id is null or p_source_route_id=FND_API.G_MISS_NUM
751: THEN
752: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJECT_ID_NULL');
753: FND_MSG_PUB.ADD;
754: ELSE
755: OPEN get_route_det(p_source_route_id);
756: FETCH get_route_det INTO l_route_rec;
768: );
769:
770: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
771: THEN
772: FND_MESSAGE.SET_NAME('AHL',l_msg);
773: FND_MESSAGE.set_token('FIELD',l_start_Date);
774: FND_MSG_PUB.ADD;
775: IF G_DEBUG='Y' THEN
776: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
769:
770: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
771: THEN
772: FND_MESSAGE.SET_NAME('AHL',l_msg);
773: FND_MESSAGE.set_token('FIELD',l_start_Date);
774: FND_MSG_PUB.ADD;
775: IF G_DEBUG='Y' THEN
776: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
777: END IF;
776: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
777: END IF;
778: ELSIF TRUNC(l_route_rec.START_DATE_ACTIVE)
780: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
781: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
782: FND_MSG_PUB.ADD;
783: END IF;
784:
777: END IF;
778: ELSIF TRUNC(l_route_rec.START_DATE_ACTIVE)
780: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
781: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
782: FND_MSG_PUB.ADD;
783: END IF;
784:
785: IF l_route_rec.revision_Status_code = 'DRAFT' or
786: l_route_rec.revision_Status_code='APPROVAL_REJECTED'
787: THEN
788: l_upd_status := 'APPROVAL_PENDING';
789: ELSE
790: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_DRFT');
791: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
792: FND_MSG_PUB.ADD;
793: END IF;
794:
787: THEN
788: l_upd_status := 'APPROVAL_PENDING';
789: ELSE
790: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_DRFT');
791: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
792: FND_MSG_PUB.ADD;
793: END IF;
794:
795: --bachandr Enigma Phase I changes -- start
796: -- When the workflow type is approve , check if time span is entered as it is mandatory for
797: -- approval flow. If not throw an error.
798: IF l_route_rec.time_span is null or l_route_rec.time_span =FND_API.G_MISS_NUM
799: THEN
800: FND_MESSAGE.SET_NAME('AHL','AHL_RM_TIME_SPAN_NULL');
801: FND_MSG_PUB.ADD;
802: END IF;
803: --bachandr Enigma Phase I changes -- end
804:
813:
814: IF ( l_enigma_route_id is not null)
815: THEN
816: --if the route is from enigma do not allow termination.
817: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_ENIG_TERM');
818: FND_MSG_PUB.ADD;
819: END IF;
820: --bachandr Enigma Phase I changes -- end
821:
827: l_route_rec.revision_status_code = 'TERMINATED'
828: )
829: THEN
830: -- if the Route is TERMINATED
831: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_INV_TERMT');
832: FND_MSG_PUB.ADD;
833: ELSIF
834: (
835: (l_route_rec.END_DATE_ACTIVE IS NOT NULL OR
839: l_route_rec.revision_status_code = 'COMPLETE'
840: )
841: THEN
842: -- if the Route is COMPLETE and End Dated.
843: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_INACTIVE');
844: FND_MSG_PUB.ADD;
845: ELSE
846: -- for all other cases throw all errors
847:
860: b.application_usg_code = rtrim(ltrim(fnd_profile.value('AHL_APPLN_USAGE'))) and
861: trunc(nvl(b.effective_to,sysdate)) >= trunc(sysdate);
862: IF l_counter>0
863: THEN
864: FND_MESSAGE.SET_NAME('AHL','AHL_RM_MR_C_TERM');
865: FND_MSG_PUB.ADD;
866: END IF;
867:
868: IF l_route_rec.revision_status_code ='COMPLETE' or
874: AND REVISION_NUMBER=l_route_Rec.revision_number+1;
875:
876: IF l_counter>0
877: THEN
878: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RT_C_TERM');
879: FND_MSG_PUB.ADD;
880: END IF;
881:
882: l_upd_status := 'TERMINATION_PENDING';
880: END IF;
881:
882: l_upd_status := 'TERMINATION_PENDING';
883: ELSE
884: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_COMP');
885: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
886: FND_MSG_PUB.ADD;
887: END IF;
888: END IF;
881:
882: l_upd_status := 'TERMINATION_PENDING';
883: ELSE
884: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_COMP');
885: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
886: FND_MSG_PUB.ADD;
887: END IF;
888: END IF;
889: END IF;
907: and OBJECT_VERSION_NUMBER=p_object_Version_number;
908:
909: IF sql%rowcount=0
910: THEN
911: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
912: FND_MSG_PUB.ADD;
913: END IF ;
914:
915: UPDATE AHL_ROUTES_TL
917: WHERE ROUTE_ID=p_source_route_id;
918:
919: IF sql%rowcount=0
920: THEN
921: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
922: FND_MSG_PUB.ADD;
923: END IF ;
924:
925:
946: and OBJECT_VERSION_NUMBER=p_object_Version_number;
947:
948: IF sql%rowcount=0
949: THEN
950: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
951: FND_MSG_PUB.ADD;
952:
953: END IF;
954: