[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.6.12010000.6 2009/11/30 04:04:28 jputta 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 -- jagan's PL/SQL pattern
699 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
700 IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B'THEN
701 IF(p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
702 qp_delayed_requests_pvt.log_request(
703 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
704 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
705 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
706 p_request_unique_key2 => 'UD',
707 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
708 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
709 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
710 x_return_status => l_return_status);
711 END IF;
712 END IF;
713 END IF;
714
715 END IF;
716
717 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_application_id,p_old_PRICING_ATTR_rec.program_application_id)
718 THEN
719 NULL;
720 END IF;
721
722 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_id,p_old_PRICING_ATTR_rec.program_id)
723 THEN
724 NULL;
725 END IF;
726
727 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_update_date,p_old_PRICING_ATTR_rec.program_update_date)
728 THEN
729 NULL;
730 END IF;
731
732 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.request_id,p_old_PRICING_ATTR_rec.request_id)
733 THEN
734 NULL;
735 END IF;
736
737 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.comparison_operator_code, p_old_PRICING_ATTR_rec.comparison_operator_code)
738 THEN
739 NULL;
740 END IF;
741
742 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_datatype, p_old_PRICING_ATTR_rec.pricing_attribute_datatype)
743 THEN
744 NULL;
745 END IF;
746
747 IF NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_datatype, p_old_PRICING_ATTR_rec.product_attribute_datatype)
748 THEN
749 NULL;
750 END IF;
751
752 END Apply_Attribute_Changes;
753
754 -- Function Complete_Record
755
756 FUNCTION Complete_Record
757 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
758 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
759 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
760 IS
761 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
762 BEGIN
763
764 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
765 l_PRICING_ATTR_rec.accumulate_flag := p_old_PRICING_ATTR_rec.accumulate_flag;
766 END IF;
767
768 IF l_PRICING_ATTR_rec.attribute1 = FND_API.G_MISS_CHAR THEN
769 l_PRICING_ATTR_rec.attribute1 := p_old_PRICING_ATTR_rec.attribute1;
770 END IF;
771
772 IF l_PRICING_ATTR_rec.attribute10 = FND_API.G_MISS_CHAR THEN
773 l_PRICING_ATTR_rec.attribute10 := p_old_PRICING_ATTR_rec.attribute10;
774 END IF;
775
776 IF l_PRICING_ATTR_rec.attribute11 = FND_API.G_MISS_CHAR THEN
777 l_PRICING_ATTR_rec.attribute11 := p_old_PRICING_ATTR_rec.attribute11;
778 END IF;
779
780 IF l_PRICING_ATTR_rec.attribute12 = FND_API.G_MISS_CHAR THEN
781 l_PRICING_ATTR_rec.attribute12 := p_old_PRICING_ATTR_rec.attribute12;
782 END IF;
783
784 IF l_PRICING_ATTR_rec.attribute13 = FND_API.G_MISS_CHAR THEN
785 l_PRICING_ATTR_rec.attribute13 := p_old_PRICING_ATTR_rec.attribute13;
786 END IF;
787
788 IF l_PRICING_ATTR_rec.attribute14 = FND_API.G_MISS_CHAR THEN
789 l_PRICING_ATTR_rec.attribute14 := p_old_PRICING_ATTR_rec.attribute14;
790 END IF;
791
792 IF l_PRICING_ATTR_rec.attribute15 = FND_API.G_MISS_CHAR THEN
793 l_PRICING_ATTR_rec.attribute15 := p_old_PRICING_ATTR_rec.attribute15;
794 END IF;
795
796 IF l_PRICING_ATTR_rec.attribute2 = FND_API.G_MISS_CHAR THEN
797 l_PRICING_ATTR_rec.attribute2 := p_old_PRICING_ATTR_rec.attribute2;
798 END IF;
799
800 IF l_PRICING_ATTR_rec.attribute3 = FND_API.G_MISS_CHAR THEN
801 l_PRICING_ATTR_rec.attribute3 := p_old_PRICING_ATTR_rec.attribute3;
802 END IF;
803
804 IF l_PRICING_ATTR_rec.attribute4 = FND_API.G_MISS_CHAR THEN
805 l_PRICING_ATTR_rec.attribute4 := p_old_PRICING_ATTR_rec.attribute4;
806 END IF;
807
808 IF l_PRICING_ATTR_rec.attribute5 = FND_API.G_MISS_CHAR THEN
809 l_PRICING_ATTR_rec.attribute5 := p_old_PRICING_ATTR_rec.attribute5;
810 END IF;
811
812 IF l_PRICING_ATTR_rec.attribute6 = FND_API.G_MISS_CHAR THEN
813 l_PRICING_ATTR_rec.attribute6 := p_old_PRICING_ATTR_rec.attribute6;
814 END IF;
815
816 IF l_PRICING_ATTR_rec.attribute7 = FND_API.G_MISS_CHAR THEN
817 l_PRICING_ATTR_rec.attribute7 := p_old_PRICING_ATTR_rec.attribute7;
818 END IF;
819
820 IF l_PRICING_ATTR_rec.attribute8 = FND_API.G_MISS_CHAR THEN
821 l_PRICING_ATTR_rec.attribute8 := p_old_PRICING_ATTR_rec.attribute8;
822 END IF;
823
824 IF l_PRICING_ATTR_rec.attribute9 = FND_API.G_MISS_CHAR THEN
825 l_PRICING_ATTR_rec.attribute9 := p_old_PRICING_ATTR_rec.attribute9;
826 END IF;
827
828 IF l_PRICING_ATTR_rec.attribute_grouping_no = FND_API.G_MISS_NUM THEN
829 l_PRICING_ATTR_rec.attribute_grouping_no := p_old_PRICING_ATTR_rec.attribute_grouping_no;
830 END IF;
831
832 IF l_PRICING_ATTR_rec.context = FND_API.G_MISS_CHAR THEN
833 l_PRICING_ATTR_rec.context := p_old_PRICING_ATTR_rec.context;
834 END IF;
835
836 IF l_PRICING_ATTR_rec.created_by = FND_API.G_MISS_NUM THEN
837 l_PRICING_ATTR_rec.created_by := p_old_PRICING_ATTR_rec.created_by;
838 END IF;
839
840 IF l_PRICING_ATTR_rec.creation_date = FND_API.G_MISS_DATE THEN
841 l_PRICING_ATTR_rec.creation_date := p_old_PRICING_ATTR_rec.creation_date;
842 END IF;
843
844 IF l_PRICING_ATTR_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
845 l_PRICING_ATTR_rec.excluder_flag := p_old_PRICING_ATTR_rec.excluder_flag;
846 END IF;
847
848 IF l_PRICING_ATTR_rec.last_updated_by = FND_API.G_MISS_NUM THEN
849 l_PRICING_ATTR_rec.last_updated_by := p_old_PRICING_ATTR_rec.last_updated_by;
850 END IF;
851
852 IF l_PRICING_ATTR_rec.last_update_date = FND_API.G_MISS_DATE THEN
853 l_PRICING_ATTR_rec.last_update_date := p_old_PRICING_ATTR_rec.last_update_date;
854 END IF;
855
856 IF l_PRICING_ATTR_rec.last_update_login = FND_API.G_MISS_NUM THEN
857 l_PRICING_ATTR_rec.last_update_login := p_old_PRICING_ATTR_rec.last_update_login;
858 END IF;
859
860 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
861 l_PRICING_ATTR_rec.list_line_id := p_old_PRICING_ATTR_rec.list_line_id;
862 END IF;
863
864 IF l_PRICING_ATTR_rec.list_header_id = FND_API.G_MISS_NUM THEN
865 l_PRICING_ATTR_rec.list_header_id := p_old_PRICING_ATTR_rec.list_header_id;
866 END IF;
867
868 IF l_PRICING_ATTR_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
869 l_PRICING_ATTR_rec.pricing_phase_id := p_old_PRICING_ATTR_rec.pricing_phase_id;
870 END IF;
871
872 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
873 l_PRICING_ATTR_rec.pricing_attribute := p_old_PRICING_ATTR_rec.pricing_attribute;
874 END IF;
875
876 IF l_PRICING_ATTR_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
877 l_PRICING_ATTR_rec.pricing_attribute_context := p_old_PRICING_ATTR_rec.pricing_attribute_context;
878 END IF;
879
880 IF l_PRICING_ATTR_rec.pricing_attribute_id = FND_API.G_MISS_NUM THEN
881 l_PRICING_ATTR_rec.pricing_attribute_id := p_old_PRICING_ATTR_rec.pricing_attribute_id;
882 END IF;
883
884 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
885 l_PRICING_ATTR_rec.pricing_attr_value_from := p_old_PRICING_ATTR_rec.pricing_attr_value_from;
886 END IF;
887
888 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
889 l_PRICING_ATTR_rec.pricing_attr_value_to := p_old_PRICING_ATTR_rec.pricing_attr_value_to;
890 END IF;
891
892 IF l_PRICING_ATTR_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
893 l_PRICING_ATTR_rec.from_rltd_modifier_id := p_old_PRICING_ATTR_rec.from_rltd_modifier_id;
894 END IF;
895
896 IF l_PRICING_ATTR_rec.product_attribute = FND_API.G_MISS_CHAR THEN
897 l_PRICING_ATTR_rec.product_attribute := p_old_PRICING_ATTR_rec.product_attribute;
898 END IF;
899
900 IF l_PRICING_ATTR_rec.product_attribute_context = FND_API.G_MISS_CHAR THEN
901 l_PRICING_ATTR_rec.product_attribute_context := p_old_PRICING_ATTR_rec.product_attribute_context;
902 END IF;
903
904 IF l_PRICING_ATTR_rec.product_attr_value = FND_API.G_MISS_CHAR THEN
905 l_PRICING_ATTR_rec.product_attr_value := p_old_PRICING_ATTR_rec.product_attr_value;
906 END IF;
907
908 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
909 l_PRICING_ATTR_rec.product_uom_code := p_old_PRICING_ATTR_rec.product_uom_code;
910 END IF;
911
912 IF l_PRICING_ATTR_rec.program_application_id = FND_API.G_MISS_NUM THEN
913 l_PRICING_ATTR_rec.program_application_id := p_old_PRICING_ATTR_rec.program_application_id;
914 END IF;
915
916 IF l_PRICING_ATTR_rec.program_id = FND_API.G_MISS_NUM THEN
917 l_PRICING_ATTR_rec.program_id := p_old_PRICING_ATTR_rec.program_id;
918 END IF;
919
920 IF l_PRICING_ATTR_rec.program_update_date = FND_API.G_MISS_DATE THEN
921 l_PRICING_ATTR_rec.program_update_date := p_old_PRICING_ATTR_rec.program_update_date;
922 END IF;
923
924 IF l_PRICING_ATTR_rec.request_id = FND_API.G_MISS_NUM THEN
925 l_PRICING_ATTR_rec.request_id := p_old_PRICING_ATTR_rec.request_id;
926 END IF;
927
928 IF l_PRICING_ATTR_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
929 l_PRICING_ATTR_rec.comparison_operator_code := p_old_PRICING_ATTR_rec.comparison_operator_code;
930 END IF;
931
932 IF l_PRICING_ATTR_rec.pricing_attribute_datatype = FND_API.G_MISS_CHAR THEN
933 l_PRICING_ATTR_rec.pricing_attribute_datatype := p_old_PRICING_ATTR_rec.pricing_attribute_datatype;
934 END IF;
935
936 IF l_PRICING_ATTR_rec.product_attribute_datatype = FND_API.G_MISS_CHAR THEN
937 l_PRICING_ATTR_rec.product_attribute_datatype := p_old_PRICING_ATTR_rec.product_attribute_datatype;
938 END IF;
939
940 IF l_PRICING_ATTR_rec.qualification_ind = FND_API.G_MISS_NUM THEN
941 l_PRICING_ATTR_rec.qualification_ind := p_old_PRICING_ATTR_rec.qualification_ind;
942 END IF;
943
944 RETURN l_PRICING_ATTR_rec;
945
946 END Complete_Record;
947
948 -- Function Convert_Miss_To_Null
949
950 FUNCTION Convert_Miss_To_Null
951 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
952 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
953 IS
954 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
955 BEGIN
956
957 IF l_PRICING_ATTR_rec.from_rltd_modifier_id = FND_API.G_MISS_NUM THEN
958 l_PRICING_ATTR_rec.from_rltd_modifier_id := NULL;
959 END IF;
960
961 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
962 l_PRICING_ATTR_rec.accumulate_flag := NULL;
963 END IF;
964
965 IF l_PRICING_ATTR_rec.attribute1 = FND_API.G_MISS_CHAR THEN
966 l_PRICING_ATTR_rec.attribute1 := NULL;
967 END IF;
968
969 IF l_PRICING_ATTR_rec.attribute10 = FND_API.G_MISS_CHAR THEN
970 l_PRICING_ATTR_rec.attribute10 := NULL;
971 END IF;
972
973 IF l_PRICING_ATTR_rec.attribute11 = FND_API.G_MISS_CHAR THEN
974 l_PRICING_ATTR_rec.attribute11 := NULL;
975 END IF;
976
977 IF l_PRICING_ATTR_rec.attribute12 = FND_API.G_MISS_CHAR THEN
978 l_PRICING_ATTR_rec.attribute12 := NULL;
979 END IF;
980
981 IF l_PRICING_ATTR_rec.attribute13 = FND_API.G_MISS_CHAR THEN
982 l_PRICING_ATTR_rec.attribute13 := NULL;
983 END IF;
984
985 IF l_PRICING_ATTR_rec.attribute14 = FND_API.G_MISS_CHAR THEN
986 l_PRICING_ATTR_rec.attribute14 := NULL;
987 END IF;
988
989 IF l_PRICING_ATTR_rec.attribute15 = FND_API.G_MISS_CHAR THEN
990 l_PRICING_ATTR_rec.attribute15 := NULL;
991 END IF;
992
993 IF l_PRICING_ATTR_rec.attribute2 = FND_API.G_MISS_CHAR THEN
994 l_PRICING_ATTR_rec.attribute2 := NULL;
995 END IF;
996
997 IF l_PRICING_ATTR_rec.attribute3 = FND_API.G_MISS_CHAR THEN
998 l_PRICING_ATTR_rec.attribute3 := NULL;
999 END IF;
1000
1001 IF l_PRICING_ATTR_rec.attribute4 = FND_API.G_MISS_CHAR THEN
1002 l_PRICING_ATTR_rec.attribute4 := NULL;
1003 END IF;
1004
1005 IF l_PRICING_ATTR_rec.attribute5 = FND_API.G_MISS_CHAR THEN
1006 l_PRICING_ATTR_rec.attribute5 := NULL;
1007 END IF;
1008
1009 IF l_PRICING_ATTR_rec.attribute6 = FND_API.G_MISS_CHAR THEN
1010 l_PRICING_ATTR_rec.attribute6 := NULL;
1011 END IF;
1012
1013 IF l_PRICING_ATTR_rec.attribute7 = FND_API.G_MISS_CHAR THEN
1014 l_PRICING_ATTR_rec.attribute7 := NULL;
1015 END IF;
1016
1017 IF l_PRICING_ATTR_rec.attribute8 = FND_API.G_MISS_CHAR THEN
1018 l_PRICING_ATTR_rec.attribute8 := NULL;
1019 END IF;
1020
1021 IF l_PRICING_ATTR_rec.attribute9 = FND_API.G_MISS_CHAR THEN
1022 l_PRICING_ATTR_rec.attribute9 := NULL;
1023 END IF;
1024
1025 IF l_PRICING_ATTR_rec.attribute_grouping_no = FND_API.G_MISS_NUM THEN
1026 l_PRICING_ATTR_rec.attribute_grouping_no := NULL;
1027 END IF;
1028
1029 IF l_PRICING_ATTR_rec.context = FND_API.G_MISS_CHAR THEN
1030 l_PRICING_ATTR_rec.context := NULL;
1031 END IF;
1032
1033 IF l_PRICING_ATTR_rec.created_by = FND_API.G_MISS_NUM THEN
1034 l_PRICING_ATTR_rec.created_by := NULL;
1035 END IF;
1036
1037 IF l_PRICING_ATTR_rec.creation_date = FND_API.G_MISS_DATE THEN
1038 l_PRICING_ATTR_rec.creation_date := NULL;
1039 END IF;
1040
1041 IF l_PRICING_ATTR_rec.excluder_flag = FND_API.G_MISS_CHAR THEN
1042 l_PRICING_ATTR_rec.excluder_flag := NULL;
1043 END IF;
1044
1045 IF l_PRICING_ATTR_rec.last_updated_by = FND_API.G_MISS_NUM THEN
1046 l_PRICING_ATTR_rec.last_updated_by := NULL;
1047 END IF;
1048
1049 IF l_PRICING_ATTR_rec.last_update_date = FND_API.G_MISS_DATE THEN
1050 l_PRICING_ATTR_rec.last_update_date := NULL;
1051 END IF;
1052
1053 IF l_PRICING_ATTR_rec.last_update_login = FND_API.G_MISS_NUM THEN
1054 l_PRICING_ATTR_rec.last_update_login := NULL;
1055 END IF;
1056
1057 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
1058 l_PRICING_ATTR_rec.list_line_id := NULL;
1059 END IF;
1060
1061 IF l_PRICING_ATTR_rec.list_header_id = FND_API.G_MISS_NUM THEN
1062 l_PRICING_ATTR_rec.list_header_id := NULL;
1063 END IF;
1064
1065 IF l_PRICING_ATTR_rec.pricing_phase_id = FND_API.G_MISS_NUM THEN
1066 l_PRICING_ATTR_rec.pricing_phase_id := NULL;
1067 END IF;
1068
1069 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
1070 l_PRICING_ATTR_rec.pricing_attribute := NULL;
1071 END IF;
1072
1073 IF l_PRICING_ATTR_rec.pricing_attribute_context = FND_API.G_MISS_CHAR THEN
1074 l_PRICING_ATTR_rec.pricing_attribute_context := NULL;
1075 END IF;
1076
1077 IF l_PRICING_ATTR_rec.pricing_attribute_id = FND_API.G_MISS_NUM THEN
1078 l_PRICING_ATTR_rec.pricing_attribute_id := NULL;
1079 END IF;
1080
1081 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
1082 l_PRICING_ATTR_rec.pricing_attr_value_from := NULL;
1083 END IF;
1084
1085 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
1086 l_PRICING_ATTR_rec.pricing_attr_value_to := NULL;
1087 END IF;
1088
1089 IF l_PRICING_ATTR_rec.product_attribute = FND_API.G_MISS_CHAR THEN
1090 l_PRICING_ATTR_rec.product_attribute := NULL;
1091 END IF;
1092
1093 IF l_PRICING_ATTR_rec.product_attribute_context = FND_API.G_MISS_CHAR THEN
1094 l_PRICING_ATTR_rec.product_attribute_context := NULL;
1095 END IF;
1096
1097 IF l_PRICING_ATTR_rec.product_attr_value = FND_API.G_MISS_CHAR THEN
1098 l_PRICING_ATTR_rec.product_attr_value := NULL;
1099 END IF;
1100
1101 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
1102 l_PRICING_ATTR_rec.product_uom_code := NULL;
1103 END IF;
1104
1105 IF l_PRICING_ATTR_rec.program_application_id = FND_API.G_MISS_NUM THEN
1106 l_PRICING_ATTR_rec.program_application_id := NULL;
1107 END IF;
1108
1109 IF l_PRICING_ATTR_rec.program_id = FND_API.G_MISS_NUM THEN
1110 l_PRICING_ATTR_rec.program_id := NULL;
1111 END IF;
1112
1113 IF l_PRICING_ATTR_rec.program_update_date = FND_API.G_MISS_DATE THEN
1114 l_PRICING_ATTR_rec.program_update_date := NULL;
1115 END IF;
1116
1117 IF l_PRICING_ATTR_rec.request_id = FND_API.G_MISS_NUM THEN
1118 l_PRICING_ATTR_rec.request_id := NULL;
1119 END IF;
1120
1121 IF l_PRICING_ATTR_rec.comparison_operator_code = FND_API.G_MISS_CHAR THEN
1122 l_PRICING_ATTR_rec.comparison_operator_code := NULL;
1123 END IF;
1124
1125 IF l_PRICING_ATTR_rec.pricing_attribute_datatype = FND_API.G_MISS_CHAR THEN
1126 l_PRICING_ATTR_rec.pricing_attribute_datatype := NULL;
1127 END IF;
1128
1129 IF l_PRICING_ATTR_rec.product_attribute_datatype = FND_API.G_MISS_CHAR THEN
1130 l_PRICING_ATTR_rec.product_attribute_datatype := NULL;
1131 END IF;
1132
1133 IF l_PRICING_ATTR_rec.qualification_ind = FND_API.G_MISS_NUM THEN
1134 l_PRICING_ATTR_rec.qualification_ind := NULL;
1135 END IF;
1136
1137 RETURN l_PRICING_ATTR_rec;
1138
1139 END Convert_Miss_To_Null;
1140
1141 -- Procedure Update_Row
1142
1143 PROCEDURE Update_Row
1144 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1145 )
1146 IS
1147 l_pric_attr_value_from_number NUMBER := NULL;
1148 l_pric_attr_value_to_number NUMBER := NULL;
1149 l_check_active_flag VARCHAR2(1);
1150 l_active_flag VARCHAR2(1);
1151 l_pric_attr_value_from VARCHAR2(240);
1152
1153 BEGIN
1154
1155 SELECT ACTIVE_FLAG
1156 INTO l_active_flag
1157 FROM QP_LIST_HEADERS_ALL_B
1158 WHERE LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id;
1159
1160 oe_debug_pub.add('BEGIN Update_Row in QPXUPRAB');
1161
1162 BEGIN
1163 IF p_PRICING_ATTR_rec.pricing_attribute_datatype = 'N' THEN
1164 l_pric_attr_value_from_number :=
1165 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_from);
1166
1167 l_pric_attr_value_to_number :=
1168 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_to);
1169
1170 l_pric_attr_value_from :=
1171 qp_number.number_to_canonical(l_pric_attr_value_from_number); --4418053
1172 ELSE
1173
1174 l_pric_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from; --4418053
1175
1176 end if;
1177
1178 EXCEPTION
1179 WHEN VALUE_ERROR THEN
1180 NULL;
1181 WHEN OTHERS THEN
1182 NULL;
1183 END;
1184
1185 IF G_PRODUCT_UOM_CODE IS NULL
1186 THEN G_PRODUCT_UOM_CODE :=p_PRICING_ATTR_rec.product_uom_code;
1187 END IF;
1188
1189 UPDATE QP_PRICING_ATTRIBUTES
1190 SET ACCUMULATE_FLAG = p_PRICING_ATTR_rec.accumulate_flag
1191 , ATTRIBUTE1 = p_PRICING_ATTR_rec.attribute1
1192 , ATTRIBUTE10 = p_PRICING_ATTR_rec.attribute10
1193 , ATTRIBUTE11 = p_PRICING_ATTR_rec.attribute11
1194 , ATTRIBUTE12 = p_PRICING_ATTR_rec.attribute12
1195 , ATTRIBUTE13 = p_PRICING_ATTR_rec.attribute13
1196 , ATTRIBUTE14 = p_PRICING_ATTR_rec.attribute14
1197 , ATTRIBUTE15 = p_PRICING_ATTR_rec.attribute15
1198 , ATTRIBUTE2 = p_PRICING_ATTR_rec.attribute2
1199 , ATTRIBUTE3 = p_PRICING_ATTR_rec.attribute3
1200 , ATTRIBUTE4 = p_PRICING_ATTR_rec.attribute4
1201 , ATTRIBUTE5 = p_PRICING_ATTR_rec.attribute5
1202 , ATTRIBUTE6 = p_PRICING_ATTR_rec.attribute6
1203 , ATTRIBUTE7 = p_PRICING_ATTR_rec.attribute7
1204 , ATTRIBUTE8 = p_PRICING_ATTR_rec.attribute8
1205 , ATTRIBUTE9 = p_PRICING_ATTR_rec.attribute9
1206 , ATTRIBUTE_GROUPING_NO = p_PRICING_ATTR_rec.attribute_grouping_no
1207 , CONTEXT = p_PRICING_ATTR_rec.context
1208 , CREATED_BY = p_PRICING_ATTR_rec.created_by
1209 , CREATION_DATE = p_PRICING_ATTR_rec.creation_date
1210 , EXCLUDER_FLAG = p_PRICING_ATTR_rec.excluder_flag
1211 , LAST_UPDATED_BY = p_PRICING_ATTR_rec.last_updated_by
1212 , LAST_UPDATE_DATE = p_PRICING_ATTR_rec.last_update_date
1213 , LAST_UPDATE_LOGIN = p_PRICING_ATTR_rec.last_update_login
1214 , LIST_LINE_ID = p_PRICING_ATTR_rec.list_line_id
1215 , LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id
1216 , PRICING_PHASE_ID = p_PRICING_ATTR_rec.pricing_phase_id
1217 , PRICING_ATTRIBUTE = p_PRICING_ATTR_rec.pricing_attribute
1218 , PRICING_ATTRIBUTE_CONTEXT = p_PRICING_ATTR_rec.pricing_attribute_context
1219 , PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1220 , PRICING_ATTR_VALUE_FROM = l_pric_attr_value_from
1221 , PRICING_ATTR_VALUE_TO = p_PRICING_ATTR_rec.pricing_attr_value_to
1222 , PRODUCT_ATTRIBUTE = p_PRICING_ATTR_rec.product_attribute
1223 , PRODUCT_ATTRIBUTE_CONTEXT = p_PRICING_ATTR_rec.product_attribute_context
1224 , PRODUCT_ATTR_VALUE = p_PRICING_ATTR_rec.product_attr_value
1225 --, PRODUCT_UOM_CODE = p_PRICING_ATTR_rec.product_uom_code
1226 , PRODUCT_UOM_CODE = G_PRODUCT_UOM_CODE
1227 , PROGRAM_APPLICATION_ID = p_PRICING_ATTR_rec.program_application_id
1228 , PROGRAM_ID = p_PRICING_ATTR_rec.program_id
1229 , PROGRAM_UPDATE_DATE = p_PRICING_ATTR_rec.program_update_date
1230 , REQUEST_ID = p_PRICING_ATTR_rec.request_id
1231 , COMPARISON_OPERATOR_CODE = p_PRICING_ATTR_rec.comparison_operator_code
1232 , PRICING_ATTRIBUTE_DATATYPE = p_PRICING_ATTR_rec.pricing_attribute_datatype
1233 , PRODUCT_ATTRIBUTE_DATATYPE = p_PRICING_ATTR_rec.product_attribute_datatype
1234 , PRICING_ATTR_VALUE_FROM_NUMBER = l_pric_attr_value_from_number
1235 , PRICING_ATTR_VALUE_TO_NUMBER = l_pric_attr_value_to_number
1236 , QUALIFICATION_IND = p_PRICING_ATTR_rec.qualification_ind
1237 WHERE PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1238 ;
1239
1240 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1241 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1242
1243 IF(p_PRICING_ATTR_rec.pricing_attribute_context IS NOT NULL) AND
1244 (p_PRICING_ATTR_rec.pricing_attribute IS NOT NULL) THEN
1245
1246 UPDATE qp_pte_segments set used_in_setup='Y'
1247 WHERE nvl(used_in_setup,'N')='N'
1248 AND segment_id IN
1249 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1250 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.pricing_attribute
1251 AND a.prc_context_id=b.prc_context_id
1252 AND b.prc_context_type='PRICING_ATTRIBUTE'
1253 AND b.prc_context_code=p_PRICING_ATTR_rec.pricing_attribute_context);
1254
1255 END IF;
1256
1257 IF(p_PRICING_ATTR_rec.product_attribute_context IS NOT NULL) AND
1258 (p_PRICING_ATTR_rec.product_attribute IS NOT NULL) THEN
1259
1260 UPDATE qp_pte_segments set used_in_setup='Y'
1261 WHERE nvl(used_in_setup,'N')='N'
1262 AND segment_id IN
1263 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1264 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.product_attribute
1265 AND a.prc_context_id=b.prc_context_id
1266 AND b.prc_context_type='PRODUCT'
1267 AND b.prc_context_code=p_PRICING_ATTR_rec.product_attribute_context);
1268
1269 END IF;
1270 END IF;
1271
1272 EXCEPTION
1273
1274 WHEN OTHERS THEN
1275
1276 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1277 THEN
1278 oe_msg_pub.Add_Exc_Msg
1279 ( G_PKG_NAME
1280 , 'Update_Row'
1281 );
1282 END IF;
1283
1284 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1285
1286 END Update_Row;
1287
1288 -- Procedure Insert_Row
1289
1290 PROCEDURE Insert_Row
1291 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1292 )
1293 IS
1294 l_check_active_flag VARCHAR2(1);
1295 l_active_flag VARCHAR2(1);
1296 l_return_status VARCHAR2(1);
1297 l_pric_attr_value_from_number NUMBER := NULL;
1298 l_pric_attr_value_to_number NUMBER := NULL;
1299 l_pric_attr_value_from VARCHAR2(240);
1300
1301 BEGIN
1302
1303 oe_debug_pub.add('BEGIN Update_Row in QPXUPRAB');
1304 SELECT ACTIVE_FLAG
1305 INTO l_active_flag
1306 FROM QP_LIST_HEADERS_ALL_B
1307 WHERE LIST_HEADER_ID = p_PRICING_ATTR_rec.list_header_id;
1308
1309
1310 BEGIN
1311 IF p_PRICING_ATTR_rec.pricing_attribute_datatype = 'N' THEN
1312 l_pric_attr_value_from_number :=
1313 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_from);
1314
1315 l_pric_attr_value_to_number :=
1316 qp_number.canonical_to_number(p_PRICING_ATTR_rec.pricing_attr_value_to);
1317
1318 l_pric_attr_value_from :=
1319 qp_number.number_to_canonical(l_pric_attr_value_from_number); --4418053
1320 ELSE
1321
1322 l_pric_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from; --4418053
1323 END IF;
1324
1325 EXCEPTION
1326 WHEN VALUE_ERROR THEN
1327 NULL;
1328 WHEN OTHERS THEN
1329 NULL;
1330 END;
1331
1332
1333 INSERT INTO QP_PRICING_ATTRIBUTES
1334 ( ACCUMULATE_FLAG
1335 , ATTRIBUTE1
1336 , ATTRIBUTE10
1337 , ATTRIBUTE11
1338 , ATTRIBUTE12
1339 , ATTRIBUTE13
1340 , ATTRIBUTE14
1341 , ATTRIBUTE15
1342 , ATTRIBUTE2
1343 , ATTRIBUTE3
1344 , ATTRIBUTE4
1345 , ATTRIBUTE5
1346 , ATTRIBUTE6
1347 , ATTRIBUTE7
1348 , ATTRIBUTE8
1349 , ATTRIBUTE9
1350 , ATTRIBUTE_GROUPING_NO
1351 , CONTEXT
1352 , CREATED_BY
1353 , CREATION_DATE
1354 , EXCLUDER_FLAG
1355 , LAST_UPDATED_BY
1356 , LAST_UPDATE_DATE
1357 , LAST_UPDATE_LOGIN
1358 , LIST_LINE_ID
1359 , LIST_HEADER_ID
1360 , PRICING_PHASE_ID
1361 , PRICING_ATTRIBUTE
1362 , PRICING_ATTRIBUTE_CONTEXT
1363 , PRICING_ATTRIBUTE_ID
1364 , PRICING_ATTR_VALUE_FROM
1365 , PRICING_ATTR_VALUE_TO
1366 , PRODUCT_ATTRIBUTE
1367 , PRODUCT_ATTRIBUTE_CONTEXT
1368 , PRODUCT_ATTR_VALUE
1369 , PRODUCT_UOM_CODE
1370 , PROGRAM_APPLICATION_ID
1371 , PROGRAM_ID
1372 , PROGRAM_UPDATE_DATE
1373 , REQUEST_ID
1374 , COMPARISON_OPERATOR_CODE
1375 , PRICING_ATTRIBUTE_DATATYPE
1376 , PRODUCT_ATTRIBUTE_DATATYPE
1377 , PRICING_ATTR_VALUE_FROM_NUMBER
1378 , PRICING_ATTR_VALUE_TO_NUMBER
1379 , QUALIFICATION_IND
1380 --ENH Upgrade BOAPI for orig_sys...ref RAVI
1381 ,ORIG_SYS_PRICING_ATTR_REF
1382 ,ORIG_SYS_LINE_REF
1383 ,ORIG_SYS_HEADER_REF
1384 )
1385 VALUES
1386 ( p_PRICING_ATTR_rec.accumulate_flag
1387 , p_PRICING_ATTR_rec.attribute1
1388 , p_PRICING_ATTR_rec.attribute10
1389 , p_PRICING_ATTR_rec.attribute11
1390 , p_PRICING_ATTR_rec.attribute12
1391 , p_PRICING_ATTR_rec.attribute13
1392 , p_PRICING_ATTR_rec.attribute14
1393 , p_PRICING_ATTR_rec.attribute15
1394 , p_PRICING_ATTR_rec.attribute2
1395 , p_PRICING_ATTR_rec.attribute3
1396 , p_PRICING_ATTR_rec.attribute4
1397 , p_PRICING_ATTR_rec.attribute5
1398 , p_PRICING_ATTR_rec.attribute6
1399 , p_PRICING_ATTR_rec.attribute7
1400 , p_PRICING_ATTR_rec.attribute8
1401 , p_PRICING_ATTR_rec.attribute9
1402 , p_PRICING_ATTR_rec.attribute_grouping_no
1403 , p_PRICING_ATTR_rec.context
1404 , p_PRICING_ATTR_rec.created_by
1405 , p_PRICING_ATTR_rec.creation_date
1406 , p_PRICING_ATTR_rec.excluder_flag
1407 , p_PRICING_ATTR_rec.last_updated_by
1408 , p_PRICING_ATTR_rec.last_update_date
1409 , p_PRICING_ATTR_rec.last_update_login
1410 , p_PRICING_ATTR_rec.list_line_id
1411 , p_PRICING_ATTR_rec.list_header_id
1412 , p_PRICING_ATTR_rec.pricing_phase_id
1413 , p_PRICING_ATTR_rec.pricing_attribute
1414 , p_PRICING_ATTR_rec.pricing_attribute_context
1415 , p_PRICING_ATTR_rec.pricing_attribute_id
1416 , l_pric_attr_value_from
1417 , p_PRICING_ATTR_rec.pricing_attr_value_to
1418 , p_PRICING_ATTR_rec.product_attribute
1419 , p_PRICING_ATTR_rec.product_attribute_context
1420 , p_PRICING_ATTR_rec.product_attr_value
1421 , p_PRICING_ATTR_rec.product_uom_code
1422 , p_PRICING_ATTR_rec.program_application_id
1423 , p_PRICING_ATTR_rec.program_id
1424 , p_PRICING_ATTR_rec.program_update_date
1425 , p_PRICING_ATTR_rec.request_id
1426 , p_PRICING_ATTR_rec.comparison_operator_code
1427 , p_PRICING_ATTR_rec.pricing_attribute_datatype
1428 , p_PRICING_ATTR_rec.product_attribute_datatype
1429 , l_pric_attr_value_from_number
1430 , l_pric_attr_value_to_number
1431 , p_PRICING_ATTR_rec.qualification_ind --euro bug 2138996
1432 --ENH Upgrade BOAPI for orig_sys...ref RAVI
1433 ,to_char(p_PRICING_ATTR_rec.pricing_attribute_id)
1434 ,(select l.ORIG_SYS_LINE_REF from qp_list_lines l where l.list_line_id=p_PRICING_ATTR_rec.list_line_id)
1435 ,(select h.ORIG_SYSTEM_HEADER_REF from QP_LIST_HEADERS_ALL_B h where h.list_header_id=p_PRICING_ATTR_rec.list_header_id)
1436 );
1437
1438 l_check_active_flag:=nvl(fnd_profile.value('QP_BUILD_ATTRIBUTES_MAPPING_OPTIONS'),'N');
1439 IF (l_check_active_flag='N') OR (l_check_active_flag='Y' AND l_active_flag='Y') THEN
1440 IF(p_PRICING_ATTR_rec.pricing_attribute_context IS NOT NULL) AND
1441 (p_PRICING_ATTR_rec.pricing_attribute IS NOT NULL) THEN
1442
1443 UPDATE qp_pte_segments set used_in_setup='Y'
1444 WHERE nvl(used_in_setup,'N')='N'
1445 AND segment_id IN
1446 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1447 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.pricing_attribute
1448 AND a.prc_context_id=b.prc_context_id
1449 AND b.prc_context_type='PRICING_ATTRIBUTE'
1450 AND b.prc_context_code=p_PRICING_ATTR_rec.pricing_attribute_context);
1451
1452 END IF;
1453
1454
1455 IF(p_PRICING_ATTR_rec.product_attribute_context IS NOT NULL) AND
1456 (p_PRICING_ATTR_rec.product_attribute IS NOT NULL) THEN
1457
1458 UPDATE qp_pte_segments set used_in_setup='Y'
1459 WHERE nvl(used_in_setup,'N')='N'
1460 AND segment_id IN
1461 (SELECT a.segment_id FROM qp_segments_b a,qp_prc_contexts_b b
1462 WHERE a.segment_mapping_column=p_PRICING_ATTR_rec.product_attribute
1463 AND a.prc_context_id=b.prc_context_id
1464 AND b.prc_context_type='PRODUCT'
1465 AND b.prc_context_code=p_PRICING_ATTR_rec.product_attribute_context);
1466
1467 END IF;
1468 END IF;
1469
1470 qp_delayed_requests_PVT.log_request(
1471 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
1472 p_entity_id => p_PRICING_ATTR_rec.list_line_id,
1473 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_PRICE_LIST_LINE,
1474 p_requesting_entity_id => p_PRICING_ATTR_rec.list_line_id,
1475 p_request_type => QP_GLOBALS.G_UPDATE_PRICING_ATTR_PHASE,
1476 x_return_status => l_return_status);
1477
1478 EXCEPTION
1479
1480 WHEN OTHERS THEN
1481
1482 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1483 THEN
1484 oe_msg_pub.Add_Exc_Msg
1485 ( G_PKG_NAME
1486 , 'Insert_Row'
1487 );
1488 END IF;
1489
1490 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1491
1492 END Insert_Row;
1493
1494 -- Procedure Delete_Row
1495
1496 PROCEDURE Delete_Row
1497 ( p_pricing_attribute_id IN NUMBER
1498 )
1499 IS
1500 BEGIN
1501
1502
1503
1504 DELETE FROM QP_PRICING_ATTRIBUTES
1505 WHERE PRICING_ATTRIBUTE_ID = p_pricing_attribute_id
1506 ;
1507
1508
1509 EXCEPTION
1510
1511 WHEN OTHERS THEN
1512
1513 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1514 THEN
1515 oe_msg_pub.Add_Exc_Msg
1516 ( G_PKG_NAME
1517 , 'Delete_Row'
1518 );
1519 END IF;
1520
1521 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1522
1523 END Delete_Row;
1524
1525 -- Function Query_Row
1526
1527 FUNCTION Query_Row
1528 ( p_pricing_attribute_id IN NUMBER
1529 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1530 IS
1531 BEGIN
1532
1533 RETURN Query_Rows
1534 ( p_pricing_attribute_id => p_pricing_attribute_id
1535 )(1);
1536
1537 END Query_Row;
1538
1539 -- Function Query_Rows
1540
1541 --
1542
1543 FUNCTION Query_Rows
1544 ( p_pricing_attribute_id IN NUMBER :=
1545 FND_API.G_MISS_NUM
1546 , p_list_line_id IN NUMBER :=
1547 FND_API.G_MISS_NUM
1548 ) RETURN QP_Price_List_PUB.Pricing_Attr_Tbl_Type
1549 IS
1550 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1551 l_PRICING_ATTR_tbl QP_Price_List_PUB.Pricing_Attr_Tbl_Type;
1552
1553 CURSOR l_PRICING_ATTR_csr IS
1554 SELECT ACCUMULATE_FLAG
1555 , ATTRIBUTE1
1556 , ATTRIBUTE10
1557 , ATTRIBUTE11
1558 , ATTRIBUTE12
1559 , ATTRIBUTE13
1560 , ATTRIBUTE14
1561 , ATTRIBUTE15
1562 , ATTRIBUTE2
1563 , ATTRIBUTE3
1564 , ATTRIBUTE4
1565 , ATTRIBUTE5
1566 , ATTRIBUTE6
1567 , ATTRIBUTE7
1568 , ATTRIBUTE8
1569 , ATTRIBUTE9
1570 , ATTRIBUTE_GROUPING_NO
1571 , CONTEXT
1572 , CREATED_BY
1573 , CREATION_DATE
1574 , EXCLUDER_FLAG
1575 , LAST_UPDATED_BY
1576 , LAST_UPDATE_DATE
1577 , LAST_UPDATE_LOGIN
1578 , LIST_LINE_ID
1579 , LIST_HEADER_ID
1580 , PRICING_PHASE_ID
1581 , PRICING_ATTRIBUTE
1582 , PRICING_ATTRIBUTE_CONTEXT
1583 , PRICING_ATTRIBUTE_ID
1584 , PRICING_ATTR_VALUE_FROM
1585 , PRICING_ATTR_VALUE_TO
1586 , PRODUCT_ATTRIBUTE
1587 , PRODUCT_ATTRIBUTE_CONTEXT
1588 , PRODUCT_ATTR_VALUE
1589 , PRODUCT_UOM_CODE
1590 , PROGRAM_APPLICATION_ID
1591 , PROGRAM_ID
1592 , PROGRAM_UPDATE_DATE
1593 , REQUEST_ID
1594 , COMPARISON_OPERATOR_CODE
1595 , PRICING_ATTRIBUTE_DATATYPE
1596 , PRODUCT_ATTRIBUTE_DATATYPE
1597 , PRICING_ATTR_VALUE_FROM_NUMBER
1598 , PRICING_ATTR_VALUE_TO_NUMBER
1599 , QUALIFICATION_IND
1600 FROM QP_PRICING_ATTRIBUTES
1601 WHERE ( PRICING_ATTRIBUTE_ID = p_pricing_attribute_id
1602 )
1603 OR ( LIST_LINE_ID = p_list_line_id
1604 );
1605
1606 BEGIN
1607
1608 IF
1609 (p_pricing_attribute_id IS NOT NULL
1610 AND
1611 p_pricing_attribute_id <> FND_API.G_MISS_NUM)
1612 AND
1613 (p_list_line_id IS NOT NULL
1614 AND
1615 p_list_line_id <> FND_API.G_MISS_NUM)
1616 THEN
1617 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1618 THEN
1619 oe_msg_pub.Add_Exc_Msg
1620 ( G_PKG_NAME
1621 , 'Query Rows'
1622 , 'Keys are mutually exclusive: pricing_attribute_id = '|| p_pricing_attribute_id || ', list_line_id = '|| p_list_line_id
1623 );
1624 END IF;
1625
1626 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1627
1628 END IF;
1629
1630
1631 -- Loop over fetched records
1632
1633 FOR l_implicit_rec IN l_PRICING_ATTR_csr LOOP
1634
1635 l_PRICING_ATTR_rec.accumulate_flag := l_implicit_rec.ACCUMULATE_FLAG;
1636 l_PRICING_ATTR_rec.attribute1 := l_implicit_rec.ATTRIBUTE1;
1637 l_PRICING_ATTR_rec.attribute10 := l_implicit_rec.ATTRIBUTE10;
1638 l_PRICING_ATTR_rec.attribute11 := l_implicit_rec.ATTRIBUTE11;
1639 l_PRICING_ATTR_rec.attribute12 := l_implicit_rec.ATTRIBUTE12;
1640 l_PRICING_ATTR_rec.attribute13 := l_implicit_rec.ATTRIBUTE13;
1641 l_PRICING_ATTR_rec.attribute14 := l_implicit_rec.ATTRIBUTE14;
1642 l_PRICING_ATTR_rec.attribute15 := l_implicit_rec.ATTRIBUTE15;
1643 l_PRICING_ATTR_rec.attribute2 := l_implicit_rec.ATTRIBUTE2;
1644 l_PRICING_ATTR_rec.attribute3 := l_implicit_rec.ATTRIBUTE3;
1645 l_PRICING_ATTR_rec.attribute4 := l_implicit_rec.ATTRIBUTE4;
1646 l_PRICING_ATTR_rec.attribute5 := l_implicit_rec.ATTRIBUTE5;
1647 l_PRICING_ATTR_rec.attribute6 := l_implicit_rec.ATTRIBUTE6;
1648 l_PRICING_ATTR_rec.attribute7 := l_implicit_rec.ATTRIBUTE7;
1649 l_PRICING_ATTR_rec.attribute8 := l_implicit_rec.ATTRIBUTE8;
1650 l_PRICING_ATTR_rec.attribute9 := l_implicit_rec.ATTRIBUTE9;
1651 l_PRICING_ATTR_rec.attribute_grouping_no := l_implicit_rec.ATTRIBUTE_GROUPING_NO;
1652 l_PRICING_ATTR_rec.context := l_implicit_rec.CONTEXT;
1653 l_PRICING_ATTR_rec.created_by := l_implicit_rec.CREATED_BY;
1654 l_PRICING_ATTR_rec.creation_date := l_implicit_rec.CREATION_DATE;
1655 l_PRICING_ATTR_rec.excluder_flag := l_implicit_rec.EXCLUDER_FLAG;
1656 l_PRICING_ATTR_rec.last_updated_by := l_implicit_rec.LAST_UPDATED_BY;
1657 l_PRICING_ATTR_rec.last_update_date := l_implicit_rec.LAST_UPDATE_DATE;
1658 l_PRICING_ATTR_rec.last_update_login := l_implicit_rec.LAST_UPDATE_LOGIN;
1659 l_PRICING_ATTR_rec.list_line_id := l_implicit_rec.LIST_LINE_ID;
1660 l_PRICING_ATTR_rec.list_header_id := l_implicit_rec.LIST_HEADER_ID;
1661 l_PRICING_ATTR_rec.pricing_phase_id := l_implicit_rec.PRICING_PHASE_ID;
1662 l_PRICING_ATTR_rec.pricing_attribute := l_implicit_rec.PRICING_ATTRIBUTE;
1663 l_PRICING_ATTR_rec.pricing_attribute_context := l_implicit_rec.PRICING_ATTRIBUTE_CONTEXT;
1664 l_PRICING_ATTR_rec.pricing_attribute_id := l_implicit_rec.PRICING_ATTRIBUTE_ID;
1665 l_PRICING_ATTR_rec.pricing_attr_value_from := l_implicit_rec.PRICING_ATTR_VALUE_FROM;
1666 l_PRICING_ATTR_rec.pricing_attr_value_to := l_implicit_rec.PRICING_ATTR_VALUE_TO;
1667 l_PRICING_ATTR_rec.product_attribute := l_implicit_rec.PRODUCT_ATTRIBUTE;
1668 l_PRICING_ATTR_rec.product_attribute_context := l_implicit_rec.PRODUCT_ATTRIBUTE_CONTEXT;
1669 l_PRICING_ATTR_rec.product_attr_value := l_implicit_rec.PRODUCT_ATTR_VALUE;
1670 l_PRICING_ATTR_rec.product_uom_code := l_implicit_rec.PRODUCT_UOM_CODE;
1671 l_PRICING_ATTR_rec.program_application_id := l_implicit_rec.PROGRAM_APPLICATION_ID;
1672 l_PRICING_ATTR_rec.program_id := l_implicit_rec.PROGRAM_ID;
1673 l_PRICING_ATTR_rec.program_update_date := l_implicit_rec.PROGRAM_UPDATE_DATE;
1674 l_PRICING_ATTR_rec.request_id := l_implicit_rec.REQUEST_ID;
1675 l_PRICING_ATTR_rec.comparison_operator_code := l_implicit_rec.comparison_operator_code;
1676 l_PRICING_ATTR_rec.pricing_attribute_datatype := l_implicit_rec.pricing_attribute_datatype;
1677 l_PRICING_ATTR_rec.product_attribute_datatype := l_implicit_rec.product_attribute_datatype;
1678 l_PRICING_ATTR_rec.pricing_attr_value_from_number := l_implicit_rec.PRICING_ATTR_VALUE_FROM_NUMBER;
1679 l_PRICING_ATTR_rec.pricing_attr_value_to_number := l_implicit_rec.PRICING_ATTR_VALUE_TO_NUMBER;
1680 l_PRICING_ATTR_rec.qualification_ind := l_implicit_rec.QUALIFICATION_IND;
1681
1682
1683 l_PRICING_ATTR_tbl(l_PRICING_ATTR_tbl.COUNT + 1) := l_PRICING_ATTR_rec;
1684
1685 END LOOP;
1686
1687
1688 -- PK sent and no rows found
1689
1690 IF
1691 (p_pricing_attribute_id IS NOT NULL
1692 AND
1693 p_pricing_attribute_id <> FND_API.G_MISS_NUM)
1694 AND
1695 (l_PRICING_ATTR_tbl.COUNT = 0)
1696 THEN
1697 RAISE NO_DATA_FOUND;
1698 END IF;
1699
1700
1701 -- Return fetched table
1702
1703 RETURN l_PRICING_ATTR_tbl;
1704
1705 EXCEPTION
1706
1707 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1708
1709 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1710
1711 WHEN OTHERS THEN
1712
1713 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
1714 THEN
1715 oe_msg_pub.Add_Exc_Msg
1716 ( G_PKG_NAME
1717 , 'Query_Rows'
1718 );
1719 END IF;
1720
1721 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1722
1723 END Query_Rows;
1724
1725 -- Procedure lock_Row
1726 --
1727
1728 PROCEDURE Lock_Row
1729 ( x_return_status OUT NOCOPY /* file.sql.39 change */ VARCHAR2
1730 , p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
1731 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
1732 )
1733 IS
1734 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
1735 BEGIN
1736
1737 SELECT ACCUMULATE_FLAG
1738 , ATTRIBUTE1
1739 , ATTRIBUTE10
1740 , ATTRIBUTE11
1741 , ATTRIBUTE12
1742 , ATTRIBUTE13
1743 , ATTRIBUTE14
1744 , ATTRIBUTE15
1745 , ATTRIBUTE2
1746 , ATTRIBUTE3
1747 , ATTRIBUTE4
1748 , ATTRIBUTE5
1749 , ATTRIBUTE6
1750 , ATTRIBUTE7
1751 , ATTRIBUTE8
1752 , ATTRIBUTE9
1753 , ATTRIBUTE_GROUPING_NO
1754 , CONTEXT
1755 , CREATED_BY
1756 , CREATION_DATE
1757 , EXCLUDER_FLAG
1758 , LAST_UPDATED_BY
1759 , LAST_UPDATE_DATE
1760 , LAST_UPDATE_LOGIN
1761 , LIST_LINE_ID
1762 , LIST_HEADER_ID
1763 , PRICING_PHASE_ID
1764 , PRICING_ATTRIBUTE
1765 , PRICING_ATTRIBUTE_CONTEXT
1766 , PRICING_ATTRIBUTE_ID
1767 , PRICING_ATTR_VALUE_FROM
1768 , PRICING_ATTR_VALUE_TO
1769 , PRODUCT_ATTRIBUTE
1770 , PRODUCT_ATTRIBUTE_CONTEXT
1771 , PRODUCT_ATTR_VALUE
1772 , PRODUCT_UOM_CODE
1773 , PROGRAM_APPLICATION_ID
1774 , PROGRAM_ID
1775 , PROGRAM_UPDATE_DATE
1776 , REQUEST_ID
1777 , COMPARISON_OPERATOR_CODE
1778 , PRICING_ATTRIBUTE_DATATYPE
1779 , PRODUCT_ATTRIBUTE_DATATYPE
1780 INTO l_PRICING_ATTR_rec.accumulate_flag
1781 , l_PRICING_ATTR_rec.attribute1
1782 , l_PRICING_ATTR_rec.attribute10
1783 , l_PRICING_ATTR_rec.attribute11
1784 , l_PRICING_ATTR_rec.attribute12
1785 , l_PRICING_ATTR_rec.attribute13
1786 , l_PRICING_ATTR_rec.attribute14
1787 , l_PRICING_ATTR_rec.attribute15
1788 , l_PRICING_ATTR_rec.attribute2
1789 , l_PRICING_ATTR_rec.attribute3
1790 , l_PRICING_ATTR_rec.attribute4
1791 , l_PRICING_ATTR_rec.attribute5
1792 , l_PRICING_ATTR_rec.attribute6
1793 , l_PRICING_ATTR_rec.attribute7
1794 , l_PRICING_ATTR_rec.attribute8
1795 , l_PRICING_ATTR_rec.attribute9
1796 , l_PRICING_ATTR_rec.attribute_grouping_no
1797 , l_PRICING_ATTR_rec.context
1798 , l_PRICING_ATTR_rec.created_by
1799 , l_PRICING_ATTR_rec.creation_date
1800 , l_PRICING_ATTR_rec.excluder_flag
1801 , l_PRICING_ATTR_rec.last_updated_by
1802 , l_PRICING_ATTR_rec.last_update_date
1803 , l_PRICING_ATTR_rec.last_update_login
1804 , l_PRICING_ATTR_rec.list_line_id
1805 , l_PRICING_ATTR_rec.list_header_id
1806 , l_PRICING_ATTR_rec.pricing_phase_id
1807 , l_PRICING_ATTR_rec.pricing_attribute
1808 , l_PRICING_ATTR_rec.pricing_attribute_context
1809 , l_PRICING_ATTR_rec.pricing_attribute_id
1810 , l_PRICING_ATTR_rec.pricing_attr_value_from
1811 , l_PRICING_ATTR_rec.pricing_attr_value_to
1812 , l_PRICING_ATTR_rec.product_attribute
1813 , l_PRICING_ATTR_rec.product_attribute_context
1814 , l_PRICING_ATTR_rec.product_attr_value
1815 , l_PRICING_ATTR_rec.product_uom_code
1816 , l_PRICING_ATTR_rec.program_application_id
1817 , l_PRICING_ATTR_rec.program_id
1818 , l_PRICING_ATTR_rec.program_update_date
1819 , l_PRICING_ATTR_rec.request_id
1820 , l_PRICING_ATTR_rec.comparison_operator_code
1821 , l_PRICING_ATTR_rec.pricing_attribute_datatype
1822 , l_PRICING_ATTR_rec.product_attribute_datatype
1823 FROM QP_PRICING_ATTRIBUTES
1824 WHERE PRICING_ATTRIBUTE_ID = p_PRICING_ATTR_rec.pricing_attribute_id
1825 FOR UPDATE NOWAIT;
1826
1827 -- Row locked. Compare IN attributes to DB attributes.
1828
1829 IF QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,
1830 l_PRICING_ATTR_rec.accumulate_flag)
1831 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute1,
1832 l_PRICING_ATTR_rec.attribute1)
1833 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute10,
1834 l_PRICING_ATTR_rec.attribute10)
1835 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute11,
1836 l_PRICING_ATTR_rec.attribute11)
1837 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute12,
1838 l_PRICING_ATTR_rec.attribute12)
1839 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute13,
1840 l_PRICING_ATTR_rec.attribute13)
1841 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute14,
1842 l_PRICING_ATTR_rec.attribute14)
1843 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute15,
1844 l_PRICING_ATTR_rec.attribute15)
1845 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute2,
1846 l_PRICING_ATTR_rec.attribute2)
1847 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute3,
1848 l_PRICING_ATTR_rec.attribute3)
1849 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute4,
1850 l_PRICING_ATTR_rec.attribute4)
1851 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute5,
1852 l_PRICING_ATTR_rec.attribute5)
1853 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute6,
1854 l_PRICING_ATTR_rec.attribute6)
1855 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute7,
1856 l_PRICING_ATTR_rec.attribute7)
1857 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute8,
1858 l_PRICING_ATTR_rec.attribute8)
1859 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute9,
1860 l_PRICING_ATTR_rec.attribute9)
1861 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.attribute_grouping_no,
1862 l_PRICING_ATTR_rec.attribute_grouping_no)
1863 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.context,
1864 l_PRICING_ATTR_rec.context)
1865 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.created_by,
1866 -- l_PRICING_ATTR_rec.created_by)
1867 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.creation_date),
1868 -- trunc(l_PRICING_ATTR_rec.creation_date))
1869 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,
1870 l_PRICING_ATTR_rec.excluder_flag)
1871 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_updated_by,
1872 -- l_PRICING_ATTR_rec.last_updated_by)
1873 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.last_update_date),
1874 -- trunc(l_PRICING_ATTR_rec.last_update_date))
1875 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.last_update_login,
1876 -- l_PRICING_ATTR_rec.last_update_login)
1877 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,
1878 l_PRICING_ATTR_rec.list_line_id)
1879 /* AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_header_id,
1880 l_PRICING_ATTR_rec.list_header_id)
1881 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_phase_id,
1882 l_PRICING_ATTR_rec.pricing_phase_id)*/
1883 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute,
1884 l_PRICING_ATTR_rec.pricing_attribute)
1885 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_context,
1886 l_PRICING_ATTR_rec.pricing_attribute_context)
1887 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,
1888 l_PRICING_ATTR_rec.pricing_attribute_id)
1889 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_from,
1890 l_PRICING_ATTR_rec.pricing_attr_value_from)
1891 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attr_value_to,
1892 l_PRICING_ATTR_rec.pricing_attr_value_to)
1893 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute,
1894 l_PRICING_ATTR_rec.product_attribute)
1895 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_context,
1896 l_PRICING_ATTR_rec.product_attribute_context)
1897 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attr_value,
1898 l_PRICING_ATTR_rec.product_attr_value)
1899 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,
1900 l_PRICING_ATTR_rec.product_uom_code)
1901 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_application_id,
1902 -- l_PRICING_ATTR_rec.program_application_id)
1903 -- AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.program_id,
1904 -- l_PRICING_ATTR_rec.program_id)
1905 -- AND QP_GLOBALS.Equal(trunc(p_PRICING_ATTR_rec.program_update_date),
1906 -- trunc(l_PRICING_ATTR_rec.program_update_date))
1907 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.request_id,
1908 l_PRICING_ATTR_rec.request_id)
1909 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.comparison_operator_code,
1910 l_PRICING_ATTR_rec.comparison_operator_code)
1911 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_datatype,
1912 l_PRICING_ATTR_rec.pricing_attribute_datatype)
1913 AND QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_attribute_datatype,
1914 l_PRICING_ATTR_rec.product_attribute_datatype)
1915 THEN
1916
1917 -- Row has not changed. Set out parameter.
1918
1919 x_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
1920
1921 -- Set return status
1922
1923 x_return_status := FND_API.G_RET_STS_SUCCESS;
1924 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_SUCCESS;
1925
1926 ELSE
1927
1928 -- Row has changed by another user.
1929
1930 x_return_status := FND_API.G_RET_STS_ERROR;
1931 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
1932
1933 --8594682 - Add debug messages for OE_LOCK error
1934 oe_debug_pub.ADD('-------------------Data compare in Price list line Attributes(database vs record)------------------');
1935 oe_debug_pub.ADD('pricing_attribute_id :'||l_PRICING_ATTR_rec.pricing_attribute_id||':'||p_PRICING_ATTR_rec.pricing_attribute_id||':');
1936 oe_debug_pub.ADD('accumulate_flag :'||l_PRICING_ATTR_rec.accumulate_flag||':'||p_PRICING_ATTR_rec.accumulate_flag||':');
1937 oe_debug_pub.ADD('attribute1 :'||l_PRICING_ATTR_rec.attribute1||':'||p_PRICING_ATTR_rec.attribute1||':');
1938 oe_debug_pub.ADD('attribute10 :'||l_PRICING_ATTR_rec.attribute10||':'||p_PRICING_ATTR_rec.attribute10||':');
1939 oe_debug_pub.ADD('attribute11 :'||l_PRICING_ATTR_rec.attribute11||':'||p_PRICING_ATTR_rec.attribute11||':');
1940 oe_debug_pub.ADD('attribute12 :'||l_PRICING_ATTR_rec.attribute12||':'||p_PRICING_ATTR_rec.attribute12||':');
1941 oe_debug_pub.ADD('attribute13 :'||l_PRICING_ATTR_rec.attribute13||':'||p_PRICING_ATTR_rec.attribute13||':');
1942 oe_debug_pub.ADD('attribute14 :'||l_PRICING_ATTR_rec.attribute14||':'||p_PRICING_ATTR_rec.attribute14||':');
1943 oe_debug_pub.ADD('attribute15 :'||l_PRICING_ATTR_rec.attribute15||':'||p_PRICING_ATTR_rec.attribute15||':');
1944 oe_debug_pub.ADD('attribute2 :'||l_PRICING_ATTR_rec.attribute2||':'||p_PRICING_ATTR_rec.attribute2||':');
1945 oe_debug_pub.ADD('attribute3 :'||l_PRICING_ATTR_rec.attribute3||':'||p_PRICING_ATTR_rec.attribute3||':');
1946 oe_debug_pub.ADD('attribute4 :'||l_PRICING_ATTR_rec.attribute4||':'||p_PRICING_ATTR_rec.attribute4||':');
1947 oe_debug_pub.ADD('attribute5 :'||l_PRICING_ATTR_rec.attribute5||':'||p_PRICING_ATTR_rec.attribute5||':');
1948 oe_debug_pub.ADD('attribute6 :'||l_PRICING_ATTR_rec.attribute6||':'||p_PRICING_ATTR_rec.attribute6||':');
1949 oe_debug_pub.ADD('attribute7 :'||l_PRICING_ATTR_rec.attribute7||':'||p_PRICING_ATTR_rec.attribute7||':');
1950 oe_debug_pub.ADD('attribute8 :'||l_PRICING_ATTR_rec.attribute8||':'||p_PRICING_ATTR_rec.attribute8||':');
1951 oe_debug_pub.ADD('attribute9 :'||l_PRICING_ATTR_rec.attribute9||':'||p_PRICING_ATTR_rec.attribute9||':');
1952 oe_debug_pub.ADD('attribute_grouping_no :'||l_PRICING_ATTR_rec.attribute_grouping_no||':'||p_PRICING_ATTR_rec.attribute_grouping_no||':');
1953 oe_debug_pub.ADD('context :'||l_PRICING_ATTR_rec.context||':'||p_PRICING_ATTR_rec.context||':');
1954 oe_debug_pub.ADD('created_by :'||l_PRICING_ATTR_rec.created_by||':'||p_PRICING_ATTR_rec.created_by||':');
1955 oe_debug_pub.ADD('creation_date :'||l_PRICING_ATTR_rec.creation_date||':'||p_PRICING_ATTR_rec.creation_date||':');
1956 oe_debug_pub.ADD('excluder_flag :'||l_PRICING_ATTR_rec.excluder_flag||':'||p_PRICING_ATTR_rec.excluder_flag||':');
1957 oe_debug_pub.ADD('last_updated_by :'||l_PRICING_ATTR_rec.last_updated_by||':'||p_PRICING_ATTR_rec.last_updated_by||':');
1958 oe_debug_pub.ADD('last_update_date :'||l_PRICING_ATTR_rec.last_update_date||':'||p_PRICING_ATTR_rec.last_update_date||':');
1959 oe_debug_pub.ADD('last_update_login :'||l_PRICING_ATTR_rec.last_update_login||':'||p_PRICING_ATTR_rec.last_update_login||':');
1960 oe_debug_pub.ADD('list_line_id :'||l_PRICING_ATTR_rec.list_line_id||':'||p_PRICING_ATTR_rec.list_line_id||':');
1961 oe_debug_pub.ADD('list_header_id :'||l_PRICING_ATTR_rec.list_header_id||':'||p_PRICING_ATTR_rec.list_header_id||':');
1962 oe_debug_pub.ADD('pricing_phase_id :'||l_PRICING_ATTR_rec.pricing_phase_id||':'||p_PRICING_ATTR_rec.pricing_phase_id||':');
1963 oe_debug_pub.ADD('pricing_attribute :'||l_PRICING_ATTR_rec.pricing_attribute||':'||p_PRICING_ATTR_rec.pricing_attribute||':');
1964 oe_debug_pub.ADD('pricing_attribute_context :'||l_PRICING_ATTR_rec.pricing_attribute_context||':'||p_PRICING_ATTR_rec.pricing_attribute_context||':');
1965 oe_debug_pub.ADD('pricing_attribute_id :'||l_PRICING_ATTR_rec.pricing_attribute_id||':'||p_PRICING_ATTR_rec.pricing_attribute_id||':');
1966 oe_debug_pub.ADD('pricing_attr_value_from :'||l_PRICING_ATTR_rec.pricing_attr_value_from||':'||p_PRICING_ATTR_rec.pricing_attr_value_from||':');
1967 oe_debug_pub.ADD('pricing_attr_value_to :'||l_PRICING_ATTR_rec.pricing_attr_value_to||':'||p_PRICING_ATTR_rec.pricing_attr_value_to||':');
1968 oe_debug_pub.ADD('product_attribute :'||l_PRICING_ATTR_rec.product_attribute||':'||p_PRICING_ATTR_rec.product_attribute||':');
1969 oe_debug_pub.ADD('product_attribute_context :'||l_PRICING_ATTR_rec.product_attribute_context||':'||p_PRICING_ATTR_rec.product_attribute_context||':');
1970 oe_debug_pub.ADD('product_attr_value :'||l_PRICING_ATTR_rec.product_attr_value||':'||p_PRICING_ATTR_rec.product_attr_value||':');
1971 oe_debug_pub.ADD('product_uom_code :'||l_PRICING_ATTR_rec.product_uom_code||':'||p_PRICING_ATTR_rec.product_uom_code||':');
1972 oe_debug_pub.ADD('program_application_id :'||l_PRICING_ATTR_rec.program_application_id||':'||p_PRICING_ATTR_rec.program_application_id||':');
1973 oe_debug_pub.ADD('program_id :'||l_PRICING_ATTR_rec.program_id||':'||p_PRICING_ATTR_rec.program_id||':');
1974 oe_debug_pub.ADD('program_update_date :'||l_PRICING_ATTR_rec.program_update_date||':'||p_PRICING_ATTR_rec.program_update_date||':');
1975 oe_debug_pub.ADD('request_id :'||l_PRICING_ATTR_rec.request_id||':'||p_PRICING_ATTR_rec.request_id||':');
1976 oe_debug_pub.ADD('comparison_operator_code :'||l_PRICING_ATTR_rec.comparison_operator_code||':'||p_PRICING_ATTR_rec.comparison_operator_code||':');
1977 oe_debug_pub.ADD('pricing_attribute_datatype :'||l_PRICING_ATTR_rec.pricing_attribute_datatype||':'||p_PRICING_ATTR_rec.pricing_attribute_datatype||':');
1978 oe_debug_pub.ADD('product_attribute_datatype :'||l_PRICING_ATTR_rec.product_attribute_datatype||':'||p_PRICING_ATTR_rec.product_attribute_datatype||':');
1979 oe_debug_pub.ADD('-------------------Data compare in price list line Attributes end------------------');
1980 -- Row has changed by another user.
1981 --End 8594682 - Add debug messages for OE_LOCK error
1982
1983 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
1984 THEN
1985
1986 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_CHANGED');
1987 oe_msg_pub.Add;
1988
1989 END IF;
1990
1991 END IF;
1992
1993 EXCEPTION
1994
1995 WHEN NO_DATA_FOUND THEN
1996
1997 x_return_status := FND_API.G_RET_STS_ERROR;
1998 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
1999
2000 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2001 THEN
2002
2003 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_DELETED');
2004 oe_msg_pub.Add;
2005
2006 END IF;
2007 WHEN APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION THEN
2008
2009 x_return_status := FND_API.G_RET_STS_ERROR;
2010 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2011
2012 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_ERROR)
2013 THEN
2014
2015 FND_MESSAGE.SET_NAME('QP','OE_LOCK_ROW_ALREADY_LOCKED');
2016 oe_msg_pub.Add;
2017
2018 END IF;
2019 WHEN OTHERS THEN
2020
2021 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2022 x_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2023
2024 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2025 THEN
2026 oe_msg_pub.Add_Exc_Msg
2027 ( G_PKG_NAME
2028 , 'Lock_Row'
2029 );
2030 END IF;
2031
2032 END Lock_Row;
2033
2034 -- Function Get_Values
2035
2036 FUNCTION Get_Values
2037 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2038 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
2039 QP_Price_List_PUB.G_MISS_PRICING_ATTR_REC
2040 ) RETURN QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type
2041 IS
2042 l_PRICING_ATTR_val_rec QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type;
2043 BEGIN
2044
2045 IF p_PRICING_ATTR_rec.accumulate_flag IS NOT NULL AND
2046 p_PRICING_ATTR_rec.accumulate_flag <> FND_API.G_MISS_CHAR AND
2047 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.accumulate_flag,
2048 p_old_PRICING_ATTR_rec.accumulate_flag)
2049 THEN
2050 l_PRICING_ATTR_val_rec.accumulate := QP_Id_To_Value.Accumulate
2051 ( p_accumulate_flag => p_PRICING_ATTR_rec.accumulate_flag
2052 );
2053 END IF;
2054
2055 IF p_PRICING_ATTR_rec.excluder_flag IS NOT NULL AND
2056 p_PRICING_ATTR_rec.excluder_flag <> FND_API.G_MISS_CHAR AND
2057 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.excluder_flag,
2058 p_old_PRICING_ATTR_rec.excluder_flag)
2059 THEN
2060 l_PRICING_ATTR_val_rec.excluder := QP_Id_To_Value.Excluder
2061 ( p_excluder_flag => p_PRICING_ATTR_rec.excluder_flag
2062 );
2063 END IF;
2064
2065 IF p_PRICING_ATTR_rec.list_line_id IS NOT NULL AND
2066 p_PRICING_ATTR_rec.list_line_id <> FND_API.G_MISS_NUM AND
2067 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.list_line_id,
2068 p_old_PRICING_ATTR_rec.list_line_id)
2069 THEN
2070 l_PRICING_ATTR_val_rec.list_line := QP_Id_To_Value.List_Line
2071 ( p_list_line_id => p_PRICING_ATTR_rec.list_line_id
2072 );
2073 END IF;
2074
2075 /* IF p_PRICING_ATTR_rec.pricing_attribute_id IS NOT NULL AND
2076 p_PRICING_ATTR_rec.pricing_attribute_id <> FND_API.G_MISS_NUM AND
2077 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.pricing_attribute_id,
2078 p_old_PRICING_ATTR_rec.pricing_attribute_id)
2079 THEN
2080 l_PRICING_ATTR_val_rec.pricing_attribute := QP_Id_To_Value.Pricing_Attribute
2081 ( p_pricing_attribute_id => p_PRICING_ATTR_rec.pricing_attribute_id
2082 );
2083 END IF;
2084 */
2085 IF p_PRICING_ATTR_rec.product_uom_code IS NOT NULL AND
2086 p_PRICING_ATTR_rec.product_uom_code <> FND_API.G_MISS_CHAR AND
2087 NOT QP_GLOBALS.Equal(p_PRICING_ATTR_rec.product_uom_code,
2088 p_old_PRICING_ATTR_rec.product_uom_code)
2089 THEN
2090 l_PRICING_ATTR_val_rec.product_uom := QP_Id_To_Value.Product_Uom
2091 ( p_product_uom_code => p_PRICING_ATTR_rec.product_uom_code
2092 );
2093 END IF;
2094
2095 RETURN l_PRICING_ATTR_val_rec;
2096
2097 END Get_Values;
2098
2099 -- Function Get_Ids
2100
2101 FUNCTION Get_Ids
2102 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2103 , p_PRICING_ATTR_val_rec IN QP_Price_List_PUB.Pricing_Attr_Val_Rec_Type
2104 ) RETURN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2105 IS
2106 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type;
2107 BEGIN
2108
2109 -- initialize return_status.
2110
2111 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_SUCCESS;
2112
2113 -- initialize l_PRICING_ATTR_rec.
2114
2115 l_PRICING_ATTR_rec := p_PRICING_ATTR_rec;
2116
2117 IF p_PRICING_ATTR_val_rec.accumulate <> FND_API.G_MISS_CHAR
2118 THEN
2119
2120 IF p_PRICING_ATTR_rec.accumulate_flag <> FND_API.G_MISS_CHAR THEN
2121
2122 l_PRICING_ATTR_rec.accumulate_flag := p_PRICING_ATTR_rec.accumulate_flag;
2123
2124 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2125 THEN
2126
2127 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2128 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','accumulate');
2129 oe_msg_pub.Add;
2130
2131 END IF;
2132
2133 ELSE
2134
2135 l_PRICING_ATTR_rec.accumulate_flag := QP_Value_To_Id.accumulate
2136 ( p_accumulate => p_PRICING_ATTR_val_rec.accumulate
2137 );
2138
2139 IF l_PRICING_ATTR_rec.accumulate_flag = FND_API.G_MISS_CHAR THEN
2140 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2141 END IF;
2142
2143 END IF;
2144
2145 END IF;
2146
2147 IF p_PRICING_ATTR_val_rec.excluder <> FND_API.G_MISS_CHAR
2148 THEN
2149
2150 IF p_PRICING_ATTR_rec.excluder_flag <> FND_API.G_MISS_CHAR THEN
2151
2152 l_PRICING_ATTR_rec.excluder_flag := p_PRICING_ATTR_rec.excluder_flag;
2153
2154 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2155 THEN
2156
2157 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2158 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','excluder');
2159 oe_msg_pub.Add;
2160
2161 END IF;
2162
2163 ELSE
2164
2165 l_PRICING_ATTR_rec.excluder_flag := QP_Value_To_Id.excluder
2166 ( p_excluder => p_PRICING_ATTR_val_rec.excluder
2167 );
2168
2169 IF l_PRICING_ATTR_rec.excluder_flag = 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.list_line <> FND_API.G_MISS_CHAR
2178 THEN
2179
2180 IF p_PRICING_ATTR_rec.list_line_id <> FND_API.G_MISS_NUM THEN
2181
2182 l_PRICING_ATTR_rec.list_line_id := p_PRICING_ATTR_rec.list_line_id;
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','list_line');
2189 oe_msg_pub.Add;
2190
2191 END IF;
2192
2193 ELSE
2194
2195 l_PRICING_ATTR_rec.list_line_id := QP_Value_To_Id.list_line
2196 ( p_list_line => p_PRICING_ATTR_val_rec.list_line
2197 );
2198
2199 IF l_PRICING_ATTR_rec.list_line_id = FND_API.G_MISS_NUM THEN
2200 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2201 END IF;
2202
2203 END IF;
2204
2205 END IF;
2206
2207 /****************************************************************************
2208 Added code to perform value_to_id conversion for pricing_Attribute,
2209 pricing_Attr_value_from and pricing_attr_value_to columns.
2210 ****************************************************************************/
2211
2212 IF p_PRICING_ATTR_val_rec.pricing_attribute_desc <> FND_API.G_MISS_CHAR
2213 THEN
2214
2215 IF p_PRICING_ATTR_rec.pricing_attribute <> FND_API.G_MISS_CHAR THEN
2216
2217 l_PRICING_ATTR_rec.pricing_attribute := p_PRICING_ATTR_rec.pricing_attribute;
2218
2219 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2220 THEN
2221
2222 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2223 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attribute');
2224 oe_msg_pub.Add;
2225
2226 END IF;
2227
2228 ELSE
2229
2230 l_PRICING_ATTR_rec.pricing_attribute := QP_Value_To_Id.pricing_attribute
2231 ( p_pricing_attribute_desc => p_PRICING_ATTR_val_rec.pricing_attribute_desc,
2232 p_context => l_PRICING_ATTR_rec.pricing_attribute_context
2233 );
2234
2235 IF l_PRICING_ATTR_rec.pricing_attribute = FND_API.G_MISS_CHAR THEN
2236 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2237 END IF;
2238
2239 END IF;
2240
2241 END IF;
2242
2243 IF p_PRICING_ATTR_val_rec.pricing_attr_value_from_desc <> FND_API.G_MISS_CHAR
2244 THEN
2245
2246 IF p_PRICING_ATTR_rec.pricing_attr_value_from <> FND_API.G_MISS_CHAR THEN
2247
2248 l_PRICING_ATTR_rec.pricing_attr_value_from := p_PRICING_ATTR_rec.pricing_attr_value_from;
2249
2250 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2251 THEN
2252
2253 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2254 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attr_value_from');
2255 oe_msg_pub.Add;
2256
2257 END IF;
2258
2259 ELSE
2260
2261 l_PRICING_ATTR_rec.pricing_attr_value_from := QP_Value_To_Id.pricing_attr_value_from
2262 ( p_pricing_attr_value_from_desc => p_PRICING_ATTR_val_rec.pricing_attr_value_from_desc,
2263 p_context => l_PRICING_ATTR_rec.pricing_attribute_context,
2264 p_attribute => l_PRICING_ATTR_rec.pricing_attribute
2265 );
2266
2267 IF l_PRICING_ATTR_rec.pricing_attr_value_from = FND_API.G_MISS_CHAR THEN
2268 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2269 END IF;
2270
2271 END IF;
2272
2273 END IF;
2274
2275 IF p_PRICING_ATTR_val_rec.pricing_attr_value_to_desc <> FND_API.G_MISS_CHAR
2276 THEN
2277
2278 IF p_PRICING_ATTR_rec.pricing_attr_value_to <> FND_API.G_MISS_CHAR THEN
2279
2280 l_PRICING_ATTR_rec.pricing_attr_value_to := p_PRICING_ATTR_rec.pricing_attr_value_to;
2281
2282 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2283 THEN
2284
2285 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2286 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','pricing_attr_value_to');
2287 oe_msg_pub.Add;
2288
2289 END IF;
2290
2291 ELSE
2292
2293 l_PRICING_ATTR_rec.pricing_attr_value_to := QP_Value_To_Id.pricing_attr_value_to
2294 ( p_pricing_attr_value_to_desc => p_PRICING_ATTR_val_rec.pricing_attr_value_to_desc,
2295 p_context => l_PRICING_ATTR_rec.pricing_attribute_context,
2296 p_attribute => l_PRICING_ATTR_rec.pricing_attribute
2297 );
2298
2299 IF l_PRICING_ATTR_rec.pricing_attr_value_to = FND_API.G_MISS_CHAR THEN
2300 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2301 END IF;
2302
2303 END IF;
2304
2305 END IF;
2306
2307 IF p_PRICING_ATTR_val_rec.product_uom <> FND_API.G_MISS_CHAR
2308 THEN
2309
2310 IF p_PRICING_ATTR_rec.product_uom_code <> FND_API.G_MISS_CHAR THEN
2311
2312 l_PRICING_ATTR_rec.product_uom_code := p_PRICING_ATTR_rec.product_uom_code;
2313
2314 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_SUCCESS)
2315 THEN
2316
2317 FND_MESSAGE.SET_NAME('QP','FND_BOTH_VAL_AND_ID_EXIST');
2318 FND_MESSAGE.SET_TOKEN('ATTRIBUTE','product_uom');
2319 oe_msg_pub.Add;
2320
2321 END IF;
2322
2323 ELSE
2324
2325 l_PRICING_ATTR_rec.product_uom_code := QP_Value_To_Id.product_uom
2326 ( p_product_uom => p_PRICING_ATTR_val_rec.product_uom
2327 );
2328
2329 IF l_PRICING_ATTR_rec.product_uom_code = FND_API.G_MISS_CHAR THEN
2330 l_PRICING_ATTR_rec.return_status := FND_API.G_RET_STS_ERROR;
2331 END IF;
2332
2333 END IF;
2334
2335 END IF;
2336
2337 RETURN l_PRICING_ATTR_rec;
2338
2339 END Get_Ids;
2340
2341 Procedure Pre_Write_Process
2342 ( p_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type
2343 , p_old_PRICING_ATTR_rec IN QP_Price_List_PUB.Pricing_Attr_Rec_Type :=
2344 QP_Price_List_PUB.G_MISS_Pricing_Attr_REC
2345 , x_PRICING_ATTR_rec OUT NOCOPY /* file.sql.39 change */ QP_Price_List_PUB.Pricing_Attr_Rec_Type
2346 ) IS
2347 l_PRICING_ATTR_rec QP_Price_List_PUB.Pricing_Attr_Rec_Type := p_PRICING_ATTR_rec;
2348 l_return_status varchar2(30);
2349 BEGIN
2350
2351 oe_debug_pub.Add('Entering QP_pll_PRICING_ATTR_Util.pre_write_process', 1);
2352
2353 --Bug 2807015. Added following code to update pricing attributes when the PA is changed in PLL.
2354 IF ( p_PRICING_ATTR_rec.operation = QP_GLOBALS.G_OPR_UPDATE)
2355 THEN
2356 IF ((p_old_PRICING_ATTR_rec.product_attribute <> p_PRICING_ATTR_rec.product_attribute) OR
2357 (p_old_PRICING_ATTR_rec.product_attr_value <> p_PRICING_ATTR_rec.product_attr_value))
2358 THEN
2359 begin
2360 update qp_pricing_attributes
2361 set product_attribute = p_PRICING_ATTR_rec.product_attribute
2362 , product_attr_value = p_PRICING_ATTR_rec.product_attr_value
2363 where list_line_id = p_PRICING_ATTR_rec.list_line_id;
2364 exception
2365 when NO_DATA_FOUND then
2366 null;
2367 end;
2368 END IF;
2369
2370 ELSIF ( p_PRICING_ATTR_rec.operation = QP_GLOBALS.G_OPR_CREATE ) THEN
2371 begin
2372 update qp_pricing_attributes
2373 set product_attribute = p_PRICING_ATTR_rec.product_attribute
2374 , product_attr_value = p_PRICING_ATTR_rec.product_attr_value
2375 where list_line_id = p_PRICING_ATTR_rec.list_line_id;
2376 exception
2377 when NO_DATA_FOUND then
2378 null;
2379 end;
2380 END IF;
2381
2382 x_PRICING_ATTR_rec := l_PRICING_ATTR_rec;
2383 IF ( p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_DELETE) THEN
2384
2385 oe_debug_pub.add('Logging a request to update qualification_ind ', 1);
2386 qp_delayed_requests_PVT.log_request(
2387 p_entity_code => QP_GLOBALS.G_ENTITY_Price_List_Line,
2388 p_entity_id => p_PRICING_ATTR_rec.list_line_id,
2389 p_requesting_entity_code=> QP_GLOBALS.G_ENTITY_Price_List_Line,
2390 p_requesting_entity_id => p_PRICING_ATTR_rec.list_line_id,
2391 p_request_type =>QP_GLOBALS.G_UPDATE_LINE_QUAL_IND,
2392 x_return_status => l_return_status);
2393 END IF;
2394 -- pattern
2395 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'Y' THEN
2396 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_CREATE) THEN
2397 qp_delayed_requests_pvt.log_request(
2398 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2399 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2400 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2401 p_request_unique_key2 => 'I',
2402 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2403 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2404 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2405 x_return_status => l_return_status);
2406
2407 END IF;
2408 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
2409 qp_delayed_requests_pvt.log_request(
2410 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2411 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2412 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2413 p_request_unique_key2 => 'U',
2414 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2415 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2416 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2417 x_return_status => l_return_status);
2418 END IF;
2419 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_DELETE) THEN
2420 qp_delayed_requests_pvt.log_request(
2421 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2422 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2423 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2424 p_request_unique_key2 => 'D',
2425 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2426 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2427 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2428 x_return_status => l_return_status);
2429 END IF;
2430 END IF; --Java Engine Installed
2431 -- pattern
2432 -- jagan's PL/SQL pattern
2433 IF QP_JAVA_ENGINE_UTIL_PUB.Java_Engine_Installed = 'N' THEN
2434 IF FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'P' OR FND_PROFILE.VALUE('QP_PATTERN_SEARCH') = 'B' THEN
2435 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_CREATE) THEN
2436 qp_delayed_requests_pvt.log_request(
2437 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2438 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2439 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2440 p_request_unique_key2 => 'I',
2441 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2442 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2443 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2444 x_return_status => l_return_status);
2445
2446 END IF;
2447 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_UPDATE) THEN
2448 qp_delayed_requests_pvt.log_request(
2449 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2450 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2451 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2452 p_request_unique_key2 => 'U',
2453 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2454 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2455 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2456 x_return_status => l_return_status);
2457 END IF;
2458 IF (p_PRICING_ATTR_rec.operation = OE_GLOBALS.G_OPR_DELETE) THEN
2459 qp_delayed_requests_pvt.log_request(
2460 p_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2461 p_entity_id => p_PRICING_ATTR_rec.list_header_id,
2462 p_request_unique_key1 => p_PRICING_ATTR_rec.list_line_id,
2463 p_request_unique_key2 => 'D',
2464 p_requesting_entity_code => QP_GLOBALS.G_ENTITY_ALL,
2465 p_requesting_entity_id => p_PRICING_ATTR_rec.list_header_id,
2466 p_request_type => QP_GLOBALS.G_MAINTAIN_PRODUCT_PATTERN,
2467 x_return_status => l_return_status);
2468 END IF;
2469 END IF; --PL/SQL pattern search
2470 END IF; --- Java Engine Installed
2471
2472
2473 EXCEPTION
2474 WHEN FND_API.G_EXC_ERROR THEN
2475 RAISE;
2476 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2477 RAISE;
2478 WHEN OTHERS THEN
2479 IF oe_msg_pub.Check_Msg_Level(oe_msg_pub.G_MSG_LVL_UNEXP_ERROR)
2480 THEN
2481 oe_msg_pub.Add_Exc_Msg
2482 ( G_PKG_NAME
2483 , 'Pre_Write_Process'
2484 );
2485 END IF;
2486 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2487 END Pre_Write_Process;
2488
2489 END QP_pll_pricing_attr_Util;