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
338: x_msg_data =>l_msg_data);
339: END IF ;
340: IF p_object_Version_number is null or p_object_Version_number=FND_API.G_MISS_NUM
341: THEN
342: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJ_VERSION_NULL');
343: FND_MSG_PUB.ADD;
344: END IF;
345:
346: IF p_source_operation_id is null or p_source_operation_id=FND_API.G_MISS_NUM
344: END IF;
345:
346: IF p_source_operation_id is null or p_source_operation_id=FND_API.G_MISS_NUM
347: THEN
348: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJECT_ID_NULL');
349: FND_MSG_PUB.ADD;
350: ELSE
351: OPEN get_oper_Det(p_source_operation_id);
352: FETCH get_oper_Det INTO l_oper_Rec;
358: l_oper_rec.revision_status_code='APPROVAL_REJECTED'
359: THEN
360: l_upd_status := 'APPROVAL_PENDING';
361: ELSE
362: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_DRFT');
363: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
364: FND_MSG_PUB.ADD;
365: END IF;
366:
359: THEN
360: l_upd_status := 'APPROVAL_PENDING';
361: ELSE
362: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_DRFT');
363: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
364: FND_MSG_PUB.ADD;
365: END IF;
366:
367: AHL_RM_ROUTE_UTIL.Validate_rt_oper_start_date
375: );
376:
377: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
378: THEN
379: FND_MESSAGE.SET_NAME('AHL',l_msg);
380: FND_MESSAGE.set_token('FIELD',l_start_Date);
381: FND_MSG_PUB.ADD;
382: IF G_DEBUG='Y' THEN
383: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
376:
377: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
378: THEN
379: FND_MESSAGE.SET_NAME('AHL',l_msg);
380: FND_MESSAGE.set_token('FIELD',l_start_Date);
381: FND_MSG_PUB.ADD;
382: IF G_DEBUG='Y' THEN
383: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
384: END IF;
383: AHL_DEBUG_PUB.debug( 'AHL_rm_util.Validate_rt_oper_start_date','+OPER+');
384: END IF;
385: ELSIF TRUNC(l_oper_rec.START_DATE_ACTIVE)
387: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
388: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
389: FND_MSG_PUB.ADD;
390: END IF;
391: ELSIF p_apprvl_type = 'TERMINATE'
384: END IF;
385: ELSIF TRUNC(l_oper_rec.START_DATE_ACTIVE)
387: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
388: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
389: FND_MSG_PUB.ADD;
390: END IF;
391: ELSIF p_apprvl_type = 'TERMINATE'
392: THEN
397:
398: IF ( l_enig_op_id is not null)
399: THEN
400: --if the operation is from enigma do not allow termination.
401: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_ENIG_TERM');
402: FND_MSG_PUB.ADD;
403:
404: END IF;
405: --bachandr Enigma Phase I changes -- end
408: l_oper_rec.revision_status_code = 'TERMINATED'
409: )
410: THEN
411: -- if the operation is terminated
412: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_INV_TERMT');
413: FND_MSG_PUB.ADD;
414:
415: ELSIF
416: (
420: l_oper_rec.revision_status_code = 'COMPLETE'
421: )
422: THEN
423: -- if the operation is coplete and end dated.
424: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OPER_INACTIVE');
425: FND_MSG_PUB.ADD;
426: ELSE
427: -- for all other cases throw all errors;
428: IF l_oper_rec.revision_status_code='COMPLETE' or
436: AND REVISION_NUMBER=l_oper_Rec.revision_number+1;
437:
438: IF l_counter>0
439: THEN
440: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_C_TERM');
441: FND_MSG_PUB.ADD;
442: END IF;
443: ELSE
444: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
440: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_C_TERM');
441: FND_MSG_PUB.ADD;
442: END IF;
443: ELSE
444: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
445: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
446: FND_MSG_PUB.ADD;
447: END IF;
448: END IF;
441: FND_MSG_PUB.ADD;
442: END IF;
443: ELSE
444: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OP_STAT_NOT_COMP');
445: FND_MESSAGE.set_token('FIELD',l_oper_rec.concatenated_Segments,false);
446: FND_MSG_PUB.ADD;
447: END IF;
448: END IF;
449: END IF;
468: and OBJECT_VERSION_NUMBER=p_object_Version_number;
469:
470: IF sql%rowcount=0
471: THEN
472: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
473: FND_MSG_PUB.ADD;
474: END IF;
475:
476: Update AHL_OPERATIONS_TL
478: Where OPERATION_ID=p_source_operation_id;
479:
480: IF sql%rowcount=0
481: THEN
482: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
483: FND_MSG_PUB.ADD;
484: END IF;
485:
486: AHL_GENERIC_APRV_PVT.START_WF_PROCESS(
505:
506:
507: IF sql%rowcount=0
508: THEN
509: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
510: FND_MSG_PUB.ADD;
511: END IF;
512: COMPLETE_OPER_REVISION
513: (
685: END IF ;
686:
687: IF p_object_Version_number is null or p_object_Version_number=FND_API.G_MISS_NUM
688: THEN
689: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJ_VERSION_NULL');
690: FND_MSG_PUB.ADD;
691: END IF;
692:
693: IF p_source_route_id is null or p_source_route_id=FND_API.G_MISS_NUM
691: END IF;
692:
693: IF p_source_route_id is null or p_source_route_id=FND_API.G_MISS_NUM
694: THEN
695: FND_MESSAGE.SET_NAME('AHL','AHL_RM_OBJECT_ID_NULL');
696: FND_MSG_PUB.ADD;
697: ELSE
698: OPEN get_route_det(p_source_route_id);
699: FETCH get_route_det INTO l_route_rec;
711: );
712:
713: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
714: THEN
715: FND_MESSAGE.SET_NAME('AHL',l_msg);
716: FND_MESSAGE.set_token('FIELD',l_start_Date);
717: FND_MSG_PUB.ADD;
718: IF G_DEBUG='Y' THEN
719: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
712:
713: IF l_return_status <> FND_API.G_RET_STS_SUCCESS
714: THEN
715: FND_MESSAGE.SET_NAME('AHL',l_msg);
716: FND_MESSAGE.set_token('FIELD',l_start_Date);
717: FND_MSG_PUB.ADD;
718: IF G_DEBUG='Y' THEN
719: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
720: END IF;
719: AHL_DEBUG_PUB.debug('AHL_rm_util.Validate_rt_oper_start_date','+ROUTE+');
720: END IF;
721: ELSIF TRUNC(l_route_rec.START_DATE_ACTIVE)
723: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
724: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
725: FND_MSG_PUB.ADD;
726: END IF;
727:
720: END IF;
721: ELSIF TRUNC(l_route_rec.START_DATE_ACTIVE)
723: FND_MESSAGE.SET_NAME('AHL','AHL_RM_INVALID_ST_DATE');
724: FND_MESSAGE.set_token('FIELD',TRUNC(sysdate));
725: FND_MSG_PUB.ADD;
726: END IF;
727:
728: IF l_route_rec.revision_Status_code = 'DRAFT' or
729: l_route_rec.revision_Status_code='APPROVAL_REJECTED'
730: THEN
731: l_upd_status := 'APPROVAL_PENDING';
732: ELSE
733: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_DRFT');
734: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
735: FND_MSG_PUB.ADD;
736: END IF;
737:
730: THEN
731: l_upd_status := 'APPROVAL_PENDING';
732: ELSE
733: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_DRFT');
734: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
735: FND_MSG_PUB.ADD;
736: END IF;
737:
738: --bachandr Enigma Phase I changes -- start
739: -- When the workflow type is approve , check if time span is entered as it is mandatory for
740: -- approval flow. If not throw an error.
741: IF l_route_rec.time_span is null or l_route_rec.time_span =FND_API.G_MISS_NUM
742: THEN
743: FND_MESSAGE.SET_NAME('AHL','AHL_RM_TIME_SPAN_NULL');
744: FND_MSG_PUB.ADD;
745: END IF;
746: --bachandr Enigma Phase I changes -- end
747:
755:
756: IF ( l_enigma_doc_id is not null)
757: THEN
758: --if the route is from enigma do not allow termination.
759: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_ENIG_TERM');
760: FND_MSG_PUB.ADD;
761: END IF;
762: --bachandr Enigma Phase I changes -- end
763:
769: l_route_rec.revision_status_code = 'TERMINATED'
770: )
771: THEN
772: -- if the Route is TERMINATED
773: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_INV_TERMT');
774: FND_MSG_PUB.ADD;
775: ELSIF
776: (
777: (l_route_rec.END_DATE_ACTIVE IS NOT NULL OR
781: l_route_rec.revision_status_code = 'COMPLETE'
782: )
783: THEN
784: -- if the Route is COMPLETE and End Dated.
785: FND_MESSAGE.SET_NAME('AHL','AHL_RM_ROUTE_INACTIVE');
786: FND_MSG_PUB.ADD;
787: ELSE
788: -- for all other cases throw all errors
789:
802: b.application_usg_code = rtrim(ltrim(fnd_profile.value('AHL_APPLN_USAGE'))) and
803: trunc(nvl(b.effective_to,sysdate)) >= trunc(sysdate);
804: IF l_counter>0
805: THEN
806: FND_MESSAGE.SET_NAME('AHL','AHL_RM_MR_C_TERM');
807: FND_MSG_PUB.ADD;
808: END IF;
809:
810: IF l_route_rec.revision_status_code ='COMPLETE' or
816: AND REVISION_NUMBER=l_route_Rec.revision_number+1;
817:
818: IF l_counter>0
819: THEN
820: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RT_C_TERM');
821: FND_MSG_PUB.ADD;
822: END IF;
823:
824: l_upd_status := 'TERMINATION_PENDING';
822: END IF;
823:
824: l_upd_status := 'TERMINATION_PENDING';
825: ELSE
826: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_COMP');
827: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
828: FND_MSG_PUB.ADD;
829: END IF;
830: END IF;
823:
824: l_upd_status := 'TERMINATION_PENDING';
825: ELSE
826: FND_MESSAGE.SET_NAME('AHL','AHL_RM_RO_STAT_NOT_COMP');
827: FND_MESSAGE.set_token('FIELD',l_route_rec.route_no);
828: FND_MSG_PUB.ADD;
829: END IF;
830: END IF;
831: END IF;
849: and OBJECT_VERSION_NUMBER=p_object_Version_number;
850:
851: IF sql%rowcount=0
852: THEN
853: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
854: FND_MSG_PUB.ADD;
855: END IF ;
856:
857: UPDATE AHL_ROUTES_TL
859: WHERE ROUTE_ID=p_source_route_id;
860:
861: IF sql%rowcount=0
862: THEN
863: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
864: FND_MSG_PUB.ADD;
865: END IF ;
866:
867:
888: and OBJECT_VERSION_NUMBER=p_object_Version_number;
889:
890: IF sql%rowcount=0
891: THEN
892: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
893: FND_MSG_PUB.ADD;
894:
895: END IF;
896: