DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGR_INFTYP_PKG_IT_CRM_PKG

Source


1 PACKAGE BODY igr_inftyp_pkg_it_crm_pkg AS
2 /* $Header: IGSRH13B.pls 120.0 2005/06/01 16:25:41 appldev noship $ */
3   PROCEDURE insert_row(
4     x_return_status OUT NOCOPY VARCHAR2,
5     x_msg_count OUT NOCOPY NUMBER,
6     x_msg_data OUT NOCOPY VARCHAR2,
7     x_deliverable_kit_item_id IN OUT NOCOPY NUMBER,
8     x_deliverable_kit_id IN NUMBER,
9     x_deliverable_kit_part_id IN NUMBER
10   ) AS
11   CURSOR c IS SELECT 'X' FROM AMS_P_DELIV_KIT_ITEMS_V WHERE
12     deliverable_kit_part_id = x_deliverable_kit_part_id AND
13     deliverable_kit_id = x_deliverable_kit_id ;
14   l_deliv_kit_item_rec ams_delivkititem_pvt.deliv_kit_item_rec_type;
15   l_tmp_var VARCHAR2(2000);
16   l_var VARCHAR2(1);
17   BEGIN
18     OPEN c; FETCH c INTO l_var; CLOSE c;
19     IF l_var IS NOT NULL THEN
20       FND_MESSAGE.SET_NAME('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
21       APP_EXCEPTION.RAISE_EXCEPTION;
22     END IF;
23     l_deliv_kit_item_rec.deliverable_kit_id := x_deliverable_kit_id;
24     l_deliv_kit_item_rec.deliverable_kit_part_id := x_deliverable_kit_part_id;
25     l_deliv_kit_item_rec.object_version_number := 1;
26     AMS_DelivKitItem_PUB.Create_DelivKitItem(
27       p_api_version_number => 1.0,
28       x_return_status  => x_return_status,
29       x_msg_count      => x_msg_count,
30       x_msg_data       => x_msg_data,
31       p_Deliv_Kit_Item_rec => l_deliv_kit_item_rec,
32       x_deliv_kit_item_id => x_deliverable_kit_item_id
33     );
34     IF x_return_status IN ('E','U') THEN
35       IF x_msg_count > 1 THEN
36         FOR i IN 1..x_msg_count LOOP
37           l_tmp_var := l_tmp_var || fnd_msg_pub.get(p_encoded => fnd_api.g_false);
38         END LOOP;
39         x_msg_data := l_tmp_var;
40       END IF;
41     END IF;
42   END insert_row;
43 
44   PROCEDURE delete_row(
45     x_return_status OUT NOCOPY VARCHAR2,
46     x_msg_count OUT NOCOPY NUMBER,
47     x_msg_data OUT NOCOPY VARCHAR2,
48     x_deliverable_kit_item_id IN NUMBER
49   ) AS
50    CURSOR c IS SELECT object_version_number,deliverable_kit_id from AMS_DELIV_KIT_ITEMS
51     WHERE deliverable_kit_item_id = x_deliverable_kit_item_id;
52 
53     l_object_version_number AMS_DELIV_KIT_ITEMS.object_version_number%TYPE;
54     l_tmp_var VARCHAR2(2000);
55     l_info_type_id ams_deliv_kit_items.deliverable_kit_id%TYPE;
56     l_var   NUMBER(10);
57     l_row_id VARCHAR2(25);
58 
59     CURSOR c_package_items( l_info_type_id igr_i_ityp_pkgs_v.info_type_id%TYPE ) IS
60     SELECT 1
61     FROM   igr_i_ityp_pkgs_v
62     WHERE  info_type_id = l_info_type_id;
63 
64     CURSOR c_info_details (l_info_type_id igr_i_info_types_v.info_type_id%TYPE) IS
65     SELECT a.*
66     FROM   ams_p_deliverables_v a
67     WHERE  a.deliverable_id = l_info_type_id;
68 
69     CURSOR c_rowid (l_info_type_id igr_i_info_types_v.info_type_id%TYPE) IS
70     SELECT rowid
71     FROM   igr_i_pkg_item
72     WHERE  package_item_id = l_info_type_id;
73 
74     rec_info_details c_info_details%ROWTYPE ;
75 
76   BEGIN
77     OPEN c;
78     FETCH c INTO l_object_version_number,l_info_type_id;
79     CLOSE c;
80 
81     AMS_DelivKitItem_PUB.Delete_DelivKitItem(
82       p_api_version_number      => 1.0,
83       x_return_status           => x_return_status,
84       x_msg_count               => x_msg_count,
85       x_msg_data                => x_msg_data,
86       p_deliv_kit_item_id       => x_deliverable_kit_item_id,
87       p_object_version_number   => l_object_version_number
88     );
89     IF x_return_status IN ('E','U') THEN
90       IF x_msg_count > 1 THEN
91         FOR i IN 1..x_msg_count LOOP
92           l_tmp_var := l_tmp_var || fnd_msg_pub.get(p_encoded => fnd_api.g_false);
93         END LOOP;
94         x_msg_data := l_tmp_var;
95       END IF;
96     ELSE
97     /* If the Deletion Of the Deliverabl Kit Item is successful And If all The
98        Deliverabl Kit Items (Pkg Item )associated with the Information type are Deleted
99        Then The CRM API will Automatically set the Kit Flag to 'N' which should be
100        reset to 'Y' which is a valid one for Information Type
101        This change was made as part of the Bug 2819945  */
102 
103        OPEN c_package_items( l_info_type_id);
104        FETCH c_package_items INTO l_var;
105          IF c_package_items%NOTFOUND THEN
106 
107            OPEN  c_info_details ( l_info_type_id);
108 	   FETCH c_info_details INTO rec_info_details ;
109 	   CLOSE c_info_details;
110 
111            OPEN  c_rowid ( l_info_type_id);
112 	   FETCH c_rowid INTO l_row_id ;
113 	   CLOSE c_rowid;
114 
115 	   IGR_I_PKG_ITEM_CRM_PKG.update_row (
116 	     x_rowid                  => l_row_id,
117 	     x_return_status	      => x_return_status,
118 	     x_msg_count	      => x_msg_count,
119 	     x_msg_data		      => x_msg_data,
120 	     x_package_item_id        => rec_info_details.deliverable_id,
121 	     x_package_item           => rec_info_details.deliverable_name,
122 	     x_description            => rec_info_details.description,
123 	     x_publish_ss_ind         => 'N',
124 	     x_kit_flag               => 'Y',
125 	     x_actual_avail_from_date => IGS_GE_DATE.IGSDATE(rec_info_details.actual_avail_from_date),
126 	     x_actual_avail_to_date   => IGS_GE_DATE.IGSDATE(rec_info_details.actual_avail_to_date)
127 	    );
128         END IF;
129        CLOSE c_package_items;
130     END IF;
131 
132 
133   END delete_row;
134 END igr_inftyp_pkg_it_crm_pkg;