[Home] [Help]
PACKAGE BODY: APPS.QP_PLL_PRICING_ATTR_UTIL
Source
1 PACKAGE BODY QP_pll_pricing_attr_Util AS
2 /* $Header: QPXUPLAB.pls 120.5.12000000.2 2007/04/09 08:20:01 rassharm ship $ */
3
4 -- Global constant holding the package name
5
6 G_PKG_NAME CONSTANT VARCHAR2(30) := 'Qp_pll_pricing_attr_Util';
7 G_PRODUCT_UOM_CODE VARCHAR2(30);
8 -- Procedure Clear_Dependent_Attr
9
10 PROCEDURE Clear_Dependent_Attr
11 ( p_attr_id IN NUMBER := FND_API.G_MISS_NUM
12 , p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
13 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
14 QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC
15 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
16 )
17 IS
18 l_index NUMBER := 0;
19 l_src_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
20 l_dep_attr_tbl QP_GLOBALS.NUMBER_Tbl_Type;
21 BEGIN
22
23 -- Load out record
24
25 x_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
26
27 -- If attr_id is missing compare old and new records and for
28 -- every changed attribute clear its dependent fields.
29
30 IF p_attr_id = FND_API.G_MISS_NUM THEN
31
32 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,p_old_PRICING_ATTR_rec.accumulate_flag)
33 THEN
34 l_index := l_index + 1;
35 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ACCUMULATE;
36 END IF;
37
38 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute1,p_old_PRICING_ATTR_rec.attribute1)
39 THEN
40 l_index := l_index + 1;
41 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE1;
42 END IF;
43
44 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute10,p_old_PRICING_ATTR_rec.attribute10)
45 THEN
46 l_index := l_index + 1;
47 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE10;
48 END IF;
49
50 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute11,p_old_PRICING_ATTR_rec.attribute11)
51 THEN
52 l_index := l_index + 1;
53 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE11;
54 END IF;
55
56 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute12,p_old_PRICING_ATTR_rec.attribute12)
57 THEN
58 l_index := l_index + 1;
59 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE12;
60 END IF;
61
62 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute13,p_old_PRICING_ATTR_rec.attribute13)
63 THEN
64 l_index := l_index + 1;
65 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE13;
66 END IF;
67
68 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute14,p_old_PRICING_ATTR_rec.attribute14)
69 THEN
70 l_index := l_index + 1;
71 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE14;
72 END IF;
73
74 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute15,p_old_PRICING_ATTR_rec.attribute15)
75 THEN
76 l_index := l_index + 1;
77 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE15;
78 END IF;
79
80 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute2,p_old_PRICING_ATTR_rec.attribute2)
81 THEN
82 l_index := l_index + 1;
83 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE2;
84 END IF;
85
86 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute3,p_old_PRICING_ATTR_rec.attribute3)
87 THEN
88 l_index := l_index + 1;
89 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE3;
90 END IF;
91
92 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute4,p_old_PRICING_ATTR_rec.attribute4)
93 THEN
94 l_index := l_index + 1;
95 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE4;
96 END IF;
97
98 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute5,p_old_PRICING_ATTR_rec.attribute5)
99 THEN
100 l_index := l_index + 1;
101 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE5;
102 END IF;
103
104 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute6,p_old_PRICING_ATTR_rec.attribute6)
105 THEN
106 l_index := l_index + 1;
107 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE6;
108 END IF;
109
110 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute7,p_old_PRICING_ATTR_rec.attribute7)
111 THEN
112 l_index := l_index + 1;
113 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE7;
114 END IF;
115
116 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute8,p_old_PRICING_ATTR_rec.attribute8)
117 THEN
118 l_index := l_index + 1;
119 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE8;
120 END IF;
121
122 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute9,p_old_PRICING_ATTR_rec.attribute9)
123 THEN
124 l_index := l_index + 1;
125 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE9;
126 END IF;
127
128 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute_grouping_no,p_old_PRICING_ATTR_rec.attribute_grouping_no)
129 THEN
130 l_index := l_index + 1;
131 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE_GROUPING_NO;
132 END IF;
133
134 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.context,p_old_PRICING_ATTR_rec.context)
135 THEN
136 l_index := l_index + 1;
137 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CONTEXT;
138 END IF;
139
140 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.created_by,p_old_PRICING_ATTR_rec.created_by)
141 THEN
142 l_index := l_index + 1;
143 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CREATED_BY;
144 END IF;
145
146 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.creation_date,p_old_PRICING_ATTR_rec.creation_date)
147 THEN
148 l_index := l_index + 1;
149 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CREATION_DATE;
150 END IF;
151
152 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,p_old_PRICING_ATTR_rec.excluder_flag)
153 THEN
154 l_index := l_index + 1;
155 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_EXCLUDER;
156 END IF;
157
158 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_updated_by,p_old_PRICING_ATTR_rec.last_updated_by)
159 THEN
160 l_index := l_index + 1;
161 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATED_BY;
162 END IF;
163
164 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_date,p_old_PRICING_ATTR_rec.last_update_date)
165 THEN
166 l_index := l_index + 1;
167 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATE_DATE;
168 END IF;
169
170 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_login,p_old_PRICING_ATTR_rec.last_update_login)
171 THEN
172 l_index := l_index + 1;
173 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATE_LOGIN;
174 END IF;
175
176 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,p_old_PRICING_ATTR_rec.list_line_id)
177 THEN
178 l_index := l_index + 1;
179 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LIST_LINE;
180 END IF;
181
182 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_header_id,p_old_PRICING_ATTR_rec.list_header_id)
183 THEN
184 l_index := l_index + 1;
185 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LIST_HEADER;
186 END IF;
187
188 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_phase_id,p_old_PRICING_ATTR_rec.pricing_phase_id)
189 THEN
190 l_index := l_index + 1;
191 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_PHASE;
192 END IF;
193
194 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute,p_old_PRICING_ATTR_rec.pricing_attribute)
195 THEN
196 l_index := l_index + 1;
197 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE;
198 END IF;
199
200 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_context,p_old_PRICING_ATTR_rec.pricing_attribute_context)
201 THEN
202 l_index := l_index + 1;
203 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE_CONTEXT;
204 END IF;
205
206 /*
207 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,p_old_PRICING_ATTR_rec.pricing_attribute_id)
208 THEN
209 l_index := l_index + 1;
210 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE;
211 END IF;
212 */
213
214 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.from_rltd_modifier_id,p_old_PRICING_ATTR_rec.from_rltd_modifier_id)
215 THEN
216 l_index := l_index + 1;
217 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_FROM_RLTD_MODIFIER;
218 END IF;
219
220 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_from,p_old_PRICING_ATTR_rec.pricing_attr_value_from)
221 THEN
222 l_index := l_index + 1;
223 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTR_VALUE_FROM;
224 END IF;
225
226 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_to,p_old_PRICING_ATTR_rec.pricing_attr_value_to)
227 THEN
228 l_index := l_index + 1;
229 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTR_VALUE_TO;
230 END IF;
231
232 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute,p_old_PRICING_ATTR_rec.product_attribute)
233 THEN
234 l_index := l_index + 1;
235 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE;
236 END IF;
237
238 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_context,p_old_PRICING_ATTR_rec.product_attribute_context)
239 THEN
240 l_index := l_index + 1;
241 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE_CONTEXT;
242 END IF;
243
244 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attr_value,p_old_PRICING_ATTR_rec.product_attr_value)
245 THEN
246 l_index := l_index + 1;
247 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTR_VALUE;
248 END IF;
249
250 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,p_old_PRICING_ATTR_rec.product_uom_code)
251 THEN
252 l_index := l_index + 1;
253 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_UOM;
254 END IF;
255
256 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_application_id,p_old_PRICING_ATTR_rec.program_application_id)
257 THEN
258 l_index := l_index + 1;
259 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM_APPLICATION;
260 END IF;
261
262 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_id,p_old_PRICING_ATTR_rec.program_id)
263 THEN
264 l_index := l_index + 1;
265 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM;
266 END IF;
267
268 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_update_date,p_old_PRICING_ATTR_rec.program_update_date)
269 THEN
270 l_index := l_index + 1;
271 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM_UPDATE_DATE;
272 END IF;
273
274 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.request_id,p_old_PRICING_ATTR_rec.request_id)
275 THEN
276 l_index := l_index + 1;
277 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_REQUEST;
278 END IF;
279
280 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.comparison_operator_code, p_old_PRICING_ATTR_rec.comparison_operator_code)
281 THEN
282 l_index := l_index + 1;
283 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_COMPARISON_OPERATOR_CODE;
284 END IF;
285
286 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_datatype, p_old_PRICING_ATTR_rec.pricing_attribute_datatype)
287 THEN
288 l_index := l_index + 1;
289 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE_DATATYPE;
290 END IF;
291
292 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_datatype, p_old_PRICING_ATTR_rec.product_attribute_datatype)
293 THEN
294 l_index := l_index + 1;
295 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE_DATATYPE;
296 END IF;
297
298 ELSIF p_attr_id = G_ACCUMULATE THEN
299 l_index := l_index + 1;
300 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ACCUMULATE;
301 ELSIF p_attr_id = G_ATTRIBUTE1 THEN
302 l_index := l_index + 1;
303 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE1;
304 ELSIF p_attr_id = G_ATTRIBUTE10 THEN
305 l_index := l_index + 1;
306 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE10;
307 ELSIF p_attr_id = G_ATTRIBUTE11 THEN
308 l_index := l_index + 1;
309 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE11;
310 ELSIF p_attr_id = G_ATTRIBUTE12 THEN
311 l_index := l_index + 1;
312 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE12;
313 ELSIF p_attr_id = G_ATTRIBUTE13 THEN
314 l_index := l_index + 1;
315 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE13;
316 ELSIF p_attr_id = G_ATTRIBUTE14 THEN
317 l_index := l_index + 1;
318 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE14;
319 ELSIF p_attr_id = G_ATTRIBUTE15 THEN
320 l_index := l_index + 1;
321 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE15;
322 ELSIF p_attr_id = G_ATTRIBUTE2 THEN
323 l_index := l_index + 1;
324 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE2;
325 ELSIF p_attr_id = G_ATTRIBUTE3 THEN
326 l_index := l_index + 1;
327 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE3;
328 ELSIF p_attr_id = G_ATTRIBUTE4 THEN
329 l_index := l_index + 1;
330 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE4;
331 ELSIF p_attr_id = G_ATTRIBUTE5 THEN
332 l_index := l_index + 1;
333 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE5;
334 ELSIF p_attr_id = G_ATTRIBUTE6 THEN
335 l_index := l_index + 1;
336 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE6;
337 ELSIF p_attr_id = G_ATTRIBUTE7 THEN
338 l_index := l_index + 1;
339 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE7;
340 ELSIF p_attr_id = G_ATTRIBUTE8 THEN
341 l_index := l_index + 1;
342 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE8;
343 ELSIF p_attr_id = G_ATTRIBUTE9 THEN
344 l_index := l_index + 1;
345 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE9;
346 ELSIF p_attr_id = G_ATTRIBUTE_GROUPING_NO THEN
347 l_index := l_index + 1;
348 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_ATTRIBUTE_GROUPING_NO;
349 ELSIF p_attr_id = G_CONTEXT THEN
350 l_index := l_index + 1;
351 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CONTEXT;
352 ELSIF p_attr_id = G_CREATED_BY THEN
353 l_index := l_index + 1;
354 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CREATED_BY;
355 ELSIF p_attr_id = G_CREATION_DATE THEN
356 l_index := l_index + 1;
357 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_CREATION_DATE;
358 ELSIF p_attr_id = G_EXCLUDER THEN
359 l_index := l_index + 1;
360 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_EXCLUDER;
361 ELSIF p_attr_id = G_LAST_UPDATED_BY THEN
362 l_index := l_index + 1;
363 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATED_BY;
364 ELSIF p_attr_id = G_LAST_UPDATE_DATE THEN
365 l_index := l_index + 1;
366 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATE_DATE;
367 ELSIF p_attr_id = G_LAST_UPDATE_LOGIN THEN
368 l_index := l_index + 1;
369 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LAST_UPDATE_LOGIN;
370 ELSIF p_attr_id = G_LIST_LINE THEN
371 l_index := l_index + 1;
372 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_LIST_LINE;
373 ELSIF p_attr_id = G_PRICING_ATTRIBUTE THEN
374 l_index := l_index + 1;
375 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE;
376 ELSIF p_attr_id = G_PRICING_ATTRIBUTE_CONTEXT THEN
377 l_index := l_index + 1;
378 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE_CONTEXT;
379 /*
380 ELSIF p_attr_id = G_PRICING_ATTRIBUTE THEN
381 l_index := l_index + 1;
382 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE;
383 */
384
385 ELSIF p_attr_id = G_FROM_RLTD_MODIFIER THEN
386 l_index := l_index + 1;
387 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_FROM_RLTD_MODIFIER;
388 ELSIF p_attr_id = G_PRICING_ATTR_VALUE_FROM THEN
389 l_index := l_index + 1;
390 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTR_VALUE_FROM;
391 ELSIF p_attr_id = G_PRICING_ATTR_VALUE_TO THEN
392 l_index := l_index + 1;
393 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTR_VALUE_TO;
394 ELSIF p_attr_id = G_PRODUCT_ATTRIBUTE THEN
395 l_index := l_index + 1;
396 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE;
397 ELSIF p_attr_id = G_PRODUCT_ATTRIBUTE_CONTEXT THEN
398 l_index := l_index + 1;
399 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE_CONTEXT;
400 ELSIF p_attr_id = G_PRODUCT_ATTR_VALUE THEN
401 l_index := l_index + 1;
402 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTR_VALUE;
403 ELSIF p_attr_id = G_PRODUCT_UOM THEN
404 l_index := l_index + 1;
405 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_UOM;
406 ELSIF p_attr_id = G_PROGRAM_APPLICATION THEN
407 l_index := l_index + 1;
408 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM_APPLICATION;
409 ELSIF p_attr_id = G_PROGRAM THEN
410 l_index := l_index + 1;
411 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM;
412 ELSIF p_attr_id = G_PROGRAM_UPDATE_DATE THEN
413 l_index := l_index + 1;
414 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PROGRAM_UPDATE_DATE;
415 ELSIF p_attr_id = G_REQUEST THEN
416 l_index := l_index + 1;
417 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_REQUEST;
418
419 ELSIF p_attr_id = G_COMPARISON_OPERATOR_CODE THEN
420 l_index := l_index + 1;
421 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_COMPARISON_OPERATOR_CODE;
422
423 ELSIF p_attr_id = G_PRICING_ATTRIBUTE_DATATYPE THEN
424 l_index := l_index + 1;
425 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRICING_ATTRIBUTE_DATATYPE;
426
427 ELSIF p_attr_id = G_PRODUCT_ATTRIBUTE_DATATYPE THEN
428 l_index := l_index + 1;
429 l_src_attr_tbl(l_index) := QP_pll_pricing_attr_UTIL.G_PRODUCT_ATTRIBUTE_DATATYPE;
430 END IF;
431
432 END Clear_Dependent_Attr;
433
434 -- Procedure Apply_Attribute_Changes
435
436 PROCEDURE Apply_Attribute_Changes
437 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
438 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
439 QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC
440 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
441 )
442 IS
443 l_return_status varchar2(30);
444 l_list_header_id NUMBER;
445 BEGIN
446
447 -- Load out record
448
449 x_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
450
451 IF p_PRICING_ATTR_rec.list_header_id IS NULL OR
452 p_PRICING_ATTR_rec.list_header_id = FND_API.G_MISS_NUM THEN
453
454 BEGIN
455 SELECT list_header_id
456 INTO l_list_header_id
457 FROM qp_list_lines
458 WHERE list_line_id = p_PRICING_ATTR_rec.list_line_id;
459
460 EXCEPTION
461 WHEN OTHERS THEN
462 l_list_header_id := NULL;
463 END;
464
465 x_PRICING_ATTR_rec.list_header_id := l_list_header_id;
466
467 END IF;
468
469 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,p_old_PRICING_ATTR_rec.accumulate_flag)
470 THEN
471 NULL;
472 END IF;
473
474 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute1,p_old_PRICING_ATTR_rec.attribute1)
475 THEN
476 NULL;
477 END IF;
478
479 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute10,p_old_PRICING_ATTR_rec.attribute10)
480 THEN
481 NULL;
482 END IF;
483
484 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute11,p_old_PRICING_ATTR_rec.attribute11)
485 THEN
486 NULL;
487 END IF;
488
489 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute12,p_old_PRICING_ATTR_rec.attribute12)
490 THEN
491 NULL;
492 END IF;
493
494 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute13,p_old_PRICING_ATTR_rec.attribute13)
495 THEN
496 NULL;
497 END IF;
498
499 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute14,p_old_PRICING_ATTR_rec.attribute14)
500 THEN
501 NULL;
502 END IF;
503
504 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute15,p_old_PRICING_ATTR_rec.attribute15)
505 THEN
506 NULL;
507 END IF;
508
509 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute2,p_old_PRICING_ATTR_rec.attribute2)
510 THEN
511 NULL;
512 END IF;
513
514 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute3,p_old_PRICING_ATTR_rec.attribute3)
515 THEN
516 NULL;
517 END IF;
518
519 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute4,p_old_PRICING_ATTR_rec.attribute4)
520 THEN
521 NULL;
522 END IF;
523
524 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute5,p_old_PRICING_ATTR_rec.attribute5)
525 THEN
526 NULL;
527 END IF;
528
529 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute6,p_old_PRICING_ATTR_rec.attribute6)
530 THEN
531 NULL;
532 END IF;
533
534 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute7,p_old_PRICING_ATTR_rec.attribute7)
535 THEN
536 NULL;
537 END IF;
538
539 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute8,p_old_PRICING_ATTR_rec.attribute8)
540 THEN
541 NULL;
542 END IF;
543
544 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute9,p_old_PRICING_ATTR_rec.attribute9)
545 THEN
546 NULL;
547 END IF;
548
549 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute_grouping_no,p_old_PRICING_ATTR_rec.attribute_grouping_no)
550 THEN
551 NULL;
552 END IF;
553
554 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.context,p_old_PRICING_ATTR_rec.context)
555 THEN
556 NULL;
557 END IF;
558
559 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.created_by,p_old_PRICING_ATTR_rec.created_by)
560 THEN
561 NULL;
562 END IF;
563
564 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.creation_date,p_old_PRICING_ATTR_rec.creation_date)
565 THEN
566 NULL;
567 END IF;
568
569 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,p_old_PRICING_ATTR_rec.excluder_flag)
570 THEN
571 NULL;
572 END IF;
573
574 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_updated_by,p_old_PRICING_ATTR_rec.last_updated_by)
575 THEN
576 NULL;
577 END IF;
578
579 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_date,p_old_PRICING_ATTR_rec.last_update_date)
580 THEN
581 NULL;
582 END IF;
583
584 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_login,p_old_PRICING_ATTR_rec.last_update_login)
585 THEN
586 NULL;
587 END IF;
588
589 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,p_old_PRICING_ATTR_rec.list_line_id)
590 THEN
591 qp_delayed_requests_PVT.log_request(
592 p_entity_code => QP_GLOBALS.G_ENTITY_Price_List_Line,
593 p_entity_id => p_PRICING_ATTR_rec.list_line_id,
594 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
595 p_requesting_entity_id => p_PRICING_ATTR_rec.list_line_id,
596 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
597 x_return_status => l_return_status);
598 END IF;
599
600 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_header_id,p_old_PRICING_ATTR_rec.list_header_id)
601 THEN
602 NULL;
603 END IF;
604
605 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_phase_id,p_old_PRICING_ATTR_rec.pricing_phase_id)
606 THEN
607 NULL;
608 END IF;
609
610 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute,p_old_PRICING_ATTR_rec.pricing_attribute)
611 THEN
612 NULL;
613 END IF;
614
615 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_context,p_old_PRICING_ATTR_rec.pricing_attribute_context)
616 THEN
617 NULL;
618 END IF;
619
620 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,p_old_PRICING_ATTR_rec.pricing_attribute_id)
621 THEN
622 NULL;
623 END IF;
624
625 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_from,p_old_PRICING_ATTR_rec.pricing_attr_value_from)
626 THEN
627 NULL;
628 END IF;
629
630 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_to,p_old_PRICING_ATTR_rec.pricing_attr_value_to)
631 THEN
632 NULL;
633 END IF;
634
635 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.from_rltd_modifier_id,p_old_PRICING_ATTR_rec.from_rltd_modifier_id)
636 THEN
637 NULL;
638 END IF;
639
640 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute,p_old_PRICING_ATTR_rec.product_attribute)
641 THEN
642 NULL;
643 END IF;
644
645 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_context,p_old_PRICING_ATTR_rec.product_attribute_context)
646 THEN
647 NULL;
648 END IF;
649
650 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attr_value,p_old_PRICING_ATTR_rec.product_attr_value)
651 THEN
652 NULL;
653 END IF;
654
655 G_PRODUCT_UOM_CODE := p_old_PRICING_ATTR_rec.product_uom_code; --Bug#2853373
656 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,p_old_PRICING_ATTR_rec.product_uom_code)
657 THEN
658 oe_debug_pub.add('New UOM : '||p_PRICING_ATTR_rec.product_uom_code);
659 oe_debug_pub.add('Old UOM : '||p_old_PRICING_ATTR_rec.product_uom_code);
660 G_PRODUCT_UOM_CODE := p_PRICING_ATTR_rec.product_uom_code;
661 -- added for bug 2912834
662 IF p_PRICING_ATTR_rec.operation = QP_GLOBALS.G_OPR_UPDATE
663 THEN
664 UPDATE qp_pricing_attributes
665 SET product_uom_code = p_PRICING_ATTR_rec.product_uom_code
666 WHERE list_line_id = p_PRICING_ATTR_rec.list_line_id;
667
668 -- for updating price breaks rassharm bug no 5965155
669 update qp_pricing_attributes
670 SET product_uom_code = p_PRICING_ATTR_rec.product_uom_code
671 where list_line_id in
672 (
673 select to_rltd_modifier_id
674 from qp_list_lines ql, qp_rltd_modifiers qrm
675 where from_rltd_modifier_id= p_PRICING_ATTR_rec.list_line_id
676 AND qrm.to_rltd_modifier_id = ql.list_line_id
677 AND qrm.rltd_modifier_grp_type = 'PRICE BREAK'
678 ) ;
679
680
681
682 END IF;
683 --pattern
684 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
685 IF(p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
686 qp_delayed_requests_pvt.log_request(
687 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
688 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
689 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
690 p_request_unique_key2 => 'UD',
691 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
692 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
693 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
694 x_return_status => l_return_status);
695 END IF;
696 END IF;
697 --pattern
698
699 END IF;
700
701 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_application_id,p_old_PRICING_ATTR_rec.program_application_id)
702 THEN
703 NULL;
704 END IF;
705
706 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_id,p_old_PRICING_ATTR_rec.program_id)
707 THEN
708 NULL;
709 END IF;
710
711 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_update_date,p_old_PRICING_ATTR_rec.program_update_date)
712 THEN
713 NULL;
714 END IF;
715
716 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.request_id,p_old_PRICING_ATTR_rec.request_id)
717 THEN
718 NULL;
719 END IF;
720
721 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.comparison_operator_code, p_old_PRICING_ATTR_rec.comparison_operator_code)
722 THEN
723 NULL;
724 END IF;
725
726 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_datatype, p_old_PRICING_ATTR_rec.pricing_attribute_datatype)
727 THEN
728 NULL;
729 END IF;
730
731 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_datatype, p_old_PRICING_ATTR_rec.product_attribute_datatype)
732 THEN
733 NULL;
734 END IF;
735
736 END Apply_Attribute_Changes;
737
738 -- Function Complete_Record
739
740 FUNCTION Complete_Record
741 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
742 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
743 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
744 IS
745 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
746 BEGIN
747
748 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
749 l_PRICING_ATTR_rec.accumulate_flag := p_old_PRICING_ATTR_rec.accumulate_flag;
750 END IF;
751
752 IF l_PRICING_ATTR_rec.attribute1 = FND_API.G_MISS_CHAR THEN
753 l_PRICING_ATTR_rec.attribute1 := p_old_PRICING_ATTR_rec.attribute1;
754 END IF;
755
756 IF l_PRICING_ATTR_rec.attribute10 = FND_API.G_MISS_CHAR THEN
757 l_PRICING_ATTR_rec.attribute10 := p_old_PRICING_ATTR_rec.attribute10;
758 END IF;
759
760 IF l_PRICING_ATTR_rec.attribute11 = FND_API.G_MISS_CHAR THEN
761 l_PRICING_ATTR_rec.attribute11 := p_old_PRICING_ATTR_rec.attribute11;
762 END IF;
763
764 IF l_PRICING_ATTR_rec.attribute12 = FND_API.G_MISS_CHAR THEN
765 l_PRICING_ATTR_rec.attribute12 := p_old_PRICING_ATTR_rec.attribute12;
766 END IF;
767
768 IF l_PRICING_ATTR_rec.attribute13 = FND_API.G_MISS_CHAR THEN
769 l_PRICING_ATTR_rec.attribute13 := p_old_PRICING_ATTR_rec.attribute13;
770 END IF;
771
772 IF l_PRICING_ATTR_rec.attribute14 = FND_API.G_MISS_CHAR THEN
773 l_PRICING_ATTR_rec.attribute14 := p_old_PRICING_ATTR_rec.attribute14;
774 END IF;
775
776 IF l_PRICING_ATTR_rec.attribute15 = FND_API.G_MISS_CHAR THEN
777 l_PRICING_ATTR_rec.attribute15 := p_old_PRICING_ATTR_rec.attribute15;
778 END IF;
779
780 IF l_PRICING_ATTR_rec.attribute2 = FND_API.G_MISS_CHAR THEN
781 l_PRICING_ATTR_rec.attribute2 := p_old_PRICING_ATTR_rec.attribute2;
782 END IF;
783
784 IF l_PRICING_ATTR_rec.attribute3 = FND_API.G_MISS_CHAR THEN
785 l_PRICING_ATTR_rec.attribute3 := p_old_PRICING_ATTR_rec.attribute3;
786 END IF;
787
788 IF l_PRICING_ATTR_rec.attribute4 = FND_API.G_MISS_CHAR THEN
789 l_PRICING_ATTR_rec.attribute4 := p_old_PRICING_ATTR_rec.attribute4;
790 END IF;
791
792 IF l_PRICING_ATTR_rec.attribute5 = FND_API.G_MISS_CHAR THEN
793 l_PRICING_ATTR_rec.attribute5 := p_old_PRICING_ATTR_rec.attribute5;
794 END IF;
795
796 IF l_PRICING_ATTR_rec.attribute6 = FND_API.G_MISS_CHAR THEN
797 l_PRICING_ATTR_rec.attribute6 := p_old_PRICING_ATTR_rec.attribute6;
798 END IF;
799
800 IF l_PRICING_ATTR_rec.attribute7 = FND_API.G_MISS_CHAR THEN
801 l_PRICING_ATTR_rec.attribute7 := p_old_PRICING_ATTR_rec.attribute7;
802 END IF;
803
804 IF l_PRICING_ATTR_rec.attribute8 = FND_API.G_MISS_CHAR THEN
805 l_PRICING_ATTR_rec.attribute8 := p_old_PRICING_ATTR_rec.attribute8;
806 END IF;
807
808 IF l_PRICING_ATTR_rec.attribute9 = FND_API.G_MISS_CHAR THEN
809 l_PRICING_ATTR_rec.attribute9 := p_old_PRICING_ATTR_rec.attribute9;
810 END IF;
811
812 IF l_PRICING_ATTR_rec.attribute_grouping_no = FND_API.G_MISS_NUM THEN
813 l_PRICING_ATTR_rec.attribute_grouping_no := p_old_PRICING_ATTR_rec.attribute_grouping_no;
814 END IF;
815
816 IF l_PRICING_ATTR_rec.context = FND_API.G_MISS_CHAR THEN
817 l_PRICING_ATTR_rec.context := p_old_PRICING_ATTR_rec.context;
818 END IF;
819
820 IF l_PRICING_ATTR_rec.created_by = FND_API.G_MISS_NUM THEN
821 l_PRICING_ATTR_rec.created_by := p_old_PRICING_ATTR_rec.created_by;
822 END IF;
823
824 IF l_PRICING_ATTR_rec.creation_date = FND_API.G_MISS_DATE THEN
825 l_PRICING_ATTR_rec.creation_date := p_old_PRICING_ATTR_rec.creation_date;
826 END IF;
827
828 IF l_PRICING_ATTR_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
829 l_PRICING_ATTR_rec.excluder_flag := p_old_PRICING_ATTR_rec.excluder_flag;
830 END IF;
831
832 IF l_PRICING_ATTR_rec.last_updated_by = FND_API.G_MISS_NUM THEN
833 l_PRICING_ATTR_rec.last_updated_by := p_old_PRICING_ATTR_rec.last_updated_by;
834 END IF;
835
836 IF l_PRICING_ATTR_rec.last_update_date = FND_API.G_MISS_DATE THEN
837 l_PRICING_ATTR_rec.last_update_date := p_old_PRICING_ATTR_rec.last_update_date;
838 END IF;
839
840 IF l_PRICING_ATTR_rec.last_update_login = FND_API.G_MISS_NUM THEN
841 l_PRICING_ATTR_rec.last_update_login := p_old_PRICING_ATTR_rec.last_update_login;
842 END IF;
843
844 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
845 l_PRICING_ATTR_rec.list_line_id := p_old_PRICING_ATTR_rec.list_line_id;
846 END IF;
847
848 IF l_PRICING_ATTR_rec.list_header_id = FND_API.G_MISS_NUM THEN
849 l_PRICING_ATTR_rec.list_header_id := p_old_PRICING_ATTR_rec.list_header_id;
850 END IF;
851
852 IF l_PRICING_ATTR_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
853 l_PRICING_ATTR_rec.pricing_phase_id := p_old_PRICING_ATTR_rec.pricing_phase_id;
854 END IF;
855
856 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
857 l_PRICING_ATTR_rec.pricing_attribute := p_old_PRICING_ATTR_rec.pricing_attribute;
858 END IF;
859
860 IF l_PRICING_ATTR_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
861 l_PRICING_ATTR_rec.pricing_attribute_context := p_old_PRICING_ATTR_rec.pricing_attribute_context;
862 END IF;
863
864 IF l_PRICING_ATTR_rec.pricing_attribute_id = FND_API.G_MISS_NUM THEN
865 l_PRICING_ATTR_rec.pricing_attribute_id := p_old_PRICING_ATTR_rec.pricing_attribute_id;
866 END IF;
867
868 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
869 l_PRICING_ATTR_rec.pricing_attr_value_from := p_old_PRICING_ATTR_rec.pricing_attr_value_from;
870 END IF;
871
872 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
873 l_PRICING_ATTR_rec.pricing_attr_value_to := p_old_PRICING_ATTR_rec.pricing_attr_value_to;
874 END IF;
875
876 IF l_PRICING_ATTR_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
877 l_PRICING_ATTR_rec.from_rltd_modifier_id := p_old_PRICING_ATTR_rec.from_rltd_modifier_id;
878 END IF;
879
880 IF l_PRICING_ATTR_rec.product_attribute = FND_API.G_MISS_CHAR THEN
881 l_PRICING_ATTR_rec.product_attribute := p_old_PRICING_ATTR_rec.product_attribute;
882 END IF;
883
884 IF l_PRICING_ATTR_rec.product_attribute_context = FND_API.G_MISS_CHAR THEN
885 l_PRICING_ATTR_rec.product_attribute_context := p_old_PRICING_ATTR_rec.product_attribute_context;
886 END IF;
887
888 IF l_PRICING_ATTR_rec.product_attr_value = FND_API.G_MISS_CHAR THEN
889 l_PRICING_ATTR_rec.product_attr_value := p_old_PRICING_ATTR_rec.product_attr_value;
890 END IF;
891
892 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
893 l_PRICING_ATTR_rec.product_uom_code := p_old_PRICING_ATTR_rec.product_uom_code;
894 END IF;
895
896 IF l_PRICING_ATTR_rec.program_application_id = FND_API.G_MISS_NUM THEN
897 l_PRICING_ATTR_rec.program_application_id := p_old_PRICING_ATTR_rec.program_application_id;
898 END IF;
899
900 IF l_PRICING_ATTR_rec.program_id = FND_API.G_MISS_NUM THEN
901 l_PRICING_ATTR_rec.program_id := p_old_PRICING_ATTR_rec.program_id;
902 END IF;
903
904 IF l_PRICING_ATTR_rec.program_update_date = FND_API.G_MISS_DATE THEN
905 l_PRICING_ATTR_rec.program_update_date := p_old_PRICING_ATTR_rec.program_update_date;
906 END IF;
907
908 IF l_PRICING_ATTR_rec.request_id = FND_API.G_MISS_NUM THEN
909 l_PRICING_ATTR_rec.request_id := p_old_PRICING_ATTR_rec.request_id;
910 END IF;
911
912 IF l_PRICING_ATTR_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
913 l_PRICING_ATTR_rec.comparison_operator_code := p_old_PRICING_ATTR_rec.comparison_operator_code;
914 END IF;
915
916 IF l_PRICING_ATTR_rec.pricing_attribute_datatype = FND_API.G_MISS_CHAR THEN
917 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_old_PRICING_ATTR_rec.pricing_attribute_datatype;
918 END IF;
919
920 IF l_PRICING_ATTR_rec.product_attribute_datatype = FND_API.G_MISS_CHAR THEN
921 l_PRICING_ATTR_rec.product_attribute_datatype := p_old_PRICING_ATTR_rec.product_attribute_datatype;
922 END IF;
923
924 IF l_PRICING_ATTR_rec.qualification_ind = FND_API.G_MISS_NUM THEN
925 l_PRICING_ATTR_rec.qualification_ind := p_old_PRICING_ATTR_rec.qualification_ind;
926 END IF;
927
928 RETURN l_PRICING_ATTR_rec;
929
930 END Complete_Record;
931
932 -- Function Convert_Miss_To_Null
933
934 FUNCTION Convert_Miss_To_Null
935 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
936 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
937 IS
938 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
939 BEGIN
940
941 IF l_PRICING_ATTR_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
942 l_PRICING_ATTR_rec.from_rltd_modifier_id := NULL;
943 END IF;
944
945 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
946 l_PRICING_ATTR_rec.accumulate_flag := NULL;
947 END IF;
948
949 IF l_PRICING_ATTR_rec.attribute1 = FND_API.G_MISS_CHAR THEN
950 l_PRICING_ATTR_rec.attribute1 := NULL;
951 END IF;
952
953 IF l_PRICING_ATTR_rec.attribute10 = FND_API.G_MISS_CHAR THEN
954 l_PRICING_ATTR_rec.attribute10 := NULL;
955 END IF;
956
957 IF l_PRICING_ATTR_rec.attribute11 = FND_API.G_MISS_CHAR THEN
958 l_PRICING_ATTR_rec.attribute11 := NULL;
959 END IF;
960
961 IF l_PRICING_ATTR_rec.attribute12 = FND_API.G_MISS_CHAR THEN
962 l_PRICING_ATTR_rec.attribute12 := NULL;
963 END IF;
964
965 IF l_PRICING_ATTR_rec.attribute13 = FND_API.G_MISS_CHAR THEN
966 l_PRICING_ATTR_rec.attribute13 := NULL;
967 END IF;
968
969 IF l_PRICING_ATTR_rec.attribute14 = FND_API.G_MISS_CHAR THEN
970 l_PRICING_ATTR_rec.attribute14 := NULL;
971 END IF;
972
973 IF l_PRICING_ATTR_rec.attribute15 = FND_API.G_MISS_CHAR THEN
974 l_PRICING_ATTR_rec.attribute15 := NULL;
975 END IF;
976
977 IF l_PRICING_ATTR_rec.attribute2 = FND_API.G_MISS_CHAR THEN
978 l_PRICING_ATTR_rec.attribute2 := NULL;
979 END IF;
980
981 IF l_PRICING_ATTR_rec.attribute3 = FND_API.G_MISS_CHAR THEN
982 l_PRICING_ATTR_rec.attribute3 := NULL;
983 END IF;
984
985 IF l_PRICING_ATTR_rec.attribute4 = FND_API.G_MISS_CHAR THEN
986 l_PRICING_ATTR_rec.attribute4 := NULL;
987 END IF;
988
989 IF l_PRICING_ATTR_rec.attribute5 = FND_API.G_MISS_CHAR THEN
990 l_PRICING_ATTR_rec.attribute5 := NULL;
991 END IF;
992
993 IF l_PRICING_ATTR_rec.attribute6 = FND_API.G_MISS_CHAR THEN
994 l_PRICING_ATTR_rec.attribute6 := NULL;
995 END IF;
996
997 IF l_PRICING_ATTR_rec.attribute7 = FND_API.G_MISS_CHAR THEN
998 l_PRICING_ATTR_rec.attribute7 := NULL;
999 END IF;
1000
1001 IF l_PRICING_ATTR_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1002 l_PRICING_ATTR_rec.attribute8 := NULL;
1003 END IF;
1004
1005 IF l_PRICING_ATTR_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1006 l_PRICING_ATTR_rec.attribute9 := NULL;
1007 END IF;
1008
1009 IF l_PRICING_ATTR_rec.attribute_grouping_no = FND_API.G_MISS_NUM THEN
1010 l_PRICING_ATTR_rec.attribute_grouping_no := NULL;
1011 END IF;
1012
1013 IF l_PRICING_ATTR_rec.context = FND_API.G_MISS_CHAR THEN
1014 l_PRICING_ATTR_rec.context := NULL;
1015 END IF;
1016
1017 IF l_PRICING_ATTR_rec.created_by = FND_API.G_MISS_NUM THEN
1018 l_PRICING_ATTR_rec.created_by := NULL;
1019 END IF;
1020
1021 IF l_PRICING_ATTR_rec.creation_date = FND_API.G_MISS_DATE THEN
1022 l_PRICING_ATTR_rec.creation_date := NULL;
1023 END IF;
1024
1025 IF l_PRICING_ATTR_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
1026 l_PRICING_ATTR_rec.excluder_flag := NULL;
1027 END IF;
1028
1029 IF l_PRICING_ATTR_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1030 l_PRICING_ATTR_rec.last_updated_by := NULL;
1031 END IF;
1032
1033 IF l_PRICING_ATTR_rec.last_update_date = FND_API.G_MISS_DATE THEN
1034 l_PRICING_ATTR_rec.last_update_date := NULL;
1035 END IF;
1036
1037 IF l_PRICING_ATTR_rec.last_update_login = FND_API.G_MISS_NUM THEN
1038 l_PRICING_ATTR_rec.last_update_login := NULL;
1039 END IF;
1040
1041 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
1042 l_PRICING_ATTR_rec.list_line_id := NULL;
1043 END IF;
1044
1045 IF l_PRICING_ATTR_rec.list_header_id = FND_API.G_MISS_NUM THEN
1046 l_PRICING_ATTR_rec.list_header_id := NULL;
1047 END IF;
1048
1049 IF l_PRICING_ATTR_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
1050 l_PRICING_ATTR_rec.pricing_phase_id := NULL;
1051 END IF;
1052
1053 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
1054 l_PRICING_ATTR_rec.pricing_attribute := NULL;
1055 END IF;
1056
1057 IF l_PRICING_ATTR_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
1058 l_PRICING_ATTR_rec.pricing_attribute_context := NULL;
1059 END IF;
1060
1061 IF l_PRICING_ATTR_rec.pricing_attribute_id = FND_API.G_MISS_NUM THEN
1062 l_PRICING_ATTR_rec.pricing_attribute_id := NULL;
1063 END IF;
1064
1065 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
1066 l_PRICING_ATTR_rec.pricing_attr_value_from := NULL;
1067 END IF;
1068
1069 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
1070 l_PRICING_ATTR_rec.pricing_attr_value_to := NULL;
1071 END IF;
1072
1073 IF l_PRICING_ATTR_rec.product_attribute = FND_API.G_MISS_CHAR THEN
1074 l_PRICING_ATTR_rec.product_attribute := NULL;
1075 END IF;
1076
1077 IF l_PRICING_ATTR_rec.product_attribute_context = FND_API.G_MISS_CHAR THEN
1078 l_PRICING_ATTR_rec.product_attribute_context := NULL;
1079 END IF;
1080
1081 IF l_PRICING_ATTR_rec.product_attr_value = FND_API.G_MISS_CHAR THEN
1082 l_PRICING_ATTR_rec.product_attr_value := NULL;
1083 END IF;
1084
1085 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
1086 l_PRICING_ATTR_rec.product_uom_code := NULL;
1087 END IF;
1088
1089 IF l_PRICING_ATTR_rec.program_application_id = FND_API.G_MISS_NUM THEN
1090 l_PRICING_ATTR_rec.program_application_id := NULL;
1091 END IF;
1092
1093 IF l_PRICING_ATTR_rec.program_id = FND_API.G_MISS_NUM THEN
1094 l_PRICING_ATTR_rec.program_id := NULL;
1095 END IF;
1096
1097 IF l_PRICING_ATTR_rec.program_update_date = FND_API.G_MISS_DATE THEN
1098 l_PRICING_ATTR_rec.program_update_date := NULL;
1099 END IF;
1100
1101 IF l_PRICING_ATTR_rec.request_id = FND_API.G_MISS_NUM THEN
1102 l_PRICING_ATTR_rec.request_id := NULL;
1103 END IF;
1104
1105 IF l_PRICING_ATTR_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
1106 l_PRICING_ATTR_rec.comparison_operator_code := NULL;
1107 END IF;
1108
1109 IF l_PRICING_ATTR_rec.pricing_attribute_datatype = FND_API.G_MISS_CHAR THEN
1110 l_PRICING_ATTR_rec.pricing_attribute_datatype := NULL;
1111 END IF;
1112
1113 IF l_PRICING_ATTR_rec.product_attribute_datatype = FND_API.G_MISS_CHAR THEN
1114 l_PRICING_ATTR_rec.product_attribute_datatype := NULL;
1115 END IF;
1116
1117 IF l_PRICING_ATTR_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1118 l_PRICING_ATTR_rec.qualification_ind := NULL;
1119 END IF;
1120
1121 RETURN l_PRICING_ATTR_rec;
1122
1123 END Convert_Miss_To_Null;
1124
1125 -- Procedure Update_Row
1126
1127 PROCEDURE Update_Row
1128 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1129 )
1130 IS
1131 l_pric_attr_value_from_number NUMBER := NULL;
1132 l_pric_attr_value_to_number NUMBER := NULL;
1133 l_check_active_flag VARCHAR2(1);
1134 l_active_flag VARCHAR2(1);
1135 l_pric_attr_value_from VARCHAR2(240);
1136
1137 BEGIN
1138
1139 SELECT ACTIVE_FLAG
1140 INTO l_active_flag
1141 FROM QP_LIST_HEADERS_B
1142 WHERE LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id;
1143
1144 oe_debug_pub.add('BEGIN Update_Row in QPXUPRAB');
1145
1146 BEGIN
1147 IF p_PRICING_ATTR_rec.pricing_attribute_datatype = 'N' THEN
1148 l_pric_attr_value_from_number :=
1149 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_from);
1150
1151 l_pric_attr_value_to_number :=
1152 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_to);
1153
1154 l_pric_attr_value_from :=
1155 qp_number.number_to_canonical(l_pric_attr_value_from_number); --4418053
1156 ELSE
1157
1158 l_pric_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from; --4418053
1159
1160 end if;
1161
1162 EXCEPTION
1163 WHEN VALUE_ERROR THEN
1164 NULL;
1165 WHEN OTHERS THEN
1166 NULL;
1167 END;
1168
1169 IF G_PRODUCT_UOM_CODE IS NULL
1170 THEN G_PRODUCT_UOM_CODE :=p_PRICING_ATTR_rec.product_uom_code;
1171 END IF;
1172
1173 UPDATE QP_PRICING_ATTRIBUTES
1174 SET ACCUMULATE_FLAG = p_PRICING_ATTR_rec.accumulate_flag
1175 , ATTRIBUTE1 = p_PRICING_ATTR_rec.attribute1
1176 , ATTRIBUTE10 = p_PRICING_ATTR_rec.attribute10
1177 , ATTRIBUTE11 = p_PRICING_ATTR_rec.attribute11
1178 , ATTRIBUTE12 = p_PRICING_ATTR_rec.attribute12
1179 , ATTRIBUTE13 = p_PRICING_ATTR_rec.attribute13
1180 , ATTRIBUTE14 = p_PRICING_ATTR_rec.attribute14
1181 , ATTRIBUTE15 = p_PRICING_ATTR_rec.attribute15
1182 , ATTRIBUTE2 = p_PRICING_ATTR_rec.attribute2
1183 , ATTRIBUTE3 = p_PRICING_ATTR_rec.attribute3
1184 , ATTRIBUTE4 = p_PRICING_ATTR_rec.attribute4
1185 , ATTRIBUTE5 = p_PRICING_ATTR_rec.attribute5
1186 , ATTRIBUTE6 = p_PRICING_ATTR_rec.attribute6
1187 , ATTRIBUTE7 = p_PRICING_ATTR_rec.attribute7
1188 , ATTRIBUTE8 = p_PRICING_ATTR_rec.attribute8
1189 , ATTRIBUTE9 = p_PRICING_ATTR_rec.attribute9
1190 , ATTRIBUTE_GROUPING_NO = p_PRICING_ATTR_rec.attribute_grouping_no
1191 , CONTEXT = p_PRICING_ATTR_rec.context
1192 , CREATED_BY = p_PRICING_ATTR_rec.created_by
1193 , CREATION_DATE = p_PRICING_ATTR_rec.creation_date
1194 , EXCLUDER_FLAG = p_PRICING_ATTR_rec.excluder_flag
1195 , LAST_UPDATED_BY = p_PRICING_ATTR_rec.last_updated_by
1196 , LAST_UPDATE_DATE = p_PRICING_ATTR_rec.last_update_date
1197 , LAST_UPDATE_LOGIN = p_PRICING_ATTR_rec.last_update_login
1198 , LIST_LINE_ID = p_PRICING_ATTR_rec.list_line_id
1199 , LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id
1200 , PRICING_PHASE_ID = p_PRICING_ATTR_rec.pricing_phase_id
1201 , PRICING_ATTRIBUTE = p_PRICING_ATTR_rec.pricing_attribute
1202 , PRICING_ATTRIBUTE_CONTEXT = p_PRICING_ATTR_rec.pricing_attribute_context
1203 , PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1204 , PRICING_ATTR_VALUE_FROM = l_pric_attr_value_from
1205 , PRICING_ATTR_VALUE_TO = p_PRICING_ATTR_rec.pricing_attr_value_to
1206 , PRODUCT_ATTRIBUTE = p_PRICING_ATTR_rec.product_attribute
1207 , PRODUCT_ATTRIBUTE_CONTEXT = p_PRICING_ATTR_rec.product_attribute_context
1208 , PRODUCT_ATTR_VALUE = p_PRICING_ATTR_rec.product_attr_value
1209 --, PRODUCT_UOM_CODE = p_PRICING_ATTR_rec.product_uom_code
1210 , PRODUCT_UOM_CODE = G_PRODUCT_UOM_CODE
1211 , PROGRAM_APPLICATION_ID = p_PRICING_ATTR_rec.program_application_id
1212 , PROGRAM_ID = p_PRICING_ATTR_rec.program_id
1213 , PROGRAM_UPDATE_DATE = p_PRICING_ATTR_rec.program_update_date
1214 , REQUEST_ID = p_PRICING_ATTR_rec.request_id
1215 , COMPARISON_OPERATOR_CODE = p_PRICING_ATTR_rec.comparison_operator_code
1216 , PRICING_ATTRIBUTE_DATATYPE = p_PRICING_ATTR_rec.pricing_attribute_datatype
1217 , PRODUCT_ATTRIBUTE_DATATYPE = p_PRICING_ATTR_rec.product_attribute_datatype
1218 , PRICING_ATTR_VALUE_FROM_NUMBER = l_pric_attr_value_from_number
1219 , PRICING_ATTR_VALUE_TO_NUMBER = l_pric_attr_value_to_number
1220 , QUALIFICATION_IND = p_PRICING_ATTR_rec.qualification_ind
1221 WHERE PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1222 ;
1223
1224 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1225 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1226
1227 IF(p_PRICING_ATTR_rec.pricing_attribute_context IS NOT NULL) AND
1228 (p_PRICING_ATTR_rec.pricing_attribute IS NOT NULL) THEN
1229
1230 UPDATE qp_pte_segments set used_in_setup='Y'
1231 WHERE nvl(used_in_setup,'N')='N'
1232 AND segment_id IN
1233 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1234 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.pricing_attribute
1235 AND a.prc_context_id=b.prc_context_id
1236 AND b.prc_context_type='PRICING_ATTRIBUTE'
1237 AND b.prc_context_code=p_PRICING_ATTR_rec.pricing_attribute_context);
1238
1239 END IF;
1240
1241 IF(p_PRICING_ATTR_rec.product_attribute_context IS NOT NULL) AND
1242 (p_PRICING_ATTR_rec.product_attribute IS NOT NULL) THEN
1243
1244 UPDATE qp_pte_segments set used_in_setup='Y'
1245 WHERE nvl(used_in_setup,'N')='N'
1246 AND segment_id IN
1247 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1248 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.product_attribute
1249 AND a.prc_context_id=b.prc_context_id
1250 AND b.prc_context_type='PRODUCT'
1251 AND b.prc_context_code=p_PRICING_ATTR_rec.product_attribute_context);
1252
1253 END IF;
1254 END IF;
1255
1256 EXCEPTION
1257
1258 WHEN OTHERS THEN
1259
1260 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1261 THEN
1262 oe_msg_pub.Add_Exc_Msg
1263 ( G_PKG_NAME
1264 , 'Update_Row'
1265 );
1266 END IF;
1267
1268 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1269
1270 END Update_Row;
1271
1272 -- Procedure Insert_Row
1273
1274 PROCEDURE Insert_Row
1275 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1276 )
1277 IS
1278 l_check_active_flag VARCHAR2(1);
1279 l_active_flag VARCHAR2(1);
1280 l_return_status VARCHAR2(1);
1281 l_pric_attr_value_from_number NUMBER := NULL;
1282 l_pric_attr_value_to_number NUMBER := NULL;
1283 l_pric_attr_value_from VARCHAR2(240);
1284
1285 BEGIN
1286
1287 oe_debug_pub.add('BEGIN Update_Row in QPXUPRAB');
1288 SELECT ACTIVE_FLAG
1289 INTO l_active_flag
1290 FROM QP_LIST_HEADERS_B
1291 WHERE LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id;
1292
1293
1294 BEGIN
1295 IF p_PRICING_ATTR_rec.pricing_attribute_datatype = 'N' THEN
1296 l_pric_attr_value_from_number :=
1297 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_from);
1298
1299 l_pric_attr_value_to_number :=
1300 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_to);
1301
1302 l_pric_attr_value_from :=
1303 qp_number.number_to_canonical(l_pric_attr_value_from_number); --4418053
1304 ELSE
1305
1306 l_pric_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from; --4418053
1307 END IF;
1308
1309 EXCEPTION
1310 WHEN VALUE_ERROR THEN
1311 NULL;
1312 WHEN OTHERS THEN
1313 NULL;
1314 END;
1315
1316
1317 INSERT INTO QP_PRICING_ATTRIBUTES
1318 ( ACCUMULATE_FLAG
1319 , ATTRIBUTE1
1320 , ATTRIBUTE10
1321 , ATTRIBUTE11
1322 , ATTRIBUTE12
1323 , ATTRIBUTE13
1324 , ATTRIBUTE14
1325 , ATTRIBUTE15
1326 , ATTRIBUTE2
1327 , ATTRIBUTE3
1328 , ATTRIBUTE4
1329 , ATTRIBUTE5
1330 , ATTRIBUTE6
1331 , ATTRIBUTE7
1332 , ATTRIBUTE8
1333 , ATTRIBUTE9
1334 , ATTRIBUTE_GROUPING_NO
1335 , CONTEXT
1336 , CREATED_BY
1337 , CREATION_DATE
1338 , EXCLUDER_FLAG
1339 , LAST_UPDATED_BY
1340 , LAST_UPDATE_DATE
1341 , LAST_UPDATE_LOGIN
1342 , LIST_LINE_ID
1343 , LIST_HEADER_ID
1344 , PRICING_PHASE_ID
1345 , PRICING_ATTRIBUTE
1346 , PRICING_ATTRIBUTE_CONTEXT
1347 , PRICING_ATTRIBUTE_ID
1348 , PRICING_ATTR_VALUE_FROM
1349 , PRICING_ATTR_VALUE_TO
1350 , PRODUCT_ATTRIBUTE
1351 , PRODUCT_ATTRIBUTE_CONTEXT
1352 , PRODUCT_ATTR_VALUE
1353 , PRODUCT_UOM_CODE
1354 , PROGRAM_APPLICATION_ID
1355 , PROGRAM_ID
1356 , PROGRAM_UPDATE_DATE
1357 , REQUEST_ID
1358 , COMPARISON_OPERATOR_CODE
1359 , PRICING_ATTRIBUTE_DATATYPE
1360 , PRODUCT_ATTRIBUTE_DATATYPE
1361 , PRICING_ATTR_VALUE_FROM_NUMBER
1362 , PRICING_ATTR_VALUE_TO_NUMBER
1363 , QUALIFICATION_IND
1364 --ENH Upgrade BOAPI for orig_sys...ref RAVI
1365 ,ORIG_SYS_PRICING_ATTR_REF
1366 ,ORIG_SYS_LINE_REF
1367 ,ORIG_SYS_HEADER_REF
1368 )
1369 VALUES
1370 ( p_PRICING_ATTR_rec.accumulate_flag
1371 , p_PRICING_ATTR_rec.attribute1
1372 , p_PRICING_ATTR_rec.attribute10
1373 , p_PRICING_ATTR_rec.attribute11
1374 , p_PRICING_ATTR_rec.attribute12
1375 , p_PRICING_ATTR_rec.attribute13
1376 , p_PRICING_ATTR_rec.attribute14
1377 , p_PRICING_ATTR_rec.attribute15
1378 , p_PRICING_ATTR_rec.attribute2
1379 , p_PRICING_ATTR_rec.attribute3
1380 , p_PRICING_ATTR_rec.attribute4
1381 , p_PRICING_ATTR_rec.attribute5
1382 , p_PRICING_ATTR_rec.attribute6
1383 , p_PRICING_ATTR_rec.attribute7
1384 , p_PRICING_ATTR_rec.attribute8
1385 , p_PRICING_ATTR_rec.attribute9
1386 , p_PRICING_ATTR_rec.attribute_grouping_no
1387 , p_PRICING_ATTR_rec.context
1388 , p_PRICING_ATTR_rec.created_by
1389 , p_PRICING_ATTR_rec.creation_date
1390 , p_PRICING_ATTR_rec.excluder_flag
1391 , p_PRICING_ATTR_rec.last_updated_by
1392 , p_PRICING_ATTR_rec.last_update_date
1393 , p_PRICING_ATTR_rec.last_update_login
1394 , p_PRICING_ATTR_rec.list_line_id
1395 , p_PRICING_ATTR_rec.list_header_id
1396 , p_PRICING_ATTR_rec.pricing_phase_id
1397 , p_PRICING_ATTR_rec.pricing_attribute
1398 , p_PRICING_ATTR_rec.pricing_attribute_context
1399 , p_PRICING_ATTR_rec.pricing_attribute_id
1400 , l_pric_attr_value_from
1401 , p_PRICING_ATTR_rec.pricing_attr_value_to
1402 , p_PRICING_ATTR_rec.product_attribute
1403 , p_PRICING_ATTR_rec.product_attribute_context
1404 , p_PRICING_ATTR_rec.product_attr_value
1405 , p_PRICING_ATTR_rec.product_uom_code
1406 , p_PRICING_ATTR_rec.program_application_id
1407 , p_PRICING_ATTR_rec.program_id
1408 , p_PRICING_ATTR_rec.program_update_date
1409 , p_PRICING_ATTR_rec.request_id
1410 , p_PRICING_ATTR_rec.comparison_operator_code
1411 , p_PRICING_ATTR_rec.pricing_attribute_datatype
1412 , p_PRICING_ATTR_rec.product_attribute_datatype
1413 , l_pric_attr_value_from_number
1414 , l_pric_attr_value_to_number
1415 , p_PRICING_ATTR_rec.qualification_ind --euro bug 2138996
1416 --ENH Upgrade BOAPI for orig_sys...ref RAVI
1417 ,to_char(p_PRICING_ATTR_rec.pricing_attribute_id)
1418 ,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=p_PRICING_ATTR_rec.list_line_id)
1419 ,(select h.ORIG_SYSTEM_HEADER_REF from qp_list_headers_b h where h.list_header_id=p_PRICING_ATTR_rec.list_header_id)
1420 );
1421
1422 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1423 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1424 IF(p_PRICING_ATTR_rec.pricing_attribute_context IS NOT NULL) AND
1425 (p_PRICING_ATTR_rec.pricing_attribute IS NOT NULL) THEN
1426
1427 UPDATE qp_pte_segments set used_in_setup='Y'
1428 WHERE nvl(used_in_setup,'N')='N'
1429 AND segment_id IN
1430 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1431 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.pricing_attribute
1432 AND a.prc_context_id=b.prc_context_id
1433 AND b.prc_context_type='PRICING_ATTRIBUTE'
1434 AND b.prc_context_code=p_PRICING_ATTR_rec.pricing_attribute_context);
1435
1436 END IF;
1437
1438
1439 IF(p_PRICING_ATTR_rec.product_attribute_context IS NOT NULL) AND
1440 (p_PRICING_ATTR_rec.product_attribute IS NOT NULL) THEN
1441
1442 UPDATE qp_pte_segments set used_in_setup='Y'
1443 WHERE nvl(used_in_setup,'N')='N'
1444 AND segment_id IN
1445 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1446 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.product_attribute
1447 AND a.prc_context_id=b.prc_context_id
1448 AND b.prc_context_type='PRODUCT'
1449 AND b.prc_context_code=p_PRICING_ATTR_rec.product_attribute_context);
1450
1451 END IF;
1452 END IF;
1453
1454 qp_delayed_requests_PVT.log_request(
1455 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1456 p_entity_id => p_PRICING_ATTR_rec.list_line_id,
1457 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE,
1458 p_requesting_entity_id => p_PRICING_ATTR_rec.list_line_id,
1459 p_request_type => QP_GLOBALS.G_UPDATE_PRICING_ATTR_PHASE,
1460 x_return_status => l_return_status);
1461
1462 EXCEPTION
1463
1464 WHEN OTHERS THEN
1465
1466 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1467 THEN
1468 oe_msg_pub.Add_Exc_Msg
1469 ( G_PKG_NAME
1470 , 'Insert_Row'
1471 );
1472 END IF;
1473
1474 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1475
1476 END Insert_Row;
1477
1478 -- Procedure Delete_Row
1479
1480 PROCEDURE Delete_Row
1481 ( p_pricing_attribute_id IN NUMBER
1482 )
1483 IS
1484 BEGIN
1485
1486
1487
1488 DELETE FROM QP_PRICING_ATTRIBUTES
1489 WHERE PRICING_ATTRIBUTE_ID = p_pricing_attribute_id
1490 ;
1491
1492
1493 EXCEPTION
1494
1495 WHEN OTHERS THEN
1496
1497 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1498 THEN
1499 oe_msg_pub.Add_Exc_Msg
1500 ( G_PKG_NAME
1501 , 'Delete_Row'
1502 );
1503 END IF;
1504
1505 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1506
1507 END Delete_Row;
1508
1509 -- Function Query_Row
1510
1511 FUNCTION Query_Row
1512 ( p_pricing_attribute_id IN NUMBER
1513 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1514 IS
1515 BEGIN
1516
1517 RETURN Query_Rows
1518 ( p_pricing_attribute_id => p_pricing_attribute_id
1519 )(1);
1520
1521 END Query_Row;
1522
1523 -- Function Query_Rows
1524
1525 --
1526
1527 FUNCTION Query_Rows
1528 ( p_pricing_attribute_id IN NUMBER :=
1529 FND_API.G_MISS_NUM
1530 , p_list_line_id IN NUMBER :=
1531 FND_API.G_MISS_NUM
1532 ) RETURN QP_Price_List_PUB.Pricing_Attr_Tbl_Type
1533 IS
1534 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1535 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1536
1537 CURSOR l_PRICING_ATTR_csr IS
1538 SELECT ACCUMULATE_FLAG
1539 , ATTRIBUTE1
1540 , ATTRIBUTE10
1541 , ATTRIBUTE11
1542 , ATTRIBUTE12
1543 , ATTRIBUTE13
1544 , ATTRIBUTE14
1545 , ATTRIBUTE15
1546 , ATTRIBUTE2
1547 , ATTRIBUTE3
1548 , ATTRIBUTE4
1549 , ATTRIBUTE5
1550 , ATTRIBUTE6
1551 , ATTRIBUTE7
1552 , ATTRIBUTE8
1553 , ATTRIBUTE9
1554 , ATTRIBUTE_GROUPING_NO
1555 , CONTEXT
1556 , CREATED_BY
1557 , CREATION_DATE
1558 , EXCLUDER_FLAG
1559 , LAST_UPDATED_BY
1560 , LAST_UPDATE_DATE
1561 , LAST_UPDATE_LOGIN
1562 , LIST_LINE_ID
1563 , LIST_HEADER_ID
1564 , PRICING_PHASE_ID
1565 , PRICING_ATTRIBUTE
1566 , PRICING_ATTRIBUTE_CONTEXT
1567 , PRICING_ATTRIBUTE_ID
1568 , PRICING_ATTR_VALUE_FROM
1569 , PRICING_ATTR_VALUE_TO
1570 , PRODUCT_ATTRIBUTE
1571 , PRODUCT_ATTRIBUTE_CONTEXT
1572 , PRODUCT_ATTR_VALUE
1573 , PRODUCT_UOM_CODE
1574 , PROGRAM_APPLICATION_ID
1575 , PROGRAM_ID
1576 , PROGRAM_UPDATE_DATE
1577 , REQUEST_ID
1578 , COMPARISON_OPERATOR_CODE
1579 , PRICING_ATTRIBUTE_DATATYPE
1580 , PRODUCT_ATTRIBUTE_DATATYPE
1581 , PRICING_ATTR_VALUE_FROM_NUMBER
1582 , PRICING_ATTR_VALUE_TO_NUMBER
1583 , QUALIFICATION_IND
1584 FROM QP_PRICING_ATTRIBUTES
1585 WHERE ( PRICING_ATTRIBUTE_ID = p_pricing_attribute_id
1586 )
1587 OR ( LIST_LINE_ID = p_list_line_id
1588 );
1589
1590 BEGIN
1591
1592 IF
1593 (p_pricing_attribute_id IS NOT NULL
1594 AND
1595 p_pricing_attribute_id <> FND_API.G_MISS_NUM)
1596 AND
1597 (p_list_line_id IS NOT NULL
1598 AND
1599 p_list_line_id <> FND_API.G_MISS_NUM)
1600 THEN
1601 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1602 THEN
1603 oe_msg_pub.Add_Exc_Msg
1604 ( G_PKG_NAME
1605 , 'Query Rows'
1606 , 'Keys are mutually exclusive: pricing_attribute_id = '|| p_pricing_attribute_id || ', list_line_id = '|| p_list_line_id
1607 );
1608 END IF;
1609
1610 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1611
1612 END IF;
1613
1614
1615 -- Loop over fetched records
1616
1617 FOR l_implicit_rec IN l_PRICING_ATTR_csr LOOP
1618
1619 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_rec.ACCUMULATE_FLAG;
1620 l_PRICING_ATTR_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1621 l_PRICING_ATTR_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1622 l_PRICING_ATTR_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1623 l_PRICING_ATTR_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1624 l_PRICING_ATTR_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1625 l_PRICING_ATTR_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1626 l_PRICING_ATTR_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1627 l_PRICING_ATTR_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1628 l_PRICING_ATTR_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1629 l_PRICING_ATTR_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1630 l_PRICING_ATTR_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1631 l_PRICING_ATTR_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1632 l_PRICING_ATTR_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1633 l_PRICING_ATTR_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1634 l_PRICING_ATTR_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1635 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_rec.ATTRIBUTE_GROUPING_NO;
1636 l_PRICING_ATTR_rec.context := l_implicit_rec.CONTEXT;
1637 l_PRICING_ATTR_rec.created_by := l_implicit_rec.CREATED_BY;
1638 l_PRICING_ATTR_rec.creation_date := l_implicit_rec.CREATION_DATE;
1639 l_PRICING_ATTR_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
1640 l_PRICING_ATTR_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1641 l_PRICING_ATTR_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1642 l_PRICING_ATTR_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1643 l_PRICING_ATTR_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
1644 l_PRICING_ATTR_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
1645 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_rec.PRICING_PHASE_ID;
1646 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
1647 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
1648 l_PRICING_ATTR_rec.pricing_attribute_id := l_implicit_rec.PRICING_ATTRIBUTE_ID;
1649 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_rec.PRICING_ATTR_VALUE_FROM;
1650 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_rec.PRICING_ATTR_VALUE_TO;
1651 l_PRICING_ATTR_rec.product_attribute := l_implicit_rec.PRODUCT_ATTRIBUTE;
1652 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_rec.PRODUCT_ATTRIBUTE_CONTEXT;
1653 l_PRICING_ATTR_rec.product_attr_value := l_implicit_rec.PRODUCT_ATTR_VALUE;
1654 l_PRICING_ATTR_rec.product_uom_code := l_implicit_rec.PRODUCT_UOM_CODE;
1655 l_PRICING_ATTR_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1656 l_PRICING_ATTR_rec.program_id := l_implicit_rec.PROGRAM_ID;
1657 l_PRICING_ATTR_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
1658 l_PRICING_ATTR_rec.request_id := l_implicit_rec.REQUEST_ID;
1659 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_rec.comparison_operator_code;
1660 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_rec.pricing_attribute_datatype;
1661 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_rec.product_attribute_datatype;
1662 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
1663 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_rec.PRICING_ATTR_VALUE_TO_NUMBER;
1664 l_PRICING_ATTR_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
1665
1666
1667 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
1668
1669 END LOOP;
1670
1671
1672 -- PK sent and no rows found
1673
1674 IF
1675 (p_pricing_attribute_id IS NOT NULL
1676 AND
1677 p_pricing_attribute_id <> FND_API.G_MISS_NUM)
1678 AND
1679 (l_PRICING_ATTR_tbl.COUNT = 0)
1680 THEN
1681 RAISE NO_DATA_FOUND;
1682 END IF;
1683
1684
1685 -- Return fetched table
1686
1687 RETURN l_PRICING_ATTR_tbl;
1688
1689 EXCEPTION
1690
1691 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1692
1693 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1694
1695 WHEN OTHERS THEN
1696
1697 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1698 THEN
1699 oe_msg_pub.Add_Exc_Msg
1700 ( G_PKG_NAME
1701 , 'Query_Rows'
1702 );
1703 END IF;
1704
1705 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1706
1707 END Query_Rows;
1708
1709 -- Procedure lock_Row
1710 --
1711
1712 PROCEDURE Lock_Row
1713 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1714 , p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1715 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
1716 )
1717 IS
1718 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1719 BEGIN
1720
1721 SELECT ACCUMULATE_FLAG
1722 , ATTRIBUTE1
1723 , ATTRIBUTE10
1724 , ATTRIBUTE11
1725 , ATTRIBUTE12
1726 , ATTRIBUTE13
1727 , ATTRIBUTE14
1728 , ATTRIBUTE15
1729 , ATTRIBUTE2
1730 , ATTRIBUTE3
1731 , ATTRIBUTE4
1732 , ATTRIBUTE5
1733 , ATTRIBUTE6
1734 , ATTRIBUTE7
1735 , ATTRIBUTE8
1736 , ATTRIBUTE9
1737 , ATTRIBUTE_GROUPING_NO
1738 , CONTEXT
1739 , CREATED_BY
1740 , CREATION_DATE
1741 , EXCLUDER_FLAG
1742 , LAST_UPDATED_BY
1743 , LAST_UPDATE_DATE
1744 , LAST_UPDATE_LOGIN
1745 , LIST_LINE_ID
1746 , LIST_HEADER_ID
1747 , PRICING_PHASE_ID
1748 , PRICING_ATTRIBUTE
1749 , PRICING_ATTRIBUTE_CONTEXT
1750 , PRICING_ATTRIBUTE_ID
1751 , PRICING_ATTR_VALUE_FROM
1752 , PRICING_ATTR_VALUE_TO
1753 , PRODUCT_ATTRIBUTE
1754 , PRODUCT_ATTRIBUTE_CONTEXT
1755 , PRODUCT_ATTR_VALUE
1756 , PRODUCT_UOM_CODE
1757 , PROGRAM_APPLICATION_ID
1758 , PROGRAM_ID
1759 , PROGRAM_UPDATE_DATE
1760 , REQUEST_ID
1761 , COMPARISON_OPERATOR_CODE
1762 , PRICING_ATTRIBUTE_DATATYPE
1763 , PRODUCT_ATTRIBUTE_DATATYPE
1764 INTO l_PRICING_ATTR_rec.accumulate_flag
1765 , l_PRICING_ATTR_rec.attribute1
1766 , l_PRICING_ATTR_rec.attribute10
1767 , l_PRICING_ATTR_rec.attribute11
1768 , l_PRICING_ATTR_rec.attribute12
1769 , l_PRICING_ATTR_rec.attribute13
1770 , l_PRICING_ATTR_rec.attribute14
1771 , l_PRICING_ATTR_rec.attribute15
1772 , l_PRICING_ATTR_rec.attribute2
1773 , l_PRICING_ATTR_rec.attribute3
1774 , l_PRICING_ATTR_rec.attribute4
1775 , l_PRICING_ATTR_rec.attribute5
1776 , l_PRICING_ATTR_rec.attribute6
1777 , l_PRICING_ATTR_rec.attribute7
1778 , l_PRICING_ATTR_rec.attribute8
1779 , l_PRICING_ATTR_rec.attribute9
1780 , l_PRICING_ATTR_rec.attribute_grouping_no
1781 , l_PRICING_ATTR_rec.context
1782 , l_PRICING_ATTR_rec.created_by
1783 , l_PRICING_ATTR_rec.creation_date
1784 , l_PRICING_ATTR_rec.excluder_flag
1785 , l_PRICING_ATTR_rec.last_updated_by
1786 , l_PRICING_ATTR_rec.last_update_date
1787 , l_PRICING_ATTR_rec.last_update_login
1788 , l_PRICING_ATTR_rec.list_line_id
1789 , l_PRICING_ATTR_rec.list_header_id
1790 , l_PRICING_ATTR_rec.pricing_phase_id
1791 , l_PRICING_ATTR_rec.pricing_attribute
1792 , l_PRICING_ATTR_rec.pricing_attribute_context
1793 , l_PRICING_ATTR_rec.pricing_attribute_id
1794 , l_PRICING_ATTR_rec.pricing_attr_value_from
1795 , l_PRICING_ATTR_rec.pricing_attr_value_to
1796 , l_PRICING_ATTR_rec.product_attribute
1797 , l_PRICING_ATTR_rec.product_attribute_context
1798 , l_PRICING_ATTR_rec.product_attr_value
1799 , l_PRICING_ATTR_rec.product_uom_code
1800 , l_PRICING_ATTR_rec.program_application_id
1801 , l_PRICING_ATTR_rec.program_id
1802 , l_PRICING_ATTR_rec.program_update_date
1803 , l_PRICING_ATTR_rec.request_id
1804 , l_PRICING_ATTR_rec.comparison_operator_code
1805 , l_PRICING_ATTR_rec.pricing_attribute_datatype
1806 , l_PRICING_ATTR_rec.product_attribute_datatype
1807 FROM QP_PRICING_ATTRIBUTES
1808 WHERE PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1809 FOR UPDATE NOWAIT;
1810
1811 -- Row locked. Compare IN attributes to DB attributes.
1812
1813 IF QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,
1814 l_PRICING_ATTR_rec.accumulate_flag)
1815 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute1,
1816 l_PRICING_ATTR_rec.attribute1)
1817 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute10,
1818 l_PRICING_ATTR_rec.attribute10)
1819 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute11,
1820 l_PRICING_ATTR_rec.attribute11)
1821 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute12,
1822 l_PRICING_ATTR_rec.attribute12)
1823 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute13,
1824 l_PRICING_ATTR_rec.attribute13)
1825 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute14,
1826 l_PRICING_ATTR_rec.attribute14)
1827 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute15,
1828 l_PRICING_ATTR_rec.attribute15)
1829 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute2,
1830 l_PRICING_ATTR_rec.attribute2)
1831 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute3,
1832 l_PRICING_ATTR_rec.attribute3)
1833 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute4,
1834 l_PRICING_ATTR_rec.attribute4)
1835 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute5,
1836 l_PRICING_ATTR_rec.attribute5)
1837 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute6,
1838 l_PRICING_ATTR_rec.attribute6)
1839 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute7,
1840 l_PRICING_ATTR_rec.attribute7)
1841 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute8,
1842 l_PRICING_ATTR_rec.attribute8)
1843 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute9,
1844 l_PRICING_ATTR_rec.attribute9)
1845 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute_grouping_no,
1846 l_PRICING_ATTR_rec.attribute_grouping_no)
1847 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.context,
1848 l_PRICING_ATTR_rec.context)
1849 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.created_by,
1850 -- l_PRICING_ATTR_rec.created_by)
1851 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.creation_date),
1852 -- trunc(l_PRICING_ATTR_rec.creation_date))
1853 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,
1854 l_PRICING_ATTR_rec.excluder_flag)
1855 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_updated_by,
1856 -- l_PRICING_ATTR_rec.last_updated_by)
1857 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.last_update_date),
1858 -- trunc(l_PRICING_ATTR_rec.last_update_date))
1859 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_login,
1860 -- l_PRICING_ATTR_rec.last_update_login)
1861 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,
1862 l_PRICING_ATTR_rec.list_line_id)
1863 /* AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_header_id,
1864 l_PRICING_ATTR_rec.list_header_id)
1865 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_phase_id,
1866 l_PRICING_ATTR_rec.pricing_phase_id)*/
1867 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute,
1868 l_PRICING_ATTR_rec.pricing_attribute)
1869 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_context,
1870 l_PRICING_ATTR_rec.pricing_attribute_context)
1871 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,
1872 l_PRICING_ATTR_rec.pricing_attribute_id)
1873 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_from,
1874 l_PRICING_ATTR_rec.pricing_attr_value_from)
1875 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_to,
1876 l_PRICING_ATTR_rec.pricing_attr_value_to)
1877 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute,
1878 l_PRICING_ATTR_rec.product_attribute)
1879 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_context,
1880 l_PRICING_ATTR_rec.product_attribute_context)
1881 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attr_value,
1882 l_PRICING_ATTR_rec.product_attr_value)
1883 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,
1884 l_PRICING_ATTR_rec.product_uom_code)
1885 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_application_id,
1886 -- l_PRICING_ATTR_rec.program_application_id)
1887 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_id,
1888 -- l_PRICING_ATTR_rec.program_id)
1889 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.program_update_date),
1890 -- trunc(l_PRICING_ATTR_rec.program_update_date))
1891 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.request_id,
1892 l_PRICING_ATTR_rec.request_id)
1893 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.comparison_operator_code,
1894 l_PRICING_ATTR_rec.comparison_operator_code)
1895 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_datatype,
1896 l_PRICING_ATTR_rec.pricing_attribute_datatype)
1897 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_datatype,
1898 l_PRICING_ATTR_rec.product_attribute_datatype)
1899 THEN
1900
1901 -- Row has not changed. Set out parameter.
1902
1903 x_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
1904
1905 -- Set return status
1906
1907 x_return_status := FND_API.G_RET_STS_SUCCESS;
1908 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1909
1910 ELSE
1911
1912 -- Row has changed by another user.
1913
1914 x_return_status := FND_API.G_RET_STS_ERROR;
1915 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
1916
1917 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
1918 THEN
1919
1920 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1921 oe_msg_pub.Add;
1922
1923 END IF;
1924
1925 END IF;
1926
1927 EXCEPTION
1928
1929 WHEN NO_DATA_FOUND THEN
1930
1931 x_return_status := FND_API.G_RET_STS_ERROR;
1932 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
1933
1934 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
1935 THEN
1936
1937 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
1938 oe_msg_pub.Add;
1939
1940 END IF;
1941 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
1942
1943 x_return_status := FND_API.G_RET_STS_ERROR;
1944 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
1945
1946 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
1947 THEN
1948
1949 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
1950 oe_msg_pub.Add;
1951
1952 END IF;
1953 WHEN OTHERS THEN
1954
1955 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1956 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1957
1958 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1959 THEN
1960 oe_msg_pub.Add_Exc_Msg
1961 ( G_PKG_NAME
1962 , 'Lock_Row'
1963 );
1964 END IF;
1965
1966 END Lock_Row;
1967
1968 -- Function Get_Values
1969
1970 FUNCTION Get_Values
1971 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1972 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
1973 QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC
1974 ) RETURN QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type
1975 IS
1976 l_PRICING_ATTR_val_rec QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type;
1977 BEGIN
1978
1979 IF p_PRICING_ATTR_rec.accumulate_flag IS NOT NULL AND
1980 p_PRICING_ATTR_rec.accumulate_flag <> FND_API.G_MISS_CHAR AND
1981 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,
1982 p_old_PRICING_ATTR_rec.accumulate_flag)
1983 THEN
1984 l_PRICING_ATTR_val_rec.accumulate := QP_Id_To_Value.Accumulate
1985 ( p_accumulate_flag => p_PRICING_ATTR_rec.accumulate_flag
1986 );
1987 END IF;
1988
1989 IF p_PRICING_ATTR_rec.excluder_flag IS NOT NULL AND
1990 p_PRICING_ATTR_rec.excluder_flag <> FND_API.G_MISS_CHAR AND
1991 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,
1992 p_old_PRICING_ATTR_rec.excluder_flag)
1993 THEN
1994 l_PRICING_ATTR_val_rec.excluder := QP_Id_To_Value.Excluder
1995 ( p_excluder_flag => p_PRICING_ATTR_rec.excluder_flag
1996 );
1997 END IF;
1998
1999 IF p_PRICING_ATTR_rec.list_line_id IS NOT NULL AND
2000 p_PRICING_ATTR_rec.list_line_id <> FND_API.G_MISS_NUM AND
2001 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,
2002 p_old_PRICING_ATTR_rec.list_line_id)
2003 THEN
2004 l_PRICING_ATTR_val_rec.list_line := QP_Id_To_Value.List_Line
2005 ( p_list_line_id => p_PRICING_ATTR_rec.list_line_id
2006 );
2007 END IF;
2008
2009 /* IF p_PRICING_ATTR_rec.pricing_attribute_id IS NOT NULL AND
2010 p_PRICING_ATTR_rec.pricing_attribute_id <> FND_API.G_MISS_NUM AND
2011 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,
2012 p_old_PRICING_ATTR_rec.pricing_attribute_id)
2013 THEN
2014 l_PRICING_ATTR_val_rec.pricing_attribute := QP_Id_To_Value.Pricing_Attribute
2015 ( p_pricing_attribute_id => p_PRICING_ATTR_rec.pricing_attribute_id
2016 );
2017 END IF;
2018 */
2019 IF p_PRICING_ATTR_rec.product_uom_code IS NOT NULL AND
2020 p_PRICING_ATTR_rec.product_uom_code <> FND_API.G_MISS_CHAR AND
2021 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,
2022 p_old_PRICING_ATTR_rec.product_uom_code)
2023 THEN
2024 l_PRICING_ATTR_val_rec.product_uom := QP_Id_To_Value.Product_Uom
2025 ( p_product_uom_code => p_PRICING_ATTR_rec.product_uom_code
2026 );
2027 END IF;
2028
2029 RETURN l_PRICING_ATTR_val_rec;
2030
2031 END Get_Values;
2032
2033 -- Function Get_Ids
2034
2035 FUNCTION Get_Ids
2036 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2037 , p_PRICING_ATTR_val_rec IN QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type
2038 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2039 IS
2040 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
2041 BEGIN
2042
2043 -- initialize return_status.
2044
2045 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2046
2047 -- initialize l_PRICING_ATTR_rec.
2048
2049 l_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
2050
2051 IF p_PRICING_ATTR_val_rec.accumulate <> FND_API.G_MISS_CHAR
2052 THEN
2053
2054 IF p_PRICING_ATTR_rec.accumulate_flag <> FND_API.G_MISS_CHAR THEN
2055
2056 l_PRICING_ATTR_rec.accumulate_flag := p_PRICING_ATTR_rec.accumulate_flag;
2057
2058 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2059 THEN
2060
2061 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2062 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','accumulate');
2063 oe_msg_pub.Add;
2064
2065 END IF;
2066
2067 ELSE
2068
2069 l_PRICING_ATTR_rec.accumulate_flag := QP_Value_To_Id.accumulate
2070 ( p_accumulate => p_PRICING_ATTR_val_rec.accumulate
2071 );
2072
2073 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
2074 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2075 END IF;
2076
2077 END IF;
2078
2079 END IF;
2080
2081 IF p_PRICING_ATTR_val_rec.excluder <> FND_API.G_MISS_CHAR
2082 THEN
2083
2084 IF p_PRICING_ATTR_rec.excluder_flag <> FND_API.G_MISS_CHAR THEN
2085
2086 l_PRICING_ATTR_rec.excluder_flag := p_PRICING_ATTR_rec.excluder_flag;
2087
2088 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2089 THEN
2090
2091 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2092 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','excluder');
2093 oe_msg_pub.Add;
2094
2095 END IF;
2096
2097 ELSE
2098
2099 l_PRICING_ATTR_rec.excluder_flag := QP_Value_To_Id.excluder
2100 ( p_excluder => p_PRICING_ATTR_val_rec.excluder
2101 );
2102
2103 IF l_PRICING_ATTR_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
2104 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2105 END IF;
2106
2107 END IF;
2108
2109 END IF;
2110
2111 IF p_PRICING_ATTR_val_rec.list_line <> FND_API.G_MISS_CHAR
2112 THEN
2113
2114 IF p_PRICING_ATTR_rec.list_line_id <> FND_API.G_MISS_NUM THEN
2115
2116 l_PRICING_ATTR_rec.list_line_id := p_PRICING_ATTR_rec.list_line_id;
2117
2118 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2119 THEN
2120
2121 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2122 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','list_line');
2123 oe_msg_pub.Add;
2124
2125 END IF;
2126
2127 ELSE
2128
2129 l_PRICING_ATTR_rec.list_line_id := QP_Value_To_Id.list_line
2130 ( p_list_line => p_PRICING_ATTR_val_rec.list_line
2131 );
2132
2133 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
2134 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2135 END IF;
2136
2137 END IF;
2138
2139 END IF;
2140
2141 /****************************************************************************
2142 Added code to perform value_to_id conversion for pricing_Attribute,
2143 pricing_Attr_value_from and pricing_attr_value_to columns.
2144 ****************************************************************************/
2145
2146 IF p_PRICING_ATTR_val_rec.pricing_attribute_desc <> FND_API.G_MISS_CHAR
2147 THEN
2148
2149 IF p_PRICING_ATTR_rec.pricing_attribute <> FND_API.G_MISS_CHAR THEN
2150
2151 l_PRICING_ATTR_rec.pricing_attribute := p_PRICING_ATTR_rec.pricing_attribute;
2152
2153 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2154 THEN
2155
2156 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2157 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attribute');
2158 oe_msg_pub.Add;
2159
2160 END IF;
2161
2162 ELSE
2163
2164 l_PRICING_ATTR_rec.pricing_attribute := QP_Value_To_Id.pricing_attribute
2165 ( p_pricing_attribute_desc => p_PRICING_ATTR_val_rec.pricing_attribute_desc,
2166 p_context => l_PRICING_ATTR_rec.pricing_attribute_context
2167 );
2168
2169 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
2170 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2171 END IF;
2172
2173 END IF;
2174
2175 END IF;
2176
2177 IF p_PRICING_ATTR_val_rec.pricing_attr_value_from_desc <> FND_API.G_MISS_CHAR
2178 THEN
2179
2180 IF p_PRICING_ATTR_rec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
2181
2182 l_PRICING_ATTR_rec.pricing_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from;
2183
2184 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2185 THEN
2186
2187 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2188 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attr_value_from');
2189 oe_msg_pub.Add;
2190
2191 END IF;
2192
2193 ELSE
2194
2195 l_PRICING_ATTR_rec.pricing_attr_value_from := QP_Value_To_Id.pricing_attr_value_from
2196 ( p_pricing_attr_value_from_desc => p_PRICING_ATTR_val_rec.pricing_attr_value_from_desc,
2197 p_context => l_PRICING_ATTR_rec.pricing_attribute_context,
2198 p_attribute => l_PRICING_ATTR_rec.pricing_attribute
2199 );
2200
2201 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
2202 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2203 END IF;
2204
2205 END IF;
2206
2207 END IF;
2208
2209 IF p_PRICING_ATTR_val_rec.pricing_attr_value_to_desc <> FND_API.G_MISS_CHAR
2210 THEN
2211
2212 IF p_PRICING_ATTR_rec.pricing_attr_value_to <> FND_API.G_MISS_CHAR THEN
2213
2214 l_PRICING_ATTR_rec.pricing_attr_value_to := p_PRICING_ATTR_rec.pricing_attr_value_to;
2215
2216 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2217 THEN
2218
2219 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2220 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attr_value_to');
2221 oe_msg_pub.Add;
2222
2223 END IF;
2224
2225 ELSE
2226
2227 l_PRICING_ATTR_rec.pricing_attr_value_to := QP_Value_To_Id.pricing_attr_value_to
2228 ( p_pricing_attr_value_to_desc => p_PRICING_ATTR_val_rec.pricing_attr_value_to_desc,
2229 p_context => l_PRICING_ATTR_rec.pricing_attribute_context,
2230 p_attribute => l_PRICING_ATTR_rec.pricing_attribute
2231 );
2232
2233 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
2234 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2235 END IF;
2236
2237 END IF;
2238
2239 END IF;
2240
2241 IF p_PRICING_ATTR_val_rec.product_uom <> FND_API.G_MISS_CHAR
2242 THEN
2243
2244 IF p_PRICING_ATTR_rec.product_uom_code <> FND_API.G_MISS_CHAR THEN
2245
2246 l_PRICING_ATTR_rec.product_uom_code := p_PRICING_ATTR_rec.product_uom_code;
2247
2248 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2249 THEN
2250
2251 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2252 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','product_uom');
2253 oe_msg_pub.Add;
2254
2255 END IF;
2256
2257 ELSE
2258
2259 l_PRICING_ATTR_rec.product_uom_code := QP_Value_To_Id.product_uom
2260 ( p_product_uom => p_PRICING_ATTR_val_rec.product_uom
2261 );
2262
2263 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
2264 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2265 END IF;
2266
2267 END IF;
2268
2269 END IF;
2270
2271 RETURN l_PRICING_ATTR_rec;
2272
2273 END Get_Ids;
2274
2275 Procedure Pre_Write_Process
2276 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2277 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
2278 QP_Price_List_PUB.G_MISS_Pricing_Attr_REC
2279 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
2280 ) IS
2281 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
2282 l_return_status varchar2(30);
2283 BEGIN
2284
2285 oe_debug_pub.Add('Entering QP_pll_PRICING_ATTR_Util.pre_write_process', 1);
2286
2287 --Bug 2807015. Added following code to update pricing attributes when the PA is changed in PLL.
2288 IF ( p_PRICING_ATTR_rec.operation = QP_GLOBALS.G_OPR_UPDATE)
2289 THEN
2290 IF ((p_old_PRICING_ATTR_rec.product_attribute <> p_PRICING_ATTR_rec.product_attribute) OR
2291 (p_old_PRICING_ATTR_rec.product_attr_value <> p_PRICING_ATTR_rec.product_attr_value))
2292 THEN
2293 begin
2294 update qp_pricing_attributes
2295 set product_attribute = p_PRICING_ATTR_rec.product_attribute
2296 , product_attr_value = p_PRICING_ATTR_rec.product_attr_value
2297 where list_line_id = p_PRICING_ATTR_rec.list_line_id;
2298 exception
2299 when NO_DATA_FOUND then
2300 null;
2301 end;
2302 END IF;
2303
2304 ELSIF ( p_PRICING_ATTR_rec.operation = QP_GLOBALS.G_OPR_CREATE ) THEN
2305 begin
2306 update qp_pricing_attributes
2307 set product_attribute = p_PRICING_ATTR_rec.product_attribute
2308 , product_attr_value = p_PRICING_ATTR_rec.product_attr_value
2309 where list_line_id = p_PRICING_ATTR_rec.list_line_id;
2310 exception
2311 when NO_DATA_FOUND then
2312 null;
2313 end;
2314 END IF;
2315
2316 x_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
2317 IF ( p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_DELETE) THEN
2318
2319 oe_debug_pub.add('Logging a request to update qualification_ind ', 1);
2320 qp_delayed_requests_PVT.log_request(
2321 p_entity_code => QP_GLOBALS.G_ENTITY_Price_List_Line,
2322 p_entity_id => p_PRICING_ATTR_rec.list_line_id,
2323 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
2324 p_requesting_entity_id => p_PRICING_ATTR_rec.list_line_id,
2325 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
2326 x_return_status => l_return_status);
2327 END IF;
2328 -- pattern
2329 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
2330 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_CREATE) THEN
2331 qp_delayed_requests_pvt.log_request(
2332 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2333 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2334 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2335 p_request_unique_key2 => 'I',
2336 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2337 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2338 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2339 x_return_status => l_return_status);
2340
2341 END IF;
2342 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
2343 qp_delayed_requests_pvt.log_request(
2344 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2345 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2346 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2347 p_request_unique_key2 => 'U',
2348 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2349 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2350 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2351 x_return_status => l_return_status);
2352 END IF;
2353 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_DELETE) THEN
2354 qp_delayed_requests_pvt.log_request(
2355 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2356 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2357 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2358 p_request_unique_key2 => 'D',
2359 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2360 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2361 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2362 x_return_status => l_return_status);
2363 END IF;
2364 END IF; --Java Engine Installed
2365 -- pattern
2366
2367
2368 EXCEPTION
2369 WHEN FND_API.G_EXC_ERROR THEN
2370 RAISE;
2371 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2372 RAISE;
2373 WHEN OTHERS THEN
2374 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2375 THEN
2376 oe_msg_pub.Add_Exc_Msg
2377 ( G_PKG_NAME
2378 , 'Pre_Write_Process'
2379 );
2380 END IF;
2381 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2382 END Pre_Write_Process;
2383
2384 END QP_pll_pricing_attr_Util;