3:
4: -- common cursors
5: CURSOR Cur_get_substitution(vSubstitution_id NUMBER) IS
6: SELECT i.original_inventory_item_id, i.start_date, i.substitution_status, f.formula_id
7: FROM gmd_item_substitution_hdr_b i, gmd_formula_substitution f
8: WHERE i.substitution_id = vSubstitution_id
9: AND i.substitution_id = f.substitution_id;
10:
11: CURSOR Cur_check_substitute (V_formula_id NUMBER
11: CURSOR Cur_check_substitute (V_formula_id NUMBER
12: , V_item_id NUMBER
13: , p_substitution_id NUMBER) IS
14: SELECT MIN(i.start_date)
15: FROM gmd_item_substitution_hdr_b i, gmd_formula_substitution f
16: WHERE f.formula_id = V_formula_id
17: AND i.original_inventory_item_id = V_item_id
18: AND i.substitution_id <> p_substitution_id
19: AND i.substitution_id = f.substitution_id
37: , x_return_status OUT NOCOPY VARCHAR2
38: ) IS
39:
40: l_new_substitution_version NUMBER;
41: l_old_substitution_name gmd_item_substitution_hdr_b.substitution_name%TYPE;
42: l_old_substitution_version NUMBER;
43:
44: CURSOR get_substitution_info(vSubstitution_id NUMBER) IS
45: SELECT substitution_name, substitution_version
42: l_old_substitution_version NUMBER;
43:
44: CURSOR get_substitution_info(vSubstitution_id NUMBER) IS
45: SELECT substitution_name, substitution_version
46: FROM gmd_item_substitution_hdr_b
47: WHERE substitution_id = vSubstitution_id;
48: BEGIN
49: /* Set the return status to success initially */
50: x_return_status := FND_API.G_RET_STS_SUCCESS;
97: /* History : */
98: /* Rajender Nalla 09-OCT-06 Initial implementation. */
99: /* =============================================================== */
100: PROCEDURE Create_substitution_header
101: ( p_substitution_id IN gmd_item_substitution_hdr.substitution_id%TYPE
102: , p_substitution_hdr_rec IN gmd_substitution_pub.gmd_substitution_hdr_rec_type
103: , x_message_count OUT NOCOPY NUMBER
104: , x_message_list OUT NOCOPY VARCHAR2
105: , x_return_status OUT NOCOPY VARCHAR2
130: RAISE substitution_creation_failure;
131: END IF;
132:
133: -- Call the table handler for insert of substitution header
134: GMD_ITEM_SUBSTITUTION_HDR_PKG.INSERT_ROW(
135: X_ROWID => l_row_id,
136: X_SUBSTITUTION_ID => p_substitution_id,
137: X_SUBSTITUTION_NAME => p_substitution_hdr_rec.substitution_name,
138: X_SUBSTITUTION_VERSION => p_substitution_hdr_rec.substitution_version,
305: l_formula_substitution_id NUMBER;
306:
307: CURSOR get_substitution_info(vSubstitution_id NUMBER) IS
308: Select substitution_status, start_date, original_inventory_item_id
309: From gmd_item_substitution_hdr_b
310: Where substitution_id = vSubstitution_id;
311:
312: /* Define Exceptions */
313: substitution_creation_failure EXCEPTION;
406: /* History : */
407: /* Rajender Nalla 09-OCT-06 Initial implementation. */
408: /* =============================================================== */
409: PROCEDURE Update_substitution_header
410: ( p_substitution_hdr_rec IN gmd_item_substitution_hdr%ROWTYPE
411: , x_message_count OUT NOCOPY NUMBER
412: , x_message_list OUT NOCOPY VARCHAR2
413: , x_return_status OUT NOCOPY VARCHAR2
414: ) IS
416: /* Local variable section */
417: l_api_name CONSTANT VARCHAR2(30) := 'Update_substitution_header';
418: l_dummy NUMBER := 0;
419: l_start_date DATE;
420: l_old_substitution_hdr_rec gmd_item_substitution_hdr_b%ROWTYPE;
421:
422: CURSOR get_old_subs_rec(vSubstitution_id NUMBER) IS
423: Select *
424: From gmd_item_substitution_hdr_b
420: l_old_substitution_hdr_rec gmd_item_substitution_hdr_b%ROWTYPE;
421:
422: CURSOR get_old_subs_rec(vSubstitution_id NUMBER) IS
423: Select *
424: From gmd_item_substitution_hdr_b
425: Where substitution_id = vSubstitution_id;
426:
427: CURSOR check_for_date_overlap(vSubstitution_id NUMBER
428: ,vOriginal_item_id NUMBER
429: ,vPreference NUMBER
430: ,vStart_date DATE
431: ,vEnd_date DATE) IS
432: SELECT 1
433: FROM gmd_item_substitution_hdr_b
434: WHERE substitution_id <> vSubstitution_id
435: AND original_inventory_item_id = vOriginal_item_id
436: AND preference = vPreference
437: AND vStart_date >= start_date
465: RAISE substitution_update_failure;
466: END IF;
467:
468: -- Call the table handler for update of substitution header
469: GMD_ITEM_SUBSTITUTION_HDR_PKG.UPDATE_ROW(
470: X_SUBSTITUTION_ID => p_substitution_hdr_rec.substitution_id,
471: X_SUBSTITUTION_NAME => p_substitution_hdr_rec.substitution_name,
472: X_SUBSTITUTION_VERSION => p_substitution_hdr_rec.substitution_version,
473: X_SUBSTITUTION_STATUS => p_substitution_hdr_rec.substitution_status,
653: l_substitution_id NUMBER;
654:
655: CURSOR get_fm_and_orig_item(vformula_substitution_id NUMBER) IS
656: Select formula_id, original_inventory_item_id, i.substitution_id
657: From gmd_item_substitution_hdr_b i, gmd_formula_substitution f
658: Where f.formula_substitution_id = vformula_substitution_id
659: AND i.substitution_id = f.substitution_id;
660:
661: CURSOR Cur_get_sub_end_date(vformula_id NUMBER,
661: CURSOR Cur_get_sub_end_date(vformula_id NUMBER,
662: vOriginal_item_id NUMBER,
663: vSubstitution_id NUMBER) IS
664: SELECT MIN(z.start_date)
665: FROM gmd_item_substitution_hdr_b z,
666: gmd_formula_substitution y
667: WHERE y.substitution_id <> vSubstitution_id
668: AND z.substitution_id = y.substitution_id
669: AND z.original_inventory_item_id = vOriginal_item_id
756: l_api_name CONSTANT VARCHAR2(30) := 'Copy_substitution';
757:
758: Cursor get_max_vers_plus_one(vSubstitution_name VARCHAR2) IS
759: SELECT max(substitution_version) + 1
760: FROM gmd_item_substitution_hdr_b
761: WHERE substitution_name = vSubstitution_name;
762:
763: Cursor get_max_pref_plus_one(vOriginal_item_id NUMBER) IS
764: SELECT max(preference) + 1
761: WHERE substitution_name = vSubstitution_name;
762:
763: Cursor get_max_pref_plus_one(vOriginal_item_id NUMBER) IS
764: SELECT max(preference) + 1
765: FROM gmd_item_substitution_hdr_b
766: WHERE original_inventory_item_id = vOriginal_item_id;
767:
768: Cursor get_substitution_hdr_rec(vSubstitution_id NUMBER) IS
769: SELECT substitution_name
812: , created_by
813: , last_update_date
814: , last_updated_by
815: , last_update_login
816: From gmd_item_substitution_hdr
817: Where substitution_id = vSubstitution_id;
818:
819: Cursor get_substitution_dtl_rec(vSubstitution_id NUMBER) IS
820: SELECT inventory_item_id
869:
870: /* call individual private APIs */
871: -- Insert substitution header
872: -- Get the substitution_id
873: select gmd_item_substitution_hdr_s.nextval
874: into l_substitution_id
875: from dual;
876:
877: -- Get the substitution max version