88: -- Get a particular Stage Records with all details
89: --------------------------------------------------------------------
90: PROCEDURE Get_Stages_Details (
91: p_api_version IN NUMBER,
92: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
93: p_commit IN VARCHAR2 := Fnd_Api.g_false,
94: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
95: p_module_type IN VARCHAR2 := 'JSP',
96: p_visit_id IN NUMBER,
89: --------------------------------------------------------------------
90: PROCEDURE Get_Stages_Details (
91: p_api_version IN NUMBER,
92: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
93: p_commit IN VARCHAR2 := Fnd_Api.g_false,
94: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
95: p_module_type IN VARCHAR2 := 'JSP',
96: p_visit_id IN NUMBER,
97: p_start_row IN NUMBER,
90: PROCEDURE Get_Stages_Details (
91: p_api_version IN NUMBER,
92: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
93: p_commit IN VARCHAR2 := Fnd_Api.g_false,
94: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
95: p_module_type IN VARCHAR2 := 'JSP',
96: p_visit_id IN NUMBER,
97: p_start_row IN NUMBER,
98: p_rows_per_page IN NUMBER,
166: AHL_DEBUG_PUB.debug( l_full_name ||':*****Start*****');
167: END IF;
168: END IF;
169:
170: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
171: Fnd_Msg_Pub.initialize;
172: END IF;
173:
174: -- Initialize API return status to success
171: Fnd_Msg_Pub.initialize;
172: END IF;
173:
174: -- Initialize API return status to success
175: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
176:
177: -- Standard call to check for call compatibility.
178: IF NOT Fnd_Api.compatible_api_call(
179: l_api_version,
174: -- Initialize API return status to success
175: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
176:
177: -- Standard call to check for call compatibility.
178: IF NOT Fnd_Api.compatible_api_call(
179: l_api_version,
180: p_api_version,
181: l_api_name,
182: G_PKG_NAME
180: p_api_version,
181: l_api_name,
182: G_PKG_NAME
183: ) THEN
184: RAISE Fnd_Api.g_exc_unexpected_error;
185: END IF;
186:
187:
188:
247: END LOOP;
248: END IF; --start and dept not null
249: -- Modified by amagrawa as per review comments.
250: x_row_count := l_stages_tbl.count;
251: -- x_return_status := FND_API.G_RET_STS_SUCCESS;
252:
253: --------------------------
254: x_stages_tbl := l_stages_tbl;
255:
257: -- Standard call to get message count and if count is 1, get message info
258: Fnd_Msg_Pub.Count_And_Get
259: ( p_count => x_msg_count,
260: p_data => x_msg_data,
261: p_encoded => Fnd_Api.g_false);
262:
263: -- Check if API is called in debug mode. If yes, enable debug.
264: IF G_DEBUG='Y' THEN
265: AHL_DEBUG_PUB.enable_debug;
279: END IF;
280: RETURN;
281:
282: EXCEPTION
283: WHEN Fnd_Api.G_EXC_ERROR THEN
284: x_return_status := Fnd_Api.G_RET_STS_ERROR;
285: ROLLBACK TO Get_Stages_Details;
286: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
287: p_data => x_msg_data,
280: RETURN;
281:
282: EXCEPTION
283: WHEN Fnd_Api.G_EXC_ERROR THEN
284: x_return_status := Fnd_Api.G_RET_STS_ERROR;
285: ROLLBACK TO Get_Stages_Details;
286: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
287: p_data => x_msg_data,
288: p_encoded => Fnd_Api.g_false);
284: x_return_status := Fnd_Api.G_RET_STS_ERROR;
285: ROLLBACK TO Get_Stages_Details;
286: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
287: p_data => x_msg_data,
288: p_encoded => Fnd_Api.g_false);
289: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
290: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
291: ROLLBACK TO Get_Stages_Details;
292: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
285: ROLLBACK TO Get_Stages_Details;
286: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
287: p_data => x_msg_data,
288: p_encoded => Fnd_Api.g_false);
289: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
290: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
291: ROLLBACK TO Get_Stages_Details;
292: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
293: p_data => x_msg_data,
286: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
287: p_data => x_msg_data,
288: p_encoded => Fnd_Api.g_false);
289: WHEN Fnd_Api.G_EXC_UNEXPECTED_ERROR THEN
290: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
291: ROLLBACK TO Get_Stages_Details;
292: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
293: p_data => x_msg_data,
294: p_encoded => Fnd_Api.g_false);
290: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
291: ROLLBACK TO Get_Stages_Details;
292: Fnd_Msg_Pub.count_and_get( p_count => x_msg_count,
293: p_data => x_msg_data,
294: p_encoded => Fnd_Api.g_false);
295: WHEN OTHERS THEN
296: ROLLBACK TO Get_Stages_Details;
297: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
298: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
293: p_data => x_msg_data,
294: p_encoded => Fnd_Api.g_false);
295: WHEN OTHERS THEN
296: ROLLBACK TO Get_Stages_Details;
297: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
298: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
299: THEN
300: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
301: END IF;
299: THEN
300: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
301: END IF;
302: Fnd_Msg_Pub.count_and_get (
303: p_encoded => Fnd_Api.g_false,
304: p_count => x_msg_count,
305: p_data => x_msg_data );
306:
307:
318: -- will be called by create_visit and only the visit_id is passed.
319: --------------------------------------------------------------------
320: PROCEDURE Create_Stages (
321: p_api_version IN NUMBER,
322: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
323: p_commit IN VARCHAR2 := Fnd_Api.g_false,
324: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
325: p_module_type IN VARCHAR2 := 'JSP',
326:
319: --------------------------------------------------------------------
320: PROCEDURE Create_Stages (
321: p_api_version IN NUMBER,
322: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
323: p_commit IN VARCHAR2 := Fnd_Api.g_false,
324: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
325: p_module_type IN VARCHAR2 := 'JSP',
326:
327: p_visit_id IN NUMBER,
320: PROCEDURE Create_Stages (
321: p_api_version IN NUMBER,
322: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
323: p_commit IN VARCHAR2 := Fnd_Api.g_false,
324: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
325: p_module_type IN VARCHAR2 := 'JSP',
326:
327: p_visit_id IN NUMBER,
328: x_return_status OUT NOCOPY VARCHAR2,
356: AHL_DEBUG_PUB.Debug( l_full_name ||': Start');
357: END IF;
358:
359: -- Initialize message list if p_init_msg_list is set to TRUE.
360: IF Fnd_Api.to_boolean(p_init_msg_list)
361: THEN
362: Fnd_Msg_Pub.initialize;
363: END IF;
364:
362: Fnd_Msg_Pub.initialize;
363: END IF;
364:
365: -- Initialize API return status to success
366: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
367:
368: -- Standard call to check for call compatibility.
369: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
370: p_api_version,
365: -- Initialize API return status to success
366: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
367:
368: -- Standard call to check for call compatibility.
369: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
370: p_api_version,
371: l_api_name,G_PKG_NAME)
372: THEN
373: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
369: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
370: p_api_version,
371: l_api_name,G_PKG_NAME)
372: THEN
373: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
374: END IF;
375:
376: ------------------------Start of API Body------------------------------------
377:
391:
392: --
393: -- Check for the ID.
394: --
395: IF (P_VISIT_ID = Fnd_Api.g_miss_num OR P_VISIT_ID IS Null)
396: THEN
397: Fnd_Message.SET_NAME('AHL','AHL_VWP_VISIT_INVALID');
398: Fnd_Msg_Pub.ADD;
399: END IF;
406: If l_stage_count is null
407: then
408: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_DEF');
409: Fnd_Msg_Pub.ADD;
410: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
411: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
412: ELSIF l_stage_count <= 0
413: then
414: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_GT_ZERO');
407: then
408: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_DEF');
409: Fnd_Msg_Pub.ADD;
410: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
411: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
412: ELSIF l_stage_count <= 0
413: then
414: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_GT_ZERO');
415: Fnd_Msg_Pub.ADD;
412: ELSIF l_stage_count <= 0
413: then
414: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_GT_ZERO');
415: Fnd_Msg_Pub.ADD;
416: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
417: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
418: ELSIF l_stage_count <> floor(l_stage_count)
419: then
420: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_INT');
413: then
414: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_GT_ZERO');
415: Fnd_Msg_Pub.ADD;
416: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
417: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
418: ELSIF l_stage_count <> floor(l_stage_count)
419: then
420: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_INT');
421: Fnd_Msg_Pub.ADD;
418: ELSIF l_stage_count <> floor(l_stage_count)
419: then
420: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_INT');
421: Fnd_Msg_Pub.ADD;
422: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
423: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
424: END IF;
425:
426:
419: then
420: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_PROFILE_NOT_INT');
421: Fnd_Msg_Pub.ADD;
422: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
423: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
424: END IF;
425:
426:
427: /* --Standard check to count messages
428: l_msg_count := Fnd_Msg_Pub.count_msg;
429:
430: IF l_msg_count > 0 THEN
431: x_msg_count := l_msg_count;
432: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
433: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
434: END IF;
435: */
436: IF G_DEBUG='Y' THEN
429:
430: IF l_msg_count > 0 THEN
431: x_msg_count := l_msg_count;
432: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
433: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
434: END IF;
435: */
436: IF G_DEBUG='Y' THEN
437: AHL_DEBUG_PUB.Debug( l_full_name ||':END VALIDATE');
492: l_msg_count := Fnd_Msg_Pub.count_msg;
493:
494: IF l_msg_count > 0 THEN
495: X_msg_count := l_msg_count;
496: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
497: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
498: END IF;
499:
500: --Standard check for commit
493:
494: IF l_msg_count > 0 THEN
495: X_msg_count := l_msg_count;
496: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
497: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
498: END IF;
499:
500: --Standard check for commit
501: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
497: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
498: END IF;
499:
500: --Standard check for commit
501: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
502: COMMIT;
503: END IF;
504:
505: IF G_DEBUG='Y' THEN
510: IF G_DEBUG='Y' THEN
511: Ahl_Debug_Pub.disable_debug;
512: END IF;
513: EXCEPTION
514: WHEN Fnd_Api.g_exc_error THEN
515: ROLLBACK TO Create_Stage;
516: x_return_status := Fnd_Api.g_ret_sts_error;
517: Fnd_Msg_Pub.count_and_get(
518: p_encoded => Fnd_Api.g_false,
512: END IF;
513: EXCEPTION
514: WHEN Fnd_Api.g_exc_error THEN
515: ROLLBACK TO Create_Stage;
516: x_return_status := Fnd_Api.g_ret_sts_error;
517: Fnd_Msg_Pub.count_and_get(
518: p_encoded => Fnd_Api.g_false,
519: p_count => x_msg_count,
520: p_data => x_msg_data
514: WHEN Fnd_Api.g_exc_error THEN
515: ROLLBACK TO Create_Stage;
516: x_return_status := Fnd_Api.g_ret_sts_error;
517: Fnd_Msg_Pub.count_and_get(
518: p_encoded => Fnd_Api.g_false,
519: p_count => x_msg_count,
520: p_data => x_msg_data
521: );
522: WHEN Fnd_Api.g_exc_unexpected_error THEN
518: p_encoded => Fnd_Api.g_false,
519: p_count => x_msg_count,
520: p_data => x_msg_data
521: );
522: WHEN Fnd_Api.g_exc_unexpected_error THEN
523: ROLLBACK TO Create_Stage;
524: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
525: Fnd_Msg_Pub.count_and_get (
526: p_encoded => Fnd_Api.g_false,
520: p_data => x_msg_data
521: );
522: WHEN Fnd_Api.g_exc_unexpected_error THEN
523: ROLLBACK TO Create_Stage;
524: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
525: Fnd_Msg_Pub.count_and_get (
526: p_encoded => Fnd_Api.g_false,
527: p_count => x_msg_count,
528: p_data => x_msg_data
522: WHEN Fnd_Api.g_exc_unexpected_error THEN
523: ROLLBACK TO Create_Stage;
524: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
525: Fnd_Msg_Pub.count_and_get (
526: p_encoded => Fnd_Api.g_false,
527: p_count => x_msg_count,
528: p_data => x_msg_data
529: );
530: WHEN OTHERS THEN
528: p_data => x_msg_data
529: );
530: WHEN OTHERS THEN
531: ROLLBACK TO Create_Stage;
532: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
533: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
534: THEN
535: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
536: END IF;
534: THEN
535: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
536: END IF;
537: Fnd_Msg_Pub.count_and_get (
538: p_encoded => Fnd_Api.g_false,
539: p_count => x_msg_count,
540: p_data => x_msg_data
541: );
542: END Create_StageS;
552: -- will be called by create_visit and only the visit_id is passed.
553: --------------------------------------------------------------------
554: PROCEDURE Update_Stages (
555: p_api_version IN NUMBER,
556: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
557: p_commit IN VARCHAR2 := Fnd_Api.g_false,
558: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
559: p_module_type IN VARCHAR2 := 'JSP',
560:
553: --------------------------------------------------------------------
554: PROCEDURE Update_Stages (
555: p_api_version IN NUMBER,
556: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
557: p_commit IN VARCHAR2 := Fnd_Api.g_false,
558: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
559: p_module_type IN VARCHAR2 := 'JSP',
560:
561: p_visit_id IN NUMBER,
554: PROCEDURE Update_Stages (
555: p_api_version IN NUMBER,
556: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
557: p_commit IN VARCHAR2 := Fnd_Api.g_false,
558: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
559: p_module_type IN VARCHAR2 := 'JSP',
560:
561: p_visit_id IN NUMBER,
562: p_x_stages_tbl IN OUT NOCOPY Visit_Stages_Tbl_Type,
615: AHL_DEBUG_PUB.Debug( l_full_name ||': Start');
616: END IF;
617:
618: -- Initialize message list if p_init_msg_list is set to TRUE.
619: IF Fnd_Api.to_boolean(p_init_msg_list)
620: THEN
621: Fnd_Msg_Pub.initialize;
622: END IF;
623:
621: Fnd_Msg_Pub.initialize;
622: END IF;
623:
624: -- Initialize API return status to success
625: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
626:
627: -- Standard call to check for call compatibility.
628: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
629: p_api_version,
624: -- Initialize API return status to success
625: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
626:
627: -- Standard call to check for call compatibility.
628: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
629: p_api_version,
630: l_api_name,G_PKG_NAME)
631: THEN
632: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
628: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
629: p_api_version,
630: l_api_name,G_PKG_NAME)
631: THEN
632: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
633: END IF;
634:
635: ------------------------Start of API Body------------------------------------
636:
636:
637: --
638: -- Check for the ID.
639: --
640: IF (P_VISIT_ID = Fnd_Api.g_miss_num OR P_VISIT_ID IS Null)
641: THEN
642: Fnd_Message.SET_NAME('AHL','AHL_VWP_VISIT_NOT_FOUND');
643: Fnd_Msg_Pub.ADD;
644: -- Added by amagrawa based on review commenst
641: THEN
642: Fnd_Message.SET_NAME('AHL','AHL_VWP_VISIT_NOT_FOUND');
643: Fnd_Msg_Pub.ADD;
644: -- Added by amagrawa based on review commenst
645: RAISE Fnd_Api.G_EXC_ERROR;
646: END IF;
647:
648:
649: --verify if visit status is planning or released or partially_released
654: Fnd_Message.SET_NAME('AHL','AHL_VWP_VISIT_STATUS_INV');
655: Fnd_Msg_Pub.ADD;
656: -- Added by amagrawa based on review commenst
657: close c_check_visit_status;
658: RAISE Fnd_Api.G_EXC_ERROR;
659: end if;
660: close c_check_visit_status;
661:
662: -- Commented by amagrawa as per review commenst.
664: l_msg_count := Fnd_Msg_Pub.count_msg;
665:
666: IF l_msg_count > 0 THEN
667: x_msg_count := l_msg_count;
668: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
669: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
670: END IF;
671: */
672: -------------------------- Update --------------------------
665:
666: IF l_msg_count > 0 THEN
667: x_msg_count := l_msg_count;
668: x_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
669: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
670: END IF;
671: */
672: -------------------------- Update --------------------------
673: IF G_DEBUG='Y' THEN
682: AHL_DEBUG_PUB.Debug( l_full_name ||':START VALIDATE');
683: END IF;
684:
685: -------------------------------- Validate -----------------------------------------
686: l_validate_status := Fnd_Api.G_RET_STS_SUCCESS;
687:
688: default_missing_attributes(p_x_stages_tbl(i));
689:
690:
696: x_msg_count => x_msg_count,
697: x_msg_data => x_msg_data
698: );
699: -- Added be amagrawa based on review comments
700: IF l_validate_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
701: RAISE Fnd_Api.G_EXC_ERROR;
702: END IF;
703:
704: IF G_DEBUG='Y' THEN
697: x_msg_data => x_msg_data
698: );
699: -- Added be amagrawa based on review comments
700: IF l_validate_status <> Fnd_Api.G_RET_STS_SUCCESS THEN
701: RAISE Fnd_Api.G_EXC_ERROR;
702: END IF;
703:
704: IF G_DEBUG='Y' THEN
705: AHL_DEBUG_PUB.Debug( l_full_name ||':END VALIDATE');
715: THEN
716: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_JOB_FIRM_REL');
717: Fnd_Message.SET_TOKEN('STAGE_NAME', p_x_stages_tbl(i).stage_name);
718: Fnd_Msg_Pub.ADD;
719: l_validate_status := Fnd_Api.G_RET_STS_ERROR;
720: END IF;
721: CLOSE C_JOB;
722: END IF;
723: /* Uncommented as per Stages test case STG14 : Removed by Senthil for TC */
722: END IF;
723: /* Uncommented as per Stages test case STG14 : Removed by Senthil for TC */
724:
725: ----------------------------- IF NO ERRORS UPDATE-----------------------------------------
726: if l_validate_status = Fnd_Api.G_RET_STS_SUCCESS
727: then
728: -- Invoke the table handler to update the record
729: --
730: Ahl_VWP_stages_Pkg.Update_Row (
759: AHL_DEBUG_PUB.Debug( l_full_name ||': STAGE Number =' || p_x_stages_tbl(i).stage_num);
760: END IF;
761: -- Added by amagrawa after review comments.
762: ELSE -- If validate_status is <> 'S'
763: RAISE Fnd_Api.G_EXC_ERROR;
764: END IF; -- end check of validate_status
765: END LOOP;
766:
767: ---------------------------End of API Body---------------------------------------
768:
769: -- Added cxcheng POST11510--------------
770: --Now adjust the times derivation for task
771: AHL_VWP_TIMES_PVT.Calculate_Task_Times(p_api_version => 1.0,
772: p_init_msg_list => Fnd_Api.G_FALSE,
773: p_commit => Fnd_Api.G_FALSE,
774: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
775: x_return_status => l_return_status,
776: x_msg_count => l_msg_count,
769: -- Added cxcheng POST11510--------------
770: --Now adjust the times derivation for task
771: AHL_VWP_TIMES_PVT.Calculate_Task_Times(p_api_version => 1.0,
772: p_init_msg_list => Fnd_Api.G_FALSE,
773: p_commit => Fnd_Api.G_FALSE,
774: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
775: x_return_status => l_return_status,
776: x_msg_count => l_msg_count,
777: x_msg_data => l_msg_data,
770: --Now adjust the times derivation for task
771: AHL_VWP_TIMES_PVT.Calculate_Task_Times(p_api_version => 1.0,
772: p_init_msg_list => Fnd_Api.G_FALSE,
773: p_commit => Fnd_Api.G_FALSE,
774: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
775: x_return_status => l_return_status,
776: x_msg_count => l_msg_count,
777: x_msg_data => l_msg_data,
778: p_visit_id => p_visit_id);
778: p_visit_id => p_visit_id);
779: -- Added by amagrawa based on review comments.
780: IF l_return_Status <>'S'
781: THEN
782: IF l_return_Status = FND_API.G_RET_STS_ERROR
783: THEN
784: RAISE FND_API.G_EXC_ERROR;
785: ELSIF l_return_Status = FND_API.G_RET_STS_UNEXP_ERROR
786: THEN
780: IF l_return_Status <>'S'
781: THEN
782: IF l_return_Status = FND_API.G_RET_STS_ERROR
783: THEN
784: RAISE FND_API.G_EXC_ERROR;
785: ELSIF l_return_Status = FND_API.G_RET_STS_UNEXP_ERROR
786: THEN
787: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788: END IF;
781: THEN
782: IF l_return_Status = FND_API.G_RET_STS_ERROR
783: THEN
784: RAISE FND_API.G_EXC_ERROR;
785: ELSIF l_return_Status = FND_API.G_RET_STS_UNEXP_ERROR
786: THEN
787: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788: END IF;
789:
783: THEN
784: RAISE FND_API.G_EXC_ERROR;
785: ELSIF l_return_Status = FND_API.G_RET_STS_UNEXP_ERROR
786: THEN
787: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
788: END IF;
789:
790: END IF;
791:
795: IF l_visit_end_date IS NOT NULL THEN
796:
797: AHL_LTP_REQST_MATRL_PVT.Process_Planned_Materials
798: (p_api_version => p_api_version,
799: p_init_msg_list => Fnd_Api.G_FALSE,
800: p_commit => Fnd_Api.G_FALSE,
801: p_visit_id => p_visit_id,
802: p_visit_task_id => NULL,
803: p_org_id => NULL,
796:
797: AHL_LTP_REQST_MATRL_PVT.Process_Planned_Materials
798: (p_api_version => p_api_version,
799: p_init_msg_list => Fnd_Api.G_FALSE,
800: p_commit => Fnd_Api.G_FALSE,
801: p_visit_id => p_visit_id,
802: p_visit_task_id => NULL,
803: p_org_id => NULL,
804: p_start_date => NULL,
808: x_return_status => l_return_status,
809: x_msg_count => l_msg_count,
810: x_msg_data => l_msg_data);
811:
812: IF l_msg_count > 0 OR NVL(l_return_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
813: X_msg_count := l_msg_count;
814: X_return_status := Fnd_Api.G_RET_STS_ERROR;
815: RAISE Fnd_Api.G_EXC_ERROR;
816: END IF;
810: x_msg_data => l_msg_data);
811:
812: IF l_msg_count > 0 OR NVL(l_return_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
813: X_msg_count := l_msg_count;
814: X_return_status := Fnd_Api.G_RET_STS_ERROR;
815: RAISE Fnd_Api.G_EXC_ERROR;
816: END IF;
817:
818:
811:
812: IF l_msg_count > 0 OR NVL(l_return_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
813: X_msg_count := l_msg_count;
814: X_return_status := Fnd_Api.G_RET_STS_ERROR;
815: RAISE Fnd_Api.G_EXC_ERROR;
816: END IF;
817:
818:
819: END IF;
823: l_msg_count := Fnd_Msg_Pub.count_msg;
824:
825: IF l_msg_count > 0 THEN
826: X_msg_count := l_msg_count;
827: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
828: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
829: END IF;
830:
831: --Standard check for commit
824:
825: IF l_msg_count > 0 THEN
826: X_msg_count := l_msg_count;
827: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
828: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
829: END IF;
830:
831: --Standard check for commit
832: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
828: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
829: END IF;
830:
831: --Standard check for commit
832: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
833: COMMIT;
834: END IF;
835:
836: IF G_DEBUG='Y' THEN
841: IF G_DEBUG='Y' THEN
842: Ahl_Debug_Pub.disable_debug;
843: END IF;
844: EXCEPTION
845: WHEN Fnd_Api.g_exc_error THEN
846: ROLLBACK TO Update_Stages;
847: x_return_status := Fnd_Api.g_ret_sts_error;
848: Fnd_Msg_Pub.count_and_get(
849: p_encoded => Fnd_Api.g_false,
843: END IF;
844: EXCEPTION
845: WHEN Fnd_Api.g_exc_error THEN
846: ROLLBACK TO Update_Stages;
847: x_return_status := Fnd_Api.g_ret_sts_error;
848: Fnd_Msg_Pub.count_and_get(
849: p_encoded => Fnd_Api.g_false,
850: p_count => x_msg_count,
851: p_data => x_msg_data
845: WHEN Fnd_Api.g_exc_error THEN
846: ROLLBACK TO Update_Stages;
847: x_return_status := Fnd_Api.g_ret_sts_error;
848: Fnd_Msg_Pub.count_and_get(
849: p_encoded => Fnd_Api.g_false,
850: p_count => x_msg_count,
851: p_data => x_msg_data
852: );
853: WHEN Fnd_Api.g_exc_unexpected_error THEN
849: p_encoded => Fnd_Api.g_false,
850: p_count => x_msg_count,
851: p_data => x_msg_data
852: );
853: WHEN Fnd_Api.g_exc_unexpected_error THEN
854: ROLLBACK TO Update_Stages;
855: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
856: Fnd_Msg_Pub.count_and_get (
857: p_encoded => Fnd_Api.g_false,
851: p_data => x_msg_data
852: );
853: WHEN Fnd_Api.g_exc_unexpected_error THEN
854: ROLLBACK TO Update_Stages;
855: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
856: Fnd_Msg_Pub.count_and_get (
857: p_encoded => Fnd_Api.g_false,
858: p_count => x_msg_count,
859: p_data => x_msg_data
853: WHEN Fnd_Api.g_exc_unexpected_error THEN
854: ROLLBACK TO Update_Stages;
855: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
856: Fnd_Msg_Pub.count_and_get (
857: p_encoded => Fnd_Api.g_false,
858: p_count => x_msg_count,
859: p_data => x_msg_data
860: );
861: WHEN OTHERS THEN
859: p_data => x_msg_data
860: );
861: WHEN OTHERS THEN
862: ROLLBACK TO Update_Stages;
863: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
864: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
865: THEN
866: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
867: END IF;
865: THEN
866: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
867: END IF;
868: Fnd_Msg_Pub.count_and_get (
869: p_encoded => Fnd_Api.g_false,
870: p_count => x_msg_count,
871: p_data => x_msg_data
872: );
873: END Update_Stages;
881: -- will be called from delete visit and requires only visit_id
882: --------------------------------------------------------------------
883: PROCEDURE Delete_Stages (
884: p_api_version IN NUMBER,
885: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
886: p_commit IN VARCHAR2 := Fnd_Api.g_false,
887: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
888: p_module_type IN VARCHAR2 := 'JSP',
889:
882: --------------------------------------------------------------------
883: PROCEDURE Delete_Stages (
884: p_api_version IN NUMBER,
885: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
886: p_commit IN VARCHAR2 := Fnd_Api.g_false,
887: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
888: p_module_type IN VARCHAR2 := 'JSP',
889:
890: p_visit_id IN NUMBER,
883: PROCEDURE Delete_Stages (
884: p_api_version IN NUMBER,
885: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
886: p_commit IN VARCHAR2 := Fnd_Api.g_false,
887: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
888: p_module_type IN VARCHAR2 := 'JSP',
889:
890: p_visit_id IN NUMBER,
891:
915: AHL_DEBUG_PUB.Debug( l_full_name ||': Start');
916: END IF;
917:
918: -- Initialize message list if p_init_msg_list is set to TRUE.
919: IF Fnd_Api.to_boolean(p_init_msg_list)
920: THEN
921: Fnd_Msg_Pub.initialize;
922: END IF;
923:
921: Fnd_Msg_Pub.initialize;
922: END IF;
923:
924: -- Initialize API return status to success
925: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
926:
927: -- Standard call to check for call compatibility.
928: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
929: p_api_version,
924: -- Initialize API return status to success
925: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
926:
927: -- Standard call to check for call compatibility.
928: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
929: p_api_version,
930: l_api_name,G_PKG_NAME)
931: THEN
932: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
928: IF NOT Fnd_Api.COMPATIBLE_API_CALL(l_api_version,
929: p_api_version,
930: l_api_name,G_PKG_NAME)
931: THEN
932: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
933: END IF;
934:
935: ------------------------Start of API Body------------------------------------
936: -- directly delete as we need to delete all stages for the visit
950: l_msg_count := Fnd_Msg_Pub.count_msg;
951:
952: IF l_msg_count > 0 THEN
953: X_msg_count := l_msg_count;
954: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
955: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
956: END IF;
957:
958: --Standard check for commit
951:
952: IF l_msg_count > 0 THEN
953: X_msg_count := l_msg_count;
954: X_return_status := Fnd_Api.G_RET_STS_UNEXP_ERROR;
955: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
956: END IF;
957:
958: --Standard check for commit
959: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
955: RAISE Fnd_Api.G_EXC_UNEXPECTED_ERROR;
956: END IF;
957:
958: --Standard check for commit
959: IF Fnd_Api.TO_BOOLEAN(p_commit) THEN
960: COMMIT;
961: END IF;
962:
963: IF G_DEBUG='Y' THEN
968: IF G_DEBUG='Y' THEN
969: Ahl_Debug_Pub.disable_debug;
970: END IF;
971: EXCEPTION
972: WHEN Fnd_Api.g_exc_error THEN
973: ROLLBACK TO Delete_Stages;
974: x_return_status := Fnd_Api.g_ret_sts_error;
975: Fnd_Msg_Pub.count_and_get(
976: p_encoded => Fnd_Api.g_false,
970: END IF;
971: EXCEPTION
972: WHEN Fnd_Api.g_exc_error THEN
973: ROLLBACK TO Delete_Stages;
974: x_return_status := Fnd_Api.g_ret_sts_error;
975: Fnd_Msg_Pub.count_and_get(
976: p_encoded => Fnd_Api.g_false,
977: p_count => x_msg_count,
978: p_data => x_msg_data
972: WHEN Fnd_Api.g_exc_error THEN
973: ROLLBACK TO Delete_Stages;
974: x_return_status := Fnd_Api.g_ret_sts_error;
975: Fnd_Msg_Pub.count_and_get(
976: p_encoded => Fnd_Api.g_false,
977: p_count => x_msg_count,
978: p_data => x_msg_data
979: );
980: WHEN Fnd_Api.g_exc_unexpected_error THEN
976: p_encoded => Fnd_Api.g_false,
977: p_count => x_msg_count,
978: p_data => x_msg_data
979: );
980: WHEN Fnd_Api.g_exc_unexpected_error THEN
981: ROLLBACK TO Delete_Stages;
982: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
983: Fnd_Msg_Pub.count_and_get (
984: p_encoded => Fnd_Api.g_false,
978: p_data => x_msg_data
979: );
980: WHEN Fnd_Api.g_exc_unexpected_error THEN
981: ROLLBACK TO Delete_Stages;
982: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
983: Fnd_Msg_Pub.count_and_get (
984: p_encoded => Fnd_Api.g_false,
985: p_count => x_msg_count,
986: p_data => x_msg_data
980: WHEN Fnd_Api.g_exc_unexpected_error THEN
981: ROLLBACK TO Delete_Stages;
982: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
983: Fnd_Msg_Pub.count_and_get (
984: p_encoded => Fnd_Api.g_false,
985: p_count => x_msg_count,
986: p_data => x_msg_data
987: );
988: WHEN OTHERS THEN
986: p_data => x_msg_data
987: );
988: WHEN OTHERS THEN
989: ROLLBACK TO Delete_Stages;
990: x_return_status := Fnd_Api.g_ret_sts_unexp_error ;
991: IF Fnd_Msg_Pub.check_msg_level (Fnd_Msg_Pub.g_msg_lvl_unexp_error)
992: THEN
993: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
994: END IF;
992: THEN
993: Fnd_Msg_Pub.add_exc_msg (G_PKG_NAME, l_api_name);
994: END IF;
995: Fnd_Msg_Pub.count_and_get (
996: p_encoded => Fnd_Api.g_false,
997: p_count => x_msg_count,
998: p_data => x_msg_data
999: );
1000:
1061: AHL_DEBUG_PUB.debug( l_full_name ||'********************************START******************************* ');
1062: END IF;
1063: END IF;
1064:
1065: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
1066: Fnd_Msg_Pub.initialize;
1067: END IF;
1068:
1069: IF NOT Fnd_Api.compatible_api_call (
1065: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
1066: Fnd_Msg_Pub.initialize;
1067: END IF;
1068:
1069: IF NOT Fnd_Api.compatible_api_call (
1070: l_api_version,
1071: p_api_version,
1072: l_api_name,
1073: G_PKG_NAME
1071: p_api_version,
1072: l_api_name,
1073: G_PKG_NAME
1074: ) THEN
1075: RAISE Fnd_Api.g_exc_unexpected_error;
1076: END IF;
1077: */
1078: x_return_status := Fnd_Api.g_ret_sts_success;
1079:
1074: ) THEN
1075: RAISE Fnd_Api.g_exc_unexpected_error;
1076: END IF;
1077: */
1078: x_return_status := Fnd_Api.g_ret_sts_success;
1079:
1080: open c_stage_data(p_stages_rec.stage_id);
1081: fetch c_stage_data into l_stage_rec;
1082: if c_stage_data%notfound
1082: if c_stage_data%notfound
1083: then
1084: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_NOT_FOUND_NEW'||p_stages_rec.stage_id);
1085: Fnd_Msg_Pub.ADD;
1086: x_return_status := Fnd_Api.g_ret_sts_error;
1087: return;
1088: end if;
1089: close c_stage_data;
1090:
1092: IF l_stage_rec.OBJECT_VERSION_NUMBER <> p_stages_rec.OBJECT_VERSION_NUMBER
1093: THEN
1094: Fnd_Message.SET_NAME('AHL','AHL_COM_RECORD_MOD');
1095: Fnd_Msg_Pub.ADD;
1096: x_return_status := Fnd_Api.g_ret_sts_error;
1097: return;
1098: end if;
1099:
1100: IF p_stages_rec.STAGE_NUM IS NULL
1100: IF p_stages_rec.STAGE_NUM IS NULL
1101: THEN
1102: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_NUM_NULL');
1103: Fnd_Msg_Pub.ADD;
1104: x_return_status := Fnd_Api.g_ret_sts_error;
1105: return;
1106: end if;
1107:
1108:
1113: then
1114: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_NAME_NULL');
1115: FND_MESSAGE.SET_TOKEN('STAGE_NUM',p_stages_rec.STAGE_NUM);
1116: Fnd_Msg_Pub.ADD;
1117: x_return_status := Fnd_Api.g_ret_sts_error;
1118: return;
1119: else
1120: -- stage name is unique
1121: open c_stage_name(p_visit_id, p_stages_rec.stage_name, p_stages_rec.stage_id);
1124: then
1125: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_NAME_UNIQUE');
1126: Fnd_Message.SET_TOKEN('STAGE_NAME', p_stages_rec.stage_name);
1127: Fnd_Msg_Pub.ADD;
1128: x_return_status := Fnd_Api.g_ret_sts_error;
1129: close c_stage_name;
1130: return;
1131: end if;
1132: close c_stage_name;
1141: then
1142: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_DUR_NULL');
1143: Fnd_Message.SET_TOKEN('STAGE_NAME', p_stages_rec.stage_name);
1144: Fnd_Msg_Pub.ADD;
1145: x_return_status := Fnd_Api.g_ret_sts_error;
1146: -- duration must be positive number
1147: elsif p_stages_rec.duration < 0
1148: then
1149: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_DURN_INV');
1148: then
1149: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_DURN_INV');
1150: Fnd_Message.SET_TOKEN('STAGE_NAME', p_stages_rec.stage_name);
1151: Fnd_Msg_Pub.ADD;
1152: x_return_status := Fnd_Api.g_ret_sts_error;
1153: elsif p_stages_rec.duration = 0
1154: then
1155: open c_stage_task( p_stages_rec.stage_id);
1156: fetch c_stage_task into l_dummy;
1158: THEN
1159: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_HAS_TASKS');
1160: Fnd_Message.SET_TOKEN('STAGE_NAME', p_stages_rec.stage_name);
1161: Fnd_Msg_Pub.ADD;
1162: x_return_status := Fnd_Api.g_ret_sts_error;
1163: end if;
1164: close c_stage_task;
1165: elsif p_stages_rec.DURATION > trunc(l_stage_duration,0)
1166: THEN
1165: elsif p_stages_rec.DURATION > trunc(l_stage_duration,0)
1166: THEN
1167: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_DUR_NON_INT');
1168: Fnd_Msg_Pub.ADD;
1169: x_return_status := Fnd_Api.g_ret_sts_error;
1170:
1171: end if;
1172:
1173: END IF;
1225:
1226:
1227: PROCEDURE VALIDATE_STAGE_UPDATES(
1228: p_api_version IN NUMBER,
1229: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1230: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1231: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1232: p_default IN VARCHAR2 := Fnd_Api.G_TRUE,
1233: p_module_type IN VARCHAR2 := NULL,
1226:
1227: PROCEDURE VALIDATE_STAGE_UPDATES(
1228: p_api_version IN NUMBER,
1229: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1230: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1231: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1232: p_default IN VARCHAR2 := Fnd_Api.G_TRUE,
1233: p_module_type IN VARCHAR2 := NULL,
1234:
1227: PROCEDURE VALIDATE_STAGE_UPDATES(
1228: p_api_version IN NUMBER,
1229: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1230: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1231: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1232: p_default IN VARCHAR2 := Fnd_Api.G_TRUE,
1233: p_module_type IN VARCHAR2 := NULL,
1234:
1235: p_visit_id IN NUMBER,
1228: p_api_version IN NUMBER,
1229: p_init_msg_list IN VARCHAR2 := Fnd_Api.G_FALSE,
1230: p_commit IN VARCHAR2 := Fnd_Api.G_FALSE,
1231: p_validation_level IN NUMBER := Fnd_Api.G_VALID_LEVEL_FULL,
1232: p_default IN VARCHAR2 := Fnd_Api.G_TRUE,
1233: p_module_type IN VARCHAR2 := NULL,
1234:
1235: p_visit_id IN NUMBER,
1236: p_visit_task_id IN NUMBER,
1300: AHL_DEBUG_PUB.debug( l_full_name ||'********************************START******************************* ');
1301: END IF;
1302: END IF;
1303:
1304: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
1305: Fnd_Msg_Pub.initialize;
1306: END IF;
1307:
1308: IF NOT Fnd_Api.compatible_api_call (
1304: IF Fnd_Api.to_boolean (p_init_msg_list) THEN
1305: Fnd_Msg_Pub.initialize;
1306: END IF;
1307:
1308: IF NOT Fnd_Api.compatible_api_call (
1309: l_api_version,
1310: p_api_version,
1311: l_api_name,
1312: G_PKG_NAME
1310: p_api_version,
1311: l_api_name,
1312: G_PKG_NAME
1313: ) THEN
1314: RAISE Fnd_Api.g_exc_unexpected_error;
1315: END IF;
1316:
1317: x_return_status := Fnd_Api.g_ret_sts_success;
1318:
1313: ) THEN
1314: RAISE Fnd_Api.g_exc_unexpected_error;
1315: END IF;
1316:
1317: x_return_status := Fnd_Api.g_ret_sts_success;
1318:
1319:
1320: -------------------- basic check for stage num or id------------------------------------------
1321: -- test if passed stage num > max num for all its parents and less that min num for all children--
1324: fetch C_valid_stage_num into l_max_parent, l_min_child;
1325: CLOSE C_VALID_STAGE_NUM;
1326:
1327:
1328: IF (P_STAGE_NAME IS NOT NULL AND P_STAGE_NAME <> FND_API.G_MISS_CHAR)
1329: THEN
1330:
1331: OPEN C_STAGE_NUM(p_visit_id, p_stage_name);
1332: FETCH C_STAGE_NUM INTO L_STAGE_NUM, L_STAGE_ID;
1332: FETCH C_STAGE_NUM INTO L_STAGE_NUM, L_STAGE_ID;
1333: IF C_STAGE_NUM%NOTFOUND THEN
1334: Fnd_Message.SET_NAME('AHL','AHL_VWP_STAGE_NOT_FOUND');
1335: Fnd_Msg_Pub.ADD;
1336: x_return_status := Fnd_Api.g_ret_sts_error;
1337: ELSE
1338: -- Stage number should be between Parent Stage Number - L_MAX_PARENT, and Child Stage Number - L_MIN_CHILD
1339: IF ( L_MAX_PARENT IS NOT NULL AND L_STAGE_NUM < L_MAX_PARENT)
1340: OR ( L_MIN_CHILD IS NOT NULL AND L_STAGE_NUM > L_MIN_CHILD)
1341: THEN
1342: Fnd_Message.SET_NAME('AHL','AHL_VWP_ST_NUM_INV');
1343: Fnd_Message.SET_TOKEN('STAGE_NUM', l_stage_NUM);
1344: Fnd_Msg_Pub.ADD;
1345: x_return_status := Fnd_Api.g_ret_sts_error;
1346: END IF;
1347: -- SET OUT PARAM
1348: X_STAGE_ID := L_STAGE_ID;
1349:
1369: FETCH C_get_stage_data INTO L_STAGE_REC;
1370: CLOSE C_get_stage_data;
1371:
1372:
1373: IF NVL(p_x_stages_rec.STAGE_NUM, 99) = FND_API.G_MISS_NUM
1374: THEN
1375: p_x_stages_rec.STAGE_NUM := L_stage_rec.STAGE_NUM;
1376: END IF;
1377:
1374: THEN
1375: p_x_stages_rec.STAGE_NUM := L_stage_rec.STAGE_NUM;
1376: END IF;
1377:
1378: IF NVL(p_x_stages_rec.STAGE_NAME, 'A') = FND_API.G_MISS_CHAR
1379: THEN
1380: p_x_stages_rec.STAGE_NAME := L_stage_rec.STAGE_NAME;
1381: END IF;
1382:
1379: THEN
1380: p_x_stages_rec.STAGE_NAME := L_stage_rec.STAGE_NAME;
1381: END IF;
1382:
1383: IF NVL(p_x_stages_rec.DURATION, 99) = FND_API.G_MISS_NUM
1384: THEN
1385: p_x_stages_rec.DURATION := L_stage_rec.DURATION;
1386: END IF;
1387:
1413: ELSE
1414: x_Stage_id := null;
1415: END IF;
1416:
1417: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1418: -- Debug info.
1419: IF G_DEBUG='Y' THEN
1420: Ahl_Debug_Pub.debug( 'API Return Status = ' ||L_FULL_NAME||':'|| x_return_status);
1421: END IF;
1421: END IF;
1422:
1423: EXCEPTION
1424: WHEN NO_DATA_FOUND THEN
1425: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
1426: x_error_msg_code:= 'AHL_VWP_STAGE_NOT_EXISTS';
1427: WHEN TOO_MANY_ROWS THEN
1428: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
1429: x_error_msg_code:= 'AHL_VWP_STAGE_NOT_EXISTS';
1424: WHEN NO_DATA_FOUND THEN
1425: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
1426: x_error_msg_code:= 'AHL_VWP_STAGE_NOT_EXISTS';
1427: WHEN TOO_MANY_ROWS THEN
1428: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
1429: x_error_msg_code:= 'AHL_VWP_STAGE_NOT_EXISTS';
1430: WHEN OTHERS THEN
1431: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
1432: RAISE;
1427: WHEN TOO_MANY_ROWS THEN
1428: x_return_status:= Fnd_Api.G_RET_STS_ERROR;
1429: x_error_msg_code:= 'AHL_VWP_STAGE_NOT_EXISTS';
1430: WHEN OTHERS THEN
1431: x_return_status:= Fnd_Api.G_RET_STS_UNEXP_ERROR;
1432: RAISE;
1433: END Check_Stage_Name_Or_Id;
1434:
1435: --------------------------------------------------------------------
1499:
1500:
1501: BEGIN
1502: -- Initialize API return status to success
1503: x_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1504: x_valid_flag := 'Y';
1505: OPEN c_Visit(p_visit_id);
1506: FETCH c_visit INTO c_visit_rec;
1507: CLOSE c_Visit;
1505: OPEN c_Visit(p_visit_id);
1506: FETCH c_visit INTO c_visit_rec;
1507: CLOSE c_Visit;
1508:
1509: IF(c_visit_rec.START_DATE_TIME IS NULL OR c_visit_rec.START_DATE_TIME = Fnd_Api.g_miss_date)
1510: THEN
1511: Fnd_Message.SET_NAME('AHL','AHL_VWP_VST_NO_ST_DATE');
1512: Fnd_Msg_Pub.ADD;
1513: x_valid_flag := 'N';
1512: Fnd_Msg_Pub.ADD;
1513: x_valid_flag := 'N';
1514: END IF;
1515:
1516: IF(c_visit_rec.DEPARTMENT_ID IS NULL OR c_visit_rec.DEPARTMENT_ID = Fnd_Api.g_miss_num)
1517: THEN
1518: Fnd_Message.SET_NAME('AHL','AHL_VWP_VST_NO_DEP');
1519: Fnd_Msg_Pub.ADD;
1520: x_valid_flag := 'N';