1 PACKAGE AS_INTEREST_PVT AUTHID CURRENT_USER as
2 /* $Header: asxvints.pls 115.17 2003/11/13 10:11:14 gbatra ship $ */
3
4 --
5 -- NAME
6 -- AS_INTEREST_PVT
7 --
8 -- PURPOSE
9 -- This is a private API used to create interests (Company Classifications,
10 -- Contact Interests, or Lead Classifications).
11 --
12 -- NOTES
13 -- Create_Interest is a private OSM routine, that should not be called by modules
14 -- outside of OSM
15 --
16 -- Although multiple interest records can be passed to the create_interest API,
17 -- all of the interest records in an interest table must be of the same interest type
18 -- (i.e. all company classifications).
19 --
20 --
21 -- HISTORY
22 -- 11/12/96 JKORNBER Created
23 -- 08/28/98 AWU Add update_interest
24 -- Add interest_id, customer_id, address_id,
25 -- contact_id and lead_id into
26 -- interest record
27 -- Changed interest rec default value NULL to
28 -- FND_API.G_MISS for update purpose
29 -- 11/03/03 GBATRA Product Hierarchy Uptake
30 --
31
32
33 -- Start of Comments
34 --
35 -- Interest Record (Account Classification, Contact Interest, Lead Classification): interest_rec_type
36 --
37 -- Parameters:
38 -- Product Category Id Valid category_id from eni_prod_den_hrchy_parents_v denonted as
39 -- correct classification product category
40 -- Product Category Set Id Valid category_set_id from from eni_prod_den_hrchy_parents_v
41 -- Status Code Valid status code from as_interest_statuses
42 -- Description Free format text
43 --
44 -- Required
45 -- Product Category Id and Product Category Set Id
46 --
47 --
48 -- End of Comments
49
50 TYPE interest_rec_type IS RECORD
51 ( interest_id NUMBER := FND_API.G_MISS_NUM,
52 customer_id NUMBER := FND_API.G_MISS_NUM,
53 address_id NUMBER := FND_API.G_MISS_NUM,
54 contact_id NUMBER := FND_API.G_MISS_NUM,
55 lead_id NUMBER := FND_API.G_MISS_NUM,
56 interest_type_id NUMBER := FND_API.G_MISS_NUM,
57 last_update_date DATE := FND_API.G_MISS_DATE,
58 last_updated_by NUMBER := FND_API.G_MISS_NUM,
59 creation_date DATE := FND_API.G_MISS_DATE,
60 created_by NUMBER := FND_API.G_MISS_NUM,
61 last_update_login NUMBER := FND_API.G_MISS_NUM,
62 primary_interest_code_id NUMBER := FND_API.G_MISS_NUM,
63 secondary_interest_code_id NUMBER := FND_API.G_MISS_NUM,
64 status_code VARCHAR2(30) := FND_API.G_MISS_CHAR,
65 status VARCHAR2(80) := FND_API.G_MISS_CHAR,
66 description VARCHAR2(240) := FND_API.G_MISS_CHAR,
67 ATTRIBUTE_CATEGORY VARCHAR2(30) := FND_API.G_MISS_CHAR,
68 ATTRIBUTE1 VARCHAR2(150) := FND_API.G_MISS_CHAR,
69 ATTRIBUTE2 VARCHAR2(150) := FND_API.G_MISS_CHAR,
70 ATTRIBUTE3 VARCHAR2(150) := FND_API.G_MISS_CHAR,
71 ATTRIBUTE4 VARCHAR2(150) := FND_API.G_MISS_CHAR,
72 ATTRIBUTE5 VARCHAR2(150) := FND_API.G_MISS_CHAR,
73 ATTRIBUTE6 VARCHAR2(150) := FND_API.G_MISS_CHAR,
74 ATTRIBUTE7 VARCHAR2(150) := FND_API.G_MISS_CHAR,
75 ATTRIBUTE8 VARCHAR2(150) := FND_API.G_MISS_CHAR,
76 ATTRIBUTE9 VARCHAR2(150) := FND_API.G_MISS_CHAR,
77 ATTRIBUTE10 VARCHAR2(150) := FND_API.G_MISS_CHAR,
78 ATTRIBUTE11 VARCHAR2(150) := FND_API.G_MISS_CHAR,
79 ATTRIBUTE12 VARCHAR2(150) := FND_API.G_MISS_CHAR,
80 ATTRIBUTE13 VARCHAR2(150) := FND_API.G_MISS_CHAR,
81 ATTRIBUTE14 VARCHAR2(150) := FND_API.G_MISS_CHAR,
82 ATTRIBUTE15 VARCHAR2(150) := FND_API.G_MISS_CHAR,
83 product_category_id NUMBER := FND_API.G_MISS_NUM,
84 product_cat_set_id NUMBER := FND_API.G_MISS_NUM
85 );
86
87 G_MISS_INTEREST_REC interest_rec_type;
88
89 -- Start of Comments
90 --
91 -- Interest Table: interest_tbl_type
92 --
93 -- End of Comments
94
95 TYPE interest_tbl_type IS TABLE OF interest_rec_type
96 INDEX BY BINARY_INTEGER;
97
98 G_MISS_INTEREST_TBL interest_tbl_type;
99
100
101
102 -- Start of Comments
103 --
104 -- Interest Out Record: interest_out_rec_type
105 --
106 --
107 -- End of Comments
108
109 TYPE interest_out_rec_type IS RECORD
110 ( interest_id NUMBER,
111 return_status VARCHAR2(1)
112 );
113
114
115 -- Start of Comments
116 --
117 -- Interest Out Table: interest_out_tbl_type
118 --
119 --
120 -- End of Comments
121
122 TYPE interest_out_tbl_type IS TABLE OF interest_out_rec_type
123 INDEX BY BINARY_INTEGER;
124
125
126 -- Start of Comments
127 --
128 -- API name : Create Interest
129 -- Type : Private
130 -- Function : Create Account, Contact, or Lead Classification Interest
131 -- Pre-reqs : Account, contact, or lead exists
132 -- Parameters
133 -- IN :
134 -- p_api_version_number IN NUMBER Required
135 -- p_init_msg_list IN VARCHAR2 Optional
136 -- Default = FND_API.G_FALSE
137 -- p_commit IN VARCHAR2 Optional
138 -- Default = FND_API.G_FALSE
139 -- p_validation_level IN NUMBER Optional
140 -- Default = FND_API.G_VALID_LEVEL_FULL
141 -- p_interest_tbl IN INTEREST_TBL_TYPE Optional
142 -- p_customer_id IN NUMBER Required
143 -- p_address_id IN NUMBER Required
144 -- p_contact_id IN NUMBER Optional
145 -- p_lead_id IN NUMBER Optional
146 -- p_interest_use_code IN VARCHAR2 Required
147 -- (LEAD_CLASSIFICATION, COMPANY_CLASSIFICATION,
148 -- CONTACT_INTEREST)
149 --
150 -- OUT :
151 -- p_return_status OUT VARCHAR2(1)
152 -- p_msg_count OUT NUMBER
153 -- p_msg_data OUT VARCHAR2(2000)
154 -- p_interest_out_tbl OUT INTEREST_OUT_TBL_TYPE
155 --
156 --
157 -- Version : Current version 1.0
158 -- Initial Version
159 -- Initial version 1.0
160 --
161 -- Notes: OSM API to load interests.
162 -- Validation proceeds as follows:
163 -- For lead classification: lead_id, customer_id,
164 -- address_id must exist
165 -- For contact interest: contact_id, customer_id,
166 -- address_id must exists
167 -- For account interest: customer_id, address_id must exists
168 -- For each interest, the interest type must be denoted properly
169 -- (i.e. for inserting lead classifications, the interest
170 -- type must be denoted as a lead classification interest)
171 --
172 --
173 -- End of Comments
174
175 PROCEDURE Create_Interest
176 ( p_api_version_number IN NUMBER,
177 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
178 p_commit IN VARCHAR2 := FND_API.G_FALSE,
179 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
180 p_interest_tbl IN INTEREST_TBL_TYPE := G_MISS_INTEREST_TBL,
181 p_customer_id IN NUMBER,
182 p_address_id IN NUMBER,
183 p_contact_id IN NUMBER,
184 p_lead_id IN NUMBER,
185 p_interest_use_code IN VARCHAR2,
186 p_check_access_flag IN VARCHAR2,
187 p_admin_flag IN VARCHAR2,
188 p_admin_group_id IN NUMBER,
189 p_identity_salesforce_id IN NUMBER,
190 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
191 p_return_status OUT NOCOPY VARCHAR2,
192 p_msg_count OUT NOCOPY NUMBER,
193 p_msg_data OUT NOCOPY VARCHAR2,
194 p_interest_out_tbl OUT NOCOPY INTEREST_OUT_TBL_TYPE
195 );
196
197
198 -- Start of Comments
199 --
200 -- API name : Update Interest
201 -- Type : Private
202 -- Function : Update Account, Contact, or Lead Classification Interest
203 -- Pre-reqs : Account, contact, or lead exists
204 -- Parameters
205 -- IN :
206 -- p_api_version_number IN NUMBER Required
207 -- p_init_msg_list IN VARCHAR2 Optional
208 -- Default = FND_API.G_FALSE
209 -- p_commit IN VARCHAR2 Optional
210 -- Default = FND_API.G_FALSE
211 -- p_validation_level IN NUMBER Optional
212 -- Default = FND_API.G_VALID_LEVEL_FULL
213 -- p_identity_salesforce_id IN NUMBER Optional
214 -- p_interest_rec IN INTEREST_REC_TYPE Required
215 -- p_interest_use_code IN VARCHAR2 Required
216 -- (LEAD_CLASSIFICATION, COMPANY_CLASSIFICATION,
217 -- CONTACT_INTEREST)
218 --
219 -- OUT :
220 -- x_return_status OUT VARCHAR2(1)
221 -- x_msg_count OUT NUMBER
222 -- x_msg_data OUT VARCHAR2(2000)
223 -- x_interest_id OUT NUMBER
224 --
225 --
226 -- Version : Current version 1.0
227 -- Initial Version
228 -- Initial version 1.0
229 --
230 --
231 PROCEDURE Update_Interest
232 ( p_api_version_number IN NUMBER,
233 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
234 p_commit IN VARCHAR2 := FND_API.G_FALSE,
235 p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL,
236 p_identity_salesforce_id IN NUMBER := NULL,
237 p_interest_rec IN INTEREST_REC_TYPE := G_MISS_INTEREST_REC,
238 p_interest_use_code IN VARCHAR2,
239 p_check_access_flag IN VARCHAR2,
240 p_admin_flag IN VARCHAR2,
241 p_admin_group_id IN NUMBER,
242 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
243 x_return_status OUT NOCOPY VARCHAR2,
244 x_msg_count OUT NOCOPY NUMBER,
245 x_msg_data OUT NOCOPY VARCHAR2,
246 x_interest_id OUT NOCOPY NUMBER
247 );
248
249 PROCEDURE Delete_Interest
250 ( p_api_version_number IN NUMBER,
251 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
252 p_commit IN VARCHAR2 := FND_API.G_FALSE,
253 p_validation_level IN NUMBER :=FND_API.G_VALID_LEVEL_FULL,
254 p_identity_salesforce_id IN NUMBER,
255 p_interest_rec IN INTEREST_REC_TYPE := G_MISS_INTEREST_REC,
256 p_interest_use_code IN VARCHAR2,
257 p_check_access_flag in varchar2,
258 p_admin_flag in varchar2,
259 p_admin_group_id in number,
260 p_access_profile_rec IN AS_ACCESS_PUB.ACCESS_PROFILE_REC_TYPE,
261 x_return_status OUT NOCOPY VARCHAR2,
262 x_msg_count OUT NOCOPY NUMBER,
263 x_msg_data OUT NOCOPY VARCHAR2
264 );
265
266
267 PROCEDURE Validate_party_id (
268 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
269 p_party_id IN NUMBER,
270 x_return_status OUT NOCOPY VARCHAR2,
271 x_msg_count OUT NOCOPY NUMBER,
272 x_msg_data OUT NOCOPY VARCHAR2
273 );
274
275 -- NOTES
276 -- Procedure validates interest type ids and returns SUCCESS if all ids are
277 -- valid, ERROR otherwise
278 -- Procedure assumes that at least the interest type exists
279 --
280 -- Currently not accessible by sources outside of OSM
281 --
282 PROCEDURE Validate_Int_Type_Fields (
283 p_interest_type_id IN NUMBER,
284 p_primary_interest_code_id IN NUMBER,
285 p_secondary_interest_code_id IN NUMBER,
286 p_return_status OUT NOCOPY VARCHAR2
287 );
288
289 -- Procedure validates interest status and returns SUCCESS if status is
290 -- valid, ERROR otherwise
291 -- Procedure assumes that at least the interest type exists
292 --
293 PROCEDURE Validate_Int_Status ( p_interest_type_id IN NUMBER,
294 p_primary_interest_code_id IN NUMBER,
295 p_secondary_interest_code_id IN NUMBER,
296 p_interest_status_code IN VARCHAR2,
297 p_return_status OUT NOCOPY VARCHAR2
298 );
299
300 -- Procedure validates interest status for product catalog and returns SUCCESS if status is
301 -- valid, ERROR otherwise
302 -- Procedure assumes that at least the product category exists
303 --
304 PROCEDURE Validate_Int_Status_For_PC ( p_product_category_id IN NUMBER,
305 p_product_cat_set_id IN NUMBER,
306 p_interest_status_code IN VARCHAR2,
307 p_return_status OUT NOCOPY VARCHAR2
308 );
309
310 END AS_INTEREST_PVT;